Përmbajtje:

Neopixelë bllokues reklamash: 11 hapa
Neopixelë bllokues reklamash: 11 hapa

Video: Neopixelë bllokues reklamash: 11 hapa

Video: Neopixelë bllokues reklamash: 11 hapa
Video: How to Install Brave browser on Android 2024, Nëntor
Anonim
Neopixelë që bllokojnë reklamat
Neopixelë që bllokojnë reklamat

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

Përgatitni sistemin operativ
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

Lidhja e neopixelëve
Lidhja e neopixelëve
Lidhja e neopixelëve
Lidhja e neopixelëve

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

Filloni RPi
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

Pi-Vrima
Pi-Vrima

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

Kontrolloni Dritat
Kontrolloni Dritat
Kontrolloni Dritat
Kontrolloni Dritat
Kontrolloni Dritat
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ë

Disa Css për t'i bërë të gjitha të duken pak më mirë
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: