Sadržaj:
- Korak 1: Korišteni materijali
- Korak 2: Pripremite operativni sistem
- Korak 3: Povezivanje neopiksela
- Korak 4: Pokrenite RPi
- Korak 5: Pi-Hole
- Korak 6: Upravljajte svjetlima
- Korak 7: Uključite svjetla pomoću preglednika
- Korak 8: Upravljajte svjetlima iz preglednika
- Korak 9: Kreirajte predložak zaglavlja i podnožja
- Korak 10: Malo CSS -a kako bi sve izgledalo bolje
- Korak 11: Hvala vam
Video: Neopikseli za blokiranje oglasa: 11 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
Htio sam napraviti jednostavnu web stranicu udaljenu za traku neopiksela povezanu s mojom Raspberry Pi zero i nastaviti je koristiti za blokiranje oglasa na svojoj mreži pomoću Pi-Hole-a. Prvo sam samo htjela dodati neke LED diode u svoju sobu, ali oživljavajući sve shvatila sam da nemam načina da ih prikladno kontroliram. Zato sam odlučio stvoriti jednostavnu web stranicu s nekim osnovnim opcijama kontrole koristeći apache poslužitelj koji je instalacijski program Pi-hole već postavio. Dodijelio sam root-dozvole www-data, što predstavlja sigurnosni rizik, pa biste vjerojatno trebali učiniti web server nedostupnim vanjskom svijetu. Ovo je počelo uglavnom zbog moje vlastite dokumentacije, a onda je nekako postalo moj prvi instruktor;) Stoga bih bio jako zahvalan ako biste istakli ako je nešto nejasno ili ako sam nešto potpuno propustio.
Korak 1: Korišteni materijali
-
Raspberry Pi (počeo sam na Pi 2, a zatim promijenio na WH, gpio pinovi mogu biti malo drugačiji, ali inače je svaki model u redu)
- Ako imate RPi bez ugrađenog WiFi -ja, koristan je i WiFi adapter.
- Po želji futrola za malinu pi
- 2 muško-ženske kratkospojne žice (na primjer)
- Neopikseli ws2811 (koristio sam ove)
- 1 napajanje od 10 W za RPi (može i stari punjač za telefon)
- Napajanje od 1 ~ 50 W za neopiksele (koristio sam jedan ovakav, ali vjerovatno bi mi bio dovoljan manji, ali ako želite više LED dioda, imate još prostora za proširenje.)
- Utikač ženskog priključka (ovako)
Korak 2: Pripremite operativni sistem
Preuzmite najnoviju verziju Rasbian sa raspberrypi.org Lite verzija je dobra za ovaj projekat, ako planirate da koristite malinu pi i za nešto drugo, razmislite o instaliranju pune verzije sa gui. Zatim sam snimio sliku Etcherom. Nakon toga, kako bih bio siguran da će se povezati s mojom WiFi mrežom, dodao sam wpa_supplicant.conf u direktorij za pokretanje sd kartice. Sadržaj datoteke trebao bi izgledati ovako:
~~~
ctrl_interface = DIR =/var/run/wpa_supplicant GROUP = netdev update_config = 1
mreža = {
ssid = "SSID"
psk = "LOZINKA"
key_mgmt = WPA-PSK}
~~~
Da bih omogućio ssh, stvorio sam datoteku pod nazivom ssh (bez ikakvih ekstenzija) u istom direktoriju. Ovo će vam omogućiti da konfigurirate sve sa drugog računara na svom LAN -u.
Korak 3: Povezivanje neopiksela
Prvo sam priključio napajanje u ženski konektor i stavio RPi u futrolu. Odvrnuo sam kabel za uzemljenje s LED dioda (plavi kabel) i muške strane kratkospojnika na negativnoj strani konektora za utičnicu. Drugi kraj kratkospojnika sam spojio na pin za uzemljenje na gpio zaglavlju, koristio sam pin 6, ali tačne pinove koje možete koristiti ovisit će o modelu RPi koji koristite.
Drugo, spojio sam na pozitivni kraj utičnice 5v kabel sa LED dioda (crveni kabel). Na mojoj LED traci bio je konektor za kratkospojnu žicu na dodatnom uzemljeničkom kabelu i podatkovni kabel (bijeli kabel). Zanemario sam dodatni kabel za uzemljenje, nije mi bio potreban za postavljanje. Na podatkovnom kablu spojio sam mušku na žensku kratkospojnu žicu s gpio iglom 12, opet tačan pin koji trebate koristiti ovisi o vašem RPi. Zatim sam priključio napajanje za RPi i piksele. LED diode su zasvijetlile nakratko, ako je sve ispravno ožičeno.
Korak 4: Pokrenite RPi
Nakon što sam RPi -u dao minutu za pokretanje, potražio sam IP adresu od maline sa nmap -om. No, bilo koji mrežni skener, informacijska ploča vašeg usmjerivača ili u većini slučajeva jednostavno "raspberrypi.local" će biti dovoljni. S tim podacima sam se povezao s RPi -om putem ssh -a. Zadani korisnik je pi sa lozinkom malina. To je prvo što sam promijenio koristeći `passwd` neposredno nakon prvog prijavljivanja. Ako želite svom pi pristupiti putem ssh -a izvan vaše lokalne mreže, trebali biste provjeriti fail2ban i provjeru autentičnosti ključa. Ja lično nemam slučaj upotrebe za to, pa ću ostaviti samo lozinku.
Drugo, ažurirao sam softver koristeći `sudo apt update && sudo apt upgrade -Y`. Trebao mi je i dodatni softver za kompajliranje libery `sudo apt-get install scons swig git python-dev build-essential -Y`. Zatim sam kopirao izvrsnu slobodu od Jeremyja Garffa na github `git clone https:// github.com/jgarff/rpi_ws281x.git`. Nakon toga je sloboda klonirana, otišao sam u direktorij rpi_ws281x, upotrijebio scons i zatim instalirao biblioteku sa `sudo python python/setup.py install`. U pythonu/examples je lijepa demonstracija "strandtest.py" sa zaista urednim animacijama koje možete započeti sa `sudo python python/examples/strandtest.py`.
Korak 5: Pi-Hole
Za stvaranje blokatora dodavanja na čitavoj mreži, Pi-Hole je savršen. Instalira se samo `sudo curl -sSL https://install.pi-hole.net | bash`. Lijepo je to što će postaviti i web server.
Nakon pokretanja instalacijskog programa, htjet ćete se prijaviti na administratorsko mjesto vašeg usmjerivača i svom RPi-u dati statičku IP adresu i postaviti ga kao DHCP poslužitelj. Ako ste postavili kratko vrijeme najma, vaša bi PI rupa sada trebala raditi.
Korak 6: Upravljajte svjetlima
Najlakši način za kontrolu neopiksela je pomoću malih python programa. No, koristiti ssh svaki put kad želite upaliti svjetlo nije zgodno, posebno na mobilnom uređaju. Stoga sam odlučio koristiti malu web stranicu kao daljinski upravljač. OVO JE SIGURNOSNI RIZIK, jer sam dao root dozvolu www-data bez provjere lozinke. Vjerovatno ne biste trebali učiniti ovu web lokaciju dostupnom izvan vašeg lanca.
Da bih olakšao izbor između nadzorne ploče PI -rupe i svjetlosnog daljinskog upravljača, korisniku pi sam dao pristup pisanju u/var/www/html sa `sudo chown -R pi/var/www.html` i stvorio sam index.php datoteka u/var/www/html/. Nešto jednostavno poput:
~~~
Index Pi rupa Svjetlosni daljinski
~~~
je u redu. Zatim sam stvorio novu mapu koja se zove svjetla kako bi sve od neopiksela bilo zajedno. Ovdje sam stvorio colour.py na osnovu strandtest.py iz slobode.
~~~
from neopixel import * # Uvezite neke biblioteke
import sys
def led (traka, boja, početak, kraj): # Kreirajte funkciju za pozivanje LED dioda
za i u dometu (početak, kraj):
strip.setPixelColor (i, boja)
strip.show ()
BRIGHTNESS = int (sys.argv [4]) # Četvrti parametar na komandnoj liniji će biti svjetlina. (1-255)
COUNT = 50 # Količina LED dioda PIN = 12 # Pin koji se koristi na RPi
FREQ_HZ = 800000 # Frekvencija LED signala u hercima (obično 800 kHz)
DMA = 5 # DMA kanal za generiranje signala (probajte 5)
INVERT = False # Tačno za invertiranje signala (kada se koristi nivo NPN tranzistora
strip = Adafruit_NeoPixel (COUNT, PIN, FREQ_HZ, DMA, INVERT, BRIGHTNESS)
strip.begin ()
R = int (sys.argv [1]) # Količina crvene boje je prvi parametar
G = int (sys.argv [2]) # Količina zelene boje je drugi parametar
B = int (sys.argv [3]) # Količina plave boje je treći parametar
probaj:
LED diode (traka, boja (R, G, B), 0, 49) #Pokrenuće dozvole sa izabranom bojom i osvetljenošću.
osim KeyboardInterrupt:
boja (traka, boja (0, 0, 0), 0, 49)
~~~
Ako ovo pokrenete sa sudo na terminalu, svjetla bi se trebala uključiti u navedenoj boji. Da bih dao sudo dozvolu www-data, dodao sam `www-data ALL = (ALL) NOPASSWD: ALL)` u sudoers datoteku (/etc/sudoers) direktno ispod root korisnika.
Korak 7: Uključite svjetla pomoću preglednika
Zatim sam stvorio još jedan index.php, ovaj put u /lights. ~~~
< ?php $R = 100; $G = 100; $B = 100; $BRIGHTNESS = 100; exec("sudo python colour.py $R $G $B $BRIGHTNESS"); ?>
~~~
Kad sad posjetim raspberrypi.local/lights/index.php LED diode će postati bijele. Iako je ovo lijep početak, volio bih imati barem neke tipke na daljinskom upravljaču.
Korak 8: Upravljajte svjetlima iz preglednika
Napravio sam sučelje s buttensima koristeći html obrazac. Ne volim raditi stvari koje nisu potrebne, pa sam stvorio fasciklu pod nazivom predlošci sa mojim zaglavljem, podnožjem i glavnim php kodom. Moj (za sada) final /lights/index.php izgleda ovako:
~~~
~~~
Da bi tasteri radili, napravio sam predložak BasicControl.php. U ovome sam naveo kôd koji treba izvršiti kada se pritisne dugme. Budući da su mi se svidjele najjednostavnije animacije, uključio sam i tu. Najbrži će se nastaviti beskonačno dugo, pa sam napravio još jedno dugme za zaustavljanje procesa kad god želim.
~~~ <? php
$ I = 100;
$ R = 0;
$ G = 0;
$ B = 0;
if (isset ($ _ POST ['strandtest_start']))) {exec ("sudo python strandtest.py"); }
else if (isset ($ _ POST ['strandtest_stop']))) {exec ("sudo pkill -9 -f strandtest.py"); }
else if (isset ($ _ POST ['red']))) {$ R = 255; $ G = 0; $ B = 0; exec ("sudo python colour.py $ R $ G $ B $ I"); }
else if (isset ($ _ POST ['green']))) {$ R = 0; $ G = 255; $ B = 0; exec ("sudo python colour.py $ R $ G $ B $ I"); }
else if (isset ($ _ POST ['blue']))) {$ R = 0; $ G = 0; $ B = 255; exec ("sudo python colour.py $ R $ G $ B $ I"); }
else if (isset ($ _ POST ['white']))) {$ R = 255; $ G = 255; $ B = 255; exec ("sudo python colour.py $ R $ G $ B $ I"); }
else if (isset ($ _ POST ['off']))) {shell_exec ('sudo python off.py'); }
else if (isset ($ _ POST ['reboot']))) {shell_exec ('sudo reboot now'); }?>
~~~
Korak 9: Kreirajte predložak zaglavlja i podnožja
Sada sve funkcionira, ali nije previše ugodno za pogledati. Nakon uvoza zaglavlja i podnožja svi elementi web stranice su dostupni, samo ne stilizirani.
Header.php:
~~~
Svjetla
Lampjes
Osnovne kontrole
Napredne kontrole
~~~
I footer.php:
~~~
~~~
Korak 10: Malo CSS -a kako bi sve izgledalo bolje
Kao što ste možda primijetili, koristim css datoteku za kontrolu izgleda. Da bih bio siguran da je moj daljinski upravljač upotrebljiv i na manjim ekranima, koristio sam neke css flexboxe sa automatskim premotavanjem.
~~~
/ * Tabela stilova za interfejs za kontrolu svetla *
* Primjenjuje se na svakoj stranici */
body {background-color: f9fcfa; porodica fontova: Arial; marža: 0; }
h1 {boja: bijela; poravnavanje teksta: centar; }
p {font-family: verdana; font-veličina: 20px; }
h2 {}
/ * Zaglavlje */
.zaglavlje {visina: 10%; prikaz: flex; justify-content: flex-start; align-items: center; margina: 0px; padding-left: 5%; pozadina:#3F51B5; align-items: center; }
. Vezevi za glave {boja: bijela; }
.navbar {display: flex; fleks: 30%; justify-content: prostor oko; boja pozadine: #3F51B5; boja: bijela; }
/ * Podnožje */
.footer {background-color: #3F51B5; visina: 10%; poravnavanje teksta: centar; }
/ * Index.php */
. tasteri {display: flex; smjer savijanja: red; flex-wrap: wrap; justify-content: razmak između; visina: 80%; align-items: flex-start; }
.buttons_index {padding: 0%; širina ivice: tanka; rubni stil: čvrst; bordura: crna; boja pozadine: #3949ab; boja: bijela; font-family: sans-serif; širina: 24%; visina: 20%; }
.buttons_index: hover {padding: 0%; širina ivice: tanka; rubni stil: čvrst; bordura: crna; boja pozadine: #536DFE; boja: bijela; font-family: sans-serif; širina: 24%; visina: 20%; }
~~~
Korak 11: Hvala vam
I to je to. Sve radi za mene i nadam se da će uspjeti i za vas ako odaberete isprobati moje upute. Ako ste pokušali kopirati neki kôd, morao sam dodati nekoliko razmaka za postavljanje ovdje, pa ćete ih morati izbrisati prije nego kôd ponovo postane koristan.
Nadam se da ste uživali čitajući sve. Ako imate povratne informacije, volio bih ih čuti!
Preporučuje se:
PiHole blokator oglasa sa ekranom od 3,5 ": 8 koraka (sa slikama)
PiHole Blokator oglasa s ekranom od 3,5 ": Dobro došli u moje uputstvo o tome kako stvoriti zaista sjajan blokator oglasa za cijelu vašu mrežu! Raspberry Pi pokreće softver poznat kao Pi-Hole i PADD za blokiranje oglasa i prikaz statističkih podataka, poput Pi- IP adresa Hole i količina blokiranih oglasa
Blokiranje oglasa na čitavoj mreži s vašim Raspberry Pi: 4 koraka
Blokiranje oglasa na čitavoj mreži s vašim Raspberry Pi: Doživite čistiji, brži web i blokirajte dosadne oglase na cijeloj svojoj kućnoj mreži pomoću Pi-hole-a i Raspberry Pi-ja
Kako postaviti Pi-Hole na Raspberry Pi, mrežni bloker oglasa !!: 25 koraka
Kako postaviti Pi-Hole na Raspberry Pi, mrežni blokator oglasa !!: Za ovaj projekt trebat će vam: Raspberry Pi sposoban za spajanje na internet Micro SD kartica s Raspbian LiteA tipkovnicom (Za postavljanje SSH-a) Druga Uređaj (Za pristup web portalu) Osnovno znanje o UNIX -u, kao i navigacija sučeljem na
Blokirajte hiljade oglasa sa HOSTS: 5 koraka
Blokirajte hiljade oglasa pomoću HOSTOVA: U ovom uputstvu pokazat ću vam jednostavan način blokiranja gotovo hiljada oglasa, na jedan jednostavan, lagan način
Napravite 100% besplatnu web stranicu! Bez oglasa i virusa!: 7 koraka
Napravite 100% besplatnu web stranicu! Bez oglasa i virusa !: Web stranica " yola " je odlična web stranica za izradu potpuno besplatnih web stranica. Bilo da je riječ o ličnoj web stranici ili web stranici kompanije, čak i web lokaciji zaštićenoj lozinkom, a možete je sami izraditi i nije potrebno znanje koda, ali bi pomoglo