Sadržaj:
- Korak 1: Učitajte Pi pomoću Rasbian Stretch -a
- Korak 2: Ažurirajte i dodajte značajke u Node-Red
- Korak 3: Instalacija Mosquitto MQTT -a
- Korak 4: Postavljanje crvenog sučelja čvora
- Korak 5: Postavljanje Arduino sustava za reprogramiranje Sonoff uređaja
- Korak 6: Reprogramiranje Sonoff prekidača
- Korak 7: Sigurnost
- Korak 8: Početni koraci za proširenje
- Korak 9: Dodatak - Učitavanje iz Raspbian Stretch Lite
Video: Moćan samostalni sustav kućne automatizacije - Pi, Sonoff, ESP8266 i Node -Red: 9 koraka (sa slikama)
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Ovaj vodič trebao bi vas odvesti do prve baze gdje možete uključiti/isključiti svjetlo ili uređaj putem bilo kojeg uređaja koji se može povezati s vašom lokalnom mrežom i s izvrsnim prilagodljivim web sučeljem. Opseg proširenja/ dodavanja značajki je ogroman, uključujući slanje e -pošte, twitter poruka, senzora za čitanje (npr. Temperature). Možete jednostavno postaviti pravila, npr. - ako je temperatura ispod 15C u 23 sata, uključite električnu deku na 30 minuta. Sustav koristi MQTT protokol s TCP -om koji je znatno pouzdaniji od UDP -a - što iznenađujuće koriste neki komercijalni uređaji za kućnu automatizaciju. Nakon što je naporan posao postavljanja sustava, opisan ovdje, zabava može početi. Node Red pruža fantastično korisničko sučelje koje je intuitivno, brzo i jednostavno za postavljanje i pruža nevjerojatne mogućnosti.
Ishod je snažan sustav kućne automatizacije koji je u potpunosti pod vlastitom kontrolom iu potpunosti je na lokalnoj mreži. Mnogi sustavi prikazani na Instructables rade s poslužiteljima u oblaku i stoga predstavljaju sigurnosni rizik i mogu zahtijevati pretplatu. Lakše ih je postaviti, ali imaju veći sigurnosni rizik i potencijalno veće troškove. Trebao bih dodati da se može postaviti VPN (virtualna privatna mreža) za Pi kako bi se omogućila sigurna veza s kućnom mrežom/sustavom ako bi pristup izvana bio koristan (Google Pi OpenVPN za upute).
Ovaj sustav zahtijeva reprogramiranje Sonoff uređaja sa sjajnim sustavom otvorenog koda pod nazivom Sonoff-Tasmoda. To se može učiniti pomoću posebnih Arduino postavki i USB -serijskog pretvarača. Uređaji Sonoff koriste Wi-Fi čip ESP8266, tako da također možete napraviti vlastite uređaje koristeći module ESP8266 ili ih postaviti na druge stavke radi pružanja bežične veze.
Najveći zadatak je postaviti Raspberry Pi kao središte. Time se pokreće posrednik (ili poslužitelj) MQTT koji upravlja komunikacijom s povezanim uređajima. Pi također pokreće sustav nazvan Node-Red koji može presretati poruke i podatke te izlazne naredbe-na primjer kada treba uključiti električnu deku. Node-Red također nudi sučelje za posluživanje web stranice na koju se možete prijaviti putem pametnog telefona/tableta/računala/prijenosnog računala, vidjeti što se događa i omogućiti ručno uključivanje svjetla itd.
Moj cilj s ovim uputama je dati svaki korak dovoljno detaljno da početnik može natjerati sustav na rad.
Koraci su sljedeći:
- Učitajte Pi s Rasbian Stretch
- Ažurirajte i dodajte značajke u Node-Red
- Instalirajte brokera Mosquitto MQTT
- Postavite Arduino okruženje za prijenos firmvera Sonoff-Tasmota
- Ponovo programirajte prekidač Sonoff
- Postavite sučelje Node-Red
- Testirajte da li sve radi.
Hardver koji će vam trebati:
- Raspberry Pi i napajanje (i tipkovnica i monitor za početno postavljanje) (ovdje se koristi model B)
- Sonoff prekidač
- USB serijski pretvarač
- Izborno - razvojna ploča ESP -a, poput NodeMCU -a.
Moje iskustvo s Raspberry Pi -om je da čini se da postavljanje bilo čega podrazumijeva znatno veću bol nego što se moglo zamisliti da stvari ne rade ili se zaglave na nekom trivijalnom koraku gdje je objašnjenje moglo biti bolje. Forumi ne dobivaju uvijek učinkovite savjete! Pronašao sam nekoliko ruta koje iz ovih ili onih razloga jednostavno nisu radile. Ovo je koštalo 3 dana! Zatim sam sve obrisao i počeo ispočetka i završio za manje od (dugog) dana. Ovo je međutim koristilo stariju Raspian Jessie. Nakon toga pronašao sam način korištenja trenutne i nedavno objavljene verzije (Stretch) i sve sam to ponovio. Ovaj vodič omogućuje kopiranje i lijepljenje uputa u Pi. Dakle, trebali biste biti gotovi za nekoliko sati. U svakom slučaju nadam se da će vas ovo brže odvesti uz krivnju učenja i s mnogo manje boli. Vjerujte da se isplati za krajnji rezultat.
Korak 1: Učitajte Pi pomoću Rasbian Stretch -a
Ovo bi trebalo biti prilično jednostavno. Počnite s 8Gb ili 16Gb SD karticom. Preuzmite najnoviju verziju sa:
www.raspberrypi.org/downloads/
Glavna nit ovdje pretpostavlja da je učitana puna verzija. No možete koristiti lite verziju za uštedu prostora. Ako koristite Raspbian Stretch Lite, nastavite kroz ovaj korak, a zatim idite na korak 9 na kraju.
Raspakiranje preuzete datoteke daje mapu s.img datotekom. 7Zip se preporučuje za Windows (i The Unarchiver Mac). Slika se mora snimiti na SD karticu - ali se mora koristiti poseban program jer datotečni sustav nije kompatibilan sa sustavom Windows. Preporučeni softver naziva se Etcher i može se preuzeti s:
etcher.io/
Upute za Etcher nalaze se na njihovoj web stranici i teško da bi mogle biti jednostavnije. Odaberite sliku i pogon, a zatim kliknite Flash.
Sada s našom flash karticom SD možete pokrenuti Pi.
Ako znate IP adresu koju koristi vaš Pi ili ste je sretni pronaći prijavljivanjem na usmjerivač, tada možete izbjeći potrebu za tipkovnicom i monitorom te odmah upotrijebiti SSH. Samo dodajte praznu datoteku pod nazivom SSH na SD karticu, umetnite, povežite se na Ethernet i uključite. U protivnom slijedite donji vodič.
Spojite Pi na internet, zaslon, miš i tipkovnicu i spojite ga na napajanje. Prvo što ćemo učiniti je omogućiti SSH kako bismo većinu postavki mogli obaviti iz udobnosti na računalu. Naravno, to se može učiniti izravno, ali mnogo pomaže biti u mogućnosti slijediti ovaj vodič na istom uređaju na kojem se vozi Pi i koristiti kopiranje i lijepljenje za većinu uputa. Također je u mom slučaju moja radna stanica za računalo lijepa i udobna, ali i nedovoljno velika za pi.
Postoji vodič za dobar dio posla na YouTube videu. Tu sam počeo. Videozapis možete pokrenuti zajedno sa sljedećim uputama. Međutim, dok sam ponovno pisao ovaj proces dok sam ovo pisao, bilo mi je lakše samo slijediti upute ovdje. Postoje neka značajna odstupanja. Postoje i neki odjeljci u kojima sam savjetovao da slijedite video umjesto da ovdje navodite korake. Ipak bih preporučio da ga pogledate kako biste razumjeli MQTT, Node-Red i široki postupak postavljanja. Video je dug 38 minuta pa se udobno smjestite. Videozapis počinje prikazivanjem onoga što Node Red može učiniti, a zatim obuhvaća instalaciju i postavljanje Pi, nakon čega slijedi nadogradnja Node Reda i na kraju instalacija Mosquitta. Ključna vremena u slučaju da se želite vratiti na odjeljak:
00:00 Uvod u video
03:00 Demonstracija Node Red
14:14 Uvoz stavki nadzorne ploče u Node Red
21:05 Pi početno postavljanje, uključujući SSH
23:35 Instalacija podržavajućeg koda Node Red
27:00 Uvod u MQTT
29:12 Instalacija Mosquitto (MQTT) (Napomena radi samo za Raspian Jessie)
33:00 Primjeri Node Red
Napisat ću naredbe podebljanim kurzivom (umjesto pomoću ""). Ovo oblikovanje se zanemaruje kada ih kopirate i zalijepite u Pi.
Uvod u Node Red dat će vam ideju o tome što sustav može učiniti i pružiti sliku o tome gdje ćemo završiti.
Videozapis na YouTubeu nalazi se na:
Slijedite postupak instalacije od 21:05 do 23:35. Imajte na umu da je zadana prijava korisnik: pi i lozinka: malina. Prije ponovnog pokretanja pronađite pi -jevu IP adresu. Ili kliknite ikonu ‘strelica prema gore+dolje’ na gornjoj traci radne površine ili unesite sljedeće upute u terminal/prozor terminala:
sudo ifconfig adresa
Zatim zabilježite IP adresu iza: inet addr:. Bit će u obliku 192.168.x.y
Zabilježite ovu adresu i ponovo pokrenite (unesite: sudo shutdown –r sada)
Ključno u ovom trenutku je da je SSH omogućen i da se s računala može postaviti veza na Pi (Mac i Linux uključuju SSH sučelja). Dobar program za to je besplatno preuzimanje pod nazivom PuTTY koje se također može koristiti kao serijsko sučelje i koje može koristiti Telnet. Git je dostupan od:
www.chiark.greenend.org.uk/~sgtatham/putty…
Preuzmite i instalirajte PuTTY.
Sada, s ponovnim pokretanjem Pi, pokrenite PuTTY i unesite prethodno navedenu IP adresu. Pogledajte primjer ispod:
Sada kliknite Otvori
Nakon prijave kao: unesite pi
Zatim unesite svoju lozinku.
Sada slijedite upute ovdje i izborno pokrenite video od 23:35. U većini slučajeva možete kopirati i zalijepiti. Označite tekst i upotrijebite ctrl+C za kopiranje. Zatim desnom tipkom miša kliknite PuTTY za lijepljenje. Ponekad se tekst ne pojavi odmah pa pričekajte nekoliko sekundi. Ako unesete dva puta, koristite backspace za brisanje drugog unosa. Pritisnite enter za izvršavanje svake upute.
sudo raspi-update
Dobio sam naredbu koja nije pronađena i zanemario sam ovo i sljedeće upute za isključivanje/ponovno pokretanje:
sudo shutdown -r sada
sudo apt -get -y ažuriranje
sudo apt -get -y nadogradnja
Ovo traje neko vrijeme ……
sudo apt-get autoremove
sudo apt -get -y ažuriranje
sudo shutdown -r sada
U ovom trenutku imamo operativni sustav Pi učitan i ažuriran, spreman za sljedeći korak.
Korak 2: Ažurirajte i dodajte značajke u Node-Red
PuTTY veza bit će izgubljena ponovnim pokretanjem na kraju prethodnog koraka. Zato zatvorite PuTTY i nakon čekanja da se Pi podigne, prijavite se ponovo kao i prije.
Prešao sam na jednostavniju i pouzdaniju metodu učitavanja Node-Reda-slijedeći pristup na https://nodered.org/docs/hardware/raspberrypi. Ovo koristi skriptu i instalirat će ili nadograditi Node-Red-dakle pristup je isti radeći u punoj ili olakšanoj verziji Raspbian Stretch. Zato unesite:
bash <(curl -sL
Unesite Y kad se to od vas zatraži (dvaput). Ova skripta također učitava datoteke potrebne za omogućavanje automatskog pokretanja Node-Reda.
Dakle, u ovom trenutku imamo učitano i ažurirano pi te ažuriranja potrebna za Node Red. Nije šteta ponoviti pokretanje prije sljedeće faze.
sudo shutdown -r sada
Korak 3: Instalacija Mosquitto MQTT -a
Ako to već niste učinili, vrijedi pogledati video uvod u MQTT na videu od 27:00.
Ovdje moramo krenuti drugačijim putem. Postupak opisan u videu funkcionira samo za stariju Jessievu verziju Raspiana. Raspravlja se o stranici komaraca, ali nema jasnog ishoda pa će se držati jednostavnijeg i sigurnijeg puta.
Zato se prijavite pomoću PuTTY -a i unesite sljedeće:
sudo apt-get ažuriranje
sudo apt-get install mosquitto mosquitto-clients
Y
sudo /etc/init.d/mosquitzaustaviti
sudo /etc/init.d/mosquitza početak
Posljednje dvije upute zaustavljaju i pokreću komare i pokazuju da naš MQTT posrednik radi.
Za brzi test otvorite još dvije PuTTY sesije i prijavite se na svaku.
Do sada ćete znati da MQTT radi prema uređaju i potrebni su mu podaci pretplatom na 'temu'. Posrednik će poslati sve podatke s istom „temom“. Zatim uređaj koji želi poslati podatke/upute objavljuje ovo posredniku koristeći istu 'temu'.
Dakle, u jednoj PuTTY sesiji unesite:
komarac_sub -d -t pozdrav/svijet
Ovo je uputa za pretplatu na temu: hello/world.
U drugu upišite:
mosquitto_pub -d -t hello/world -m "Pozdrav iz terminala 2!"
Ovo je uputa za objavljivanje s istom temom s porukom. Tekst: "Pozdrav iz Terminala 2!" sada bi se trebao pojaviti na drugom terminalu.
Bravo što si stigao ovako daleko. Sada imamo Pi učitan i ažuriran ažuriranjima potrebnim za Node-Red i s instaliranim i testiranim posrednikom protiv komaraca MQTT. Od sada život postaje lakše i zabavniji. Zatvorite dvije sesije PuTTY korištene za MQTT test.
Korak 4: Postavljanje crvenog sučelja čvora
Prvo moramo pokrenuti Node Red. Unesite upute:
node-red-pi --max-old-space-size = 256
Pričekajte da se pokrene i vidjet ćete tekst 'Započeti tokovi'.
Sada otvorite preglednik, koristim Chrome i unesite pi IP adresu koju ste prethodno spomenuli, a zatim slijedi: 1880 tj. Nešto poput 192.168.0.8:1880
Sada biste trebali imati prikazanu programsku stranicu Node Red kao što je prikazano u nastavku:
Sada možete slijediti primjere Node Reda počevši od 33:00 ili prijeći ravno na malo dodatnog postavljanja i učitavanja prvog toka koji će pokazati vezu na MQTT i biti spreman za vožnju s našim prekidačem.
Dodatno potrebno postavljanje je dodavanje stavki nadzorne ploče koje omogućuju web sučelje.
Ovo je prikazano na videu u 14:14.
Slijedite upute za učitavanje node-red-dashboard.
Sada se možemo malo poigrati i pokazati MQTT kako radi i upravlja Node-Redom. Ovo nije na videu, ali je ključno za ovaj projekt. Možete slijediti moje upute i/ili uvesti tijekove iz priložene datoteke NRtest1.txt.
Prvo dodajte ulazni ubrizgavajući čvor i izlazni mqtt čvor i povežite ih zajedno.
Dvaput kliknite na čvor za ubrizgavanje (koji je u početku označen kao vremenska oznaka). U odjeljku Korisni teret twiddly promijenite u niz i unesite: Pozdrav od mene. Ostavite temu praznom jer to možemo unijeti u čvor MQTT. Pritisnite Gotovo
Sada dvaput kliknite čvor MQTT. Kliknite ikonu olovke desno od odjeljka Poslužitelj. Ovo otvara novi dijalog. Unesite: localhost u odjeljak Poslužitelj. Pritisnite Dodaj. Sada, natrag u čvoru Uređivanje mqtt izlaza, unesite našu temu u odjeljak Tema: zdravo/svijet. Postavite QoS na 1. Pritisnite Gotovo. Sada kliknite Implementiraj. Trebali biste vidjeti zelenu mrlju i 'spojeno' ispod čvora mqtt.
Sada dodajte još dva čvora - input mqtt i output debug te ih spojite zajedno. Sada dvaput kliknite na ulazni čvor mqtt i unesite hello/world u odjeljak teme. Poslužitelj bi već trebao prikazivati localhost: 1883. Postavite QoS na 1. Pritisnite Gotovo. Zatim kliknite Rasporedi i kliknite karticu za otklanjanje pogrešaka u desnom oknu. Sada kliknite sivi kvadrat s lijeve strane čvora za ubrizgavanje "Pozdrav od mene". Ovo šalje tekstualni korisni teret posredniku MQTT s temom hello/world. Posrednik zna da se ulazni čvor mqtt pretplatio na istu temu i tako prosljeđuje korisni teret. Ulazni čvor mqtt zatim šalje ovo na karticu za ispravljanje pogrešaka (RHS) i trebao bi se pojaviti tekst 'Pozdrav od mene'.
Ovo označava još jedno polje jer Node Red razgovara s našim MQTT posrednikom. Imajte na umu da je Node Red samo klijent posredniku - poput Sonoff uređaja koje ćemo kasnije povezati. Međutim, omogućuje sofisticiranu automatizaciju i pruža izvrsno korisničko sučelje.
Sada možemo napraviti nekoliko malih promjena i postaviti tijekove za naš prekidač Sonoff.
Stoga izbrišite ulazni čvor za ubrizgavanje (kliknite za označavanje i pritisnite tipku za brisanje). Sada dodajte prekidač s odjeljka nadzorne ploče i spojite ga na izlaz mqtt. Dvostruki prekidač. Pritisnite olovku s desne strane Grupe. Unesite ime: Svjetlo. Zatim kliknite olovkom desno od kartice i uđite u odjeljak Naziv: salon. Pritisnite Dodaj/ažuriraj i ponovo dodaj/ažuriraj. Sada, natrag u čvoru Switch switch, uključite i isključite Payloads. Upotrijebite twidlys za odabir niza i upišite ON za uključeno korisno opterećenje i OFF za isključeno korisno opterećenje. Pritisnite Gotovo
Sada idite na svaki od mqtt čvorova i promijenite temu u cmnd/sonoff/POWER. Ako kopirate i lijepite, provjerite niste li na kraju unijeli razmak. Ovo je druga tema i neće raditi s Sonoffom. Pronalaženje zalutalog prostora može potrajati nekih sat vremena - vjerujte mi! Također sam otišao na nadzornu ploču> Tema i odabrao: Tamno. Pritisnite Rasporedi i odaberite karticu za otklanjanje pogrešaka.
Sada otvorite novu sesiju preglednika u novom prozoru i promijenite je kao mobilni telefon preko sesije Node Red. Unesite adresu: vašu Pi IP adresu: 1880/ui/#/0, tj. Nešto poput 192.168.0.8:1880/ui/#/0. Trebali biste vidjeti zaslon s Lounge -om i svjetlom i prebaciti se. Pritisnite prekidač za uključivanje i isključivanje. Prozor za otklanjanje pogrešaka trebao bi prikazati ON i OFF korisne podatke. Sada, ako želite, prijavite se i putem mobilnog telefona. Imajte na umu da je položaj prekidača sinkroniziran. Nije važno što naš Sonoff još nije povezan. Kada to bude, pretplatom na temu, pokupit će poruku/korisni teret i djelovati na nju.
Posljednji mali korak je učiniti da se Node Red automatski pokrene nakon što se Pi podigne.
Node Red ima vodič na:
Međutim, potrebne datoteke su već učitane pa nije potrebna instalacija.
Da biste zatim omogućili Node-RED-u da se automatski pokreće pri svakom pokretanju, a nakon pada unesite (otvorite PuTTY sesiju):
sudo systemctl enable nodered.service
Ako ikada trebate ovo onemogućiti, unesite:
sudo systemctl onemogućiti nodered.service
Sada isključite pi sa sudo isključivanjem sada i isključite napajanje.
Sada je naš Pi zaključan i učitan spreman za akciju. Imamo računalo/mobilni telefon koji se povezuje s Node Redom i ovo razgovara s našim poslužiteljem MQTT. Ovo je bilo dugo i vrijedilo je velikog tapšanja po leđima. Dobro napravljeno. Sljedeći, pomalo Arduino, bio mi je mnogo lakši!
Korak 5: Postavljanje Arduino sustava za reprogramiranje Sonoff uređaja
Sve informacije o tome nalaze se na Sonoff-Tasmota GitHub-u. Jedini dio s kojim sam imao poteškoća bio je tekst teme - ali lukavo sam vas već natjerao da unesete ovo!
Idite na
Upute za postavljanje pronaći ćete na kartici Wiki u odjeljku Alati za prijenos:
Umjesto da prođem svaki korak, samo ću primijetiti ključne aspekte za koje sam smatrao da su važni ili da su zapeli.
Upute su dobre, ali trebaju pozornost na detalje. Spotaknuo me je potreba za mapom ESP8266 unutar mape koja se nalazila u drugoj mapi pod imenom ESP8266 i stoga sam propustio dvije razine.
Slijedio sam preporuku za potpuno zasebno postavljanje Arduina. Napravio sam novu mapu pod nazivom 'ArduinoSonoff' koja je odvojena od moje postojeće Arduino mape. Postavljanje je prilično napredno i stoga je držati ga odvojenim vrlo dobra ideja. Ako je ovo vaše prvo Arduino postavljanje, svakako ga instalirajte drugi put u ‘Arduino’ ili drugu mapu za bilo koji drugi Arduino rad, uključujući rad na ESP8266s.
Preuzmite najnoviji Arduino IDE sa https://www.arduino.cc/en/Main/Software. Raspakirajte datoteku u novu mapu.
Upute uključuju preuzimanje sustava Sonoff-Tasmoda s https://github.com/arendst/Sonoff-Tasmota glavne stranice putem: Kloniraj ili Preuzmi> Preuzmi ZIP. Raspakirajte datoteku u novu mapu.
Pažljivo slijedite upute. Nisam napravio izborno: Pripremite se za OTA odjeljak za prijenos. Ostavit ćemo ovo za neki drugi dan.
Sada pokrenite Arduino IDE (dvaput kliknite arduino.exe). Učitajte skicu Sonoff-Tasmota putem Datoteka> Sketchbook> sonoff. Nema potrebe za uređivanjem. Sve postavke se izvršavaju putem serijske veze nakon učitavanja firmvera. Oni su pohranjeni u EEPROM -u. Stoga se firmver može ažurirati i zadržati sve postavke. Ovo je prilično pametna stvar. Međutim, ovdje možete izbjeći potrebu za nekoliko koraka tako što ćete otići do datoteke user-config.h i unijeti svoj Wi-Fi SSID i zaporku te MQTT_HOST (zamijenite ‘domus1’– drugu referencu s vašom IP IP adresom). Kasnije ćete možda željeti unijeti i MQTT korisnika i lozinku. Prije preuzimanja provjerite postavke ploče u odjeljku Alati. Bit će potrebno nekoliko promjena kako bi zadovoljili zahtjeve navedene u Wiki. Sada kliknite kompajliraj (ikona kvačice). Trebalo bi kompajlirati OK. Ako nema ili ako potrebne postavke ploče nisu dostupne, vratite se i provjerite svaki korak postavljanja.
Korak 6: Reprogramiranje Sonoff prekidača
Sada smo spremni za preuzimanje. U ovoj fazi može se ići ravno naprijed i treptati Sonoff prekidač ili se može najprije bljesnuti ESP8266 modul. Učinio sam ovo posljednje, djelomično zato što moji prekidači još nisu stigli (tek su stigli dok ovo tipkam!), Ali i kao mjera opreza jer je bljeskanje prekidača Sonoff jednosmjeran korak jer izvorni firmver nije javno dostupan koliko Svjestan sam. Imam nekoliko NodeMCU ploča. Lako se povezuju s ugrađenim USB-serijskim pretvaračem. Međutim, metoda resetiranja nodemcu ne radi s ovim sustavom. Zato ostavite Tools> Reset Method postavljenim na "ck". Učinite uobičajeno ručno postavljanje bljeskalice držeći gumb Bljeskalica (GPIO 0 na tlu) dok pritisnete i otpustite Reset (Vrati na tlo). Nisam siguran ima li ovo vremensko ograničenje ili možda nisam dovoljno dugo držao GPIO 0 niskim, ali trebalo mi je nekoliko pokušaja, uključujući to dok se Arduino IDE sastavlja!
Ako želite provjeriti odgovore - relejni izlaz je D6 na NodeMCU pločama. Na ESP12 ovo je GPIO 12. LED izlaz je D7 (NodeMCU) ili GPIO 13 (ESP12).
Sonoff prekidač.
UPOZORENJE: Moram reći „ni u kojem slučaju ne priključujte na električnu mrežu ako je kućište otvoreno“. Imajte na umu da PCB (barem na Sonoff Basicu (linijski prekidač) ima samo udaljenosti "pojedinačne izolacije" između niskonaponske sekcije i mreže. Stoga bi bilo koji dio Sonoff kruga trebali tretirati kao mrežni napon. Sonoff- Tasmota GitHub prikazuje povezivanje osjetnika temperature i vlažnosti sa Sonoffom S20. Ne bih to učinio zbog izolacije. - pa ako želite to učiniti, nabavite ESP12 ili NodeMCU modul i postavite to zasebno s odgovarajućom dvostrukom izolacijom ili uzemljeno napajanje.
Utični prekidač Sonoff S20 dobro je polazište jer ne treba nikakvo ožičenje. To se može otvoriti uklanjanjem jednog vijka (ispod sigurnosne brtve) i otvaranjem kućišta. Donja fotografija prikazuje gdje se nalaze oznake. Stiskanje kućišta na ovim mjestima pomaže.
USB serijski pretvarač
Moj omiljeni pretvarač je FTDI verzija. Međutim, to nema odgovarajuće mogućnosti za opskrbu Sonoff 3.3v potreba. FTDI specifikacija kaže maksimalno 50 ma. Sljedeća najbolja alternativa je ona koja koristi čip CP2102. Međutim, ovo ima ograničenje od 100 mA što još uvijek nije dovoljno. Jasno je da mnogi koriste ovaj pretvarač izravno, ali postoje i izvještaji o učitavanju neuspješnom. Ograničio bih vrijeme spajanja jer će se zagrijati pod opterećenjem. Učinite to na vlastitu odgovornost. Idealno rješenje je imati i regulator od 3.3V, npr. AMS1117 3.3. Napravio sam mali PCB kako bih to omogućio. Pogledajte Programer za uređaje Sonoff.
Moj redoslijed programiranja je sljedeći:
Otvorite Arduino IDE.
U odjeljku Alati provjerite postavke kao na Wiki.
Unesite potrebne izmjene na user_config.h. Postavio sam Wi -Fi SSID i zaporku te adresu brokera MQTT -a i pojedinosti o vremenskoj zoni/ljetnom računanju vremena.
Kliknite "potvrdi" da biste provjerili je li u redu.
Uključite USB serijski pretvarač (zasebno) u računalo. Zabilježite broj porta.
Sada odspojite USB serijski kabel s računala i spojite ga na prekidač Sonoff. Provjerite jesu li spojevi uzemljenja i 3v3 ispravni (uzemljenje je spojeno na ravninu uzemljenja na Sonoff PCB -u).
Držite programator tako da kontakti budu sigurni, a pritom pritisnite i gumb.
Sada priključite USB kabel u računalo, provjerite je li broj porta točan (u Alatima), a zatim kliknite preuzimanje.
I dalje držim gumb tijekom programiranja jer ne želim ometati veze.
Kada završite, trebali biste vidjeti zaslon kao u nastavku:
Sonoffu je potrebno nekoliko bitova podataka za povezivanje s našim sustavom: SSID i lozinka WiFi mreže lokalne mreže te Pi IP adresa. Postoji nekoliko načina za to, a jedan je da izmijenite datoteku config.ino kako je ranije navedeno. Ako imate pametni telefon, možete (nakon ponovnog sastavljanja prekidača) pritisnuti gumb Sonoff 4 puta prilično brzo kako biste ga prebacili u način rada web-poslužitelja. LED će treperiti. Morao sam nekoliko puta pokušati da ovo uspije. Zatim na svom pametnom telefonu potražite novu mrežu Sonoff i povežite se. Pojavit će se web stranica na kojoj možete postaviti potrebne podatke. Pi IP adresa prelazi u naziv hosta. Promijenio sam i drugi SSID i lozinku u nešto dugo i u osnovi neupotrebljivo.
Alternativno, može se postaviti putem serijske veze odmah nakon učitavanja. Otvorite Arduino serijski monitor (pod Alati).
Naredbe za unos:
SSId vašegWiFiSSID
Zaporkom za svoju WiFi lozinku
MqttHost 192.168.x.y (PI IP adresa)
Također možete unijeti SSId1 i Lozinku1 nakon čega slijedi nešto dugo i neupotrebljivo da biste to učinkovito onemogućili.
Sada možete uokviriti prekidač Sonoff, otvoriti Node-Red i Node-red nadzornu ploču, kliknuti gumb za prebacivanje i pogledati karticu za otklanjanje pogrešaka koja bi sada trebala sadržavati odgovore iz Sonoffa. Dakle, postigli smo još jedan veliki korak - naš prvi prekidač upravlja se s računala/pametnog telefona.
Do sada nismo spominjali sigurnost. Postoji mogućnost korištenja šifrirane komunikacije. Ovo je prilično složeno za postavljanje i vjerojatno je prikladnije tamo gdje se koristi posrednik u oblaku. Postoji i mogućnost dodavanja korisničkih imena i lozinki za sve povezane uređaje te onemogućavanja anonimnih korisnika. Ovo je prilično jednostavno postaviti. I tako sada na Sigurnost.
Korak 7: Sigurnost
MQTT dopušta korisnička imena i lozinke za svakog klijenta. Ovo je jednostavno postaviti. Vjerojatno je lakše prvo preimenovati svaki uređaj, a zatim postaviti njihova korisnička imena i lozinke. To se može učiniti pomoću MQTT naredbi, a Node-Red je vjerojatno najlakši način za slanje. Prvo se odlučite za konvenciju imenovanja. Jedna je mogućnost da se imena temelje na lokaciji i funkciji. Tada ćete htjeti snimiti ime (temu) korisničko ime i lozinku zajedno s rezervnom temom. Imajte na umu da postoji i "opcija resetiranja" za vraćanje postavki Sonoffa na izvorno preuzimanje (pogledajte Wiki upotreba> Funkcionalnost gumba).
Uključite pi i nakon nekoliko sekundi otvorite preglednik na Node-Red (IP adresa: 1880).
U Node-Redu postavite čvor za ubrizgavanje i povežite ga s mqtt izlazom te postavite mqtt poslužitelj na localhost. Ostavite temu, korisnika i zaporku praznima jer ćemo ih postaviti u čvor za ubrizgavanje. Također postavite mqtt ulazni čvor i povežite ga s čvorom za otklanjanje pogrešaka kako bismo mogli vidjeti odgovore. Postavite mqtt ulaznu napomenu na localhost (već bi trebalo biti postavljeno) i unesite+/+/+za temu tako da uhvati sav promet.
Unesite sljedeći slijed postavki u čvor za ubrizgavanje.
Najprije provjerite povezanost pomoću
Tema: cmnd/sonoff/Status
Poruka: 6
kliknite "Ubrizgaj jednom pri pokretanju". Rasporedi. Trebali bismo vidjeti otklanjanje pogrešaka uključujući 7 redaka podataka iz stat/sonoff/STATUS6
Unesite temu: cmnd/sonoff/Tema iPoruka: loungelight. Rasporedi. Ovo mijenja naziv prekidača iz sonoff u loungelight
Kartica za otklanjanje pogrešaka trebala bi prikazivati ponovno pokretanje uređaja s novim imenom/temom
Tema: cmnd/loungelight/MqttUser
Poruka: loungelight
Kliknite na implementaciju. Otklanjanje pogrešaka treba se vidjeti sa stat/loungelight/RESULT pomoću {"MtqqUser": "loungelight"}
Tema: cmnd/loungelight/MqttPassword
Poruka: loungelightPW (imajte na umu da je ovo maštovitije!)
Očistite karticu za otklanjanje pogrešaka i Postavi.
Odgovor treba vidjeti sa stat/loungelight/RESULT sa {"MqttPassword": "loungelightPW"}
Sada unesite NodeRed i NodeRedPW kao korisničko ime i lozinku u čvor mqtt out. To je putem ikone olovke poslužitelja i kartice sigurnosti u prozoru koji se otvori. Ovo se automatski kopira na druge čvorove MQTT.
Ponovno provjerite sa
Tema: cmnd/loungelight/Status i poruka: 6. Rasporedi.
I da je odgovor poslan.
Tako smo u ovom trenutku preimenovali naš Sonof uređaj tako da će slušati teme cmnd/loungelight/…… i prijaviti se na MQTT sever s korisničkim imenom loungelight i lozinkom loungelightPW. Također smo postavili korisničko ime i lozinku za Node-Red.
Zatim moramo reći poslužitelju komaraca MQTT da prihvaća samo klijente s korisničkim imenima i navesti korisnička imena i lozinke koje treba prihvatiti.
Postupak je sljedeći:
- Zaustavite komarce
- Izradite vlastitu konfiguracijsku datoteku
- Uredite konfiguracijsku datoteku
- Stvorite datoteku zaporke
- Dodajte korisnike/lozinke.
Zato se prijavite s novom PuTTY sesijom i pokrenite sljedeće naredbe:
sudo /etc/init.d/mosquitzaustaviti
cd /etc/mosquitto/conf.d/
sudo nano mosquitto.conf Pokreće uređivač.
Dodajte retke:
allow_anonymous false
lozinka_datoteka /etc/mosquitto/conf.d/passwd
require_certificate false
Spremi i izađi (Ctrl+X), Y, enter.
sudo touch passwd Ovo stvara datoteku lozinke, a sljedeće upute dodaju imena i lozinke.
sudo mosquitto_passwd -b /etc/mosquitto/conf.d/passwd loungelight loungelightPW
sudo mosquitto_passwd -b /etc/mosquitto/conf.d/passwd NodeRed NodeRedPW
sudo /etc/init.d/mosquitza ponovno pokretanje
Napomena pri dodavanju novog uređaja morat ćete unijeti korisnika i lozinku putem serijskog porta te ih dodati u datoteku sa lozinkom ili privremeno promijeniti konfiguracijsku datoteku mosquitto i komentirati (dodati # na početku retka) retke "allow_anonymous false "i" lozinka_datoteka /etc/mosquitto/conf.d/passwd ", a zatim ih poništite kada su pojedinosti poslane na uređaj i dodane u datoteku sa lozinkom kao gore.
Promijenili smo naziv sonoff u loungelight pa smo ažurirali izlazni čvor mqtt (spojen na prekidač) kako bi koristio temu cmnd/loungelight/POWER.
Pritisnite Rasporedi i provjerite da čvorovi mqtt prikazuju "povezano".
Zatim pokušajte s gumbom za prebacivanje i potražite pogrešku koja prikazuje kako prekidač Sonoff reagira. Primijetit ćete da uređaj prikazuje promjenu s temom: stat/loungelight/POWER. Zato sada promijenite ulazni čvor koji je postavljen na cmnd/sonoff/POWER na stat/loungelight/POWER. Ovo pokriće možemo iskoristiti kao prazninu u našoj funkcionalnosti. Sustav kako je prvotno postavljen bit će sinkroniziran sa svim prijavljenim korisnicima, ali se neće sinkronizirati s promjenama prekidača pritiskom na tipku na prekidaču Sonoff. Zato sada spojite izlaz ulaznog čvora stat/loungelight/POWER mqtt na ulaz prekidača (LHS). Sada dvaput pritisnite prekidač i poništite "ako poruka stigne na ulaz, prijeđite na izlaz". Ovo otvara neke nove opcije - odaberite 'ikona prekidača prikazuje stanje ulaza'. Rasporedi. Dakle, sada imamo dobru povratnu spregu. Položaj prekidača na upravljačkoj ploči uvijek će se promijeniti kada se Sonoff prekidač promijeni, bez obzira na to gdje je promjena pokrenuta.
Tako sada imamo siguran, samostalan sustav kućne automatizacije koji je pokrenut i spreman za proširenje na sve što želite. U sljedećem odjeljku pokazat ću neke svoje dosadašnje eksperimente i izazove s kojima se planiram suočiti.
Korak 8: Početni koraci za proširenje
Imam još jednu ploču za razvoj LED dioda senzora Sonoff-Tasmota sa senzorima za kućnu automatizaciju, koja prikazuje neke od daljnjih mogućnosti firmvera Sonoff-Tasmota:
Mjerenje temperature i vlažnosti
Otkrivanje uljeza (prekidač ulaz)
IC daljinski (za televizore itd.)
LED žice - i RGB i NeoPixel (pojedinačno adresabilne)
I2C senzori
Za gore navedeno koristim ESP12F i prilagođenu PCB. NodeMCU i matična ploča mogli bi se jednako koristiti. To omogućuje ove dodatne funkcije bez povezivanja u Sonoff uređaj, pa je stoga mnogo sigurniji pristup. S ulaznom temperaturom uspio sam dovršiti svoju automatizaciju električne deke.
Glazba i internetski radio lako se mogu dodati. Ovo otvara mogućnosti da se određene postaje ili albumi uključe u određeno vrijeme ili možda kao odgovor na otkrivanje posjetitelja (telefona). Ova povezana instrukcija dostupna je u visokokvalitetnom glazbenom playeru i internetskom radiju s kontrolom pametnog telefona. Budući da to također pokreće Node-RED, čak bi trebalo biti moguće imati više od jednog zvučnog sustava i koristiti MQTT komunikaciju za njihovo upravljanje.
Također sam istraživao Node-Red, uključujući slanje e-pošte i glasovna upozorenja. Također postoji mogućnost da sustav otkrije kada ste unutra/van - pinganjem IP adrese vašeg mobilnog telefona. Node -Red također može pristupiti vremenu i vijestima - tako da se mogu dodati informacije, kao i automatizirati.
Treba naučiti nekoliko trikova - ali oni drugi put postaju mrtvi.
Još jedna avenija dodaje zaslon pi kako bi prikazala nadzornu ploču. Ovo je 'posao u tijeku' - ili drugim riječima nisam previše sretan. Zaslon koji sam dobio teško je rotirati u portretni način, a preglednik Chromium je bolno spor. Alternativa bi bila uzeti stari tablet na ebayu i koristiti ga. Možda ću pokušati s Pi 2 i provjeriti donosi li to dovoljno poboljšanja (model B korišten za ovaj razvoj).
Nadam se da će vam ovo započeti i da vam je mašta uzavrela. Potencijalni opseg je ogroman. Mogli bi čak i izmijeniti Sonoffov kod za druge senzore ako je potrebno.
Sveukupno sam zadivljen što ovaj sustav može učiniti. Moj je prvotni cilj bio jednostavno prebaciti prekidač sa pametnog telefona na pouzdan način putem samostalnog sustava. Imao sam vizije da trebam upravljati poslužiteljima i klijentima i pisati html za korisničko sučelje. Tamo gdje je ovo završilo je daleko ispred ovoga, s većom sigurnošću, izvrsnom pouzdanošću, fantastičnim korisničkim sučeljem, programiranjem povlačenja i ispuštanja i velikim potencijalom za proširenje. I sve to uz mnogo manje truda.
Mikrofon
Korak 9: Dodatak - Učitavanje iz Raspbian Stretch Lite
Ova opcija izbjegava zlonamjerni softver koji dolazi s punom verzijom Raspbian Stretch. Većina toga neće biti potrebna kada koristite Pi za kućnu automatizaciju. Međutim, Node-Red se mora instalirati.
Postupite kao u 1. koraku, ali koristite Raspbian Stretch Lite umjesto Raspbian Stretch.
Umjesto Koraka 2 učinite sljedeće:
sudo apt -y instalirajte npm
npm -v treba vratiti: 1.4.21 ili kasnije
sudo npm install -g n
sudo n 8.9.0
Sada možemo koristiti upravitelj paketa čvorova za instalaciju Node-Red:
sudo npm install node-red --global --unsafe-perm
To će dati nekoliko poruka o pogrešci zbog netočne adrese. Sustav, međutim, vrši ‘kompajliranje izvora’ kako bi ispravio ovaj problem. Ponovite li gornje upute (nije potrebno), greške se ne pojavljuju.
Sada imamo instaliran Node-Red i prateće pakete i možemo prijeći na korak 3, učitavanje komaraca.
Drugoplasirani na natjecanju za bežičnu vezu