Sisukord:
- Samm: mida vajate
- 2. samm: Pi-Zero seadistamine ja ettevalmistus arenguks
- 3. samm: arenduskeskkond ja tööriistad
- Samm: riistvara
- Samm: projekti tarkvara
- 6. samm: veebilehe kaugjuhtimine
Video: RPi-Zero IoT sündmuse indikaator / värviline lamp: 6 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Täiendavat mikrokontrollerit ja HAT-i lisamoodulit pole vaja. RPi-Zero teeb seda kõike. Veel parem kasutada RPi-Zero W!
Proovi kasutamine: veebiteenuse olekuindikaator (nt DowJonesIndexi jälgimine), poliitiliste või spordisündmuste olekuindikaator, meeleolutuli, jälgi andurit, nimetage seda. Vaadake videot sammus 6.
Raspberry-Pi-l on ainult üks riistvara toetatud PWM-liin. See projekt vajab 3 PWM-rida, nii et ma kasutasin tarkvaraga juhitavat PWM-i teeki (https://wiringpi.com/reference/software-pwm-library/), mis tuleks juba installida.
Jagasin töötlemise kaheks protsessiks. Üks, katkestusega juhitav, lülitades juhtjooned vajadusel LED -ile, saades marssimiskäsklused oma stdin -voost. Teine on sündmustepõhine nodeJS -server, mis kasutab pistikupesa IO. Selle eesmärk on vältida selliseid asju nagu kerge vilkumine, tagades samal ajal reageerimisvõime. See kombinatsioon kasutab tavaliselt vähem kui 5% protsessorist. Pidevate värvivärskenduste ajal (liugurite ja/või paljude klientide kaudu) saab seda hõlpsalt kasutada üle 50% (eriti kui kasutate ka Pi-Zero GUI brauserit). Pange tähele, et muudatuse saabumisel lähevad värskendusteated kõigile avatud pistikupesa klientidele.
Samm: mida vajate
- Pi-Zero micro-SD-kaart, soovitatav 8 GB. Raspbian-Linuxi või NOOBS-iga
- RGB Led (kasutasin seda:
- 3 takistit (väärtus põhineb soovitud voolul ja/või soovitud heledusel, 1/8 vatti)
- WiFi, USB-dongle (nt https://www.ebay.com/itm/252018085448) või veelgi parem kasutada Raspberry Pi Z-W (sisseehitatud WiFi-ga)
- ümbris (nt väike: https://www.ebay.com/itm/131583579374 rohkem ruumi:
- hajuti (vt näiteid pildil)
- Kaablid ja adapterid vastavalt vajadusele.
Valikuliselt, sõltuvalt sellest, kuidas soovite komponente ühendada
- päis (https://www.ebay.com/itm/14186077616)
- džemprid (https://www.ebay.com/itm/262235387520)
- täisnurga mikro-USB-adapter (Blue USB 2.0 OTG R)
- mini -USB -jaotur, kasutatakse ainult seadistamisfaasis
2. samm: Pi-Zero seadistamine ja ettevalmistus arenguks
Järgige oma PiZero esialgset seadistust, et see oleks arendamiseks valmis …
Kui teil on NOOBS -i seadistusega microSD -kaart, tehke järgmist.
Ühendage microSD -kaart. Ühendage vähese energiatarbega USB -jaotur Wifi -dongli, klaviatuuri ja hiirega (võite kasutada juhtmevaba hiirt ja/või klaviatuuri, kuid igal juhul võib see nõuda jaoturi välist toite). Kasutasin adaptereid ja jaoturit, mis mul juba oli.
Nüüd ühendage monitor ja microUSB toiteadapter ning see käivitub. Jätkake ja viige lõpule Raspbiani ja Debiani Linuxi seadistamise juhised, nagu on näha ülaltoodud linkil noobs-setup.
Lisaks oli mul liiga madal eraldusvõime. Seega lisasin need read faili /boot/config.txt
disable_overscan = 1
hdmi_grupp = 2 hdmi_režiim = 58
Minu monitori jaoks töötab hdmi_mode = 58, teie oma võib vajada midagi muud.
vt: make-vaarikas-pi-use-täisresolutsiooniga monitor ja
raspberrypi.org/documentation/configuration/config-txt.md
Pärast käivitamist läheb Pi-Zero GUI liidesesse.
Oma microSD-kaardi täissuuruses kasutamiseks kasutasin valikut raspi-config #1 "Laienda failisüsteemi". Sisestage käsurealt terminaliaknasse "sudo raspi-config" -config.md
Samuti muutsin neid seadeid jaotises #5 "Rahvusvahelistumise valikud"
- Locale: et_US. UTF-8 UTF-8
- Ajavöönd: Ameerika… Los_Angeles
- Klaviatuuri paigutus: üldine 105-klahviline (rahvusvaheline) arvuti… inglise (USA)
Minu jaoks muutis Suurbritannia klaviatuuristandard (mille jaoks Raspbian on eelseadistatud) suure osa minu toimetustest tõeliseks tööks.
Muutke neid seadeid vastavalt oma vajadustele. Pange tähele, et 'raspi-config' navigeerimiseks peate kasutama nooleklahve ja tabeldusklahvi; ja pärast valikut võib reageerimine olla väga aeglane.
Leidsin, et WiFi-USB-dongliga Interneti-ühenduse loomine ei ole probleem (kasutasin 2 erinevat). Ma lihtsalt pidin GUI paremas ülanurgas oleva rippmenüü abil sisestama oma WiFi juurdepääsu võtme parooli. Kui ma seda tegin, ühendatakse see automaatselt pärast taaskäivitamist/sisselülitamist.
Nüüd olin valmis üldiseks arenguks.
Selleni jõudmiseks võite minna mitmel viisil. Siiani pole ma siin väga üksikasjalikult kirjeldanud, kuid veebis on palju üksikasjalikumalt kirjeldatud meetodeid ja konfiguratsioone. Kaasa arvatud üks peata seadistamiseks, kus kasutaksite oma personaalarvutis ssh -terminali kaugakna, et teha selles juhendis toodud arendusetappe.
3. samm: arenduskeskkond ja tööriistad
Projekti jaoks välja töötatud süsteemikonfiguratsiooni seadistamise ja tarkvara jaoks tegin uurimistööd Raspberry Pi-2-l; sest sellel on neljatuumaline protsessor, mis muudab sirvimise ja koodide arendamise mitme aknaga palju kiiremaks. Selle projekti elluviimiseks võite muidugi kasutada mis tahes mudelit Raspberry-Pi.
Node.js seadistamiseks (sündmusepõhine I/O serveripoolne JavaScripti tugi) tegin järgmist …
sudo apt-get update
sudo apt-get install nodejs npm
Nende nodeJS pakettide lisamine (npm on Nodejs Package Manager)
npm installida express
npm installige pesa.io
Viited:
www.npmjs.com/package/express Kiire, minimalistlik veebiraamistik
www.npmjs.com/package/socket.io Socket. IO võimaldab reaalajas kahesuunalist sündmustepõhist suhtlust
Samm: riistvara
Kasutatavad takistusväärtused on kõik erinevad, kuna pingelangus ja efektiivsus on kõigi kolme LED -värvi segmendi puhul erinevad. GPIO kõrge väljundvõimsus oli umbes 3,2 volti. Iga LED -segmenti testiti, et veenduda, et see tarbib maksimaalselt alla 20mA ja kokku umbes 40m (maksimaalne lubatud kogusumma <50ma), millega PiZero saab hõlpsasti hakkama. Ma sain nii palju väljundi heledust kui suutsin, juhtides otse LED -i; mis on minu vajaduste jaoks piisav. Suuremate voolude juhtimiseks saaks palju heledama väljundi jaoks kasutada vaheajamiga transistore koos ühise anood -LED -iga, mille anood on ühendatud 5v -liiniga. PS: Kuna minu erinevad valged tasemed on pisut sinakad, 27 oomi asemel 27 oleks olnud minu jaoks parem valik.
Pange tähele, et ma kasutasin isaste tihvtidega päist ja ühendasin LED-jalgadega F-F džempritega. See hoidis üldkõrgust allapoole. Jootsin takistid džemprite keskele. Trükkplaadi või jootevaba plaadi puudumine koos täisnurga mikro-USB-USB-adapteri kasutamisega WiFi-dongli jaoks muutis lõppkomplekti üsna kompaktseks.
Hajuti jaoks soovitan pingpongi palli (lihtne on puurida piisavalt suur auk, et sisestada oma 5-8-10 mm LED). Või lõigake ära LED -lambipirni ülaosa (see, mis kasutab plastikust hajuti). Selleks märkige peene terava teraga joon, kuhu soovite lõigata, ja kasutage õhukese lõikega Dremeli laadset tööriista. Kui soovite, võite kasutada ilusat tükeldatud klaaspurki või joogiklaasi. Kui olete ühe hajuti peal asunud, liimige see korpuse ülaossa.
Demonstratsioonide jaoks meeldib mulle kasutada korpuse sisse paigutatud väikest Li-toitepanka. See seade tundub muljetavaldavam, täiesti traadita. Loomulikult on sellel konfiguratsioonil piiratud tööaeg. Normaalseks tööks kasutan lihtsalt mikro-USB seinaadapterit.
Samm: projekti tarkvara
Ma kasutasin kahte programmi, Node.js protsessi, mis rääkis stdin andmevoo kaudu lapseprotsessiga. See on nii, et nad saavad igaüks teha seda, mida nad kõige paremini oskavad, ja toimida iseseisva protsessina omas tempos.
Seda ma tegin: Aga sa ei pea, sest ma olen esitanud tar-gzip-faili, mis sisaldab saadud failipuu.
NodeJS serveripoolne seadistamine:
cd ~
mkdir node_rgb cd node_rgb mkdir public
sisestage kataloogidesse „~/node_rgb/public” kataloogis „index.html” ja „style.css” sisestage kataloogi „~/node_rgb” ja „rgb_main.js”
Kompileerige/ehitage c protsess 'rgbDriver':
cd ~/node_rgb
cc -o rgbDriver rgbDriver.c -lwiringPi -lpthread
Samaväärsuse allalaadimine ja laiendamine
Kui soovite alla laadida node_rgb.tgz (allpool) oma Pi-Zero oma kodukataloogi (~ pi), saate teha ühte järgmistest:
- Laadige alla oma Pi-Zero GUI brauserist Liigutage fail kausta ~ pi/
-
Teiega ühendatud terminaliaknas Pi-Zero: cd ~ piwget
mv FZBF9BDIL6VBHKF.tgz rgb_node.tgz
- Laadige alla oma lauaarvuti brauserist. Kopeerige see WinSCP abil Pi-Zero kataloogi ~ pi
Pärast eespool nr 1 2 või 3 sooritamist…
cd ~
tar -xzvf node_rgb.tgz puu node_rgb… node_rgb ├── avalik │ ├── Dow_Jones_Index.html │ ── index.html │ └── style.css ├── rgbDriver ├── rgbDriver.c ├── js ├── start_rgb ├── kill_rgb └── track_dji
Saadud käivitatavat (ülalt) rgbDriverit saab kasutada sõltumatult Node.js liidese protsessist.
Selle draiveri ja riistvara töötamise kontrollimiseks sisestage draiverile kolme väärtusega (0–255) komplektid, mis on eraldatud tühikuga. Nagu 'kaja 255 0 0 |./rgbDriver 'punase või' echo 0 255 0 | jaoks./rgbDriver 'roheliseks. Pange tähele, et „./” käsib operatsioonisüsteemil leida meie programm „rgbDriver” praegusest kataloogist. Kui väljastate draiveri peatamiseks nupu ^c (cntl-c), võib valgusdiood põlema jääda või mitte. Teise võimalusena saate selle väärtusi interaktiivselt toita. Proovige käsurealt need read üksteise järel tippida ja jälgige LED -i.
./rgbDriver
0 255 0 100 0 100 255 255 0… jne… ^c
Veenduge, et kaks neist protsessidest ei tööta paralleelselt.
Tarkvararakenduste täieliku komplekti, sealhulgas Node.js -serveri käivitamiseks kasutage seda käsku:
sudo sõlm rgb_main.js
Seejärel kasutage cntl-c, kui soovite Node.js-serveri peatada. Käivitage see
sudo sõlm rgb_main.js &
et see töötaks tagumises maas, kuid siis peate selle peatamiseks kasutama käsku 'sudo kill -9 pid'. Kui see käsk tundub teile võõras, vaadake üle nende käskude väljund: 'man kill' ja 'man sudo'.
Kasutage oma töölaual, tahvelarvutis või telefonis brauserit, mis on ühendatud kohaliku võrguga. Minge aadressile https:// raspberrypi: 8080/või kui see ei tööta, kasutage seadme IP-aadressi (saadud cmd 'ifconfig'), näiteks 192.168.1.15 pluss pordi spetsifikatsioon: 8080 või kui kasutate Pi-Zero GUI: localhost: 8080 töötab.
Kasutage avaneval lehel RGB liugureid ja jälgige, kuidas RGB-LED-lamp järgneb.
Muud kasulikud käsud Pange tähele, et kui korraga töötab rohkem kui üks „rgbDriver”, võib teil tekkida ettearvamatu käitumine. Kui proovite käivitada rgb_main.js teise eksemplari, ilmneb see veast.
See käsk loetleb kõik sellega seotud protsessid:
ps aux | grep rgb
See käsk tapab kõik nodeJS protsessid koos alamprotsessidega „rgbDriver”:
sudo ps aux | grep sõlm.*rgb | awk '{print "sudo kill -9" $ 2}' | sh
Iseseisev töö
Kui soovite, et Pi-Zero käivitaks Node.js serverirakenduse selle käivitamisel… kasutades teie lemmikredaktorit (nt nano ~/.bash_profile), tippige järgmised read ja salvestage faili ~/.bash_profile
cd node_rgb
sudo sõlm rgb_main.js &
Et terminali akna avamisel häirivaid veateateid ei saaks, kasutage tinglikku kodeerimist, nagu failis „start_rgb” olev shelliskript
Kui Pi-Zero töötab sisseehitatud, ilma klaviatuuri, hiire või kuvarita; graafiline kasutajaliides võtab protsessori jaoks minimaalse aja, kuna kasutajad ei suhtle. Ma ei keela GUI automaatset käivitamist, kuna Pi-Zero-l on antud juhul rohkem ressursse kui vaja; ja mulle meeldib, kui saan tulevikus ühendada mõne kaabli ja seda kasutada. See pole siiski vajalik, kuna saate vajaliku hoolduse tegemiseks kasutada kaug -SSH -terminali (nt PuTTY).
Kasutades seda sündmuste monitorina
Lõin veebilehe Dow Jonesi indeksi igapäevaste muutuste jälgimiseks. Selle allikat saab kasutada suunisena teie enda lehele, mis kasutab mõningaid veebiandmeid ja juhib vastavalt teie Pi-Zero indikaatorit. See leht saab (json) andmed Google'i veebiteenusest. Veebiteenuseid on palju vorme, seega peate uurima seda, mida soovite JavaScripti koodi määramiseks kasutada.
Kui soovite oma seadet kasutada, nagu minagi, eraldiseisva Dow-indeksi muutmise indikaatorina, lisage need read faili ~/.bash_profile lõppu või soovitud SSH-le ja andke välja teine käsurida. Kui soovite hiljem kasutada kaugjuhtimispulti "tappa -9", on tulemuseks kolmekuningase brauseri protsess.
magama 20
epiphany-browser --display =: 0.0 localhost: 8080/Dow_Jones_Index.html &
Indikaator süttib helehalli, kui väärtus on 0. Suuremate väärtuste korral muutub see üha rohelisemaks. See on kõige eredam puhas roheline, umbes 250. Kõrgemad, kuid väärtused põhjustavad esialgu madalat välklampi, kuni sügavaima välklampi umbes 500. Negatiivse väärtuse korral (igapäevased langused Dow'is) on see sarnane, kuid punane.
UPDATE mai 2018
Olen loonud uue veebilehe (SolarStorm_devCon.html, lisatud.txt -failina, kuna.html -faili ei laadita üles), mis kogub GeoMagnetic tormiteavet (mis võib ennustada laastavat CME -d, EMP -d) ja kasutab seda värvi esitamiseks skaala, mis peegeldab omamoodi Geo-Stormi DevConi indeksit. näitab katastroofipotentsiaali, mis on tingitud kosmoseilmast tulenevast elektromagnetilisest impulsist (EMP), eeldatavasti päikesepõletustest või koronaalsest massi väljutamisest (CME). Kasutage seda nii, nagu oleksite kasutanud "Dow_Jones_Index.html".
6. samm: veebilehe kaugjuhtimine
Sel hetkel saate oma IOT -värvilist lampi juhtida kõikjalt oma kohalikus võrgus. Selle avalikus internetis nähtavaks tegemine ei kuulu selle juhendi hulka. Kui seadistate oma seadmele avaliku IP -aadressi, peate kasutage seda IP -d oma lehtede JavaScripti käsus open socket (nt ~/node_rgb/public/index.html)
Kavatsen kasutada oma Pi-Zero IOT seadet reaalajas värvinäidikuna Dow Jonesi indeksi päevase muutuse jaoks. Lõin selle tegeva lehe, mis saab json -andmed saidilt google.com/finance. Lisaks lõin mõned veebilehed, et näidata selle väikese IOT -seadme laia kasutusvõimalust. Selle asemel, et oma PiZero avalikku Internetti panna, võõrustas lehti minu olemasoleval avalikul veebiserveril (praegu @ 71.84.135.81 aka: https://raspi.ddns01.com/ kui minu tasuta dünaamiline domeeninime server töötab), mis töötab algse versiooniga B Raspberry-Pi.
Kauglehtede koodis avasin pistikupesaühendused aadressile 192.168.1.41:8080. Olin oma Pi-Zero ip määranud 192.168.1.41. Samamoodi järgige juhiseid jaotises vaarika-pi-wifi-ga ja a-staatilise ip-i seadistamisel rubriigi: Staatiline IP-aadress all. Nii et kui seadistate oma PiZero oma kohalikus võrgus 192.168.1.41, need minu veebisaidilt avatud lehed suhtlevad teie seadmega, kuna ühendus luuakse kliendipoolt.
Siin on need lehed, mida kasutasin oma Pi-Zero IOT valgustusseadme testimiseks ja kasutamiseks. Kui avate need lehed (https://71.84.135.81/iot/rgbLamp/ aka https://raspi.ddns01.com/iot/rgbLamp/ või mõni sellel lehel raamitud leht), kuvatakse kliendipoolne JavaScript sõitke oma loodud IOT -tulega (kuna see töötab sellel URL -il “192.168.1.41:8080”) Kui soovite, võite kopeerida nende lehtede allika ja muuta oma maitse järgi.
Esimese lehe abil saate seadet valida mis tahes värviga. LED -lamp ja veebilehel nähtav värv jälgivad üsna hästi. Kasutatavaid takistusväärtusi saab (ja ka monitori) muuta, et need tõeliselt sobiksid. Veetsin vähe aega, et tagada nende sobivus. See leht värskendab oma värvi, kui keegi teine värvi muudab ja server saadab värskendatud infosõnumi välja.
Üks leht on lihtne nupuga juhitav valgusfoor.
Seal on leht, mis on loodud spordivõistluste (nt jalgpall, korvpall, pesapall), valimiste jälgimiseks või on kohandatud kogumiseks või DEFCONi hoiatustaseme stiiliindikaatoriks. Skoorid (või valimishääletused) võidakse automaatselt hankida veebiteenusest või mõne muu veebilehelt maha kraapida. Mul ei ole Contest_demo lehel automaatset voogu. Keegi, kellel on õige oskusteave, võiks lisada võimsusdraiveri, mis käivitaks suure võimsusega LED-tulutuled ja ujutaks ruumi (või spordibaari) meeskonna värviga. Kahjuks olen selle juhendiga selle aasta superkausi pidude jaoks liiga hilja, kuid 2016. aasta valimisteks õigel ajal.
Siis on leht, mis sarnaneb sellele, mida kasutan oma seadme muutmiseks Dow Jonesi jälgimise indikaatoriks. Liugur ja nupud on DJI demolehel ainult tutvustamiseks. Selle lehe allikas on kood, mille töötasin välja rohelisest ekraanist inspireeritud pildi uuesti värvimiseks; piisavalt kommentaare, mis võivad teile ka kasulikuks osutuda.
Ainult esimene neist neljast lehest (koos Pi-Zero-põhise indeksi.html lehega) kuulab serveri värskendusteateid ja värskendab neid vastavalt. Kõik ülejäänud saadetakse ainult serverisse.
Soovitan:
Raspberry Pi protsessori temperatuuri indikaator: 11 sammu (koos piltidega)
Vaarika Pi protsessori temperatuuri indikaator: Varem olin kasutusele võtnud lihtsa vaarika pi (edaspidi RPI) tööoleku oleku indikaatori ahela. Seekord selgitan mõnda kasulikumat indikaatoriahelat RPI jaoks, mis töötab peata (ilma monitorita). Ülaltoodud ahel näitab CPU temperatuur
WiFi töö kodus indikaator: 5 sammu (koos piltidega)
WiFi -töö kodust indikaator: neile, kes on õnnelikud ja saavad kodus töötada, leiame tõenäoliselt, et maja teiste inimestega piiride osas on mõned suured väljakutsed. Selle abistamiseks lõin selle tõesti lihtne konstruktsioon, mis võimaldab teil
Macintosh Classic II värviline Hackintosh: 7 sammu (koos piltidega)
Macintosh Classic II värviline Hackintosh: Mac Classic II (M4150, ehitatud 1992) Pärast pikka aega õige suurusega LCD -paneeli otsimist asendamiseks
Värviline seinakell: 7 sammu (piltidega)
Värviline seinakell: seekord esitlen teile LED -ribade abil disainitud värvilise seina analoogkella lastele. Kella põhitõed on aja näitamiseks kasutada kolme LED -riba ja erinevaid värve: Ümmarguses LED -ribas on roheline värv kasutati tundide näitamiseks
PulseSensori visualiseerija kohandamine sündmuse käivitamiseks (tootlikkusevastane monitor): 8 sammu
PulseSensor Visualizer'i kohandamine käivitussündmusele (tootlikkusevastane monitor): Selles juhendis saate teada, kuidas muuta PulseSensor Visualizer programmi, et käivitada veebibrauseris sündmus. Ma nimetan seda projekti tootlikkuse vastaseks monitoriks, sest kuigi meil on palju tööriistu, mis aitavad meil oma elujõudu jälgida