Obsah:

Výkonný samostatný domáci automatizačný systém - Pi, Sonoff, ESP8266 a Node -Red: 9 krokov (s obrázkami)
Výkonný samostatný domáci automatizačný systém - Pi, Sonoff, ESP8266 a Node -Red: 9 krokov (s obrázkami)

Video: Výkonný samostatný domáci automatizačný systém - Pi, Sonoff, ESP8266 a Node -Red: 9 krokov (s obrázkami)

Video: Výkonný samostatný domáci automatizačný systém - Pi, Sonoff, ESP8266 a Node -Red: 9 krokov (s obrázkami)
Video: 40 полезных автотоваров с Aliexpress, которые упростят жизнь любому автовладельцу #6 2024, December
Anonim
Výkonný samostatný domáci automatizačný systém - Pi, Sonoff, ESP8266 a Node -Red
Výkonný samostatný domáci automatizačný systém - Pi, Sonoff, ESP8266 a Node -Red

Táto príručka by vás mala dostať na prvú základňu, kde môžete zapnúť/vypnúť svetlo alebo zariadenie prostredníctvom akéhokoľvek zariadenia, ktoré sa môže pripojiť k vašej miestnej sieti, a so skvelým prispôsobiteľným webovým rozhraním. Rozsah funkcií rozšírenia/ pridania je obrovský, vrátane odosielania e -mailov, správ na twitteri, senzorov čítania (napr. Teploty). Jednoducho môžete nastaviť pravidlá napr. - ak je teplota nižšia ako 15 ° C o 23:00, zapnite elektrickú deku na 30 minút. Systém používa protokol MQTT s TCP, ktorý je podstatne spoľahlivejší ako UDP - ktorý prekvapivo používajú niektoré komerčné zariadenia na domácu automatizáciu. Akonáhle je tu popísaná tvrdá práca na nastavení systému, hotová zábava, môže sa začať. Node Red ponúka fantastické užívateľské rozhranie, ktoré je intuitívne, rýchle a jednoduché na nastavenie a poskytuje úžasné možnosti.

Výsledkom je výkonný systém automatizácie domácnosti, ktorý je plne pod vlastnou kontrolou a je výlučne v lokálnej sieti. Mnohé zo systémov uvedených v dokumente Instructables fungujú so servermi založenými na cloude, a preto predstavujú bezpečnostné riziko a môžu vyžadovať predplatné. Ich nastavenie je jednoduchšie, ale majú vyššie bezpečnostné riziko a potenciálne vyššie náklady. Mal by som dodať, že k Pi je možné nastaviť VPN (virtuálnu súkromnú sieť), aby bolo možné zabezpečené pripojenie k domácej sieti/systému, ak by bol prístup zvonku užitočný (pokyny nájdete v programe Google Pi OpenVPN).

Tento systém vyžaduje preprogramovanie zariadení Sonoff pomocou skvelého systému s otvoreným zdrojovým kódom s názvom Sonoff-Tasmoda. To je možné vykonať pomocou špeciálneho nastavenia Arduino a prevodníka USB na sériový port. Zariadenia Sonoff používajú Wi-Fi čip ESP8266, takže si môžete tiež vytvoriť vlastné zariadenie pomocou modulov ESP8266 alebo ich prispôsobiť iným položkám a poskytovať tak bezdrôtové pripojenie.

Najväčšou úlohou je nastaviť Raspberry Pi ako rozbočovač. Spustí sa broker (alebo server) MQTT, ktorý spravuje komunikáciu s pripojenými zariadeniami. Pi tiež používa systém s názvom Node-Red, ktorý dokáže zachytávať správy, údaje a výstupné príkazy-napríklad kedy zapnúť elektrickú prikrývku. Node-Red tiež poskytuje rozhranie pre webové stránky, na ktoré sa môžete prihlásiť pomocou smartfónu/tabletu/PC/prenosného počítača, vidieť, čo sa deje, a povoliť manuálne prepínanie svetiel atď.

Mojím cieľom s týmto návodom je poskytnúť každý krok dostatočne podrobne, aby nováčik mohol uviesť systém do prevádzky.

Kroky sú tieto:

  • Nahrajte Pi s Rasbian Stretch
  • Aktualizujte a pridajte funkcie do Node-Red
  • Nainštalujte si brokera Mosquitto MQTT
  • Nastavte prostredie Arduino na nahrávanie firmvéru Sonoff-Tasmota
  • Znovu naprogramujte prepínač Sonoff
  • Nastavte rozhranie Node-Red
  • Otestujte, či to všetko funguje.

Potrebný hardvér:

  • Raspberry Pi a napájací zdroj (a klávesnica a monitor na počiatočné nastavenie) (tu sa používa model B)
  • Prepínač Sonoff
  • Sériový prevodník USB
  • Voliteľné - vývojová doska ESP, napríklad NodeMCU.

Moja skúsenosť s Raspberry Pi je, že zdá sa, že nastavenie čohokoľvek vyžaduje oveľa väčšiu bolesť, ako by ste si mohli predstavovať, keď veci nefungujú alebo uviaznu v nejakom triviálnom kroku, kde by vysvetlenie mohlo byť lepšie. Fórum nedostane vždy rady, ktoré fungujú! Našiel som niekoľko trás, ktoré z jedného alebo druhého dôvodu jednoducho nefungovali. Toto stálo 3 dni! Potom som všetko vymazal a začal odznova a dokončil som to za necelý (dlhý) deň. Toto však použilo staršiu Raspian Jessie. Potom som našiel spôsob, ako použiť aktuálnu a nedávno vydanú verziu (Stretch), a všetko som urobil znova. Táto príručka umožňuje kopírovanie a vkladanie pokynov do zariadenia Pi. Mali by ste byť teda hotoví za niekoľko hodín. Každopádne dúfam, že vás to posunie rýchlejšie po krivke učenia a s oveľa menšou bolesťou. Verte mi, že to za ten konečný výsledok stojí.

Krok 1: Načítajte Pi s programom Rasbian Stretch

To by malo byť celkom jednoduché. Začnite s 8 GB alebo 16 GB kartou SD. Stiahnite si najnovšiu verziu z:

www.raspberrypi.org/downloads/

Hlavné vlákno tu predpokladá, že je načítaná plná verzia. Na úsporu miesta však môžete použiť lite verziu. Ak používate Raspbian Stretch Lite, pokračujte týmto krokom a potom prejdite na krok 9 na konci.

Rozbalením stiahnutého súboru získate priečinok so súborom.img. 7Zip sa odporúča pre Windows (a The Unarchiver Mac). Obraz je potrebné napáliť na kartu SD - je však potrebné použiť špeciálny program, pretože systém súborov nie je kompatibilný so systémom Windows. Odporúčaný softvér sa nazýva Etcher a je možné ho stiahnuť z:

etcher.io/

Pokyny pre Etcher sú na ich webových stránkach a len ťažko môžu byť jednoduchšie. Vyberte obrázok a jednotku a kliknite na položku Flash.

Teraz s našou flashovanou kartou SD s dokáže spustiť Pi.

Ak poznáte IP adresu, ktorú používa váš Pi, alebo ste radi, že ju nájdete po prihlásení k smerovaču, môžete sa vyhnúť potrebe klávesnice a monitora a okamžite použiť SSH. Stačí pridať prázdny súbor s názvom SSH na kartu SD, vložiť, pripojiť k ethernetu a zapnúť. V opačnom prípade postupujte podľa nižšie uvedeného návodu.

Pripojte Pi k internetu, obrazovke, myši a klávesnici a pripojte k napájaniu. Prvá vec, ktorú urobíme, je povoliť SSH, aby sme väčšinu nastavení mohli vykonať z pohodlia počítača. To sa dá samozrejme urobiť priamo, ale veľmi pomáha, keď sa budete riadiť touto príručkou na tom istom zariadení, ako je zariadenie, ktoré riadi Pi, a pri väčšine pokynov použijete kopírovanie a vkladanie. Tiež v mojom prípade je moja pracovná stanica PC pekná a pohodlná, ale nie dostatočne veľká aj na pi.

Existuje návod na značnú časť práce na videu na YouTube. Tu som začal. Video môžete spustiť podľa týchto pokynov. Keď som však pri písaní tohto textu znova prechádzal, bolo jednoduchšie postupovať podľa pokynov tu. Existujú určité významné odchýlky. Existuje tiež niekoľko sekcií, v ktorých som odporučil sledovať video a nie uvádzať kroky tu. Odporúčam však pozrieť sa na to, aby ste pochopili MQTT, Node-Red a široký proces nastavenia. Video má 38 minút, urobte si pohodlie. Video začína ukážkou toho, čo Node Red dokáže, a potom sa zaoberá inštaláciou a nastavením Pi, nasleduje inovácia Node Red a nakoniec inštalácia Mosquitto. Kľúčové načasovanie v prípade, že sa chcete vrátiť do sekcie:

00:00 Úvod do videa

03:00 Ukážka Červeného uzla

14:14 Importovanie položiek palubnej dosky do Node Red

21:05 Počiatočné nastavenie Pi vrátane SSH

23:35 Inštalácia podporného kódu Node Red

27:00 Úvod do MQTT

29:12 Inštalácia Mosquitto (MQTT) (Poznámka funguje iba pre Raspian Jessie)

33:00 Uzel Červený príklady

Príkazy vypíšem tučnou kurzívou (namiesto použitia „“). Toto formátovanie sa ignoruje, keď ich skopírujete a prilepíte do Pi.

Úvod do Node Red vám poskytne predstavu o tom, čo systém dokáže, a poskytne obraz, kde skončíme.

Video z YouTube je na:

Postupujte podľa pokynov na inštaláciu od 21:05 do 23:35. Predvolené prihlasovacie meno je užívateľ: pi a heslo: malina. Pred reštartovaním nájdite IP adresu pí. Buď kliknite na ikonu „hore+šípka nadol“v hornom paneli pracovnej plochy alebo zadajte nasledujúce pokyny do okna terminálu/terminálu:

sudo ifconfig adresa

Poznamenajte si IP adresu za: inet addr:. Bude v tvare 192.168.x.y

Poznačte si túto adresu a reštartujte počítač (zadajte: sudo shutdown –r now)

V tomto bode je kľúčové, že bolo povolené SSH a je možné nastaviť prepojenie na Pi z počítača (Mac a Linux obsahujú rozhrania SSH). Dobrým programom na to je bezplatné stiahnutie s názvom PuTTY, ktoré je možné použiť aj ako sériové rozhranie a je možné pomocou Telnetu. Tmel je k dispozícii od:

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

Stiahnite a nainštalujte PuTTY.

Teraz, keď je Pi reštartovaný, spustite PuTTY a zadajte IP adresu uvedenú vyššie. Pozri príklad nižšie:

Teraz kliknite na položku Otvoriť

Po prihlásení ako: zadajte pi

Potom zadajte svoje heslo.

Teraz postupujte podľa tu uvedených pokynov a prípadne spustite video od 23:35. Vo väčšine prípadov môžete kopírovať a prilepovať. Zvýraznite text a pomocou Ctrl+C skopírujte. Potom pravým tlačidlom myši kliknite na položku PuTTY a prilepte ju. Niekedy sa text nezobrazí okamžite, počkajte niekoľko sekúnd. Ak zadáte dvakrát, odstráňte druhý záznam pomocou klávesu Backspace. Na vykonanie každej inštrukcie stlačte kláves Enter.

sudo raspi-update

Dostal som príkaz, ktorý sa nenašiel, a ignoroval som to a nasledujúce pokyny na vypnutie/reštart:

sudo shutdown -r teraz

aktualizácia sudo apt -get -y

aktualizácia sudo apt -get -y

Chvíľu to trvá ….

sudo apt-get autoremove

aktualizácia sudo apt -get -y

sudo shutdown -r teraz

V tomto mieste máme načítaný a aktualizovaný operačný systém Pi, pripravený na ďalší krok.

Krok 2: Aktualizujte a pridajte funkcie do Node-Red

Pripojenie PuTTY sa stratí reštartovaním na konci predchádzajúceho kroku. Zatvorte teda PuTTY a po čakaní na spustenie Pi sa znova prihláste ako predtým.

Prešiel som na jednoduchšiu a spoľahlivejšiu metódu načítania Node-Red-podľa postupu na https://nodered.org/docs/hardware/raspberrypi. Používa skript a nainštaluje alebo aktualizuje Node-Red-prístup je teda rovnaký ako pri úplnej alebo lite verzii Raspbian Stretch. Zadajte teda:

bash <(curl -sL

Po výzve (dvakrát) zadajte Y. Tento skript tiež načítava súbory potrebné na povolenie automatického spustenia Node-Red.

V tomto mieste teda máme načítané a aktualizované naše pi as aktualizáciami potrebnými pre Node Red. Nie je na škodu urobiť reštart pred ďalšou fázou.

sudo shutdown -r teraz

Krok 3: Inštalácia Mosquitto MQTT

Ak ste to ešte neurobili, stojí za to pozrieť si video úvod do MQTT na videu od 27:00.

Tu musíme ísť inou cestou. Postup načrtnutý vo videu funguje iba pre staršiu verziu Jessie Raspian. Na webe komárov prebieha diskusia, ale nie je ukázaný žiadny jasný výsledok, a preto sa bude držať jednoduchšej a bezpečnejšej trasy.

Prihláste sa teda pomocou PuTTY a zadajte nasledujúce:

sudo apt-get aktualizácia

sudo apt-get install mosquitto mosquitto-clients

Y

sudo /etc/init.d/mosquitto zastaviť

sudo /etc/init.d/mosquitto začať

Posledné dve inštrukcie zastavujú a spúšťajú komáre a ukazujú, že náš maklér MQTT funguje.

Pre rýchly test otvorte ďalšie dve relácie PuTTY a do každej sa prihláste.

Teraz už budete vedieť, že MQTT funguje na zariadení, ktoré potrebuje údaje na prihlásenie sa k „téme“. Maklér pošle akékoľvek údaje s rovnakou „témou“. Potom zariadenie, ktoré chce odoslať údaje/inštrukcie, to zverejní maklérovi pomocou rovnakej „témy“.

V jednej relácii PuTTY zadajte:

mosquitto_sub -d -t ahoj/svet

Toto je pokyn na prihlásenie sa k téme: ahoj/svet.

Do druhého zadajte:

mosquitto_pub -d -t ahoj/world -m "Ahoj z okna terminálu 2!"

Toto je pokyn na publikovanie s rovnakou témou so správou. Text: „Ahoj z terminálu v okne 2!“by sa teraz malo objaviť na druhom termináli.

Dobre, že som sa dostal tak ďaleko. Teraz máme Pi načítané a aktualizované aktualizáciami potrebnými pre Node-Red a nainštalovaným a testovaným brokerom MQTT komárov. Odteraz bude život jednoduchší a zábavnejší. Zatvorte dve relácie PuTTY použité na test MQTT.

Krok 4: Nastavenie rozhrania Node Red

Najprv musíme spustiť Node Red. Zadajte inštrukciu:

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

Počkajte, kým sa spustí, a uvidíte text „Spustené toky“.

Teraz otvorte prehliadač, používam prehliadač Chrome a zadajte predtým uvedenú adresu IP pi, za ktorou nasleduje: 1880, tj. Niečo ako 192.168.0.8:1880

Teraz by ste mali mať zobrazenú programovaciu stránku Node Red, ako je uvedené nižšie:

Teraz môžete sledovať príklady Node Red od 33:00 alebo prejsť priamo na malú časť dodatočného nastavenia a načítať prvý tok, ktorý zobrazí odkaz na MQTT a budete pripravení ovládať náš prepínač.

Ďalšie potrebné nastavenie je pridať položky na ovládací panel, ktoré umožňujú webové rozhranie.

Tieto sú zobrazené na videu o 14:14.

Podľa pokynov načítajte uzol-červená-palubná doska.

Teraz si môžeme trochu zahrať a ukázať, že MQTT funguje a riadi ho Node-Red. Toto nie je na videu, ale je kľúčové pre tento projekt. Môžete sa riadiť mojimi pokynmi a/alebo importovať toky z priloženého súboru NRtest1.txt.

Najprv pridajte vstupný vstrekovací uzol a výstupný uzol mqtt a spojte ich dohromady.

Dvakrát kliknite na uzol injekcie (ktorý je pôvodne označený ako časová pečiatka). V sekcii Payload použite twiddly na zmenu na reťazec a zadajte: Hello from me. Nechajte tému prázdnu, pretože ju môžeme zadať do uzla MQTT. Kliknite na Hotovo

Teraz dvakrát kliknite na uzol MQTT. Kliknite na ikonu ceruzky napravo od sekcie Server. Tým sa otvorí nové dialógové okno. Do sekcie Server zadajte: localhost. Kliknite na Pridať. Teraz späť do uzla Upraviť mqtt von zadajte našu tému v sekcii Téma: ahoj/svet. Nastavte QoS na 1. Kliknite na Hotovo. Teraz kliknite na Nasadiť. Pod uzlom mqtt by ste mali vidieť zelený blob a „pripojený“.

Teraz pridajte ďalšie dva uzly - vstupný mqtt a výstupný ladiaci program a spojte ich dohromady. Teraz dvakrát kliknite na vstupný uzol mqtt a do sekcie témy zadajte hello/world. Server by už mal zobrazovať localhost: 1883. Nastavte QoS na 1. Kliknite na Hotovo. Potom kliknite na Nasadiť a kliknite na kartu ladenia na pravej table. Teraz kliknite na sivý štvorec vľavo od uzla injekcie „Ahoj odo mňa“. To odošle textové užitočné zaťaženie brokerovi MQTT s témou ahoj/svet. Maklér vie, že vstupný uzol mqtt sa prihlásil na rovnakú tému, a preto preposiela užitočné zaťaženie. Vstupný uzol mqtt to potom odošle na kartu ladenia (RHS) a mal by sa objaviť text „Ahoj odo mňa“.

Toto začiarkava ďalšie políčko, pretože Node Red hovorí s naším maklérom MQTT. Všimnite si toho, že Node Red je pre makléra iba klient - podobne ako zariadenia Sonoff sa pripojíme neskôr. Umožňuje však sofistikovanú automatizáciu a poskytuje skvelé používateľské rozhranie.

Teraz môžeme vykonať niekoľko malých zmien a nastaviť toky pre náš spínač Sonoff.

Odstráňte teda vstupný vstrekovací uzol (kliknutím zvýraznite a stlačte kláves Delete). Teraz pridajte prepínač zo sekcie palubnej dosky a pripojte ho k výstupu mqtt. Prepínač dvojitého kliknutia. Kliknite na ceruzku napravo od skupiny. Zadajte názov: svetlo. Potom kliknite na ceruzku napravo od karty a zadajte do sekcie Názov: Salónik. Kliknite na položku Pridať/aktualizovať a znova na položku Pridať/aktualizovať. Teraz späť do uzla prepínača Upraviť nastavte zapnuté a vypnuté užitočné zaťaženie. Pomocou twidlys vyberte reťazec a zadajte ON pre užitočné zaťaženie a OFF pre vypnuté užitočné zaťaženie. Kliknite na Hotovo

Teraz prejdite na každý z uzlov mqtt a zmeňte tému na cmnd/sonoff/POWER. Pri kopírovaní a vkladaní skontrolujte, či ste na konci nezahrnuli medzeru. Toto je iná téma a so Sonoffom nebude fungovať. Nájdenie túlavého priestoru môže trvať približne hodinu - verte mi! Tiež som prešiel na palubnú dosku> Téma a vybral som: Tmavý. Kliknite na Nasadiť a vyberte kartu ladenia.

Teraz otvorte novú reláciu prehliadača v novom okne a prispôsobte mu veľkosť ako mobilný telefón prostredníctvom relácie Node Red. Zadajte adresu: vaša IP adresa Pi: 1880/ui/#/0, tj. Niečo ako 192.168.0.8:1880/ui/#/0. Mali by ste vidieť obrazovku s Lounge a Light a prepnúť. Kliknite na vypínač a potom ho vypnite. Okno ladenia by malo zobrazovať užitočné zaťaženie ZAPNUTÉ a VYPNUTÉ. Teraz, ak si želáte, prihláste sa aj cez mobil. Pozícia spínača je synchronizovaná. Nezáleží na tom, že náš Sonoff ešte nie je pripojený. Keď je, prihlásením sa na odber témy prevezme správu/užitočné zaťaženie a bude podľa nej konať.

Posledným malým krokom je nechať Node Red spustiť automaticky po zavedení Pi.

Node Red má sprievodcu na:

Potrebné súbory sú však už načítané, takže nie je potrebná žiadna inštalácia.

Ak chcete potom povoliť automatické spustenie Node-RED pri každom spustení a pri zlyhaní, zadajte (otvorte reláciu PuTTY):

sudo systemctl povoliť nodered.service

Ak by ste niekedy potrebovali toto vypnúť, zadajte:

sudo systemctl zakázať službu nodered.service

Teraz vypnite pi pomocou sudo vypnutia a odpojte napájanie.

Teraz je naše Pi uzamknuté a načítané pripravené na akciu. Náš počítač/mobilný telefón sa pripája k Node Red a hovorí o tom s naším serverom MQTT. Bola to dlhá trasa a stálo to za poriadne potľapkanie po pleci. Dobre. Ďalší, Arduino bit, som našiel oveľa jednoduchšie!

Krok 5: Nastavenie systému Arduino na preprogramovanie zariadení Sonoff

Všetky informácie, ako to urobiť, sú na Sonoff-Tasmota GitHub. Jediná časť, s ktorou som mal problémy, bol text témy - ale šikovne som vás prinútil, aby ste to už zadali!

Prejdite na stránku

Pokyny k inštalácii nájdete na karte Wiki v sekcii Nástroje na nahrávanie:

Namiesto toho, aby som prešiel každým krokom, si len všimnem kľúčové aspekty, ktoré som považoval za dôležité alebo sa v nich zasekli.

Pokyny sú dobré, ale vyžadujú si podrobnú pozornosť. Zarazilo ma, že je tam potreba priečinka ESP8266 v priečinku, ktorý bol v inom priečinku s názvom ESP8266, a preto mi unikli dve úrovne.

Dodržal som odporúčanie pre úplne oddelené nastavenie Arduino. Vytvoril som nový priečinok s názvom „ArduinoSonoff“, ktorý je oddelený od môjho existujúceho priečinka Arduino. Nastavenie je dosť pokročilé, a preto je veľmi dobré ho oddeliť. Ak je to vaše prvé nastavenie Arduino, uistite sa, že ho nainštalujete druhýkrát do priečinka „Arduino“alebo do iného priečinka pre akúkoľvek inú prácu s Arduino, vrátane práce na ESP8266s.

Stiahnite si najnovšie Arduino IDE z https://www.arduino.cc/en/Main/Software. Rozbaľte súbor do nového priečinka.

Pokyny obsahujú stiahnutie systému Sonoff-Tasmoda z https://github.com/arendst/Sonoff-Tasmota hlavnej stránky prostredníctvom: Klonovať alebo Stiahnuť> Stiahnuť ZIP. Rozbaľte súbor do nového priečinka.

Dôsledne dodržujte pokyny. Nerobil som sekciu Voliteľné: Pripravte sa na nahrávanie OTA. Necháme to na ďalší deň.

Teraz spustite Arduino IDE (dvakrát kliknite na arduino.exe). Načítajte skicu Sonoff-Tasmota cez Súbor> Skicár> sonoff. Nie je potrebné vykonávať žiadne úpravy. Všetky nastavenia sa vykonávajú pomocou sériového pripojenia po načítaní firmvéru. Tieto sú uložené v pamäti EEPROM. Preto je možné firmvér aktualizovať a zachovať všetky nastavenia. Toto je celkom múdra vec. Tu sa však môžete vyhnúť niekoľkým krokom tým, že prejdete do súboru user-config.h a zadáte svoje SSID a heslo WiFi a MQTT_HOST (nahraďte „domus1“-druhou referenciou svojou IP adresou Pi). Neskôr budete možno chcieť zadať aj používateľa a heslo MQTT. Pred stiahnutím skontrolujte nastavenia tabule v časti Nástroje. Na to, aby zodpovedali požiadavkám stanoveným vo Wiki, bude potrebné vykonať niekoľko zmien. Teraz kliknite na kompiláciu (ikona začiarknutia). Malo by sa to skompilovať. Ak nie, alebo ak požadované nastavenia dosky nie sú k dispozícii, vráťte sa a skontrolujte každý krok nastavenia.

Krok 6: Preprogramujte spínač Sonoff

Teraz sme pripravení na stiahnutie. V tejto fáze môžete buď ísť priamo vpred a blikať spínačom Sonoff, alebo môžete najskôr blikať modulom ESP8266. Urobil som to druhé, čiastočne preto, že moje prepínače ešte nedorazili (práve prišli, keď to píšem!), Ale aj preventívne, pretože blikanie prepínača Sonoff je jednosmerný krok, pretože pôvodný firmvér nie je verejne dostupný, pretože Som si vedomý. Mám pár dosiek NodeMCU. Jednoducho sa pripájajú pomocou vstavaného prevodníka USB na sériový port. Metóda resetovania nodemcu však s týmto systémom nefunguje. Nechajte preto položku Nástroje> Spôsob resetovania nastavenú na „ck“. Vykonajte normálne manuálne nastavenie blesku tak, že podržíte tlačidlo Flash (GPIO 0 na zemi) a súčasne stlačíte a pustíte Reset (resetovať na uzemnenie). Nie som si istý, či to má časový limit, alebo som nevydržal GPIO 0 dostatočne dlho, ale potreboval som niekoľko pokusov, vrátane toho, keď Arduino IDE kompiluje!

Ak chcete skontrolovať reakcie - reléový výstup je D6 na doskách NodeMCU. Na ESP12 je to GPIO 12. Výstup LED je D7 (NodeMCU) alebo GPIO 13 (ESP12).

Vypínač Sonoff.

UPOZORNENIE: Musím povedať „za žiadnych okolností sa nepripájajte k elektrickej sieti, ak je kryt otvorený“. Všimnite si toho, že PCB (prinajmenšom na Sonoff Basic (in-line switch) má iba „jednoduché izolačné“vzdialenosti medzi nízkonapäťovou sekciou a sieťou. Preto by ste mali akúkoľvek časť obvodu Sonoff považovať za sieťové napätie. Sonoff- Tasmota GitHub ukazuje pripojenie snímača teploty a vlhkosti k Sonoff S20. Nerobil by som to kvôli obavám z izolácie. - Ak to teda chcete urobiť, zaobstarajte si modul ESP12 alebo NodeMCU a nastavte ho oddelene so správnou dvojitou izoláciou. alebo uzemnený napájací zdroj.

Zásuvný vypínač Sonoff S20 je dobrým štartovacím bodom, pretože nepotrebuje žiadne sieťové vedenie. To sa dá otvoriť odstránením jednej skrutky (pod bezpečnostnou pečaťou) a otvorením krytu. Nasledujúca fotografia ukazuje, kde sú značky. Stlačenie puzdra v týchto bodoch pomáha.

USB sériový prevodník

Môj obľúbený prevodník je verzia FTDI. Toto však nemá adekvátnu schopnosť uspokojiť potreby Sonoff 3.3v. Špecifikácia FTDI uvádza maximálne 50 ma. Ďalšou najlepšou alternatívou je alternatíva využívajúca čip CP2102. Toto však má limit 100 mA, ktorý stále nestačí. Je zrejmé, že mnoho používa tento prevodník priamo, ale existujú aj správy o zlyhaní načítania. Čas, kedy je pripojený, by som obmedzil, pretože sa zahrieva pod záťažou. Urobte to na vlastné riziko. Ideálnym riešením je mať aj regulátor 3,3 V, napr. AMS1117 3.3. Aby som to umožnil, vytvoril som malú DPS. Pozrite si časť Programátor pre zariadenia Sonoff.

Moja postupnosť pri programovaní je nasledovná:

Otvorte Arduino IDE.

V časti Nástroje skontrolujte, či sú nastavenia rovnaké ako na Wiki.

Vykonajte požadované úpravy súboru user_config.h. Nastavil som SSID a heslo Wifi a adresu makléra MQTT a podrobnosti o časovom pásme/letnom čase.

Kliknutím na „overiť“skontrolujte, či je kompilácia v poriadku.

Pripojte sériový prevodník USB (vlastný) k počítaču. Všimnite si číslo portu.

Teraz odpojte sériový kábel USB od počítača a pripojte ho k prepínaču Sonoff. Skontrolujte, či sú pripojenia uzemnenia a 3v3 v správnom smere (uzemnenie je spojené s uzemňovacou rovinou na doske Sonoff).

Držte programátor tak, aby boli kontakty zaistené, a súčasne stlačte tlačidlo.

Teraz zapojte USB kábel do počítača, skontrolujte, či je číslo portu správne (v Nástroje), potom kliknite na stiahnuť.

Počas programovania naďalej držím tlačidlo, pretože nechcem rušiť spojenia.

Po dokončení by ste mali vidieť obrazovku nižšie:

Obrázok
Obrázok

Sonoff potrebuje na pripojenie k nášmu systému niekoľko bitov informácií: SSID a heslo Wi -Fi v miestnej sieti a IP adresa Pi. Môžete to urobiť niekoľkými spôsobmi, jedným z nich je úprava súboru config.ino, ako bolo uvedené vyššie. Ak máte smartphone, môžete (po zmontovaní spínača) 4-krát pomerne rýchlo stlačiť tlačidlo Sonoff a prepnúť ho do režimu webového servera. LED dióda bude blikať. Musel som sa niekoľkokrát pokúsiť, aby to fungovalo. Potom vo svojom smartfóne vyhľadajte novú sieť Sonoff a pripojte sa. Zobrazí sa webová stránka, na ktorej môžete nastaviť požadované údaje. IP adresa Pi prejde do názvu hostiteľa. Tiež som zmenil druhý SSID a heslo na niečo dlhé a v zásade nepoužiteľné.

Alternatívne je možné ho nastaviť pomocou sériového pripojenia bezprostredne po načítaní. Otvorte sériový monitor Arduino (v časti Nástroje).

Príkazy na zadanie:

Zadajte SSID vašej WiFi siete

Zadajte heslo do svojho hesla Wi -Fi

MqttHost 192.168.x.y (IP adresa PI)

Môžete tiež zadať SSId1 a heslo1, za ktorými bude nasledovať niečo dlhé a nepoužiteľné, aby ste to efektívne deaktivovali.

Teraz môžete zablokovať prepínač Sonoff, otvoriť panel Node-Red a Node-red a kliknúť na tlačidlo prepínača a pozrieť sa na kartu ladenia, ktorá by teraz mala obsahovať reakcie zo systému Sonoff. Takže máme za sebou ďalší veľký krok - náš prvý prepínač je ovládaný z počítača/smartfónu.

Doteraz sme nespomínali bezpečnosť. Existuje možnosť používať šifrovanú komunikáciu. Toto je pomerne zložité nastavenie a pravdepodobne vhodnejšie tam, kde sa používa cloudový broker. K dispozícii je tiež možnosť pridať používateľské mená a heslá pre všetky pripojené zariadenia a zakázať anonymných používateľov. Toto je veľmi jednoduché na nastavenie. A tak teraz k Zabezpečeniu.

Krok 7: Zabezpečenie

MQTT umožňuje užívateľské mená a heslá pre každého klienta. Toto je ľahké nastaviť. Pravdepodobne je jednoduchšie najskôr premenovať každé zariadenie a potom nastaviť jeho používateľské mená a heslá. To je možné vykonať pomocou príkazov MQTT a Node-Red je pravdepodobne najľahší spôsob, ako ich odoslať. Najprv sa rozhodnite o konvencii pomenovania. Jednou z možností je založiť názvy na mieste a funkcii. Potom budete chcieť zaznamenať meno (tému) používateľské meno a heslo spolu s núdzovou témou. Upozorňujeme, že existuje aj „možnosť resetovania“, ktorá umožňuje resetovanie nastavení Sonoffa na pôvodné stiahnutie (pozri Používanie Wiki> Funkčnosť tlačidiel).

Zapnite pí a po niekoľkých sekundách otvorte prehliadač na Node-Red (IP adresa: 1880).

V Node-Red nastavte vstrekovací uzol a prepojte ho s výstupom mqtt a nastavte server mqtt na localhost. Tému, používateľa a heslo nechajte prázdne, pretože ich nastavíme v uzle vstrekovania. Tiež nastavte vstupný uzol mqtt a pripojte ho k ladiacemu uzlu, aby sme videli reakcie. Nastavte vstupnú poznámku mqtt na localhost (už by mala byť nastavená) a zadajte+/+/+pre tému, aby zachytila všetku návštevnosť.

Do uzla injekcie zadajte nasledujúcu postupnosť nastavení.

Najprv skontrolujte pripojenie pomocou

Téma: cmnd/sonoff/stav

Správa: 6

kliknite na „Injekcia jedenkrát pri štarte“. Nasadiť. Mali by sme vidieť ladenie vrátane 7 riadkov údajov zo súboru stat/sonoff/STATUS6

Zadajte tému: cmnd/sonoff/téma a správa: salónik. Nasadiť. Toto zmení názov prepínača zo sonoff na loungelight

Na karte ladenia by sa malo zobraziť reštartovanie zariadenia s novým názvom/témou

Téma: cmnd/loungelight/MqttUser

Správa: loungelight

Kliknite na nasadiť. Ladenie by malo byť viditeľné zo štatistík/loungelight/VÝSLEDKU s {„MtqqUser“: „loungelight“}

Téma: cmnd/loungelight/MqttPassword

Správa: loungelightPW (všimnite si viac nápaditosti ako toto!)

Vymažte kartu ladenia a nasadiť.

Odpoveď by mala byť poskytnutá zo štatistiky/loungelight/VÝSLEDKU s {"MqttPassword": "loungelightPW"}

Teraz zadajte NodeRed a NodeRedPW ako používateľské meno a heslo do uzla mqtt out. To sa deje prostredníctvom ikony ceruzky servera a karty zabezpečenia v okne, ktoré sa otvorí. Toto sa automaticky skopíruje do ostatných uzlov MQTT.

Znova skontrolujte pomocou

Téma: cmnd/loungelight/Stav a správa: 6. Nasadiť.

A že odpoveď je odoslaná.

V tomto mieste sme teda premenovali naše zariadenie Sonof, aby počúvalo témy cmnd/loungelight/…… a prihlásilo sa na server MQTT pomocou používateľského mena loungelight a hesla loungelightPW. Tiež sme nastavili používateľské meno a heslo pre Node-Red.

Ďalej musíme povedať serveru MQTT komárov, aby akceptoval iba klientov s používateľskými menami a aby uviedol zoznam používateľských mien a hesiel, ktoré majú byť prijaté.

Postup je nasledovný:

  • Zastavte komáre
  • Vytvorte si vlastný konfiguračný súbor
  • Upraviť konfiguračný súbor
  • Vytvorte súbor s heslom
  • Pridajte používateľov/heslá.

Prihláste sa teda pomocou novej relácie PuTTY a spustite nasledujúce príkazy:

sudo /etc/init.d/mosquitto zastaviť

cd /etc/mosquitto/conf.d/

sudo nano mosquitto.conf Spustí sa editor.

Pridať riadky:

allow_anonymous false

heslo_súboru /etc/mosquitto/conf.d/passwd

require_certificate false

Uložte a ukončite (Ctrl+X), Y, zadajte.

sudo touch passwd Vytvorí sa súbor hesiel a podľa nasledujúcich pokynov sa pridajú mená a heslá.

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/mosquitto reštartujte

Upozorňujeme, že pri pridávaní nového zariadenia budete musieť buď zadať používateľa a heslo cez sériový port a pridať ich do súboru s heslom, alebo dočasne zmeniť konfiguračný súbor mosquitto a komentovať (pridať # na začiatok riadka) riadky „allow_anonymous false "a" heslo_súboru /etc/mosquitto/conf.d/passwd "a potom ich resetujte, keď boli detaily odoslané do zariadenia a pridané do súboru s heslom, ako je uvedené vyššie.

Zmenili sme názov sonoff na loungelight, a preto aktualizujeme výstupný uzol mqtt (pripojený k prepínaču), aby používal tému cmnd/loungelight/POWER.

Kliknite na Nasadiť a skontrolujte, či uzly mqtt zobrazujú „pripojené“.

Potom vyskúšajte prepínacie tlačidlo a vyhľadajte ladiaci program, ktorý ukazuje, že spínač Sonoff reaguje. Všimnete si, že zariadenie ukazuje zmenu s témou: stat/loungelight/POWER. Teraz teda zmeňte vstupný uzol, ktorý bol nastavený na cmnd/sonoff/POWER na stat/loungelight/POWER. Môžeme použiť tento kryt medzery v našich funkciách. Systém, ako bol pôvodne nastavený, bude synchronizovaný so všetkými prihlásenými používateľmi, ale nebude sa synchronizovať so zmenami prepínačov vykonanými stlačením tlačidla na prepínači Sonoff. Teraz teda pripojte výstup vstupného uzla stat/loungelight/POWER mqtt k prepínaciemu vstupu (LHS). Teraz dvakrát kliknite na prepínač a zrušte začiarknutie políčka „Ak správa príde na vstupe, prejde na výstup“. To prináša niekoľko nových možností - zvoľte „ikona prepínača zobrazuje stav vstupu“. Nasadiť. Takže teraz máme dobrú slučku spätnej väzby. Poloha prepínača na palubnej doske sa vždy zmení, keď sa spínač Sonoff zmení, bez ohľadu na to, kde bola zmena iniciovaná.

Teraz teda máme zabezpečený, samostatný systém automatickej domácej prevádzky, ktorý je pripravený na rozšírenie o čokoľvek, čo chcete. V ďalšej časti sa budem venovať niektorým z mojich doterajších experimentov a výzvam, s ktorými sa plánujem vyrovnať.

Krok 8: Počiatočné kroky na rozšírenie

Mám ďalšiu inštruovateľnú domácu automatizáciu Sonoff-Tasmota Sensors LED Development Board, ktorá ukazuje niektoré z ďalších schopností firmvéru Sonoff-Tasmota:

Meranie teploty a vlhkosti

Detekcia narušiteľa (vstup prepínača)

IR diaľkové ovládanie (pre televízory atď.)

LED reťazce - RGB aj NeoPixel (jednotlivo adresovateľné)

Senzory I2C

Na vyššie uvedené používam ESP12F a vlastnú PCB. Rovnako by sa dalo použiť NodeMCU a breadboard. To umožňuje tieto ďalšie funkcie bez zapojenia do zariadenia Sonoff, a preto je oveľa bezpečnejší prístup. Vďaka teplotnému príkonu som mohol dokončiť svoju automatizáciu elektrickej prikrývky.

Hudbu a internetové rádio je možné ľahko pridať. Otvára sa tak možnosť, aby sa konkrétne stanice alebo albumy zapínali v stanovených časoch alebo možno v reakcii na zistenie návštevníka (telefónu). Tento pridružený návod je k dispozícii vo vysoko kvalitnom hudobnom prehrávači a internetovom rádiu s ovládaním zo smartfónu. Pretože to je tiež riadené Node-RED, malo by byť dokonca možné mať viac ako jeden zvukový systém a používať na ich komunikáciu komunikáciu MQTT.

Tiež som skúmal Node-Red, vrátane odosielania e-mailov a vytvárania hlasových upozornení. Existuje tiež potenciál, aby systém zistil, či ste in/out - pomocou pingovania adresy IP vášho mobilného telefónu. Node -Red má tiež prístup k počasiu a správam - takže je možné pridávať informácie a tiež vykonávať automatizáciu.

Existuje niekoľko trikov, ktoré sa treba naučiť - ale tieto sa druhýkrát stanú mŕtvymi.

Ďalšou cestou je pridanie displeja k pí na zobrazenie palubnej dosky. Toto je „prebiehajúca práca“- alebo inými slovami, nie som príliš šťastný. Displej, ktorý som dostal, je ťažké otočiť do režimu na výšku a prehliadač Chromium je bolestivo pomalý. Alternatívou by bolo vyzdvihnúť si starý tablet na ebay a použiť ho. Môžem skúsiť s Pi 2 a zistiť, či to prináša dostatočné zlepšenie (model B použitý na tento vývoj).

Dúfam, že to naštartuje a rozprúdi vašu predstavivosť. Potenciálny rozsah je obrovský. V prípade potreby je možné dokonca upraviť kód Sonoff pre ďalšie senzory.

Celkovo som bol prekvapený, čo tento systém dokáže. Mojím pôvodným cieľom bolo spoľahlivo ovládať prepínač zo smartfónu prostredníctvom samostatného systému. Mal som predstavy o potrebe spravovať servery a klientov a písať html pre používateľské rozhranie. To, kde sa to skončilo, je o niečo ďalej, s vyššou bezpečnosťou, vynikajúcou spoľahlivosťou, fantastickým používateľským rozhraním, programovaním drag and drop a obrovským potenciálom rozšírenia. A to všetko s oveľa menšou námahou.

Mike

Krok 9: Dodatok - načítanie z Raspbian Stretch Lite

Táto možnosť sa vyhýba bloatwaru, ktorý je súčasťou úplnej verzie Raspbian Stretch. Väčšina z toho nebude potrebná pri použití Pi na domácu automatizáciu. Node-Red však musí byť nainštalovaný.

Postupujte ako v kroku 1, ale namiesto Raspbian Stretch používajte Raspbian Stretch Lite.

Namiesto kroku 2 urobte nasledujúce:

sudo apt -y nainštalovať npm

npm -v by sa malo vrátiť: 1.4.21 alebo novší

sudo npm install -g n

sudo n 8.9.0

Teraz môžeme na nainštalovanie Node-Red použiť správcu paketov uzlov:

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

V dôsledku nesprávnej adresy sa zobrazí niekoľko chybových hlásení. Systém však na vyriešenie tohto problému urobí „zdrojovú kompiláciu“. Ak zopakujete vyššie uvedené pokyny (nie je potrebné), chyby sa nevyskytnú.

Teraz máme Node-Red a jeho podporné balíčky nainštalované a môžeme prejsť na krok 3, načítanie komára.

Bezdrôtová súťaž
Bezdrôtová súťaž
Bezdrôtová súťaž
Bezdrôtová súťaž

Druhý v súťaži o bezdrôtové pripojenie

Odporúča: