Sisukord:

Reklaame blokeerivad neopikslid: 11 sammu
Reklaame blokeerivad neopikslid: 11 sammu

Video: Reklaame blokeerivad neopikslid: 11 sammu

Video: Reklaame blokeerivad neopikslid: 11 sammu
Video: Крушение крупнейшего ночного клуба Испании | Мы исследовали его через 30 лет после закрытия! 2024, November
Anonim
Reklaame blokeerivad neopikslid
Reklaame blokeerivad neopikslid

Tahtsin teha oma Raspberry Pi nulliga ühendatud neopikseliriba jaoks lihtsa veebisaidi kaugjuhitavaks ja jätkata selle kasutamist oma võrgus reklaamide blokeerimiseks Pi-Hole abil. Esiteks tahtsin lihtsalt oma tuppa lisada mõned LED -id, kuid kõik juhtmed ühendades mõistsin, et mul pole võimalust neid mugavalt juhtida. Nii otsustasin luua lihtsa veebisaidi, millel on mõned põhilised juhtimisvalikud, kasutades apache-serverit, mille Pi-hole installer juba seadistas. Andsin www-andmete juurõigused, mis kujutab endast turvariski, nii et peaksite tõenäoliselt muutma veebiserveri välismaailma jaoks kättesaamatuks. See algas peamiselt minu enda dokumentatsiooni jaoks ja sellest sai kuidagi minu esimene juhendatav;) Seega oleksin väga tänulik, kui oskaksite märkida, kui midagi on ebaselge või jäin millestki täielikult ilma.

Samm: kasutatud materjalid

  • Vaarika Pi (alustasin Pi 2 -ga ja muutsin seejärel WH -ks, gpio -tihvtid võivad olla veidi erinevad, kuid muidu on kõik mudelid korras)

    • Kui teil on RPi ilma sisseehitatud WiFi -ühenduseta, on kasulik ka WiFi -adapter.
    • Soovi korral vaarika pi jaoks
  • 2 isas-naissoost hüppajajuhtmed (näiteks)
  • Neopikslid ws2811 (kasutasin neid)
  • 1 10W toide RPi jaoks (vana telefonilaadija sobib)
  • 1 ~ 50 W toiteallikas Neopixelitele (ma kasutasin sellist, kuid tõenäoliselt piisaks väiksemast, kuid kui soovite rohkem LED -e, on teil ruumi ruumi laiendamiseks.)
  • Naissoost pistikupesa pistik (selline)

Samm: valmistage ette operatsioonisüsteem

Valmistage ette operatsioonisüsteem
Valmistage ette operatsioonisüsteem

Laadige uusim versioon Rasbian alla aadressilt raspberrypi.org. Selle versiooni jaoks sobib lihtsaim versioon. Kui kavatsete kasutada vaarika pi ka millekski muuks, võiksite kaaluda täisversiooni installimist gui -ga. Seejärel põletasin pildi Etcheriga. Pärast seda, et veenduda, kas see ühendub minu wifi -võrguga, lisasin SD -kaardi alglaadimiskataloogi wpa_supplicant.conf. Faili sisu peaks välja nägema selline:

~~~

ctrl_interface = DIR =/var/run/wpa_supplicant GROUP = netdev update_config = 1

võrk = {

ssid = "SSID"

psk = "PAROOL"

key_mgmt = WPA-PSK}

~~~

Ssh lubamiseks lõin samasse kataloogi faili nimega ssh (ilma laiendita). See tagab, et saate seadistada kõik oma võrgu teisest arvutist.

Samm: Neopikslite ühendamine

Neopikslite ühendamine
Neopikslite ühendamine
Neopikslite ühendamine
Neopikslite ühendamine

Esiteks ühendasin toiteploki naissoost pesa pistikusse ja panin RPi ümbrisesse. Kruvisin maanduskaabli valgusdioodidelt (sinine kaabel) ja pistikjuhtme isaspoole pistikupesa negatiivsest küljest. Ühendusjuhtme teine ots, mille ühendasin gpio päise maandusnõelaga, kasutasin tihvti 6, kuid täpsed tihvtid, mida saate kasutada, sõltuvad kasutatavast RPi mudelist.

Teiseks ühendasin pistikupesa positiivsesse otsa LED -ide 5 -voldise kaabli (punane kaabel). Minu ledil oli nende pistikjuhtme pistik täiendaval maanduskaablil ja andmekaabel (valge kaabel). Ma lihtsalt ignoreerisin täiendavat maanduskaablit, see oli minu seadistamiseks ebavajalik. Andmekaablil ühendasin gpio tihvtiga 12 isase ja emase hüppajajuhtme, jällegi täpne tihvt, mida peaksite kasutama, sõltub teie RPi -st. Seejärel ühendasin RPi ja pikslite toiteallika. Ledid süttisid lühikeseks ajaks põlema, kui kõik on õigesti ühendatud.

4. samm: käivitage RPi

Käivitage RPi
Käivitage RPi

Pärast RPi käivitamiseks umbes minuti andmist otsisin nmap -iga vaarikast IP -aadressi. Kuid iga võrguskanner, ruuteri teabepaneel või enamikul juhtudel lihtsalt "raspberrypi.local" sobib. Selle teabe abil ühendasin RPi kaudu ssh. Vaikimisi kasutaja on pi parooliga vaarikas. Nii et see on esimene asi, mida vahetasin pärast esimest sisselogimist "passwd" abil. Kui soovite oma pi -le pääseda ssh kaudu väljastpoolt oma kohalikku võrku, peaksite uurima fail2bani ja võtme autentimist. Mul isiklikult pole selle jaoks kasutusjuhtu, seega jätan selle lihtsalt parooliga.

Teiseks uuendasin tarkvara, kasutades "sudo apt update && sudo apt upgrade -Y". Vajasin ka lisatarkvara, et koostada liberatsioon "sudo apt-get install scons swig git python-dev build-essential -Y". Seejärel kopeerisin Jeremy Garffilt suurepärase liberaalsuse github `git kloonis https:// github.com/jgarff/rpi_ws281x.git`. Pärast seda klooniti liberaalsus, läksin kataloogi rpi_ws281x, kasutasin sconsit ja installisin seejärel raamatukogu käsuga `sudo python python/setup.py install`. Pythonis/näidetes on kena demo "strandtest.py" koos tõeliselt kenade animatsioonidega, mida saate alustada käsuga `sudo python python/example/strandtest.py`.

Samm: Pi-auk

Pi-auk
Pi-auk

Võrguülese lisamise blokeerija loomiseks on Pi-Hole ideaalne. See installitakse lihtsalt sudo curl -sSL https://install.pi-hole.net | bash`. Kena osa on see, et see loob ka veebiserveri.

Pärast installiprogrammi käivitamist soovite sisse logida oma ruuteri administraatori saidile, anda RPi-le staatiline IP-aadress ja seadistada see DHCP-serveriks. Kui olete määranud lühikese rendiaja, peaks teie PI-auk nüüd töötama.

6. samm: kontrollige tulesid

Juhtige tulesid
Juhtige tulesid
Juhtige tulesid
Juhtige tulesid
Juhtige tulesid
Juhtige tulesid

Lihtsaim viis neopikslite juhtimiseks on väikeste pythoni programmidega. Kuid ssh kasutamine iga kord, kui soovite tuled sisse lülitada, on ebamugav, eriti mobiilseadmes. Nii otsustasin kasutada väikest veebisaiti kaugjuhtimispuldina. SEE ON TURVARISK, sest andsin www-andmete juurloa ilma parooli kontrollimata. Tõenäoliselt ei tohiks te seda saiti väljaspool oma võrku kättesaadavaks teha.

PI -augu armatuurlaua ja kerge kaugjuhtimispuldi vahel valimise hõlbustamiseks andsin kasutajale pi kirjutamisõiguse aadressile/var/www/html, kasutades käsku `sudo chown -R pi/var/www.html` ja lõin index.php fail kataloogis/var/www/html/. Midagi lihtsat nagu:

~~~

Index Pi hole Light kaugjuhtimispult

~~~

on hea. Seejärel lõin uue kausta nimega lights, et kõik neopikslitest koos oleks. Siin lõin liberyst pärit strandtest.py põhjal colour.py.

~~~

neopixeli impordist * # Importige mõned teegid

impordi süsteem

def led (riba, värv, algus, lõpp): # Looge LED -ide kutsumiseks funktsioon

i vahemikus (algus, lõpp):

strip.setPixelColor (i, värv)

strip.show ()

BRIGHTNESS = int (sys.argv [4]) # Käsurea neljas parameeter on heledus. (1-255)

COUNT = 50 # LED -ide arv PIN = 12 # RPi -l kasutatav tihvt

FREQ_HZ = 800000 # LED -signaali sagedus hertsides (tavaliselt 800 kHz)

DMA = 5 # DMA kanal, mida kasutada signaali genereerimiseks (proovige 5)

INVERT = False # Tõsi signaali ümberpööramiseks (NPN -transistori taseme kasutamisel)

riba = Adafruit_NeoPixel (COUNT, PIN, FREQ_HZ, DMA, INVERT, BRIGHTNESS)

strip.begin ()

R = int (sys.argv [1]) # Punase kogus on esimene parameeter

G = int (sys.argv [2]) # Rohelise kogus on teine parameeter

B = int (sys.argv [3]) # Sinine kogus on kolmas parameeter

proovige:

valgusdioodid (ribad, värvid (R, G, B), 0, 49) #Käivitab valikud valitud värvi ja heledusega.

välja arvatud klaviatuur Katkestus:

värv (riba, värv (0, 0, 0), 0, 49)

~~~

Kui käivitate selle terminalis sudo -ga, peaksid tuled süttima määratud värviga. Www-data sudo loa andmiseks lisasin sudoers-faili (/etc/sudoers) otse juurkasutaja alla "www-data ALL = (ALL) NOPASSWD: ALL".

Samm: lülitage tuled brauseriga sisse

Seejärel lõin teise indeksi.php, seekord /tuledes. ~~~

< ?php $R = 100; $G = 100; $B = 100; $BRIGHTNESS = 100; exec("sudo python colour.py $R $G $B $BRIGHTNESS"); ?>

~~~

Kui ma nüüd külastan raspberrypi.local/lights/index.php, muutuvad LED -id valgeks. Kuigi see on kena algus, meeldib mulle, kui vähemalt mõned nupud on puldil.

Samm 8: kontrollige tulesid brauserist

Lõin buttensiga liidese, kasutades html -vormi. Mulle ei meeldi teha asju, mida pole vaja, nii et lõin oma päise, jaluse ja peamise php -koodiga kausta nimega mallid. Minu (praegu) lõplik /lights/index.php näeb välja selline:

~~~

~~~

Nuppude toimimiseks tegin malli BasicControl.php. Selles määrasin koodi, mis tuleks nupu vajutamisel täita. Kuna mulle meeldisid kõige keerukamad animatsioonid, lisasin ka selle. Strandtest jätkub lõpmatult kaua, nii et tegin teise nupu, et protsess igal ajal peatada.

~~~ <? php

I dollar = 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"); }

muidu kui (isset ($ _ POST ['punane'])) {$ R = 255; $ G = 0; $ B = 0; exec ("sudo python colour.py $ R $ G $ B $ I"); }

muidu kui (isset ($ _ POST ['roheline'])) {$ R = 0; $ G = 255; $ B = 0; exec ("sudo python colour.py $ R $ G $ B $ I"); }

muidu kui (isset ($ _ POST ['sinine'])) {$ R = 0; $ G = 0; B $ 255; exec ("sudo python colour.py $ R $ G $ B $ I"); }

muidu kui (isset ($ _ POST ['valge'])) {$ 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'); }?>

~~~

9. samm: looge päise ja jaluse mall

Nüüd töötab see kõik, kuid seda pole liiga meeldiv vaadata. Pärast päise ja jaluse importimist on saidi kõik elemendid saadaval, kuid mitte stiilis.

Header.php:

~~~

Valgus

Lampjes

Põhilised juhtnupud

Täpsemad juhtnupud

~~~

Ja jalus.php:

~~~

~~~

Samm: mõni Css, et see kõik natuke parem välja näeks

Mõni Css, et see kõik natuke parem välja näeks
Mõni Css, et see kõik natuke parem välja näeks

Nagu olete ehk märganud, kasutan paigutuse juhtimiseks css -faili. Veendumaks, et mu pult on kasutatav ka väiksematel ekraanidel, kasutasin mõnda automaatse mähisega css -flexboxi.

~~~

/ * Stiilileht valguse juhtimise liidese jaoks *

* Kehtib igal lehel */

keha {taustavärv: f9fcfa; font-family: Arial; varu: 0; }

h1 {värv: valge; text-align: center; }

p {font-family: verdana; fondi suurus: 20 pikslit; }

h2 {}

/ * Päis */

.pealkiri {kõrgus: 10%; ekraan: paindlik; õigustada-sisu: flex-start; align-items: keskel; varu: 0 pikslit; polster-vasak: 5%; taust:#3F51B5; align-items: keskel; }

. HeaderLinks {värv: valge; }

.navbar {kuva: flex; painduvus: 30%; õigustama-sisu: ruum-ümber; taustavärv: #3F51B5; värv: valge; }

/ * Jalus */

.footer {background-color: #3F51B5; kõrgus: 10%; text-align: center; }

/ * Index.php */

.nupud {kuva: flex; painduv suund: rida; painduv mähis: mähis; õigustama-sisu: tühik-vahel; kõrgus: 80%; joondage esemed: flex-start; }

.buttons_index {polster: 0%; äärise laius: õhuke; ääris-stiil: kindel; äärise värv: must; taustavärv: #3949ab; värv: valge; font-family: sans-serif; laius: 24%; kõrgus: 20%; }

.buttons_index: hover {padding: 0%; äärise laius: õhuke; ääris-stiil: kindel; äärise värv: must; taustavärv: #536DFE; värv: valge; font-family: sans-serif; laius: 24%; kõrgus: 20%; }

~~~

11. samm: aitäh

Ja see ongi kõik. Kõik töötab minu jaoks ja loodan, et see toimib ka teie jaoks, kui valite proovige minu juhendit. Kui proovisite mõnda koodi kopeerida, pidin ma selle üleslaadimiseks lisama mõned tühikud, nii et peate need enne koodi taaskasutamist kustutama.

Loodan, et teile meeldis kõike lugeda. Kui teil on tagasisidet, tahaksin seda kuulda!

Soovitan: