Orodha ya maudhui:

Neopixels za kuzuia matangazo: Hatua 11
Neopixels za kuzuia matangazo: Hatua 11

Video: Neopixels za kuzuia matangazo: Hatua 11

Video: Neopixels za kuzuia matangazo: Hatua 11
Video: Йога для начинающих дома с Алиной Anandee #3. Здоровое гибкое тело за 40 минут. Продвинутый уровень. 2024, Novemba
Anonim
Neopixels za kuzuia matangazo
Neopixels za kuzuia matangazo

Nilitaka kutengeneza wavuti rahisi kama kijijini kwa ukanda wa neopixels zilizounganishwa na Raspberry yangu Pi sifuri na kuendelea kuitumia kuzuia matangazo kwenye mtandao wangu ukitumia Pi-Hole. Kwanza nilitaka tu kuongeza viongozo kwenye chumba changu, lakini kuweka wiring kila kitu juu nikagundua sikuwa na njia ya kuzidhibiti kwa urahisi. Kwa hivyo niliamua kuunda wavuti rahisi na chaguzi kadhaa za kimsingi za kudhibiti kwa kutumia seva ya apache kisakinishi cha Pi-hole kilichowekwa tayari. Nilipeana ruhusa ya mizizi ya www-data, ambayo ni hatari kwa usalama, kwa hivyo unapaswa kufanya seva ya wavuti isipatikane kwa ulimwengu wa nje. Hii ilianza haswa kwa nyaraka zangu mwenyewe na kuliko kwa namna fulani ikawa ya kufundisha kwangu ya kwanza;

Hatua ya 1: Vifaa vilivyotumika

  • Raspberry Pi (nilianza kwenye Pi 2 kisha nikabadilishwa kuwa WH, pini za gpio zinaweza kuwa tofauti kidogo lakini vinginevyo kila mfano ni sawa)

    • Ikiwa una RPi bila kujengwa katika wifi, adapta ya wifi ni muhimu pia.
    • Kwa hiari kesi ya pi ya raspberry
  • 2 waya za kuruka za kiume na kike (kwa mfano)
  • Neopixels ws2811 (nilitumia hizi)
  • Ugavi wa umeme wa 1 10W kwa RPi (Chaja ya zamani ya simu itafanya)
  • Usambazaji wa umeme wa 1 ~ 50W kwa Neopixels (nilitumia moja kama hii, lakini labda ndogo itatosha, lakini ikiwa ungependa risasi zaidi, unayo nafasi ya kupanua.)
  • Kuziba kontakt jack ya kike (kama hii)

Hatua ya 2: Andaa Mfumo wa Uendeshaji

Andaa Mfumo wa Uendeshaji
Andaa Mfumo wa Uendeshaji

Pakua toleo la hivi karibuni la Rasbian kutoka raspberrypi.org Toleo la lite ni sawa kwa mradi huu, ikiwa una mpango wa kutumia pi ya raspberry kwa kitu kingine vile vile unaweza kufikiria kusanikisha toleo kamili na gui. Kisha nikachoma picha hiyo na Etcher. Baada ya hapo kuhakikisha itaungana na mtandao wangu wa wifi niliongeza wpa_supplicant.conf katika saraka ya buti ya kadi ya sd. Yaliyomo kwenye faili yanapaswa kuonekana kama hii:

~~~

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

mtandao = {

ssid = "SSID"

psk = "NENO"

ufunguo_mgmt = WPA-PSK}

~~~

Ili kuwezesha ssh niliunda faili inayoitwa ssh (bila ugani wowote) katika saraka sawa. Hii itahakikisha uwezo wako wa kusanidi kila kitu kutoka kwa kompyuta nyingine kwenye lan yako.

Hatua ya 3: Kuunganisha Neopixels

Kuunganisha Neopixels
Kuunganisha Neopixels
Kuunganisha Neopixels
Kuunganisha Neopixels

Kwanza niliunganisha usambazaji wa umeme kwenye kontakt ya kike ya jack na kuweka RPi katika kesi. Niligonga kebo ya ardhini kutoka kwa viunga (kebo ya samawati) na upande wa kiume wa waya ya kuruka katika upande hasi wa kontakt jack. Mwisho mwingine wa waya ya kuruka niliunganisha kwenye pini ya ardhini kwenye kichwa cha gpio, nilitumia pini 6 lakini pini halisi ambazo unaweza kutumia zitategemea mfano halisi wa RPi unayotumia.

Pili niliunganisha kwenye mwisho mzuri wa kiunganishi cha jack kebo ya 5v kutoka kwa viongoz (kebo nyekundu). Kwenye iliyoongozwa yangu kulikuwa na kiunganishi cha waya ya kuruka kwenye kebo ya ziada ya ardhini na kebo ya data (kebo nyeupe). Nilipuuza tu kebo ya ziada ya ardhini, haikuwa ya lazima kwa usanidi wangu. Kwenye kebo ya data niliunganisha waya wa kiume na wa kike wa kuruka na gpio pin 12, tena pini halisi ambayo unapaswa kutumia inategemea RPi yako. Kisha nikaunganisha usambazaji wangu wa umeme kwa RPi na saizi. Viongozi hawakuwasha kwa muda mfupi, ikiwa kila kitu kina waya sawa.

Hatua ya 4: Anzisha RPi

Anza RPi
Anza RPi

Baada ya kutoa RPi dakika moja au zaidi ili kuanza, nikatafuta anwani ya IP kutoka kwa rasipberry na nmap. Lakini skana yoyote ya mtandao, jopo la habari la router yako au katika hali nyingi tu "raspberrypi.local" itafanya. Na habari hiyo niliunganisha na RPi kupitia ssh. Mtumiaji chaguo-msingi ni pi na nywila ya nywila. Kwa hivyo hicho ndio kitu cha kwanza nilibadilisha kutumia `passwd` moja kwa moja baada ya kuingia kwanza. Ikiwa ungependa kufikia pi yako kupitia ssh kutoka nje ya mtandao wako, unapaswa kuangalia kutofaulu na uthibitishaji muhimu. Binafsi sina kesi ya kutumia kwa hiyo, kwa hivyo nitaiacha na nywila tu.

Pili nilisasisha programu kwa kutumia `sasisho la apt apt && sudo apt kuboresha -Y`. Nilihitaji pia programu ya ziada ya kukusanya liberty `sudo apt-get install scons swig git python-dev build-muhimu -Y`. Kisha nikanakili uhuru bora kutoka kwa Jeremy Garff kwenye github `git clone https:// github.com / jgarff / rpi_ws281x.git`. Baada ya kuwa chakula hicho kilibuniwa nilienda kwenye saraka ya rpi_ws281x, nikatumia scons kisha nikasakinisha maktaba na `sudo python python / setup.py install`. Katika chatu / mifano ni onyesho zuri "strandtest.py" na michoro nadhifu kabisa ambazo unaweza kuanza na `sudo chatu chatu / mifano / strandtest.py`.

Hatua ya 5: Pi-Hole

Pi-Hole
Pi-Hole

Ili kuunda blocker pana ya kuongeza mtandao, Pi-Hole ni kamili. Inasakinisha na tu sudo curl -sSL https://install.pi-hole.net | bash`. Sehemu nzuri ni kwamba itaweka seva ya wavuti pia.

Baada ya kuendesha kisanidi utataka kuingia kwenye tovuti ya msimamizi ya router yako na upe RPi yako anwani ya IP tuli na kuiweka kama Seva ya DHCP. Ikiwa umeweka muda wa kukodisha chini kuliko PI-shimo yako inapaswa kufanya kazi sasa.

Hatua ya 6: Dhibiti Taa

Dhibiti Taa
Dhibiti Taa
Dhibiti Taa
Dhibiti Taa
Dhibiti Taa
Dhibiti Taa

Njia rahisi ya kudhibiti neopixels ni na programu ndogo za chatu. Lakini kutumia ssh kila wakati unataka kuwasha taa haifai, haswa kwenye kifaa cha rununu. Kwa hivyo niliamua kutumia wavuti ndogo kama udhibiti wa kijijini. HII NI HATARI YA USALAMA, kwa sababu nilitoa ruhusa ya mizizi ya www-data bila uthibitishaji wa nenosiri. Labda haupaswi kufanya tovuti hii ipatikane nje ya lugha yako.

Ili iwe rahisi kuchagua kati ya dashibodi ya PI-shimo na rimoti nyepesi, nikampa mtumiaji pi kuandika upatikanaji wa / var / www / html na `sudo chown -R pi / var / www.html` na nikaunda index.php katika / var / www / html /. Kitu rahisi kama:

~~~

Kielelezo Pi shimo Mwanga kijijini

~~~

ni sawa. Kisha nikaunda folda mpya inayoitwa taa kuwa na kila kitu kutoka kwa neopixels pamoja. Hapa niliunda colour.py kulingana na strandtest.py kutoka libery.

~~~

kutoka kwa kuagiza neopixel * # Ingiza maktaba kadhaa

kuagiza sys

def iliongozwa (ukanda, rangi, anza, mwisho): # Unda kazi ya kupiga risasi

kwa i katika anuwai (anza, mwisho):

strip.setPixelColor (i, rangi)

onyesha ()

MWangaza = int (sys.argv [4]) # Kigezo cha nne kwenye mstari wa amri kitakuwa mwangaza. (1-255)

COUNT = 50 # Kiasi cha PIN zilizoongozwa = 12 # Pini iliyotumiwa kwenye RPi

FREQ_HZ = 800000 # Mzunguko wa ishara ya LED katika hertz (kawaida 800khz)

DMA = 5 # DMA kituo cha kutumia kutoa ishara (jaribu 5)

INVERT = Uongo # Kweli kugeuza ishara (wakati wa kutumia kiwango cha transistor cha NPN

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

strip. kuanza ()

R = int (sys.argv [1]) # Kiasi cha nyekundu ni parameter ya kwanza

G = int (sys.argv [2]) # Kiasi cha kijani ni kigezo cha pili

B = int (sys.argv [3]) # Kiasi cha hudhurungi ni kigezo cha tatu

jaribu:

leds (strip, Rangi (R, G, B), 0, 49) #Tutaanza lets na rangi iliyochaguliwa na mwangaza.

isipokuwa KeyboardInterrupt:

rangi (ukanda, Rangi (0, 0, 0), 0, 49)

~~~

Ikiwa utaendesha hii na sudo kwenye terminal taa inapaswa kuendelea kwenye rangi iliyoainishwa. Kutoa www-data sudo ruhusa niliongeza `www-data ALL = (WOTE) NOPASSWD: WOTE)` kwa faili ya wapenda (/ nk / sudoers) moja kwa moja chini ya mtumiaji wa mizizi.

Hatua ya 7: Washa Taa na Kivinjari

Kisha nikaunda anonther index.php, wakati huu katika / taa. ~~~

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

~~~

Wakati sasa nitatembelea raspberrypi.local / taa / index.php leds itageuka kuwa nyeupe. Ingawa huu ni mwanzo mzuri, napenda kuwa na vitufe angalau kwenye rimoti.

Hatua ya 8: Dhibiti Taa Kutoka Kivinjari

Niliunda kiolesura na kitako kwa kutumia fomu ya html. Sipendi kufanya vitu ambavyo hazihitajiki, kwa hivyo niliunda folda inayoitwa templeti na kichwa changu, futa na nambari kuu ya php. My (kwa sasa) mwisho / taa / linde.php inaonekana kama hii:

~~~

~~~

Ili kufanya vifungo vifanye kazi nilifanya template BasicControl.php. Katika hili nilitaja nambari ambayo inapaswa kutekelezwa wakati kitufe kinabanwa. Kwa sababu nilipenda uhuishaji mkali zaidi nilijumuisha hiyo pia. Ya strandtest itaendelea kupita kwa muda mrefu, kwa hivyo nilifanya kitufe kingine cha kusimamisha viboreshaji wakati wowote ninapotaka.

~~~ <? php

$ I = 100;

$ R = 0;

$ G = 0;

$ B = 0;

ikiwa (isset ($ _ POST ['strandtest_start'])) {exec ("sudo python strandtest.py"); }

vinginevyo ikiwa (isset ($ _ POST ['strandtest_stop'])) {exec ("sudo pkill -9 -f strandtest.py"); }

vinginevyo ikiwa (isset ($ _ POST ['nyekundu'])) {$ R = 255; $ G = 0; $ B = 0; kutekeleza ("sudo chatu colour.py $ R $ G $ B $ I"); }

vinginevyo ikiwa (isset ($ _ POST ['kijani'])) {$ R = 0; $ G = 255; $ B = 0; kutekeleza ("sudo chatu colour.py $ R $ G $ B $ I"); }

vinginevyo ikiwa (isset ($ _ POST ['blue'])) {$ R = 0; $ G = 0; $ B = 255; utekelezaji ("sudo chatu colour.py $ R $ G $ B $ I"); }

vinginevyo ikiwa (isset ($ _ POST ['nyeupe'])) {$ R = 255; $ G = 255; $ B = 255; kutekeleza ("sudo chatu colour.py $ R $ G $ B $ I"); }

vinginevyo ikiwa (isset ($ _ POST ['off'])) {shell_exec ('sudo python off.py'); }

vinginevyo ikiwa (isset ($ _ POST ['reboot'])) {shell_exec ('sudo reboot sasa'); }?>

~~~

Hatua ya 9: Unda Kiolezo cha kichwa na kichwa

Sasa yote inafanya kazi, lakini sio ya kupendeza sana kutazama. Baada ya kuagiza kichwa na kichwa vitu vyote vya tovuti vinapatikana, sio tu iliyoundwa.

Kichwa.php:

~~~

Taa

Lampjes

Udhibiti wa Msingi

Udhibiti wa hali ya juu

~~~

Na footer.php:

~~~

~~~

Hatua ya 10: Baadhi ya Css kuifanya yote ionekane bora

Baadhi ya Css kuifanya yote ionekane bora
Baadhi ya Css kuifanya yote ionekane bora

Kama unavyoweza kugundua, ninatumia faili ya css kudhibiti mpangilio. Ili kuhakikisha kijijini changu kinatumika kwenye skrini ndogo na vile vile nilitumia sanduku za css zilizo na autowrap.

~~~

/ * Staili ya mtindo wa kiolesura cha kudhibiti mwanga *

* Inatumika kwenye kila ukurasa * /

mwili {rangi-asili: f9fcfa; font-familia: Arial; margin: 0; }

h1 {rangi: nyeupe; andika-maandishi: katikati; }

p {font-familia: verdana; saizi ya fonti: 20px; }

h2 {}

/ * Kichwa * /

kichwa {urefu: 10%; onyesha: kubadilika; hakikisha-yaliyomo: mabadiliko ya kuanza; align-items: kituo; margin: 0px; padding-kushoto: 5%; historia: # 3F51B5; align-items: kituo; }

. HeaderLinks {rangi: nyeupe; }

.navbar {onyesha: kubadilika; kubadilika: 30%; hakikisha-yaliyomo: nafasi-karibu; rangi ya asili: # 3F51B5; rangi: nyeupe; }

/ * Kijachini * /

mchezaji wa miguu {rangi-asili: # 3F51B5; urefu: 10%; andika-maandishi: katikati; }

/ * Index.php * /

.buttons {onyesha: kubadilika; mwelekeo wa kubadilika: safu; bamba-funga: funga; hakikisha-yaliyomo: nafasi-kati; urefu: 80%; align-items: mabadiliko ya kuanza; }

.buttons_index {padding: 0%; upana wa mpaka: nyembamba; mtindo wa mpaka: imara; rangi ya mpaka: nyeusi; rangi ya asili: # 3949ab; rangi: nyeupe; font-familia: sans-serif; upana: 24%; urefu: 20%; }

.buttons_index: hover {padding: 0%; upana wa mpaka: nyembamba; mtindo wa mpaka: imara; rangi ya mpaka: nyeusi; rangi ya asili: # 536DFE; rangi: nyeupe; font-familia: sans-serif; upana: 24%; urefu: 20%; }

~~~

Hatua ya 11: Asante

Na ndio hivyo. Kila kitu kinanifanyia kazi na natumai itakufanyia kazi pia ukichagua jaribu kufundisha kwangu. Ikiwa ulijaribu kunakili nambari fulani, ilibidi niongeze nafasi chache za kuipakia hapa, kwa hivyo italazimika kuzifuta kabla nambari hiyo haijawa na faida tena.

Natumai ulifurahi kusoma kila kitu. Ikiwa una maoni, ningependa kuisikia!

Ilipendekeza: