Përmbajtje:
- Hapi 1: Materialet e përdorura
- Hapi 2: Përgatitni sistemin operativ
- Hapi 3: Lidhja e Neopixels
- Hapi 4: Filloni RPi
- Hapi 5: Vrima Pi
- Hapi 6: Kontrolloni dritat
- Hapi 7: Ndizni dritat me shfletuesin
- Hapi 8: Kontrolloni dritat nga shfletuesi
- Hapi 9: Krijoni një model për titullin dhe fundin
- Hapi 10: Disa Css për t'i bërë të gjitha të duken pak më mirë
- Hapi 11: Faleminderit
Video: Neopixelë bllokues reklamash: 11 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:27
Doja të bëja një faqe interneti të thjeshtë si të largët për një rrip neopixelësh të lidhur me Raspberry Pi zero dhe të vazhdoja ta përdorja për të bllokuar reklamat në rrjetin tim duke përdorur Pi-Hole. Së pari thjesht doja të shtoja disa led në dhomën time, por duke instaluar gjithçka, kuptova se nuk kisha asnjë mënyrë për t'i kontrolluar ato në mënyrë të përshtatshme. Kështu që vendosa të krijoj një uebfaqe të thjeshtë me disa opsione bazë të kontrollit duke përdorur serverin apache që instaluesi Pi-hole tashmë ishte krijuar. Unë i dhashë lejet rrënjësore të të dhënave www, që është një rrezik sigurie, kështu që ju duhet të bëni që serveri i uebit të mos jetë i disponueshëm për botën e jashtme. Kjo filloi kryesisht për dokumentacionin tim dhe disi u bë mësimi im i parë;) Kështu që unë do të vlerësoja vërtet nëse mund të vini në dukje Nëse diçka është e paqartë ose nëse kam humbur diçka krejtësisht.
Hapi 1: Materialet e përdorura
-
Raspberry Pi (fillova me një Pi 2 dhe më pas ndryshova në WH, kunjat e gpio mund të jenë paksa të ndryshme, por përndryshe çdo model është mirë)
- Nëse keni një RPi pa wifi të integruar, një përshtatës wifi është gjithashtu i dobishëm.
- Opsionale një rast për pi mjedër
- 2 tela bluzë meshkuj-femra (për shembull)
- Neopixels ws2811 (i kam përdorur këto)
- 1 furnizim me energji 10W për RPi (Një karikues i vjetër i telefonit do të bëjë)
- Furnizimi me energji 1 ~ 50W për Neopixels (kam përdorur një të tillë, por me siguri një më i vogël do të ishte i mjaftueshëm, por nëse dëshironi më shumë led, ju mbetet pak hapësirë për tu zgjeruar.)
- Priza e lidhësit të prizës për femra (si kjo)
Hapi 2: Përgatitni sistemin operativ
Shkarkoni versionin e fundit Rasbian nga raspberrypi.org Versioni lite është i mirë për këtë projekt, nëse planifikoni të përdorni mjedrën pi edhe për diçka tjetër, mund të konsideroni instalimin e versionit të plotë me gui. Pastaj dogji imazhin me Etcher. Pas kësaj për t'u siguruar që do të lidhet me rrjetin tim wifi shtova wpa_supplicant.conf në drejtorinë e nisjes së kartës sd. Përmbajtja e skedarit duhet të duket kështu:
~~~
ctrl_interface = DIR =/var/run/wpa_supplicant GROUP = netdev update_config = 1
rrjet = {
ssid = "SSID"
psk = "Fjalëkalimi"
key_mgmt = WPA-PSK}
~~~
Për të aktivizuar ssh krijova një skedar të quajtur ssh (pa asnjë shtrirje) në të njëjtën drejtori. Kjo do të sigurojë që ju të jeni në gjendje të konfiguroni gjithçka nga një kompjuter tjetër në zonën tuaj.
Hapi 3: Lidhja e Neopixels
Së pari e lidha furnizimin me energji elektrike në lidhësin e folesë femërore dhe e vendosa RPi në një kuti. Kam vidhosur kabllon e tokëzimit nga leds (kabllo blu) dhe një anë mashkullore të një teli kërcyesi në anën negative të lidhësit të prizës. Fundi tjetër i telit të kërcyesit që lidha me një kunj të tokëzuar në kokën e gpio, kam përdorur pin 6, por kunjat e saktë që mund të përdorni do të varen nga modeli i saktë RPi që po përdorni.
Së dyti, unë lidha në skajin pozitiv të lidhësit të prizës kabllon 5v nga leds (kablloja e kuqe). Në timonin e tyre ishte një lidhës teli kërcyes në një kabllo shtesë tokësore dhe kabllo të dhënash (kabllo e bardhë). Unë thjesht injorova kabllon shtesë të tokëzimit, ishte e panevojshme për konfigurimin tim. Në kabllon e të dhënave lidha një tel bluzë mashkull me femër me gpio pin 12, përsëri kunja e saktë që duhet të përdorni varet nga RPi juaj. Pastaj futa furnizimin me energji për RPi dhe pikselët. Llambat ndizen për një moment të shkurtër, nëse gjithçka është e lidhur siç duhet.
Hapi 4: Filloni RPi
Pasi i dhashë RPi një minutë apo më shumë për të filluar, unë shikova adresën IP nga mjedra me nmap. Por çdo skaner i rrjetit, paneli i informacionit i ruterit tuaj ose në shumicën e rasteve thjesht "raspberrypi.local" do të bëjë. Me atë informacion u lidha me RPi përmes ssh. Përdoruesi i paracaktuar është pi me fjalëkalimin mjedër. Pra, kjo është gjëja e parë që ndryshova duke përdorur `passwd` direkt pas hyrjes së parë. Nëse dëshironi të hyni në pi tuaj përmes ssh nga jashtë rrjetit tuaj lokal, duhet të shikoni në fail2ban dhe vërtetimin kryesor. Unë personalisht nuk kam një rast përdorimi për këtë, kështu që do ta lë me vetëm një fjalëkalim.
Së dyti, unë përditësova softuerin duke përdorur `sudo apt update && sudo apt upgrade -Y`. Më duheshin gjithashtu disa programe shtesë për të përpiluar libery `sudo apt-get install scons swig git python-dev build-thelbësore -Y`. Pastaj kopjova liberinë e shkëlqyer nga Jeremy Garff në github `git clone https:// github.com/jgarff/rpi_ws281x.git`. Pas kësaj, liria u klonua, shkova në drejtorinë rpi_ws281x, përdor skons dhe pastaj instalova libarin me `sudo python python/setup.py install`. Në python/shembuj është një demonstrim i bukur "strandtest.py" me animacione vërtet të pastra të cilat mund t'i filloni me `sudo python python/shembuj/strandtest.py`.
Hapi 5: Vrima Pi
Për të krijuar një bllokues të shtimit të rrjetit të gjerë, Pi-Hole është i përsosur. Instalohet me vetëm `sudo curl -sSL https://install.pi-hole.net | bash`. Pjesa e bukur është se do të krijojë gjithashtu një server në internet.
Pasi të keni ekzekutuar instaluesin, do të dëshironi të hyni në faqen e administratorit të ruterit tuaj dhe t'i jepni RPi-së tuaj një adresë IP statike dhe ta vendosni atë si DHCP Server. Nëse keni caktuar një kohë të ulët qiraje, atëherë vrima juaj e PI-së duhet të funksionojë tani.
Hapi 6: Kontrolloni dritat
Mënyra më e lehtë për të kontrolluar neopixelët është me programe të vogla python. Por përdorimi i ssh çdo herë që dëshironi të ndizni dritat është i papërshtatshëm, veçanërisht në një pajisje celulare. Kështu që vendosa të përdor një uebfaqe të vogël si telekomandë. Ky është një rrezik për sigurinë, sepse i dhashë lejen rrënjës së të dhënave www pa verifikim të fjalëkalimit. Ju ndoshta nuk duhet ta bëni këtë faqe në dispozicion jashtë kantierit tuaj.
Për ta bërë më të lehtë zgjedhjen midis pultit të PI -vrimës dhe telekomandës së dritës, i dhashë përdoruesit pi të shkruajë qasje në/var/www/html me `sudo chown -R pi/var/www.html` dhe krijova një index.php file në/var/www/html/. Diçka e thjeshtë si:
~~~
Indeksi Pi vrima Telekomandë
~~~
është e mirë. Pastaj krijova një dosje të re të quajtur dritat për të pasur gjithçka nga neopixelët së bashku. Këtu kam krijuar colour.py bazuar në strandtest.py nga liria.
~~~
nga importi neopixel * # Importoni disa biblioteka
import sys
def led (shirit, ngjyrë, fillim, fund): # Krijoni një funksion për të thirrur leds
për i në rang (fillimi, fundi):
strip.setPixelColor (i, ngjyra)
shirit. shfaqje ()
BRIGHTNESS = int (sys.argv [4]) # Parametri i katërt në vijën e komandës do të jetë shkëlqimi. (1-255)
COUNT = 50 # Shuma e leds PIN = 12 # Kunja e përdorur në RPi
FREQ_HZ = 800000 # Frekuenca e sinjalit LED në hertz (zakonisht 800khz)
DMA = 5 # DMA kanal për t'u përdorur për gjenerimin e sinjalit (provo 5)
INVERT = False # E vërtetë për të përmbysur sinjalin (kur përdorni nivelin e transistorit NPN
shirit = Adafruit_NeoPixel (COUNT, PIN, FREQ_HZ, DMA, INVERT, BRIGHTNESS)
strip.filloj ()
R = int (sys.argv [1]) # Sasia e së kuqes është parametri i parë
G = int (sys.argv [2]) # Sasia e gjelbër është parametri i dytë
B = int (sys.argv [3]) # Sasia e ngjyrës blu është parametri i tretë
provo:
leds (shirit, Ngjyra (R, G, B), 0, 49) #Do të fillojnë lejet me ngjyrën dhe shkëlqimin e zgjedhur.
përveç KeyboardIntruptrupt:
ngjyra (shirit, Ngjyra (0, 0, 0), 0, 49)
~~~
Nëse e përdorni këtë me sudo në terminal, dritat duhet të ndizen në ngjyrën e specifikuar. Për t'i dhënë leje sudo www-data sudo shtova `www-data ALL = (ALL) NOPASSWD: ALL)` në skedarin sudoers (/etc/sudoers) direkt nën përdoruesin rrënjë.
Hapi 7: Ndizni dritat me shfletuesin
Pastaj krijova një tjetër index.php, këtë herë në /lights. ~~~
< ?php $R = 100; $G = 100; $B = 100; $BRIGHTNESS = 100; exec("sudo python colour.py $R $G $B $BRIGHTNESS"); ?>
~~~
Kur tani vizitoj raspberrypi.local/lights/index.php leds do të bëhen të bardha. Megjithëse ky është një fillim i bukur, më pëlqen të kem të paktën disa butona në një telekomandë.
Hapi 8: Kontrolloni dritat nga shfletuesi
Kam krijuar një ndërfaqe me buttens duke përdorur një formë html. Nuk më pëlqen të bëj gjëra që nuk janë të nevojshme, kështu që krijova një dosje të quajtur shabllone me kokën, fundin dhe kodin kryesor të php. Im (tani për tani) final /lights/index.php duket kështu:
~~~
~~~
Për t'i bërë butonat të funksionojnë, bëra një shabllon BasicControl.php. Në këtë unë specifikova kodin që duhet të ekzekutohet kur shtypet një buton. Sepse më pëlqyen animacionet më të çuditshme që përfshiva edhe atë. Testi më i çuditshëm do të vazhdojë pafundësisht gjatë, kështu që unë bëra një buton tjetër për të ndaluar procesin kur të dua.
~~~ <? php
$ I = 100;
$ R = 0;
$ G = 0;
$ B = 0;
if (isset ($ _ POST ['strandtest_start']))) {exec ("sudo python strandtest.py"); }
tjetër if (isset ($ _ POST ['strandtest_stop']))) {exec ("sudo pkill -9 -f strandtest.py"); }
tjetër nëse (isset ($ _ POST ['e kuqe']))) {$ R = 255; $ G = 0; $ B = 0; exec ("sudo python colour.py $ R $ G $ B $ I"); }
tjetër nëse (isset ($ _ POST ['green']))) {$ R = 0; $ G = 255; $ B = 0; exec ("sudo python colour.py $ R $ G $ B $ I"); }
tjetër nëse (isset ($ _ POST ['blu']))) {$ R = 0; $ G = 0; $ B = 255; exec ("sudo python colour.py $ R $ G $ B $ I"); }
tjetër nëse (isset ($ _ POST ['bardhë']))) {$ R = 255; $ G = 255; $ B = 255; exec ("sudo python colour.py $ R $ G $ B $ I"); }
tjetër if (isset ($ _ POST ['off']))) {shell_exec ('sudo python off.py'); }
tjetër if (isset ($ _ POST ['reboot'])) {shell_exec ('sudo rindez tani'); }?>>
~~~
Hapi 9: Krijoni një model për titullin dhe fundin
Tani gjithçka funksionon, por nuk është shumë e këndshme për tu parë. Pas importimit të titullit dhe futbollit, të gjithë elementët e faqes janë në dispozicion, thjesht jo të stiluar.
Header.php:
~~~
Dritat
Lampjes
Kontrollet Themelore
Kontrolle të Avancuara
~~~
Dhe footer.php:
~~~
~~~
Hapi 10: Disa Css për t'i bërë të gjitha të duken pak më mirë
Siç mund ta keni vënë re, unë jam duke përdorur një skedar css për të kontrolluar paraqitjen. Për tu siguruar që telekomanda ime është e përdorshme edhe në ekranet më të vegjël, unë kam përdorur disa kuti fleksibël css me mbyllje automatike.
~~~
/ * Fletë stili për ndërfaqen e kontrollit të dritës *
* Zbatohet në çdo faqe */
trupi {sfondi-ngjyra: f9fcfa; font-family: Arial; diferenca: 0; }
h1 {ngjyra: e bardhë; text-align: qendra; }
p {font-family: verdana; font-size: 20px; }
h2 {}
/ * Koka */
.koka {lartësia: 10%; ekran: fleksibël; justifiko-përmbajtjen: flex-start; align-items: qendra; diferenca: 0px; mbushje-majtas: 5%; sfond:#3F51B5; align-items: qendra; }
. HeaderLinks {ngjyra: e bardhë; }
.navbar {ekran: flex; përkul: 30%; justifiko-përmbajtjen: hapësirë-përreth; ngjyra e sfondit: #3F51B5; ngjyra: e bardhë; }
/ * Shënimi */
.footer {background-color: #3F51B5; lartësia: 10%; text-align: qendra; }
/ * Index.php */
.buttons {display: flex; flex-drejtim: rresht; flex-wrap: përfundojë; justifiko-përmbajtjen: hapësirë-mes; lartësia: 80%; përafrimi i artikujve: flex-start; }
.buttons_index {mbushje: 0%; gjerësia e kufirit: e hollë; stili i kufirit: i ngurtë; kufiri-ngjyra: e zezë; sfond-ngjyra: #3949ab; ngjyra: e bardhë; font-family: sans-serif; gjerësia: 24%; lartësia: 20%; }
.buttons_index: rri pezull {mbushje: 0%; gjerësia e kufirit: e hollë; stili i kufirit: i ngurtë; kufiri-ngjyra: e zezë; ngjyra e sfondit: #536DFE; ngjyra: e bardhë; font-family: sans-serif; gjerësia: 24%; lartësia: 20%; }
~~~
Hapi 11: Faleminderit
Dhe kjo eshte. Gjithçka funksionon për mua dhe shpresoj se do të funksionojë edhe për ju nëse zgjidhni provoni udhëzimet e mia. Nëse jeni përpjekur të kopjoni ndonjë kod, më duhej të shtoja disa hapësira për ta ngarkuar këtu, kështu që do t'ju duhet t'i fshini ato para se kodi të bëhet përsëri i dobishëm.
Shpresoj se ju ka pëlqyer të lexoni gjithçka. Nëse keni reagime, do të më pëlqente ta dëgjoja!
Recommended:
Si të vendosni Pi-Hole në një Raspberry Pi, një bllokues reklamash në rrjetë !!: 25 hapa
Si të vendosni Pi-Hole në një Raspberry Pi, një bllokues i reklamave në rrjetë !!: Për këtë projekt, do t'ju duhet: një Raspberry Pi i aftë për t'u lidhur me internetin Një kartë Micro SD që drejton tastierën Raspbian LiteA (Për të konfiguruar SSH) Një e dytë Pajisja (Për të hyrë në Portalin e Uebit) Njohuritë themelore të UNIX si dhe navigimin e ndërfaqes në
Neopixelë të kontrolluar nga Smartphone (Rrip LED) Me Aplikacionin Blynk Mbi WiFi: 6 Hapa
Neopixelë të kontrolluar nga Smartphone (Rrip LED) Me Aplikacionin Blynk Mbi WiFi: Unë e krijova këtë projekt pasi u frymëzova nga neopixelët e kontrolluar nga smartphone në një shtëpi miqsh, por të tijit u blenë nga dyqani. Mendova " sa e vështirë mund të jetë për të bërë timen, do të ishte shumë më lirë! &Quot; Kështu është
Si të bëni një bllokues EMP: 3 hapa (me fotografi)
Si të bëni një bllokues EMP: Një impuls elektromagnetik (EMP), i quajtur ndonjëherë edhe një shqetësim kalimtar elektromagnetik, është një shpërthim i shkurtër i energjisë elektromagnetike. Një impuls i tillë mund të ndodhë në formën e një fushe elektrike të rrezatuar ose magnetike ose një rrymë elektrike të kryer
Bllokues Bluetooth: 7 hapa (me fotografi)
Bluetooth dry: A keni humbur ndonjëherë çelësa të drynit ose keni harruar kodin në dryin tuaj tepër të fortë dhe nuk mund ta hapni dollapin tuaj? Imagjinoni një dry që mund të hapet me një trokitje në një objekt që të gjithë tani e mbajnë me vete dhe rrallë e harrojnë … Epo zonja dhe zotërinj
Qëndrim për laptopë me 3 hapa dhe 3 hapa (me syze leximi dhe tabaka me stilolaps): 5 hapa
Qëndrim për laptopë me hapa 3 & 3 hapa (me syze leximi dhe tabaka për stilolapsa): Kjo $ 3 & Qëndrimi i laptopit me 3 hapa mund të bëhet brenda 5 minutave. It'sshtë shumë e fortë, me peshë të lehtë dhe mund të paloset për ta marrë kudo që të shkoni