Sadržaj:

Moćan samostalni sistem kućne automatizacije - Pi, Sonoff, ESP8266 i Node -Red: 9 koraka (sa slikama)
Moćan samostalni sistem kućne automatizacije - Pi, Sonoff, ESP8266 i Node -Red: 9 koraka (sa slikama)

Video: Moćan samostalni sistem kućne automatizacije - Pi, Sonoff, ESP8266 i Node -Red: 9 koraka (sa slikama)

Video: Moćan samostalni sistem kućne automatizacije - Pi, Sonoff, ESP8266 i Node -Red: 9 koraka (sa slikama)
Video: The Choice is Ours (2016) Official Full Version 2024, Novembar
Anonim
Moćan samostalni sistem kućne automatizacije - Pi, Sonoff, ESP8266 i Node -Red
Moćan samostalni sistem kućne automatizacije - Pi, Sonoff, ESP8266 i Node -Red

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 sa odličnim prilagodljivim web sučeljem. Opseg proširenja/ dodavanja funkcija je ogroman, uključujući slanje e -pošte, twitter poruka, senzora za čitanje (npr. Temperature). Lako možete postaviti pravila, npr. - ako je temperatura ispod 15C u 23 sata, uključite električno ćebe na 30 minuta. Sistem 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 oko postavljanja sistema, 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 moćan sistem kućne automatizacije koji je u potpunosti pod vlastitom kontrolom i u potpunosti je na lokalnoj mreži. Mnogi sistemi prikazani na Instructables rade sa serverima zasnovanim na 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/sistemom ako bi pristup izvana bio koristan (Google Pi OpenVPN za upute).

Ovaj sistem zahtijeva reprogramiranje Sonoff uređaja sa sjajnim sistemom 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 možete i sami napraviti svoje uređaje koristeći module ESP8266 ili ih postaviti na druge stavke radi pružanja bežične veze.

Najveći zadatak je postavljanje Raspberry Pi -a kao čvorišta. Ovo pokreće posrednika (ili poslužitelj) MQTT koji upravlja komunikacijom s povezanim uređajima. Pi takođe pokreće sistem nazvan Node-Red koji može presretati poruke i podatke i izlazne komande-na primjer kada treba uključiti električni pokrivač. Node-Red takođe nudi interfejs za posluživanje veb stranice na koju se možete prijaviti putem pametnog telefona/tableta/računara/laptopa, da vidite šta se dešava i omogućite ručno uključivanje svetala itd.

Moj cilj s ovim uputstvom je dati svaki korak dovoljno detaljno da početnik može pokrenuti sistem.

Koraci su sljedeći:

  • Učitajte Pi sa Rasbian Stretch
  • Ažurirajte i dodajte funkcije u Node-Red
  • Instalirajte Mosquitto MQTT brokera
  • Postavite Arduino okruženje za postavljanje firmvera Sonoff-Tasmota
  • Ponovo programirajte prekidač Sonoff
  • Postavite Node-Red sučelje
  • Testirajte da li sve radi.

Hardver koji će vam trebati:

  • Raspberry Pi i napajanje (i tastatura i monitor za početno postavljanje) (ovdje se koristi model B)
  • Sonoff Switch
  • USB serijski pretvarač
  • Opcionalno - razvojna ploča ESP -a, poput NodeMCU -a.

Moje iskustvo s Raspberry Pi -om pokazuje da postavljanje bilo čega uključuje znatno veću bol nego što se moglo zamisliti da stvari ne funkcioniraju ili se zaglave na nekom trivijalnom koraku gdje je objašnjenje moglo biti bolje. Forumi ne dobivaju uvijek uspješne 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 da koristim trenutnu i nedavno objavljenu verziju (Stretch) i sve sam ponovio. Ovaj vodič omogućava kopiranje i lijepljenje uputstava u Pi. Dakle, trebali biste završiti 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 sa SD karticom od 8Gb ili 16Gb. Preuzmite najnoviju verziju sa:

www.raspberrypi.org/downloads/

Glavna nit ovdje pretpostavlja da je puna verzija učitana. Međutim, 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.

Raspakiranjem preuzete datoteke dobijate fasciklu sa.img datotekom. 7Zip se preporučuje za Windows (i The Unarchiver Mac). Slika se mora narezati na SD karticu - ali se mora koristiti poseban program jer sistem datoteka nije kompatibilan sa sustavom Windows. Preporučeni softver se zove Etcher i može se preuzeti sa:

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 sretni što je možete pronaći ako se prijavite na svoj 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 suprotnom slijedite donji vodič.

Povežite Pi na internet, ekran, miš i tastaturu i spojite ga na napajanje. Prvo što ćemo učiniti je omogućiti SSH tako da većinu postavki možemo obaviti iz udobnosti na računaru. Naravno, to se može učiniti izravno, ali mnogo pomaže ako možete slijediti ovaj vodič na istom uređaju kao onaj koji vozi Pi i koristiti kopiranje i lijepljenje za većinu uputa. Takođe u mom slučaju moja radna stanica za računar je lepa i udobna, ali nije dovoljno velika za pi.

Postoji vodič za dobar dio posla na YouTube videu. Tu sam počeo. Videozapis možete pokrenuti zajedno sa ovim uputama. Međutim, kada sam ponovo prolazio kroz 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 bolje razumjeli MQTT, Node-Red i široki postupak postavljanja. Video je dugačak 38 minuta pa se ugodno 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 Red i na kraju instalacija Mosquitto. Ključna vremena u slučaju da se želite vratiti na odjeljak:

00:00 Uvod u video

03:00 Node Red demonstracija

14:14 Uvoz stavki nadzorne ploče u Node Red

21:05 Pi početno podešavanje, uključujući SSH

23:35 Instalacija Node Red koda za podršku

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 korištenja “”). Ovo oblikovanje se zanemaruje kada ih kopirate i zalijepite u Pi.

Uvod u Node Red će vam dati ideju o tome šta sistem može učiniti i pružiti sliku gdje ćemo završiti.

YouTube video je 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 ‘gore+strelica prema dolje’ na gornjoj traci radne površine ili unesite sljedeće upute u prozor terminala/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čunara 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 može koristiti i kao serijsko sučelje i može raditi na Telnet -u. Git je dostupan na:

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 lozinku.

Sada slijedite upute ovdje i po želji pokrenite video od 23:35. U većini slučajeva možete kopirati i zalijepiti. Označite tekst i koristite 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 instrukcije.

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 sistem 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 pokrene, prijavite se ponovo kao i prije.

Prešao sam na jednostavniji i pouzdaniji način učitavanja Node-Reda-slijedeći pristup na https://nodered.org/docs/hardware/raspberrypi. Ovo koristi skriptu i instalirat će ili nadograditi Node-Red-tako da je pristup isti i za potpune ili jednostavnije verzije Raspbian Stretch-a. Zato unesite:

bash <(curl -sL

Unesite Y kada se to od vas zatraži (dva puta). Ova skripta također učitava datoteke potrebne za omogućavanje automatskog pokretanja Node-Red-a.

Dakle, u ovom trenutku imamo učitano i ažurirano pi i 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 update

sudo apt-get install mosquitto mosquitto-clients

Y

sudo /etc/init.d/mosquitto stop

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.

Dosad ćete znati da MQTT funkcionira prema uređaju i potrebni su mu podaci pretplatom na 'temu'. Posrednik će poslati sve podatke sa istom „temom“. Zatim uređaj koji želi poslati podatke/upute objavljuje ovo posredniku koristeći istu 'temu'.

Dakle, u jednoj PuTTY sesiji unesite:

mosquitto_sub -d -t pozdrav/svijet

Ovo je uputstvo za pretplatu na temu: hello/world.

U drugu upišite:

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

Ovo je uputstvo za objavljivanje sa istom temom sa porukom. Tekst: "Pozdrav iz terminala 2!" sada bi se trebao pojaviti na drugom terminalu.

Bravo što ste došli 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ši i zabavniji. Zatvorite dvije sesije PuTTY korištene za MQTT test.

Korak 4: Postavljanje crvenog sučelja čvora

Prvo moramo pokrenuti Node Red. Unesite uputstvo:

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

Pričekajte da se pokrene i vidjet ćete tekst "Pokrenuti 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 na sljedeći način:

Sada možete slijediti primjere Node Red -a koji počinju u 33:00 ili prijeći na malo dodatnog postavljanja i učitavanja prvog toka koji će pokazati vezu s MQTT -om i biti spreman za pokretanje našeg prekidača.

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 projekat. Možete slijediti moja uputstva i/ili uvesti tokove 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 koristite twiddly za promjenu u niz i unesite: Pozdrav od mene. Ostavite temu praznom jer ovo možemo unijeti u čvor MQTT. Kliknite Gotovo

Sada dvaput kliknite na čvor MQTT. Kliknite na ikonu olovke desno od odjeljka Server. Ovo otvara novi dijalog. Unesite: localhost u odjeljak Server. Kliknite Dodaj. Sada, natrag u čvoru Uređivanje mqtt izlaza, unesite našu temu u odjeljak Tema: zdravo/svijet. Postavite QoS na 1. Kliknite Gotovo. Sada kliknite na Implementiraj. Trebali biste vidjeti zelenu mrlju i "povezano" ispod mqtt čvora.

Sada dodajte još dva čvora - input mqtt i output debug, i spojite ih 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. Kliknite Gotovo. Zatim kliknite Implementiraj i kliknite karticu za otklanjanje grešaka u desnom oknu. Sada kliknite na sivi kvadrat s lijeve strane čvora za ubrizgavanje ‘Zdravo od mene’. Ovo šalje tekstualni korisni teret posredniku MQTT sa temom hello/world. Posrednik zna da se ulazni čvor mqtt pretplatio na istu temu i tako prosljeđuje korisni teret. Ulazni čvor mqtt tada šalje ovo na karticu za otklanjanje grešaka (RHS) i trebao bi se pojaviti tekst 'Hello from me'.

Ovo označava još jedno polje jer Node Red razgovara sa 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ćava sofisticiranu automatizaciju i pruža odlično korisničko sučelje.

Sada možemo napraviti nekoliko malih promjena i postaviti protoke za naš prekidač Sonoff.

Zato izbrišite ulazni čvor za ubrizgavanje (kliknite za označavanje i pritisnite tipku za brisanje). Sada dodajte prekidač iz odjeljka nadzorne ploče i spojite ga na izlaz mqtt. Dupli klik na prekidač. Kliknite olovku s desne strane Grupe. Unesite ime: Light. 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, postavite uključeno i isključeno korisno opterećenje. Upotrijebite twidlys za odabir niza i unesite ON za On teret i OFF za OFF teret OFF. Kliknite 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 sa Sonoffom. Pronalaženje zalutalog prostora može potrajati oko sat vremena - vjerujte mi! Također sam otišao na nadzornu ploču> Tema i odabrao: Tamno. Pritisnite Deploy i odaberite karticu debug.

Sada otvorite novu sesiju pregledača u novom prozoru i dimenzionirajte je poput mobilnog telefona 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 ekran sa salonom i svjetlom i prebaciti se. Pritisnite prekidač za uključivanje i isključivanje. Prozor za otklanjanje greš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 sinhroniziran. Nije važno što naš Sonoff još nije povezan. Kada se to dogodi, pretplatom na temu, pokupit će poruku/korisni teret i reagirati 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 tada omogućili Node-RED-u da se automatski pokreće pri svakom pokretanju i nakon pada, unesite (otvorite PuTTY sesiju):

sudo systemctl omogući nodered.service

Ako ikada trebate ovo onemogućiti, unesite:

sudo systemctl onemogući nodered.service

Sada isključite pi sa sudo isključivanjem i isključite napajanje.

Sada je naš Pi zaključan i učitan spreman za akciju. Imamo naš PC/mobilni telefon koji se povezuje sa Node Red i ovo razgovara sa našim MQTT serverom. Ovo je bilo dugo i vrijedilo je velikog tapšanja po leđima. Dobro urađeno. Sljedeći, Arduino bit, mi je bio mnogo lakši!

Korak 5: Postavljanje Arduino sistema 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 zabilježiti ključne aspekte za koje sam smatrao da su važni ili da su zapeli.

Upute su dobre, ali trebaju pažljivu pozornost na detalje. Spotaknuo me je potreba za fasciklom ESP8266 unutar fascikle koja se nalazila u drugoj fascikli po imenu ESP8266 i stoga sam propustio dva nivoa.

Slijedio sam preporuku za potpuno odvojeno Arduino postavljanje. 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 odvojeno 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 sa https://github.com/arendst/Sonoff-Tasmota glavne stranice putem: Kloniraj ili Preuzmi> Preuzmi ZIP. Raspakirajte datoteku u novu mapu.

Pažljivo slijedite upute. Nisam radio Opcionalno: Pripremite se za OTA odjeljak za otpremanje. Ostavit ćemo ovo za još jedan dan.

Sada pokrenite Arduino IDE (dvostruki klik na 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 u datoteku user-config.h i unijeti svoj Wi-Fi SSID i lozinku te MQTT_HOST (zamijenite ‘domus1’-drugu referencu sa svojom Pi IP adresom). Kasnije ćete možda željeti unijeti i MQTT korisnika i lozinku. Prije preuzimanja provjerite postavke ploče pod Alati. Bit će potrebno nekoliko promjena kako bi zadovoljili zahtjeve navedene u Wiki. Sada kliknite na kompajliraj (označite ikonu). 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žete ili samo ići naprijed i bljeskati Sonoff prekidač ili prvo možete bljeskati ESP8266 modul. Učinio sam ovo drugo, djelomično zato što moji prekidači još nisu stigli (tek su stigli dok ovo kucam!), Ali i iz predostrožnosti jer je bljeskanje prekidača Sonoff jednosmjeran korak jer originalni firmver nije javno dostupan koliko Svjestan sam. Imam nekoliko NodeMCU ploča. Lako se povezuju jer imaju ugrađeni USB u serijski pretvarač. Međutim, metoda resetovanja nodemcu -a ne radi sa ovim sistemom. Zato ostavite Tools> Reset Method postavljenim na “ck”. Učinite uobičajeno ručno postavljanje bljeskalice držeći tipku za bljeskalicu (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 ovo dok se Arduino IDE prevodi!

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 pod kojim okolnostima nemojte priključivati na struju ako je kućište otvoreno“. Imajte na umu da PCB (barem na Sonoff Basic-u (linijski prekidač) ima samo udaljenosti "jednostruke izolacije" između niskonaponske sekcije i mreže. Stoga bi bilo koji dio Sonoff-ovog kruga trebali tretirati kao mrežni napon. Tasmota GitHub pokazuje povezivanje senzora 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 ovo zasebno s odgovarajućom dvostrukom izolacijom ili uzemljeno napajanje.

Utični prekidač Sonoff S20 dobro je polazište jer mu nije potrebno mrežno 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, ovo nema odgovarajuće mogućnosti za zadovoljavanje potreba Sonoffa 3.3v. FTDI specifikacija kaže maksimalno 50 ma. Sljedeća najbolja alternativa je ona koja koristi CP2102 čip. Ovo, međutim, ima ograničenje od 100 ma koje još uvijek nije dovoljno. Očigledno je da mnogi koriste ovaj pretvarač izravno, ali postoje i izvještaji o učitavanju neuspješnom. Ograničio bih vrijeme povezivanja jer će se zagrijati pod opterećenjem. Učinite to na vlastitu odgovornost. Idealno rješenje je imati regulator od 3,3 V, npr. an AMS1117 3.3. Napravio sam malu tiskanu ploču kako bih to omogućio. Pogledajte Programer za Sonoff uređaje.

Moj redosled programiranja je sledeći:

Otvorite Arduino IDE.

U okviru Alati provjerite postavke kao na Wiki.

Unesite potrebne izmjene na user_config.h. Postavio sam Wi -Fi SSID i lozinku, adresu brokera MQTT -a i detalje o vremenskoj zoni/ljetno računanje vremena.

Kliknite "potvrdi" da biste provjerili je li u redu.

Uključite USB serijski pretvarač (samostalno) u računar. Zabilježite broj porta.

Sada odspojite USB serijski kabel s računala i spojite ga na prekidač Sonoff. Provjerite jesu li uzemljenje i veze 3v3 ispravne (uzemljenje je spojeno na ravninu uzemljenja na Sonoff PCB -u).

Držite programator tako da kontakti budu sigurni, a istovremeno pritisnite dugme.

Sada priključite USB kabl u računar, proverite da li je broj porta tačan (u Alatkama), a zatim kliknite na dugme Preuzmi.

I dalje držim dugme tijekom programiranja jer ne želim ometati veze.

Kada završite, trebali biste vidjeti ekran kako slijedi:

Image
Image

Sonoffu je potrebno nekoliko bitova podataka za povezivanje s našim sistemom: SSID i lozinka WiFi mreže lokalne mreže i Pi IP adresa. Postoji nekoliko načina za to, a jedan od njih je izmjena datoteke config.ino kao što je ranije navedeno. Ako imate pametni telefon, možete (nakon ponovnog sastavljanja prekidača) pritisnuti dugme Sonoff 4 puta prilično brzo da biste ga prebacili u način rada web servera. LED će treperiti. Morao sam nekoliko puta pokušati da ovo uspije. Zatim na svom pametnom telefonu potražite novu Sonoff mrežu i povežite se. Pojavit će se web stranica na kojoj možete postaviti potrebne podatke. Pi IP adresa prelazi u naziv hosta. Također sam promijenio 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).

Komande za unos:

SSId vašegWiFiSSID

Zaporite svojuWiFiPassword

MqttHost 192.168.x.y (PI IP adresa)

Možete unijeti i SSId1 i Lozinku1, nakon čega slijedi nešto dugo i neupotrebljivo da biste ovo učinkovito onemogućili.

Sada možete uokviriti prekidač Sonoff, otvoriti kontrolnu ploču Node-Red i Node-red i kliknuti dugme za prebacivanje i pogledati karticu za otklanjanje grešaka koja bi sada trebala sadržavati odgovore iz Sonoffa. Dakle, postigli smo još jedan veliki korak - naš prvi prekidač je vođen sa računara/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 i onemogućavanje anonimnih korisnika. Ovo je prilično jednostavno postaviti. I tako sada o sigurnosti.

Korak 7: Sigurnost

MQTT dozvoljava 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 vjerovatno najlakši način za slanje. Prvo se odlučite za konvenciju imenovanja. Jedna je mogućnost zasnivanje imena 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 tipki).

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 lozinku praznima jer ćemo ih postaviti u čvor za ubrizgavanje. Također postavite mqtt ulazni čvor i povežite ga sa čvorom za otklanjanje grešaka kako bismo mogli vidjeti odgovore. Postavite mqtt ulaznu napomenu na localhost (već bi trebalo biti postavljeno) i unesite+/+/+za temu tako da hvata sav promet.

Unesite sljedeći niz postavki u čvor za ubrizgavanje.

Prvo provjerite povezanost sa

Tema: cmnd/sonoff/Status

Poruka: 6

kliknite "Ubrizgaj jednom pri pokretanju". Razviti. Trebali bismo vidjeti otklanjanje grešaka uključujući 7 redova podataka iz stat/sonoff/STATUS6

Unesite temu: cmnd/sonoff/Tema iPoruka: loungelight. Razviti. Ovo mijenja naziv prekidača iz sonoff u loungelight

Kartica za otklanjanje grešaka treba prikazati ponovno pokretanje uređaja s novim imenom/temom

Tema: cmnd/loungelight/MqttUser

Poruka: loungelight

Kliknite na implementaciju. Otklanjanje grešaka treba vidjeti sa stat/loungelight/RESULT sa {“MtqqUser”: “loungelight”}

Tema: cmnd/loungelight/MqttPassword

Poruka: loungelightPW (imajte na umu da ste maštovitiji od ovoga!)

Očistite karticu za otklanjanje greš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 mqtt out čvor. Ovo je putem ikone olovke servera i kartice sigurnosti u prozoru koji se otvori. Ovo se automatski kopira na druge MQTT čvorove.

Proverite ponovo sa

Tema: cmnd/loungelight/Status i poruka: 6. Razviti.

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 sa 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
  • Kreirajte vlastitu konfiguracijsku datoteku
  • Uredite konfiguracionu datoteku
  • Kreirajte datoteku lozinke
  • Dodajte korisnike/lozinke.

Zato se prijavite s novom PuTTY sesijom i pokrenite sljedeće naredbe:

sudo /etc/init.d/mosquitto stop

cd /etc/mosquitto/conf.d/

sudo nano mosquitto.conf Pokreće uređivač.

Dodajte redove:

allow_anonymous false

lozinka_datoteka /etc/mosquitto/conf.d/passwd

require_certificate false

Sačuvaj 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: prilikom dodavanja novog uređaja morat ćete unijeti korisnika i lozinku putem serijskog porta te ih dodati u datoteku sa lozinkom ili privremeno promijeniti konfiguracionu datoteku komaraca i komentirati (dodati # na početku retka) redove "allow_anonymous false "i" password_file /etc/mosquitto/conf.d/passwd ", a zatim ih resetirajte kada su detalji poslani na uređaj i dodani u datoteku lozinke kao gore.

Promijenili smo naziv sonoff u loungelight pa smo ažurirali mqtt izlazni čvor (spojen na prekidač) da koristi temu cmnd/loungelight/POWER.

Pritisnite Deploy i provjerite da mqtt čvorovi prikazuju 'connected'.

Zatim pokušajte sa prekidačem i potražite otklanjanje grešaka koje pokazuju da prekidač Sonoff reaguje. Primijetit ćete da uređaj prikazuje promjenu sa temom: stat/loungelight/POWER. Dakle, 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. Sistem koji je prvobitno postavljen bit će sinhroniziran sa svim prijavljenim korisnicima, ali se neće sinkronizirati sa promjenama prekidača pritiskom na tipku na prekidaču Sonoff. Dakle, sada spojite izlaz ulaznog čvora stat/loungelight/POWER mqtt na ulaz prekidača (LHS). Sada dvaput kliknite prekidač i poništite oznaku "ako poruka stigne na ulaz, prijeđite na izlaz". Ovo otvara neke nove opcije - odaberite 'ikona prekidača prikazuje stanje ulaza'. Razviti. Tako da 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.

Dakle, sada imamo siguran, samostalan sistem 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 za senzore 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 mogu 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čnog pokrivača.

Lako se mogu dodati muzika i Internet radio. Ovo otvara opcije za uključivanje određenih stanica ili albuma u određeno vrijeme ili možda kao odgovor na otkrivanje posjetitelja (telefona). Ovo povezano uputstvo nalazi se na visokokvalitetnom muzičkom plejeru i internetskom radiju sa kontrolom pametnog telefona. Budući da ovo također pokreće Node-RED, čak bi trebalo biti moguće imati više od jednog zvučnog sistema 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đe postoji mogućnost da sistem otkrije kada ste unutra/van - pinganjem IP adrese vašeg mobilnog telefona. Node -Red takođe može pristupiti vremenu i vijestima - tako da se mogu dodati informacije, kao i automatizirati.

Postoji nekoliko trikova koje treba naučiti - ali oni drugi put postaju mrtvi.

Još jedna avenija dodaje prikaz pi da prikaže kontrolnu ploču. Ovo je 'posao u toku' - ili drugim riječima nisam previše sretan. Ekran koji sam dobio teško je rotirati u portretni način, a preglednik Chromium je bolno spor. Alternativa bi bila da na ebayu pokupite stari tablet i upotrijebite 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 ćete 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.

Sve u svemu, bio sam zadivljen šta ovaj sistem može da uradi. Moj prvobitni cilj je bio samo prebaciti prekidač sa pametnog telefona na pouzdan način putem samostalnog sistema. Imao sam vizije o potrebi upravljanja serverima i klijentima i pisanju html -a za korisničko sučelje. Tamo gdje je ovo završilo je daleko ispred toga, 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.

Mike

Korak 9: Dodatak - Učitavanje iz Raspbian Stretch Lite -a

Ova opcija izbjegava zlonamjerni softver koji dolazi s punom Raspbian Stretch verzijom. Većina ovoga neće biti potrebna kada koristite Pi za kućnu automatizaciju. Međutim, Node-Red mora biti instaliran.

Nastavite kao u koraku 1, 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 instaliranje Node-Red:

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

Ovo će dati nekoliko poruka o grešci zbog netočne adrese. Međutim, sistem radi „izvornu kompajliranje“kako bi ispravio ovaj problem. Ako ponovite gore navedena uputstva (nije potrebno), greške se ne pojavljuju.

Sada imamo instaliran Node-Red i njegove prateće pakete i možemo prijeći na korak 3, učitavanje komaraca.

Bežično takmičenje
Bežično takmičenje
Bežično takmičenje
Bežično takmičenje

Drugoplasirani u takmičenju za bežičnu vezu

Preporučuje se: