Kazalo:

Zmogljiv samostojen sistem za avtomatizacijo doma - Pi, Sonoff, ESP8266 in Node -Red: 9 korakov (s slikami)
Zmogljiv samostojen sistem za avtomatizacijo doma - Pi, Sonoff, ESP8266 in Node -Red: 9 korakov (s slikami)

Video: Zmogljiv samostojen sistem za avtomatizacijo doma - Pi, Sonoff, ESP8266 in Node -Red: 9 korakov (s slikami)

Video: Zmogljiv samostojen sistem za avtomatizacijo doma - Pi, Sonoff, ESP8266 in Node -Red: 9 korakov (s slikami)
Video: Leap Motion SDK 2024, Julij
Anonim
Zmogljiv samostojen sistem za avtomatizacijo doma - Pi, Sonoff, ESP8266 in Node -Red
Zmogljiv samostojen sistem za avtomatizacijo doma - Pi, Sonoff, ESP8266 in Node -Red

Ta vodnik vas bo pripeljal do prve baze, kjer lahko vklopite/izklopite luč ali napravo prek katere koli naprave, ki se lahko poveže z vašim lokalnim omrežjem, in z odličnim prilagodljivim spletnim vmesnikom. Obseg razširitev/ dodajanja funkcij je ogromen, vključno s pošiljanjem e -pošte, twitter sporočil, senzorjev za branje (npr. Temperature). Z lahkoto lahko nastavite pravila npr. - če je temperatura ob 15.00 pod 15 ° C, vklopite električno odejo 30 minut. Sistem uporablja protokol MQTT s protokolom TCP, ki je precej bolj zanesljiv kot UDP - kar nekatere naprave za domačo avtomatizacijo presenetljivo uporabljajo. Ko je naporno delo pri nastavitvi sistema, opisano tukaj, lahko začne zabava. Node Red ponuja fantastičen uporabniški vmesnik, ki je intuitiven, hiter in enostaven za nastavitev ter ponuja neverjetne zmogljivosti.

Rezultat je zmogljiv sistem avtomatizacije doma, ki je v celoti pod lastnim nadzorom in je v celoti v lokalnem omrežju. Mnogi sistemi, prikazani na Instructables, delujejo s strežniki v oblaku, zato predstavljajo varnostno tveganje in lahko zahtevajo naročnino. Te je lažje nastaviti, vendar imajo večje varnostno tveganje in potencialno višje stroške. Dodati moram, da lahko za Pi nastavite VPN (navidezno zasebno omrežje), da omogočite varno povezavo z domačim omrežjem/sistemom, če bi bil koristen zunanji dostop (Google Pi OpenVPN za navodila).

Ta sistem zahteva ponovno programiranje naprav Sonoff z odličnim odprtokodnim sistemom, imenovanim Sonoff-Tasmoda. To lahko storite s posebno nastavitvijo Arduino in pretvornikom USB v serijski pretvornik. Naprave Sonoff uporabljajo čip Wi-Fi ESP8266, tako da lahko tudi sami izdelate svoje naprave z moduli ESP8266 ali jih namestite na druge predmete, da zagotovite brezžično povezljivost.

Največja naloga je postavitev Raspberry Pi kot vozlišča. Ta zažene posrednika (ali strežnik) MQTT, ki upravlja komunikacijo s povezanimi napravami. Pi vodi tudi sistem, imenovan Node-Red, ki lahko prestreže sporočila in podatke ter ukaze za izhod-na primer, kdaj vklopiti električno odejo. Node-Red ponuja tudi vmesnik za spletno stran, na katero se lahko prijavite prek pametnega telefona/tabličnega računalnika/osebnega računalnika/prenosnega računalnika, da vidite, kaj se dogaja, in omogočite ročno preklapljanje luči itd.

Moj cilj s tem navodilom je dati vsakemu koraku dovolj podrobno, da lahko novinec sistem začne delovati.

Koraki so naslednji:

  • Naložite Pi z Rasbian Stretch
  • Posodobite in dodajte funkcije v Node-Red
  • Namestite posrednika Mosquitto MQTT
  • Nastavite okolje Arduino za nalaganje vdelane programske opreme Sonoff-Tasmota
  • Ponovno programirajte stikalo Sonoff
  • Nastavite vmesnik Node-Red
  • Preverite, ali vse deluje.

Strojna oprema, ki jo potrebujete:

  • Raspberry Pi in napajalnik (ter tipkovnica in monitor za začetne nastavitve) (tukaj je uporabljen model B)
  • Stikalo Sonoff
  • Serijski pretvornik USB
  • Izbirno - razvojna plošča ESP, kot je NodeMCU.

Moje izkušnje z Raspberry Pi so, da se zdi, da nastavitev karkoli pomeni bistveno več bolečine, kot bi si lahko kdo predstavljal, da stvari ne delujejo ali se zataknejo na nekem nepomembnem koraku, kjer bi bila razlaga lahko boljša. Forumi ne dobijo vedno učinkovitih nasvetov! Našel sem več poti, ki iz takšnih ali drugačnih razlogov preprosto niso delovale. To stane 3 dni! Nato sem vse obrisal in začel na novo ter končal v manj kot (dolgem) dnevu. Ta pa je uporabil starejšo Raspian Jessie. Po tem sem našel način za uporabo trenutne in nedavno izdane različice (Stretch) in ponovil vse. Ta priročnik omogoča kopiranje in lepljenje navodil v Pi. Torej bi morali končati v nekaj urah. Vsekakor upam, da vas bo to hitreje pripeljalo do krivulje učenja in z veliko manj bolečin. Verjemite, da je vredno končnega rezultata.

Korak: Naložite Pi z Rasbian Stretch

To bi moralo biti precej preprosto. Začnite s kartico SD 8Gb ali 16Gb. Prenesite najnovejšo različico iz:

www.raspberrypi.org/downloads/

Glavna nit tukaj predvideva, da je naložena celotna različica. Za prihranek prostora pa lahko uporabite enostavnejšo različico. Če uporabljate Raspbian Stretch Lite, nadaljujte s tem korakom in pojdite na korak 9 na koncu.

Če razpakirate preneseno datoteko, se prikaže mapa z datoteko.img. 7Zip je priporočljiv za Windows (in The Unarchiver Mac). Sliko je treba zapisati na kartico SD, vendar je treba uporabiti poseben program, ker datotečni sistem ni združljiv z operacijskim sistemom Windows. Priporočena programska oprema se imenuje Etcher in jo lahko prenesete s:

etcher.io/

Navodila za Etcher so na njihovi spletni strani in komaj bi lahko bila enostavnejša. Izberite sliko in pogon ter kliknite Flash.

Zdaj z našo bliskovito kartico SD lahko Pi zaženete.

Če poznate naslov IP, ki ga uporablja vaš Pi, ali ga z veseljem najdete tako, da se prijavite v usmerjevalnik, se lahko izognete potrebi po tipkovnici in monitorju ter takoj uporabite SSH. Na kartico SD samo dodajte prazno datoteko z imenom SSH, jo vstavite, povežite z Ethernetom in vklopite. V nasprotnem primeru sledite spodnjim navodilom.

Povežite Pi z internetom, zaslonom, miško in tipkovnico ter se povežite z napajanjem. Prva stvar, ki jo bomo naredili, je omogočiti SSH, da bomo lahko večino nastavitev opravili iz udobja na osebnem računalniku. Seveda je to mogoče narediti neposredno, vendar je v veliko pomoč, če lahko sledite tem navodilom na isti napravi kot tisti, ki vozi Pi, in uporabite večino navodil za kopiranje in lepljenje. Tudi v mojem primeru je moja delovna postaja za osebni računalnik lepa in udobna, vendar ne dovolj velika tudi za pi.

Za velik del dela na videoposnetku v YouTubu obstaja vodnik. Tu sem začel. Videoposnetek lahko zaženete skupaj s temi navodili. Ko pa sem med pisanjem tega postopka znova tekel skozi postopek, sem lažje sledil tukaj navedenim navodilom. Obstaja nekaj pomembnih odstopanj. Obstajajo tudi nekateri odseki, kjer sem svetoval, naj sledijo videoposnetku, namesto da bi tukaj naštevali korake. Priporočam pa, da si ga ogledate, da bi razumeli MQTT, Node-Red in širši postopek nastavitve. Video je dolg 38 minut, zato se počutite udobno. Videoposnetek se začne s prikazom, kaj Node Red lahko naredi, nato pa zajema namestitev in nastavitev Pi, nato nadgradnjo Node Red in nazadnje namestitev Mosquitto. Ključni časi, če se želite vrniti na razdelek:

00:00 Uvod v video

03:00 Predstavitev vozlišča Rdeča

14:14 Uvoz elementov armaturne plošče v Node Red

21:05 Pi začetna nastavitev, vključno s SSH

23:35 Namestitev podporne kode Node Red

27:00 Uvod v MQTT

29:12 Namestitev Mosquitto (MQTT) (Opomba deluje samo za Raspian Jessie)

33:00 Primeri vozlišča Rdeča

Ukaze bom navedel s krepkim ležečim tiskom (namesto z uporabo »«). To oblikovanje prezrete, ko jih kopirate in prilepite v Pi.

Uvod v Node Red vam bo predstavil, kaj lahko sistem naredi, in sliko, kje bomo končali.

Videoposnetek v YouTubu je na naslovu:

Sledite postopku namestitve od 21:05 do 23:35. Upoštevajte, da je privzeta prijava uporabnik: pi in geslo: malina. Pred ponovnim zagonom poiščite IP -naslov pi. V zgornji vrstici namizja kliknite ikono »puščica gor+dol« ali v okno terminala/terminala vnesite naslednje navodilo:

sudo ifconfig naslov

Nato zapišite naslov IP za: inet addr:. To bo v obliki 192.168.x.y

Zapomnite si ta naslov in znova zaženite (vnesite: sudo shutdown –r zdaj)

Ključno na tem mestu je, da je omogočen SSH in da lahko nastavite povezavo do Pi iz osebnega računalnika (Mac in Linux vključujeta vmesnike SSH). Dober program za to je brezplačen prenos, imenovan PuTTY, ki se lahko uporablja tudi kot serijski vmesnik in lahko uporablja Telnet. Kiti so na voljo pri:

www.chiark.greenend.org.uk/~sgtatham/putty…

Prenesite in namestite PuTTY.

Zdaj, ko se Pi znova zažene, zaženite PuTTY in vnesite prej omenjeni naslov IP. Glej spodnji primer:

Zdaj kliknite Odpri

Po prijavi kot: vnesite pi

Nato vnesite geslo.

Sledite tem navodilom in video po želji začnite od 23:35. V večini primerov lahko kopirate in prilepite. Označite besedilo in uporabite Ctrl+C za kopiranje. Nato z desno miškino tipko kliknite PuTTY, da ga prilepite. Včasih se besedilo ne prikaže takoj, zato počakajte nekaj sekund. Če vnesete dvakrat, uporabite tipko backspace, da izbrišete drugi vnos. Pritisnite Enter za izvedbo vsakega ukaza.

sudo raspi-update

Dobil sem ukaz, ki ni bil najden in sem prezrl to in naslednje navodilo za zaustavitev/ponovni zagon:

sudo shutdown -r zdaj

sudo apt -get -y posodobitev

sudo apt -get -y nadgradnja

To traja nekaj časa ……

sudo apt-get samodejno odstrani

sudo apt -get -y posodobitev

sudo shutdown -r zdaj

Na tej točki imamo naložen in posodobljen operacijski sistem Pi, pripravljen za naslednji korak.

2. korak: Posodobite in dodajte funkcije v Node-Red

Povezava PuTTY bo ob ponovnem zagonu na koncu prejšnjega koraka izgubljena. Zato zaprite PuTTY in po čakanju, da se Pi zažene, se znova prijavite kot prej.

Prestavil sem se na enostavnejšo in zanesljivejšo metodo nalaganja Node-Red-po pristopu na https://nodered.org/docs/hardware/raspberrypi. Ta uporablja skript in bo namestil ali nadgradil Node-Red-zato je pristop enak pri delu s polno ali preprosto različico Raspbian Stretch. Torej vnesite:

bash <(curl -sL

Ob pozivu vnesite Y (dvakrat). Ta skript naloži tudi datoteke, potrebne za samodejni zagon Node-Red.

Tako imamo na tej točki naloženo in posodobljeno pi in posodobitve, potrebne za Node Red. Ponovni zagon pred naslednjo stopnjo ni škodljiv.

sudo shutdown -r zdaj

3. korak: Namestitev Mosquitto MQTT

Če tega še niste storili, si oglejte video uvod v MQTT na videoposnetku od 27:00.

Tu moramo ubrati drugačno pot. Postopek, opisan v videoposnetku, deluje le za starejšo različico Jessie Raspian. Na spletnem mestu komarjev se razpravlja, vendar ni jasnih rezultatov, zato se bomo držali enostavnejše in varnejše poti.

Zato se prijavite s programom PuTTY in vnesite naslednje:

sudo apt-get posodobitev

sudo apt-get namestite odjemalce komarjev proti komarjem

Y

sudo /etc/init.d/mosquitto ustaviti

sudo /etc/init.d/mosquitza začetek

Zadnji dve navodili ustavita in zaženeta komarja ter pokažeta, da naš posrednik MQTT deluje.

Za hiter preizkus odprite še dve seji PuTTY in se prijavite na vsako.

Do sedaj boste vedeli, da MQTT deluje tako, da naprava potrebuje podatke o naročnini na "temo". Posrednik bo poslal vse podatke z isto "temo". Nato naprava, ki želi poslati podatke/navodila, to objavi posredniku z isto "temo".

Torej v eni seji PuTTY vnesite:

mosquitto_sub -d -t pozdrav/svet

To je navodilo za naročanje na temo: zdravo/svet.

V drugo vnesite:

mosquitto_pub -d -t hello/world -m "Pozdravljeni iz okna terminala 2!"

To je navodilo za objavo z isto temo s sporočilom. Besedilo: "Pozdravljeni iz terminalskega okna 2!" bi se moral zdaj prikazati v drugem terminalu.

Bravo, da sem prišel tako daleč. Zdaj imamo Pi naložen in posodobljen s posodobitvami, potrebnimi za Node-Red in z nameščenim in preizkušenim posrednikom za komarje MQTT. Od zdaj naprej je življenje nekoliko lažje in zabavnejše. Zaprite dve seji PuTTY, uporabljeni za test MQTT.

4. korak: Nastavitev rdečega vmesnika vozlišča

Najprej moramo zagnati Node Red. Vnesite navodila:

node-red-pi --max-old-space-size = 256

Počakajte, da se zažene, in videli boste besedilo »Začeti tokovi«.

Zdaj odprite brskalnik, uporabljam Chrome in vnesite prej omenjeni naslov IP, ki mu sledi: 1880, to je nekaj takega kot 192.168.0.8:1880

Zdaj bi morali imeti prikazano programsko stran Node Red, kot je prikazano spodaj:

Zdaj lahko sledite vzorcem Node Red, ki se začnejo ob 33:00 ali pa se pomaknete naravnost do majhne dodatne nastavitve in nalaganja prvega toka, ki bo pokazal povezavo do MQTT in pripravljen za vožnjo s stikalom.

Dodatne potrebne nastavitve so dodajanje elementov nadzorne plošče, ki omogočajo spletni vmesnik.

Te so prikazane na videoposnetku ob 14:14.

Sledite navodilom za nalaganje node-red-armaturne plošče.

Zdaj se lahko malo igramo in pokažemo, da MQTT deluje in da ga poganja Node-Red. Tega ni v videoposnetku, je pa ključnega pomena za ta projekt. Lahko sledite mojim navodilom in/ali uvozite tokove iz priložene datoteke NRtest1.txt.

Najprej dodajte vhodno vbrizgalno vozlišče in izhodno vozlišče mqtt ter ju povežite.

Dvokliknite vozlišče za vbrizgavanje (ki je sprva označeno kot časovni žig). V razdelku Payload z twiddly -jem preklopite na string in vnesite: Hello from me. Pustite temo prazno, saj jo lahko vnesemo v vozlišče MQTT. Kliknite Končano

Zdaj dvokliknite vozlišče MQTT. Kliknite ikono svinčnika desno od razdelka Strežnik. S tem se odpre novo pogovorno okno. V razdelku Strežnik vnesite: localhost. Kliknite Dodaj. Zdaj, nazaj v vozlišču Edit mqtt out, vnesite našo temo v razdelek Tema: hello/world. Nastavite QoS na 1. Kliknite Končano. Zdaj kliknite Uvedi. Pod vozliščem mqtt bi morali videti zeleno piko in "povezano".

Zdaj dodajte še dve vozlišči - input mqtt in output debug ter ju povežite skupaj. Zdaj dvokliknite vhodno vozlišče mqtt in v razdelku s temami vnesite hello/world. Strežnik mora že prikazati localhost: 1883. Nastavite QoS na 1. Kliknite Končano. Nato kliknite Razmesti in na desnem podoknu kliknite zavihek za odpravljanje napak. Zdaj kliknite na sivi kvadrat na levi strani vozlišča za vbrizgavanje "Pozdravljeni od mene". To pošlje besedilno obremenitev posredniku MQTT s temo hello/world. Posrednik ve, da se je vhodno vozlišče mqtt naročilo na isto temo in tako posreduje tovor. Vhodno vozlišče mqtt to pošlje na zavihek za odpravljanje napak (RHS) in prikazalo bi se besedilo "Pozdravljeni od mene".

To označi drugo polje, saj se Node Red pogovarja z našim posrednikom MQTT. Upoštevajte, da je Node Red le odjemalec posrednika - tako kot naprave Sonoff, ki jih bomo povezali kasneje. Omogoča pa sofisticirano avtomatizacijo in odličen uporabniški vmesnik.

Zdaj lahko naredimo nekaj majhnih sprememb in nastavimo tokove za naše stikalo Sonoff.

Zato izbrišite vnosno vbrizgalno vozlišče (kliknite, da označite, in pritisnite tipko za brisanje). Zdaj dodajte stikalo iz razdelka armaturne plošče in ga povežite z izhodom mqtt. Dvokliknite stikalo. Kliknite svinčnik na desni strani skupine. Vnesite ime: Light. Nato kliknite svinčnik desno od zavihka in vstopite v razdelek Ime: salon. Kliknite Dodaj/Posodobi in še enkrat Dodaj/Posodobi. Zdaj, nazaj v vozlišču za preklapljanje urejanja, nastavite vklop in izklop Payloads. Uporabite twidlys za izbiro niza in vnesite ON za vklopljeno koristno obremenitev in OFF za tovorno vrednost OFF. Kliknite Končano

Zdaj pojdite na vsako od vozlišč mqtt in spremenite temo v cmnd/sonoff/POWER. Če kopirate in prilepite, preverite, ali na koncu niste vključili presledka. To je druga tema in ne bo delovala s Sonoffom. Iskanje potepuškega prostora lahko traja kakšno uro - verjemite! Odšel sem tudi na nadzorno ploščo> Tema in izbral: Temno. Kliknite Razmesti in izberite zavihek za odpravljanje napak.

Zdaj odprite novo sejo brskalnika v novem oknu in jo velikosti kot mobilni telefon nad sejo Node Red. Vnesite naslov: vaš naslov IP Pi: 1880/ui/#/0, to je na primer 192.168.0.8:1880/ui/#/0. Videti bi morali zaslon z Lounge in Light in preklopiti. Kliknite stikalo za vklop in nato izklop. Okno za odpravljanje napak mora prikazati obremenitve ON in OFF. Če se želite, se prijavite tudi prek mobilnega telefona. Upoštevajte, da je položaj stikala sinhroniziran. Ni važno, da naš Sonoff še ni povezan. Ko je, bo z naročnino na temo prevzel sporočilo/koristni tovor in ukrepal.

Zadnji korak je, da se Node Red samodejno zažene, ko se Pi zažene.

Node Red ima vodnik na naslovu:

Vendar so potrebne datoteke že naložene, zato namestitev ni potrebna.

Če želite nato omogočiti samodejni zagon Node-RED pri vsakem zagonu in ob zrušitvah vnesite (odprite sejo PuTTY):

sudo systemctl omogoči nodered.service

Če boste kdaj morali to onemogočiti, vnesite:

sudo systemctl onemogoči nodered.service

Zdaj izklopite pi s sudo shutdown zdaj in izklopite napajanje.

Zdaj je naš Pi zaklenjen in naložen pripravljen za ukrepanje. Naš računalnik/mobilni telefon je povezan z Node Red in ta se pogovarja z našim strežnikom MQTT. To je bilo dolgo in vredno velikega udarca po hrbtu. Dobro opravljeno. Naslednji, Arduino bit, se mi je zdel precej lažji!

5. korak: Nastavitev sistema Arduino za ponovno programiranje naprav Sonoff

Vse informacije za to so na spletnem mestu Sonoff-Tasmota GitHub. Edini del, s katerim sem imel težave, je bilo besedilo teme - vendar sem vas zvijačno prisilil, da to že vnesete!

Pojdite na

Navodila za nastavitev najdete na zavihku Wiki v razdelku Orodja za nalaganje:

Namesto da bi šel skozi vsak korak, bom samo opozoril na ključne vidike, ki so se mi zdeli pomembni ali se jim je zataknilo.

Navodila so dobra, vendar potrebujejo posebno pozornost do podrobnosti. Spotaknilo me je, da je v mapi, ki je bila v drugi mapi z imenom ESP8266, potrebna mapa ESP8266, zato sem spregledal dve ravni.

Upošteval sem priporočilo za popolnoma ločeno nastavitev Arduina. Ustvaril sem novo mapo z imenom 'ArduinoSonoff', ki je ločena od moje obstoječe mape Arduino. Nastavitev je precej napredna, zato je ločevanje zelo dobra ideja. Če je to vaša prva nastavitev Arduina, jo namestite drugič v mapo »Arduino« ali drugo mapo za katero koli drugo delo Arduino, vključno z delom na ESP8266.

Prenesite najnovejši Arduino IDE s spletnega mesta https://www.arduino.cc/en/Main/Software. Razpakirajte datoteko v novo mapo.

Navodila vključujejo prenos sistema Sonoff-Tasmoda z glavne strani https://github.com/arendst/Sonoff-Tasmota prek: Kloniraj ali Prenesi> Prenesi ZIP. Razpakirajte datoteko v novo mapo.

Natančno sledite navodilom. Nisem naredil izbirnega: Pripravite se na nalaganje OTA. To pustimo še en dan.

Zdaj zaženite Arduino IDE (dvokliknite arduino.exe). Naložite skico Sonoff-Tasmota prek Datoteka> Knjiga skic> sonoff. Ni potrebe po urejanju. Vse nastavitve se izvedejo po serijski povezavi po nalaganju vdelane programske opreme. Ti so shranjeni v EEPROM -u. Tako je mogoče posodobiti vdelano programsko opremo in ohraniti vse nastavitve. To je precej pametna zadeva. Vendar se lahko tukaj izognete potrebi po nekaj korakih, tako da odprete datoteko user-config.h in vnesete svoj SSID in geslo za wifi ter MQTT_HOST ("domus1"-drugo referenco zamenjajte z naslovom Pi IP). Kasneje boste morda želeli vnesti tudi uporabnika in geslo MQTT. Pred prenosom preverite nastavitve plošče pod Orodja. Te bodo potrebovale nekaj sprememb, da bodo ustrezale zahtevam iz Wikija. Sedaj kliknite kompajliraj (označite ikono). Moral bi prevesti OK. Če ni ali če zahtevane nastavitve plošče niso na voljo, se vrnite in preverite vsak korak nastavitve.

6. korak: Reprogramiranje stikala Sonoff

Zdaj smo pripravljeni za prenos. Na tej stopnji lahko odprete stikalo Sonoff ali pa najprej utripate modul ESP8266. Slednje sem naredil, deloma zato, ker moja stikala še niso prispela (pravkar so prispela, ko sem to tipkal!), Pa tudi preventivno, saj je utripanje stikala Sonoff enosmerni korak, saj prvotna vdelana programska oprema ni javno dostopna, kolikor Zavedam se. Imam nekaj plošč NodeMCU. Te je enostavno povezati, saj imajo vgrajen pretvornik USB v serijski. Vendar metoda ponastavitve nodemcu ne deluje s tem sistemom. Zato pustite Orodja> Ponastavi metodo nastavljeno na »ck«. Naredite običajno ročno nastavitev bliskavice tako, da držite gumb Flash (GPIO 0 na tleh), medtem ko pritisnete in spustite Reset (Ponastavi na tla). Nisem prepričan, ali je pri tem potekla časovna omejitev ali morda nisem dovolj dolgo zadrževal GPIO 0, vendar sem potreboval več poskusov, vključno s tem, ko se Arduino IDE sestavlja!

Če želite preveriti odzive - relejni izhod je D6 na ploščah NodeMCU. Pri ESP12 je to GPIO 12. LED izhod je D7 (NodeMCU) ali GPIO 13 (ESP12).

Stikalo Sonoff.

OPOZORILO: Moram reči "v nobenem primeru ne priključujte na električno omrežje, ko je ohišje odprto". Upoštevajte, da ima tiskano vezje (vsaj pri Sonoff Basic (linijsko stikalo)) samo razdalje med "enojno izolacijo" med nizkonapetostnim odsekom in omrežjem. Zato je treba vsak del vezja Sonoff obravnavati kot omrežno napetost. Tasmota GitHub prikazuje povezavo senzorja temperature in vlažnosti s Sonoffom S20. Tega ne bi storil zaradi izolacije. - Če želite to narediti, vzemite modul ESP12 ali NodeMCU in ga nastavite ločeno z ustrezno dvojno izolacijo. ali ozemljeno napajanje.

Vtično stikalo Sonoff S20 je dobro izhodišče, saj ne potrebuje električnega ožičenja. To lahko odprete tako, da odstranite en vijak (pod varnostnim pečatom) in odprite ohišje. Spodnja fotografija prikazuje, kje so oznake. Stiskanje ohišja na teh točkah pomaga.

USB serijski pretvornik

Moj najljubši pretvornik je različica FTDI. Vendar to nima ustreznih zmogljivosti za zadovoljevanje potreb Sonoff 3.3v. Specifikacija FTDI pravi največ 50 ma. Naslednja najboljša alternativa je uporaba čipa CP2102. To pa ima omejitev 100 ma, ki še vedno ni dovolj. Jasno je, da mnogi uporabljajo ta pretvornik neposredno, vendar obstajajo tudi poročila o neuspešnem nalaganju. Omejil bi čas priklopa, saj se bo pod obremenitvijo segrel. Naredite to na lastno odgovornost. Idealna rešitev je, da imate tudi regulator 3.3v, npr. an AMS1117 3.3. Za to sem naredil majhno tiskano vezje. Glejte Programer za naprave Sonoff.

Moje zaporedje programiranja je naslednje:

Odprite Arduino IDE.

Pod Orodja preverite nastavitve kot na Wiki.

Naredite vse potrebne spremembe za user_config.h. Nastavil sem SSID in geslo Wifi ter naslov posrednika MQTT in podrobnosti o časovnem pasu/poletnem času.

Kliknite »preveri«, da preverite, ali je v redu.

Serijski pretvornik USB (samostojno) priključite na računalnik. Upoštevajte številko vrat.

Zdaj odklopite zaporedni kabel USB iz računalnika in ga priključite na stikalo Sonoff. Preverite, ali so povezave ozemljitve in 3v3 pravilne (ozemljitev je priključena na ozemljitveno ploščo na Sonoff PCB).

Držite programator tako, da so kontakti varni, hkrati pa pritisnite gumb.

Zdaj priključite kabel USB v računalnik, preverite, ali je številka vrat pravilna (v Orodjih), nato kliknite prenos.

Med programiranjem še naprej držim gumb, ker ne želim motiti povezav.

Ko končate, bi morali videti spodnji zaslon:

Slika
Slika

Sonoff potrebuje nekaj podatkov za povezavo z našim sistemom: SSID in geslo za wifi lokalnega omrežja ter IP naslov Pi. To lahko storite na več načinov, od katerih je eden spremeniti datoteko config.ino, kot je bilo že omenjeno. Če imate pametni telefon, lahko (po ponovni montaži stikala) štirikrat dokaj hitro pritisnete gumb Sonoff, da ga preklopite v način spletnega strežnika. LED utripa. Moral sem večkrat poskusiti, da bi to delovalo. Nato na pametnem telefonu poiščite novo omrežje Sonoff in se povežite. Prikaže se spletna stran, kjer lahko nastavite zahtevane podatke. Naslov Pi IP preide v ime gostitelja. Spremenil sem tudi drugi SSID in geslo v nekaj dolgega in v bistvu neuporabnega.

Druga možnost je, da ga nastavite prek serijske povezave takoj po nalaganju. Odprite serijski monitor Arduino (pod Orodja).

Ukazi za vnos:

SSId vaš WiFi

Geslo za svojo geslo za Wi -Fi

MqttHost 192.168.x.y (naslov IP PI)

Za učinkovito onemogočanje lahko vnesete tudi SSId1 in Password1, nato pa nekaj dolgega in neuporabnega.

Zdaj lahko vstavite stikalo Sonoff, odprete Node-Red in Node-red armaturno ploščo, kliknete gumb za preklop in si ogledate zavihek za odpravljanje napak, ki naj bi zdaj vseboval odzive iz Sonoffa. Tako smo dosegli še en pomemben korak - naše prvo stikalo poganja osebni računalnik/pametni telefon.

Doslej nismo omenjali varnosti. Obstaja možnost uporabe šifriranih komunikacij. To je precej zapleteno za nastavitev in verjetno bolj primerno, če se uporablja posrednik v oblaku. Obstaja tudi možnost dodajanja uporabniških imen in gesel za vse povezane naprave ter onemogočanje anonimnih uporabnikov. To je precej preprosto nastaviti. In zdaj k Varnosti.

7. korak: Varnost

MQTT omogoča uporabniška imena in gesla za vsako stranko. To je enostavno nastaviti. Verjetno je lažje najprej preimenovati vsako napravo, nato pa nastaviti njihova uporabniška imena in gesla. To je mogoče storiti z ukazi MQTT, Node-Red pa je verjetno najlažji način za njihovo pošiljanje. Najprej se odločite za poimenovanje. Ena od možnosti je, da imena temeljijo na lokaciji in funkciji. Nato boste želeli skupaj z nadomestno temo zabeležiti uporabniško ime in geslo za ime (temo). Upoštevajte, da obstaja tudi "možnost ponastavitve" za ponastavitev nastavitev Sonoff na prvotni prenos (glejte Uporaba Wiki> Funkcionalnost gumbov).

Vklopite pi in po nekaj sekundah odprite brskalnik do Node-Red (naslov IP: 1880).

V Node-Red nastavite injekcijsko vozlišče in ga povežite z izhodom mqtt in nastavite strežnik mqtt na localhost. Pustite temo, uporabnika in geslo prazno, saj jih bomo nastavili v vozlišču za vbrizgavanje. Nastavite tudi vhodno vozlišče mqtt in ga povežite z vozliščem za odpravljanje napak, da bomo lahko videli odzive. Vhodno opombo mqtt nastavite na localhost (mora biti že nastavljena) in vnesite+/+/+za temo, da ujame ves promet.

V vozlišče za vbrizgavanje vnesite naslednje zaporedje nastavitev.

Najprej preverite povezljivost z

Tema: cmnd/sonoff/Status

Sporočilo: 6

kliknite »Vbrizgaj enkrat ob zagonu«. Razmesti. Videti bi morali odpravljanje napak, ki vključuje 7 vrstic podatkov iz stat/sonoff/STATUS6

Vnesite temo: cmnd/sonoff/Tema in Sporočilo: loungelight. Razmesti. To spremeni ime stikala iz sonoff v loungelight

Na zavihku za odpravljanje napak mora biti prikazan ponovni zagon naprave z novim imenom/temo

Tema: cmnd/loungelight/MqttUser

Sporočilo: loungelight

Kliknite razporedi. Odpravljanje napak je treba videti iz stat/loungelight/RESULT z {"MtqqUser": "loungelight"}

Tema: cmnd/loungelight/MqttPassword

Sporočilo: loungelightPW (bodite bolj domiselni od tega!)

Počistite zavihek za odpravljanje napak in razmestite.

Odgovor bi morali videti iz stat/loungelight/RESULT z {"MqttPassword": "loungelightPW"}

Zdaj vnesite NodeRed in NodeRedPW kot uporabniško ime in geslo v vozlišču mqtt out. To je prek ikone svinčnika strežnika in zavihka varnost v oknu, ki se odpre. Ta se samodejno kopira na druga vozlišča MQTT.

Preverite še enkrat s

Tema: cmnd/loungelight/Stanje in sporočilo: 6. Razmesti.

In da je odgovor poslan.

Tako smo na tej točki preimenovali našo napravo Sonof, da bo poslušala teme cmnd/loungelight/…… in se prijavila na strežnik MQTT z uporabniškim imenom loungelight in geslom loungelightPW. Za Node-Red smo nastavili tudi uporabniško ime in geslo.

Nato moramo strežniku MQTT proti komarjem povedati, da sprejema samo odjemalce z uporabniškimi imeni, ter navesti uporabniška imena in gesla, ki jih je treba sprejeti.

Postopek je naslednji:

  • Ustavite komarje
  • Ustvarite lastno konfiguracijsko datoteko
  • Uredite konfiguracijsko datoteko
  • Ustvari datoteko z geslom
  • Dodajte uporabnike/gesla.

Zato se prijavite z novo sejo PuTTY in izvedite naslednje ukaze:

sudo /etc/init.d/mosquitto ustaviti

cd /etc/mosquitto/conf.d/

sudo nano mosquitto.conf To zažene urejevalnik.

Dodaj vrstice:

allow_anonymous false

password_file /etc/mosquitto/conf.d/passwd

require_certificate false

Shrani in zapri (Ctrl+X), Y, enter.

sudo touch passwd S tem se ustvari datoteka z geslom, naslednja navodila pa dodajo imena in gesla.

sudo mosquitto_passwd -b /etc/mosquitto/conf.d/passwd loungelight loungelightPW

sudo mosquitto_passwd -b /etc/mosquitto/conf.d/passwd NodeRdeči NodeRedPW

sudo /etc/init.d/mosquitza ponovni zagon

Upoštevajte, da boste pri dodajanju nove naprave morali vnesti uporabnika in geslo prek serijskih vrat in jih dodati v datoteko z geslom ali začasno spremeniti konfiguracijsko datoteko mosquitto in komentirati (dodati # na začetku vrstice) vrstice "allow_anonymous false "in" password_file /etc/mosquitto/conf.d/passwd ", nato pa jih ponastavite, ko so bili podatki poslani v napravo in dodani v datoteko z geslom, kot je opisano zgoraj.

Ime sonoff smo spremenili v loungelight, zato posodobimo izhodno vozlišče mqtt (povezano s stikalom), da uporabi temo cmnd/loungelight/POWER.

Kliknite Deploy in preverite, ali mqtt vozlišča prikazujejo "connected".

Nato poskusite s stikalnim gumbom in poiščite odpravljanje napak, ki prikazuje, da se stikalo Sonoff odziva. Opazili boste, da naprava prikazuje spremembo s temo: stat/loungelight/POWER. Zato spremenite vhodno vozlišče, ki je bilo nastavljeno na cmnd/sonoff/POWER na stat/loungelight/POWER. To pokritje lahko uporabimo za vrzel v naši funkcionalnosti. Sistem, kot je bil prvotno nastavljen, bo sinhroniziran z vsemi prijavljenimi uporabniki, vendar se ne bo sinhroniziral s spremembami stikal, storjenimi s pritiskom na gumb na stikalu Sonoff. Zato priključite izhod vhodnega vozlišča stat/loungelight/POWER mqtt na vhod stikala (LHS). Zdaj dvokliknite stikalo in počistite polje "če sporočilo prispe na vhod, pojdite na izhod". To odpira nekaj novih možnosti - izberite 'ikona stikala prikazuje stanje vhoda'. Razmesti. Tako imamo zdaj dobro povratno zanko. Položaj stikala armaturne plošče se bo ob menjavi stikala Sonoff vedno spremenil, ne glede na to, kje je bila sprememba sprožena.

Tako imamo zdaj varen in samostojen sistem avtomatizacije doma, ki je pripravljen za razširitev na vse, kar želite. V naslednjem razdelku bom opisal nekaj svojih dosedanjih eksperimentov in izzive, s katerimi se nameravam spoprijeti.

8. korak: Začetni koraki za razširitev

Imam še eno razvojno ploščo LED za senzorje senzorjev Sonoff-Tasmota za domačo avtomatizacijo, ki prikazuje nekatere nadaljnje zmogljivosti vdelane programske opreme Sonoff-Tasmota:

Merjenje temperature in vlažnosti

Zaznavanje vsiljivca (vhod s stikalom)

IR daljinski upravljalnik (za televizorje itd.)

LED nizi - RGB in NeoPixel (posamično naslovljivi)

I2C senzorji

Za zgoraj navedeno uporabljam ESP12F in tiskano vezje po meri. Enako bi lahko uporabili NodeMCU in ploščo. To omogoča te dodatne funkcije brez ožičenja v napravo Sonoff, zato je pristop veliko varnejši. Z vhodno temperaturo sem lahko dokončal avtomatizacijo električne odeje.

Glasbo in internetni radio lahko enostavno dodate. To odpre možnosti, da se določene postaje ali albumi prikažejo ob določenem času ali morda kot odziv na obiskovalca (telefon). Ta povezana navodila so na voljo v visokokakovostnem predvajalniku glasbe in internetnem radiu z nadzorom pametnega telefona. Ker to poganja tudi Node-RED, bi moralo biti celo mogoče imeti več kot en zvočni sistem in za njihovo uporabo uporabiti komunikacijo MQTT.

Raziskal sem tudi Node-Red, vključno s pošiljanjem e-poštnih sporočil in glasovnimi opozorili. Obstaja tudi možnost, da sistem zazna, kdaj ste vstopili/odšli - s pinganjem naslova IP vašega mobilnega telefona. Node -Red lahko dostopa tudi do vremena in novic - tako lahko dodajate informacije in avtomatizirate.

Treba se je naučiti nekaj trikov - vendar ti drugič postanejo lahki.

Druga pot dodaja zaslon pi za prikaz armaturne plošče. To je "nedokončano delo" - z drugimi besedami, nisem preveč vesel. Zaslon, ki sem ga dobil, je težko obrniti v portretni način, brskalnik Chromium pa je boleče počasen. Druga možnost bi bila, da na ebayu vzamete staro tablico in jo uporabite. Lahko poskusim s Pi 2 in vidim, če to prinaša dovolj izboljšav (model B, uporabljen za ta razvoj).

Upam, da boste s tem začeli in da vam bo burila domišljija. Potencialni obseg je ogromen. Kodo Sonoff bi lahko po potrebi celo spremenili za druge senzorje.

Na splošno sem bil presenečen nad tem, kaj zmore ta sistem. Moj prvotni cilj je bil samo zanesljiv prenos stikala s pametnega telefona prek samostojnega sistema. Imel sem vizije, da moram upravljati strežnike in odjemalce ter pisati html za uporabniški vmesnik. Kjer se je to končalo, je veliko pred tem, z večjo varnostjo, odlično zanesljivostjo, fantastičnim uporabniškim vmesnikom, programiranjem povleci in spusti in velikim potencialom za razširitev. In vse to z veliko manj truda.

Mike

9. korak: Dodatek - Nalaganje iz Raspbian Stretch Lite

Ta možnost se izogne napihljivi programski opremi, ki je priložena polni različici Raspbian Stretch. Večina tega ne bo potrebna pri uporabi Pi za avtomatizacijo doma. Vendar je treba Node-Red namestiti.

Nadaljujte kot v 1. koraku, vendar uporabite Raspbian Stretch Lite namesto Raspbian Stretch.

Namesto 2. koraka naredite naslednje:

sudo apt -y namestite npm

npm -v se mora vrniti: 1.4.21 ali novejša

sudo npm install -g n

sudo n 8.9.0

Zdaj lahko za namestitev Node-Red uporabimo upravitelja paketov vozlišč:

sudo npm install node-red --global --unsafe-perm

To bo poslalo nekaj sporočil o napakah zaradi napačnega naslova. Sistem pa za odpravo te težave naredi "izvorno prevedbo". Če ponovite zgornje navodilo (ni potrebno), se napake ne pojavijo.

Zdaj imamo nameščen Node-Red in njegove podporne pakete in lahko preidemo na 3. korak, nalaganje komarja.

Brezžično tekmovanje
Brezžično tekmovanje
Brezžično tekmovanje
Brezžično tekmovanje

Drugouvrščeni na tekmovanju v brezžičnem omrežju

Priporočena: