Sadržaj:
- Korak 1: Korišteni materijali
- Korak 2: Pripremite operacijski sustav
- 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: Izradite predložak zaglavlja i podnožja
- Korak 10: Neki CSS -i kako bi sve izgledalo bolje
- Korak 11: Hvala vam
Video: Neopikseli za blokiranje oglasa: 11 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
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-Holea. Prvo sam samo htjela dodati neke LED diode u svoju sobu, ali oživljavajući sve shvatila sam da ih nemam načina prikladno kontrolirati. Stoga sam odlučio stvoriti jednostavnu web stranicu s nekim osnovnim opcijama upravljanja pomoću apache poslužitelja koji je instalacijski program Pi-hole već postavio. Odobrio sam root-dopuštenja www-data, što predstavlja sigurnosni rizik, pa biste vjerojatno trebali učiniti web poslužitelj nedostupnim vanjskom svijetu. Ovo je počelo uglavnom za moju vlastitu dokumentaciju i onda je nekako postalo moj prvi instruktor;) Stoga bih bio jako zahvalan ako biste istaknuli 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 vjerojatno bi bio dovoljan manji, ali ako želite više LED dioda, imate još prostora za proširenje.)
- Utikač ženskog priključka (ovako)
Korak 2: Pripremite operacijski sustav
Preuzmite najnoviju verziju Rasbian s raspberrypi.org Lite verzija je dobra za ovaj projekt, ako namjeravate koristiti malinu pi i za nešto drugo, razmislite o instaliranju pune verzije s gui -jem. Zatim sam sliku snimio 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 ssh (bez ikakvog proširenja) u istom direktoriju. To će vam omogućiti da konfigurirate sve s drugog računala na svom LAN -u.
Korak 3: Povezivanje neopiksela
Prvo sam priključio napajanje u ženski konektor i stavio RPi u torbicu. Odvrnuo sam kabel za uzemljenje s LED dioda (plavi kabel) i muške strane kratkospojne žice na negativnoj strani priključka utičnice. Drugi kraj žice kratkospojnika sam spojio sa iglom za uzemljenje na gpio zaglavlju, koristio sam pin 6, ali točne iglice koje možete koristiti ovisit će o točnom modelu RPi koji koristite.
Drugo, spojio sam na pozitivni kraj utičnice 5v kabel s LED dioda (crveni kabel). Na mojoj LED diodi bio je konektor za kratkospojnu žicu na dodatnom kabelu za uzemljenje i podatkovni kabel (bijeli kabel). Zanemario sam dodatni kabel za uzemljenje, bio je nepotreban za moje postavljanje. Na podatkovni kabel spojio sam mušku na žensku kratkospojnu žicu s gpio iglom 12, opet točan pin koji biste trebali 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 -ju dao minutu za pokretanje, potražio sam IP adresu od maline s nmapom. No, bilo koji mrežni skener, informacijska ploča vašeg usmjerivača ili u većini slučajeva jednostavno "raspberrypi.local" će poslužiti. S tim podacima sam se povezao s RPi -om putem ssh -a. Zadani korisnik je pi sa lozinkom malina. Dakle, to je prvo što sam promijenio koristeći `passwd` neposredno nakon prve prijave. 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 osobno 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 sastavljanje 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 sloboda je 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 lijep demo "strandtest.py" sa stvarno 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 poslužitelj.
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 programa za python. No, koristiti ssh svaki put kad želite upaliti svjetlo je nezgodno, osobito na mobilnom uređaju. Stoga sam odlučio koristiti malu web stranicu kao daljinski upravljač. OVO JE SIGURNOSNI RIZIK, jer sam dao root dopuštenje www-data bez provjere lozinke. Vjerojatno ne biste trebali učiniti ovu web lokaciju dostupnom izvan vašeg lanca.
Kako bih olakšao odabir između nadzorne ploče PI -rupe i svjetlosnog daljinskog upravljača, dao sam korisniku pi pristup za pisanje 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
~~~
dobro je. Zatim sam stvorio novu mapu koja se zove svjetla kako bi sve od neopiksela bilo zajedno. Ovdje sam stvorio colour.py na temelju strandtest.py iz slobode.
~~~
from neopixel import * # Uvezite neke knjižnice
import sys
def led (traka, boja, početak, kraj): # Stvorite funkciju za pozivanje LED dioda
za ja u rasponu (početak, kraj):
strip.setPixelColor (i, boja)
strip.show ()
BRIGHTNESS = int (sys.argv [4]) # Četvrti parametar u naredbenom retku bit će 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 # True za invertiranje signala (kada se koristi razina 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
probati:
LED diode (trake, boje (R, G, B), 0, 49) #Pokrenuće dozvole s odabranom bojom i svjetlinom.
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. Kako bih dao sudo dopuštenje www-data, dodao sam `www-data ALL = (ALL) NOPASSWD: ALL)` u datoteku sudoers (/etc/sudoers) izravno pod root korisnikom.
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 pobijeliti. Iako je ovo lijep početak, volim imati barem neke gumbe 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 mapu pod nazivom predlošci sa svojim zaglavljem, podnožjem i glavnim php kodom. Moj (za sada) konačni /lights/index.php izgleda ovako:
~~~
~~~
Kako bi gumbi radili, napravio sam predložak BasicControl.php. Ovdje sam naveo kôd koji bi trebao biti izveden kada se pritisne tipka. Budući da su mi se svidjele najjednostavnije animacije, uključio sam i tu. Najjednostavniji ć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: Izradite 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 podnožje.php:
~~~
~~~
Korak 10: Neki CSS -i kako bi sve izgledalo bolje
Kao što ste mogli primijetiti, koristim css datoteku za kontrolu izgleda. Kako bih bio siguran da je moj daljinski upravljač upotrebljiv i na manjim ekranima, upotrijebio sam neke css flexboxove s automatskim premotavanjem.
~~~
/ * Tablica stilova za sučelje za upravljanje svjetlom *
* Primjenjuje se na svakoj stranici */
body {background-color: f9fcfa; font-family: Arial; marža: 0; }
h1 {boja: bijela; poravnavanje teksta: središte; }
p {font-family: verdana; font-size: 20px; }
h2 {}
/ * Zaglavlje */
.zaglavlje {visina: 10%; zaslon: savitljiv; justify-content: flex-start; align-items: centar; marža: 0px; padding-left: 5%; pozadina:#3F51B5; align-items: centar; }
. Vezevi za glave {boja: bijela; }
.navbar {display: flex; savijanje: 30%; justify-content: prostor okolo; boja pozadine: #3F51B5; boja: bijela; }
/ * Podnožje */
.podnožje {background-color: #3F51B5; visina: 10%; poravnavanje teksta: središte; }
/ * Index.php */
.gumbi {display: flex; smjer savijanja: red; flex-wrap: omot; opravdati-sadržaj: razmak između; visina: 80%; align-items: flex-start; }
.buttons_index {padding: 0%; širina obruba: tanka; obrubljeni stil: čvrst; boja obruba: crna; boja pozadine: #3949ab; boja: bijela; font-family: sans-serif; širina: 24%; visina: 20%; }
.buttons_index: hover {padding: 0%; širina obruba: tanka; obrubljeni stil: čvrst; boja obruba: 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 vama ako odaberete isprobati moje upute. Ako ste pokušali kopirati neki kôd, morao sam dodati nekoliko razmaka za učitavanje ovdje, pa ćete ih morati izbrisati prije nego kôd ponovno postane koristan.
Nadam se da ste uživali čitajući sve. Ako imate povratne informacije, volio bih ih čuti!
Preporučeni:
PiHole blokator oglasa s 3,5 -inčnim zaslonom: 8 koraka (sa slikama)
PiHole Ad Blocker s 3,5-inčnim zaslonom: Dobro došli u moj vodič 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 bloker oglasa !!: Za ovaj projekt trebat će vam: Raspberry Pi sposoban za povezivanje s internetom 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 tisuće oglasa s VODITELJIMA: 5 koraka
Blokirajte tisuće oglasa s domaćinima: U ovom uputstvu pokazat ću vam jednostavan način blokiranja gotovo tisuća 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 izvrsna web stranica za izradu potpuno besplatnih web stranica. Ili osobnu web stranicu ili web stranicu tvrtke, čak i web lokaciju zaštićenu lozinkom, a sve to možete sami izraditi i nije potrebno znanje koda, ali bi pomoglo