Obsah:

Výkonný samostatný systém domácí automatizace - Pi, Sonoff, ESP8266 a Node -Red: 9 kroků (s obrázky)
Výkonný samostatný systém domácí automatizace - Pi, Sonoff, ESP8266 a Node -Red: 9 kroků (s obrázky)

Video: Výkonný samostatný systém domácí automatizace - Pi, Sonoff, ESP8266 a Node -Red: 9 kroků (s obrázky)

Video: Výkonný samostatný systém domácí automatizace - Pi, Sonoff, ESP8266 a Node -Red: 9 kroků (s obrázky)
Video: Jak fungují scény a automatizace v chytré domácnosti (Alisczech vol. 793) 2024, Listopad
Anonim
Výkonný samostatný domácí automatizační systém - Pi, Sonoff, ESP8266 a Node -Red
Výkonný samostatný domácí automatizační systém - Pi, Sonoff, ESP8266 a Node -Red

Tato příručka by vás měla dostat na první základnu, kde můžete zapnout/vypnout světlo nebo zařízení prostřednictvím jakéhokoli zařízení, které se může připojit k vaší místní síti, a se skvělým přizpůsobitelným webovým rozhraním. Rozsah funkcí pro rozšíření/ přidání je obrovský, včetně odesílání e -mailů, zpráv na twitteru, snímačů čtení (např. Teploty). Můžete snadno nastavit pravidla, např. - pokud je teplota nižší než 15 ° C ve 23:00, zapněte elektrickou deku na 30 minut. Systém používá protokol MQTT s TCP, který je podstatně spolehlivější než UDP - což překvapivě používají některá komerční zařízení pro domácí automatizaci. Jakmile je práce s nastavením systému, zde popsaná, hotová, zábava může začít. Node Red poskytuje fantastické uživatelské rozhraní, které se intuitivně, rychle a snadno nastavuje a poskytuje úžasné možnosti.

Výsledkem je výkonný systém domácí automatizace, který je plně pod vlastní kontrolou a je zcela v místní síti. Mnoho systémů zobrazených na Instructables funguje se cloudovými servery, a proto představují bezpečnostní riziko a mohou vyžadovat předplatné. Je jednodušší je nastavit, ale mají vyšší bezpečnostní riziko a potenciálně vyšší náklady. Měl bych dodat, že na Pi lze nastavit VPN (virtuální privátní síť), aby bylo možné zabezpečené připojení k domácí síti/systému, pokud by byl užitečný přístup zvenčí (pokyny naleznete v příručce Google Pi OpenVPN).

Tento systém vyžaduje přeprogramování zařízení Sonoff pomocí velkého otevřeného systému s názvem Sonoff-Tasmoda. To lze provést pomocí speciálního nastavení Arduino a převodníku USB na sériový port. Zařízení Sonoff používají Wi-Fi čip ESP8266, takže si můžete také vytvořit vlastní zařízení pomocí modulů ESP8266 nebo je přizpůsobit jiným položkám a zajistit tak bezdrátové připojení.

Největším úkolem je nastavení Raspberry Pi jako rozbočovače. Tím se spustí MQTT broker (nebo server), který spravuje komunikaci s připojenými zařízeními. Pi také provozuje systém s názvem Node-Red, který dokáže zachytit zprávy a data a výstupní příkazy-například kdy zapnout elektrickou deku. Node-Red také poskytuje rozhraní pro obsluhování webové stránky, na kterou se můžete přihlásit pomocí smartphonu/tabletu/PC/notebooku, abyste viděli, co se děje, a abyste mohli ručně přepínat světla atd.

Mým cílem s tímto návodem je poskytnout každý krok dostatečně podrobně, aby nováček mohl systém uvést do provozu.

Kroky jsou následující:

  • Načtěte Pi s Rasbian Stretch
  • Aktualizujte a přidejte funkce do Node-Red
  • Nainstalujte si brokera Mosquitto MQTT
  • Nastavte prostředí Arduino pro nahrávání firmwaru Sonoff-Tasmota
  • Přeprogramujte přepínač Sonoff
  • Nastavte rozhraní Node-Red
  • Vyzkoušejte, zda vše funguje.

Hardware, který budete potřebovat:

  • Raspberry Pi a napájecí zdroj (a klávesnice a monitor pro počáteční nastavení) (zde použitý model B)
  • Přepínač Sonoff
  • Sériový převodník USB
  • Volitelné - vývojová deska ESP, jako je NodeMCU.

Moje zkušenost s Raspberry Pi je, že zdá se, že nastavení čehokoli zahrnuje podstatně větší bolest, než by si kdo dokázal představit, když věci nefungují nebo se zaseknou na nějakém triviálním kroku, kde by vysvětlení mohlo být lepší. Fóra ne vždy dostanou rady, které fungují! Našel jsem několik tras, které z jednoho nebo jiného důvodu nefungovaly. To stálo 3 dny! Poté jsem vše vymazal a začal znovu a dokončil za necelý (dlouhý) den. To však používalo starší Raspian Jessie. Poté jsem našel způsob, jak použít aktuální a nedávno vydanou verzi (Stretch), a udělal jsem to všechno znovu. Tato příručka umožňuje kopírování a vkládání pokynů do Pi. Takže byste měli být hotovi za několik hodin. Každopádně doufám, že tě to dostane rychleji do křivky učení a s mnohem menší bolestí. Věřte mi, že to za konečný výsledek stojí.

Krok 1: Načtěte Pi s Rasbian Stretch

To by mělo být docela jednoduché. Začněte s 8 GB nebo 16 GB kartou SD. Stáhněte si nejnovější verzi z:

www.raspberrypi.org/downloads/

Hlavní vlákno zde předpokládá, že je načtena plná verze. Pro úsporu místa však můžete použít lite verzi. Pokud používáte Raspbian Stretch Lite, pokračujte tímto krokem a poté přejděte ke kroku 9 na konci.

Rozbalením staženého souboru získáte složku se souborem.img. 7Zip je doporučen pro Windows (a The Unarchiver Mac). Obraz je třeba vypálit na kartu SD - je však nutné použít speciální program, protože systém souborů není kompatibilní s Windows. Doporučený software se nazývá Etcher a lze jej stáhnout z:

etcher.io/

Pokyny pro Etcher jsou na jejich webových stránkách a jen těžko by mohly být jednodušší. Vyberte obrázek a jednotku a klikněte na Flash.

Nyní s naší flashovanou kartou SD můžete spustit Pi.

Pokud znáte IP adresu, kterou váš Pi používá, nebo jste rádi, že ji najdete po přihlášení ke svému routeru, můžete se vyhnout potřebě klávesnice a monitoru a používat SSH okamžitě. Stačí přidat prázdný soubor s názvem SSH na kartu SD, vložit, připojit k ethernetu a zapnout. Jinak postupujte podle níže uvedeného průvodce.

Připojte Pi k internetu, obrazovce, myši a klávesnici a připojte se k napájení. První věc, kterou uděláme, je povolit SSH, abychom mohli většinu nastavení provádět z pohodlí počítače. Samozřejmě to lze provést přímo, ale velmi pomáhá, když budete moci sledovat tuto příručku na stejném zařízení, jako je zařízení, které řídí Pi, a pro většinu pokynů použít kopírování a vkládání. Také v mém případě je moje PC pracovní stanice hezká a pohodlná, ale není dost velká na pí.

Existuje návod na značnou část práce na videu na YouTube. Tady jsem začal. Video můžete spustit podle následujících pokynů. Když jsem však při psaní znovu procházel procesem, zjistil jsem, že je snazší postupovat podle pokynů zde. Existují určité významné odchylky. Existuje také několik sekcí, ve kterých jsem doporučil sledovat video, nikoli zde uvádět kroky. Doporučil bych však podívat se na to, abyste porozuměli MQTT, Node-Red a širokému procesu nastavení. Video je dlouhé 38 minut, udělejte si pohodlí. Video začíná ukázkou toho, co Node Red umí, a poté popisuje instalaci a nastavení Pi, následuje upgrade Node Red a nakonec instalace Mosquitto. Klíčová načasování v případě, že se chcete vrátit do sekce:

00:00 Úvod do videa

03:00 Ukázka Node Red

14:14 Import položek řídicího panelu do Node Red

21:05 Počáteční nastavení Pi, včetně SSH

23:35 Instalace podpůrného kódu Node Red

27:00 Úvod do MQTT

29:12 Instalace Mosquitto (MQTT) (Poznámka funguje pouze pro Raspian Jessie)

33:00 Příklady Node Red

Příkazy uvedu tučnou kurzívou (namísto použití „“). Toto formátování je při kopírování a vkládání do Pi ignorováno.

Úvod do Node Red vám poskytne představu o tom, co systém dokáže, a poskytne obrázek, kde skončíme.

Video z YouTube je na:

Dodržujte postup instalace od 21:05 do 23:35. Výchozí přihlašovací jméno je uživatel: pi a heslo: malina. Před restartováním najděte IP adresu pí. Buď klikněte na ikonu „šipka nahoru+dolů“v horní liště plochy, nebo zadejte do okna terminálu/terminálu následující pokyny:

sudo ifconfig adresa

Poznamenejte si IP adresu za: inet addr:. Bude ve tvaru 192.168.x.y

Poznamenejte si tuto adresu a restartujte (zadejte: sudo shutdown –r now)

Klíčem v tomto okamžiku je, že SSH bylo povoleno a je možné nastavit odkaz na Pi z PC (Mac a Linux obsahují rozhraní SSH). Dobrým programem, jak toho dosáhnout, je bezplatné stažení s názvem PuTTY, které lze použít také jako sériové rozhraní a které umí Telnet. Tmel je k dispozici od:

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

Stáhněte a nainstalujte PuTTY.

Nyní, když je Pi restartováno, spusťte PuTTY a zadejte IP adresu uvedenou dříve. Viz příklad níže:

Nyní klikněte na Otevřít

Po přihlášení jako: zadejte pi

Poté zadejte své heslo.

Nyní postupujte podle pokynů zde a volitelně spusťte video od 23:35. Ve většině případů můžete kopírovat a vkládat. Zvýrazněte text a pomocí Ctrl+C zkopírujte. Potom pravým tlačítkem v PuTTY vložte. Někdy se text nezobrazí okamžitě, počkejte několik sekund. Pokud zadáte dvakrát, odstraňte druhou položku pomocí backspace. Stisknutím klávesy Enter spustíte každou instrukci.

sudo raspi-update

Dostal jsem příkaz nenalezen a ignoroval jsem to a následující pokyny pro vypnutí/restart:

sudo shutdown -r nyní

sudo apt -get -y aktualizace

sudo apt -get -y upgrade

Chvíli to trvá ……

sudo apt-get autoremove

sudo apt -get -y aktualizace

sudo shutdown -r nyní

V tuto chvíli máme načtený a aktualizovaný operační systém Pi, připravený na další krok.

Krok 2: Aktualizujte a přidejte funkce do Node-Red

Připojení PuTTY bude ztraceno restartem na konci předchozího kroku. Zavřete tedy PuTTY a po čekání na spuštění Pi se přihlaste znovu jako dříve.

Přešel jsem na jednodušší a spolehlivější způsob načítání Node-Red-podle přístupu na https://nodered.org/docs/hardware/raspberrypi. To používá skript a nainstaluje nebo upgraduje Node-Red-přístup tedy funguje stejně jako v plné nebo zjednodušené verzi Raspbian Stretch. Zadejte tedy:

bash <(curl -sL

Po zobrazení výzvy (dvakrát) zadejte Y. Tento skript také načte soubory potřebné k povolení automatického spuštění Node-Red.

V tomto okamžiku tedy máme načten a aktualizován náš pi a aktualizace potřebné pro Node Red. Není na škodu provést restart před další fází.

sudo shutdown -r nyní

Krok 3: Instalace Mosquitto MQTT

Pokud jste tak ještě neučinili, stojí za to zhlédnout video úvod do MQTT na videu od 27:00.

Tady musíme jít jinou cestou. Postup nastíněný ve videu funguje pouze pro starší verzi Jessie Raspian. Na webu komárů probíhá diskuse, ale není ukázán žádný jasný výsledek, a proto se bude držet jednodušší a bezpečnější cesty.

Přihlaste se tedy pomocí PuTTY a zadejte následující:

sudo apt-get update

sudo apt-get install mosquitto mosquitto-clients

Y

sudo /etc/init.d/mosquitto zastavit

sudo /etc/init.d/mosquitto začít

Poslední dvě instrukce zastavují a spouští komáry a ukazují, že náš broker MQTT funguje.

Pro rychlý test otevřete další dvě relace PuTTY a ke každému se přihlaste.

Už budete vědět, že MQTT funguje podle zařízení, které potřebuje přihlášení k odběru 'tématu'. Makléř odešle veškerá data se stejným „tématem“. Poté zařízení, které chce odeslat data/instrukce, to zveřejní u brokera pomocí stejného „tématu“.

V jedné relaci PuTTY zadejte:

mosquitto_sub -d -t ahoj/svět

Toto je pokyn k odběru tématu: ahoj/svět.

Do druhého zadejte:

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

Toto je pokyn k publikování se stejným tématem se zprávou. Text: „Dobrý den z okna Terminálu 2!“Nyní by se měl objevit na druhém terminálu.

Dobře se dostal tak daleko. Nyní máme načten a aktualizován Pi s aktualizacemi potřebnými pro Node-Red a s nainstalovaným a testovaným brokerem MQTT komára. Od nynějška je život jednodušší a zábavnější. Zavřete dvě relace PuTTY použité pro test MQTT.

Krok 4: Nastavení rozhraní Node Red

Nejprve musíme spustit Node Red. Zadejte pokyny:

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

Počkejte, až se spustí, a uvidíte text „Zahájené toky“.

Nyní otevřete prohlížeč, používám Chrome a zadejte pi adresu IP uvedenou výše a za ní: 1880, tj. Něco jako 192.168.0.8:1880

Nyní byste měli mít zobrazenou programovací stránku Node Red, jak je uvedeno níže:

Nyní můžete sledovat příklady Node Red od 33:00 nebo přejít rovnou k malému doplňkovému nastavení a načtení prvního toku, který zobrazí odkaz na MQTT a budete připraveni řídit náš přepínač.

Další potřebné nastavení je přidat položky řídicího panelu, které umožňují webové rozhraní.

Ty jsou zobrazeny na videu ve 14:14.

Podle pokynů načtěte dash-red-dashboard.

Nyní si můžeme trochu pohrát a ukázat, že MQTT funguje a je poháněn Node-Red. Toto není na videu, ale je klíčové pro tento projekt. Můžete se řídit mými pokyny a/nebo importovat toky z přiloženého souboru NRtest1.txt.

Nejprve přidejte vstupní vstřikovací uzel a výstupní mqtt uzel a spojte je dohromady.

Poklepejte na uzel injekce (který je původně označen časovým razítkem). V sekci Payload použijte twiddly pro změnu na řetězec a zadejte: Hello from me. Ponechte téma prázdné, protože to můžeme zadat do uzlu MQTT. Klikněte na Hotovo

Nyní dvakrát klikněte na uzel MQTT. Klikněte na ikonu tužky napravo od sekce Server. Tím se otevře nový dialog. Do sekce Server zadejte: localhost. Klikněte na Přidat. Nyní zpět do uzlu Upravit mqtt ven zadejte naše téma v sekci Téma: ahoj/svět. Nastavte QoS na 1. Klikněte na Hotovo. Nyní klikněte na Nasadit. Pod uzlem mqtt byste měli vidět zelený blob a „připojený“.

Nyní přidejte další dva uzly - vstupní mqtt a výstupní ladění a spojte je dohromady. Nyní dvakrát klikněte na vstupní mqtt uzel a do sekce tématu zadejte hello/world. Server by již měl zobrazovat localhost: 1883. Nastavte QoS na 1. Klikněte na Hotovo. Poté klikněte na Nasadit a klikněte na kartu ladění v pravém podokně. Nyní klikněte na šedý čtvereček vlevo od uzlu injekce „Ahoj ode mě“. To odešle textové užitečné zatížení brokerovi MQTT s tématem hello/world. Makléř ví, že vstupní uzel mqtt se přihlásil k odběru stejného tématu, a proto přeposílá užitečné zatížení. Vstupní uzel mqtt to poté odešle na kartu ladění (RHS) a měl by se objevit text „Ahoj ode mě“.

Tím zaškrtneme další políčko, protože Node Red mluví s naším makléřem MQTT. Všimněte si, že Node Red je pouze klientem brokera - stejně jako zařízení Sonoff se připojíme později. Umožňuje však propracovanou automatizaci a poskytuje skvělé uživatelské rozhraní.

Nyní můžeme provést několik malých změn a nastavit toky pro náš přepínač Sonoff.

Smažte tedy vstupní vstřikovací uzel (kliknutím zvýrazněte a stiskněte klávesu Delete). Nyní přidejte přepínač z části řídicího panelu a připojte jej k výstupu mqtt. Přepínač dvojitého kliknutí. Klikněte na tužku napravo od skupiny. Zadejte název: světlo. Poté klikněte na tužku napravo od Tab a zadejte do části Název: Salonek. Klikněte na Přidat/Aktualizovat a znovu Přidat/Aktualizovat. Nyní zpět v uzlu přepínače Upravit nastavte užitečné zatížení zapnuto a vypnuto. Pomocí twidlys vyberte řetězec a zadejte ON pro užitečné zatížení a OFF pro vypnuté užitečné zatížení. Klikněte na Hotovo

Nyní přejděte do každého z uzlů mqtt a změňte téma na cmnd/sonoff/POWER. Při kopírování a vkládání zkontrolujte, zda jste na konec nezahrnuli mezeru. Toto je jiné téma a nebude fungovat se Sonoffem. Hledání zbloudilého prostoru může trvat přibližně hodinu - věřte mi! Také jsem šel na hlavní panel> Téma a vybral: Tmavý. Klikněte na Nasadit a vyberte kartu ladění.

Nyní otevřete novou relaci prohlížeče v novém okně a upravte její velikost jako mobilní telefon přes relaci Node Red. Zadejte adresu: vaše IP IP adresa: 1880/ui/#/0, tj. Něco jako 192.168.0.8:1880/ui/#/0. Měli byste vidět obrazovku s Lounge a Light a přepnout. Klikněte na přepínač zapnout a poté vypnout. Okno ladění by mělo zobrazovat užitečné zatížení ZAPNUTO a VYPNUTO. Pokud si přejete, přihlaste se také prostřednictvím mobilního telefonu. Pozice přepínače je synchronizována. Nezáleží na tom, že náš Sonoff ještě není připojen. Když je, přihlášením se k odběru tématu si vyzvedne zprávu/užitečné zatížení a bude podle ní jednat.

Posledním malým krokem je nechat Node Red spustit automaticky po spuštění Pi.

Node Red má průvodce na:

Potřebné soubory jsou však již načteny, takže není nutná žádná instalace.

Chcete-li poté povolit automatické spouštění Node-RED při každém spuštění a při selhání, zadejte (otevřete relaci PuTTY):

sudo systemctl povolit nodered.service

Pokud budete někdy potřebovat toto zakázat, zadejte:

sudo systemctl zakáže službu nodered.service

Nyní vypněte pi pomocí sudo shutdown now a odeberte napájení.

Tím je náš Pi uzamčen a načten připraven k akci. Náš počítač/mobilní telefon se připojuje k Node Red a hovoří s naším serverem MQTT. Byl to běh na dlouhou trať a stojí za velké poplácání po zádech. Výborně. Našel jsem další, Arduino bit, mnohem jednodušší!

Krok 5: Nastavení systému Arduino pro přeprogramování zařízení Sonoff

Všechny informace, jak toho dosáhnout, jsou na Sonoff-Tasmota GitHub. Jediná část, se kterou jsem měl potíže, byl text tématu - ale chytře jsem vás přiměl, abyste to již zadali!

Přejděte na

Pokyny k nastavení najdete na kartě Wiki v sekci Nástroje pro nahrávání:

Než bych procházel každým krokem, poznamenal bych jen klíčové aspekty, které jsem považoval za důležité nebo se zasekly.

Pokyny jsou dobré, ale je třeba věnovat pozornost detailům. Byl jsem podražen tím, že jsem potřeboval složku ESP8266 ve složce, která byla v jiné složce s názvem ESP8266, a proto jsem vynechal dvě úrovně.

Dodržoval jsem doporučení pro zcela oddělené nastavení Arduina. Vytvořil jsem novou složku s názvem „ArduinoSonoff“, která je oddělená od mé stávající složky Arduino. Nastavení je poměrně pokročilé, a proto je udržování oddělené je velmi dobrý nápad. Pokud se jedná o vaše první nastavení Arduina, nezapomeňte jej nainstalovat podruhé do složky „Arduino“nebo do jiné složky pro jakoukoli jinou práci s Arduino, včetně práce na ESP8266s.

Stáhněte si nejnovější Arduino IDE z https://www.arduino.cc/en/Main/Software. Rozbalte soubor do nové složky.

Pokyny zahrnují stažení systému Sonoff-Tasmoda z hlavní stránky https://github.com/arendst/Sonoff-Tasmota pomocí: Klonovat nebo Stáhnout> Stáhnout ZIP. Rozbalte soubor do nové složky.

Postupujte pečlivě podle pokynů. Neudělal jsem sekci Volitelné: Připravit se na nahrávání OTA. Necháme to na další den.

Nyní spusťte Arduino IDE (dvakrát klikněte na arduino.exe). Načtěte skicu Sonoff-Tasmota pomocí Soubor> Skicář> sonoff. Není třeba provádět žádné úpravy. Všechna nastavení se provádějí prostřednictvím sériového připojení po načtení firmwaru. Ty jsou uloženy v paměti EEPROM. Firmware lze tedy aktualizovat a všechna nastavení zachovat. To je docela chytrá věc. Zde se však můžete vyhnout nutnosti několika kroků tím, že přejdete do souboru user-config.h a zadáte své SSID SSID a heslo a MQTT_HOST (nahraďte „domus1’– druhou referencí svou IP adresou Pi). Později můžete také zadat uživatele MQTT a heslo. Před stažením zkontrolujte nastavení desky v části Nástroje. K tomu, aby odpovídaly požadavkům stanoveným ve Wiki, bude třeba provést několik změn. Nyní klikněte na kompilaci (ikona zaškrtnutí). Mělo by to být kompilováno v pořádku. Pokud tomu tak není, nebo pokud požadovaná nastavení desky nejsou k dispozici, vraťte se zpět a zkontrolujte každý krok nastavení.

Krok 6: Přeprogramování přepínače Sonoff

Nyní jsme připraveni ke stažení. V této fázi lze buď přejít přímo dopředu a bliknout spínačem Sonoff, nebo nejprve bliknout modulem ESP8266. Udělal jsem to druhé, částečně proto, že moje přepínače ještě nedorazily (právě dorazily, když to píšu!), Ale také jako preventivní opatření, protože blikání přepínače Sonoff je jedním z kroků, protože původní firmware není veřejně dostupný, pokud Jsem si vědom. Mám pár desek NodeMCU. Ty lze snadno připojit pomocí integrovaného převodníku USB na sériový port. Metoda resetování nodemcu však s tímto systémem nefunguje. Nechte tedy Nástroje> Obnovit metodu nastavenou na „ck“. Proveďte normální ruční nastavení blesku podržením tlačítka Flash (GPIO 0 na kostru) a současně stiskněte a uvolněte Reset (Reset na uzemnění). Nejsem si jistý, jestli to má časový limit, nebo jsem GPIO 0 neudržel dostatečně dlouho, ale potřeboval jsem několik pokusů, včetně toho, když se kompiluje Arduino IDE!

Pokud chcete zkontrolovat reakce - reléový výstup je D6 na deskách NodeMCU. Na ESP12 je to GPIO 12. Výstup LED je D7 (NodeMCU) nebo GPIO 13 (ESP12).

Sonoffův spínač.

VAROVÁNÍ: Musím říci „za žádných okolností se nepřipojujte k elektrické síti, když je skříň otevřená“. Všimněte si toho, že PCB (alespoň na Sonoff Basic (in-line switch) má pouze „izolovanou“vzdálenost mezi nízkonapěťovou sekcí a sítí. Takže s jakoukoli částí obvodu Sonoff je třeba zacházet jako se síťovým napětím. Tasmota GitHub ukazuje připojení teplotního a vlhkostního senzoru k Sonoff S20. Neudělal bych to kvůli obavám z izolace. - Pokud to tedy chcete udělat, pořiďte si modul ESP12 nebo NodeMCU a nastavte jej samostatně se správnou dvojitou izolací nebo uzemněný napájecí zdroj.

Zásuvný spínač Sonoff S20 je dobrým výchozím bodem, protože nepotřebuje žádné elektrické vedení. To lze otevřít odstraněním jednoho šroubu (pod bezpečnostním těsněním) a otevřením krytu. Níže uvedená fotografie ukazuje, kde jsou značky. Zmáčknutí pouzdra v těchto bodech pomáhá.

USB sériový převodník

Můj oblíbený převodník je verze FTDI. To však nemá dostatečnou schopnost uspokojit potřeby Sonoff 3.3v. Specifikace FTDI uvádí maximálně 50 ma. Další nejlepší alternativou je ta, která používá čip CP2102. To však má limit 100 ma, který stále není dostačující. Je zřejmé, že mnoho z nich používá tento převodník přímo, ale existují také zprávy o selhání načítání. Omezil bych čas, kdy je připojen, protože se zahřívá pod zátěží. Udělejte to na vlastní nebezpečí. Ideálním řešením je mít také regulátor 3,3 V, např. AMS1117 3.3. Aby to bylo možné, vytvořil jsem malou desku plošných spojů. Viz Programátor pro zařízení Sonoff.

Moje sekvence pro programování je následující:

Otevřete Arduino IDE.

V části Nástroje zkontrolujte, zda jsou nastavení stejná jako na Wiki.

Proveďte požadované úpravy souboru user_config.h. Nastavil jsem SSID a heslo Wifi a adresu brokera MQTT a podrobnosti o časovém pásmu/letním čase.

Kliknutím na „ověřit“zkontrolujte, zda je kompilace v pořádku.

Připojte sériový převodník USB (samostatně) k počítači. Poznamenejte si číslo portu.

Nyní odpojte sériový kabel USB od počítače a připojte jej k přepínači Sonoff. Zkontrolujte, zda jsou uzemnění a připojení 3v3 správným směrem (uzemnění je připojeno k základní rovině na desce Sonoff).

Držte programátor tak, aby byly kontakty zajištěny, a současně stiskněte tlačítko.

Nyní zapojte kabel USB do počítače, zkontrolujte správnost čísla portu (v nabídce Nástroje) a poté klikněte na stáhnout.

Po celou dobu programování držím tlačítko, protože nechci rušit připojení.

Po dokončení byste měli vidět obrazovku níže:

obraz
obraz

Sonoff potřebuje k připojení k našemu systému několik bitů informací: SSID a heslo pro místní síť Wi -Fi a IP adresu Pi. To lze provést několika způsoby, jedním z nich je upravit soubor config.ino, jak bylo uvedeno výše. Pokud máte smartphone, můžete (po opětovné montáži spínače) poměrně rychle 4krát stisknout tlačítko Sonoff, abyste jej přepnuli do režimu webového serveru. LED bude blikat. Musel jsem to několikrát zkusit, aby to fungovalo. Poté na svém smartphonu vyhledejte novou síť Sonoff a připojte se. Zobrazí se webová stránka, kde můžete nastavit požadovaná data. IP adresa Pi přejde do názvu hostitele. Také jsem změnil druhý SSID a heslo na něco dlouhého a v podstatě nepoužitelného.

Alternativně jej lze nastavit pomocí sériového připojení těsně po načtení. Otevřete Arduino Serial Monitor (v části Nástroje).

Příkazy k zadání:

SSIdejte svůjWiFiSSID

Zadejte heslo do svého hesla Wi -Fi

MqttHost 192.168.x.y (IP adresa PI)

Můžete také zadat SSId1 a Password1 následované něčím dlouhým a nepoužitelným, abyste to mohli efektivně deaktivovat.

Nyní můžete zabalit přepínač Sonoff, otevřít panel Node-Red a Node-red a kliknout na tlačítko přepínače a podívat se na kartu ladění, která by nyní měla obsahovat odpovědi ze Sonoffa. Takže máme za sebou další velký krok - náš první přepínač je poháněn z PC/smartphonu.

Až dosud jsme nezmínili zabezpečení. Existuje možnost používat šifrovanou komunikaci. Nastavení je poměrně složité a pravděpodobně vhodnější tam, kde se používá cloudový broker. K dispozici je také možnost přidat uživatelská jména a hesla pro všechna připojená zařízení a zakázat anonymní uživatele. Nastavení je velmi jednoduché. A tak nyní k Zabezpečení.

Krok 7: Zabezpečení

MQTT umožňuje uživatelská jména a hesla pro každého klienta. Nastavení je snadné. Pravděpodobně je jednodušší nejprve přejmenovat každé zařízení a poté nastavit jeho uživatelská jména a hesla. To lze provést pomocí příkazů MQTT a Node-Red je pravděpodobně nejjednodušší způsob, jak je odeslat. Nejprve se rozhodněte pro konvenci pojmenování. Jednou z možností je založit názvy na umístění a funkci. Poté budete chtít zaznamenat jméno (téma) uživatelské jméno a heslo spolu s nouzovým tématem. Všimněte si také, že existuje také „možnost resetování“pro resetování nastavení Sonoff na původní stažení (viz Použití Wiki> Funkce tlačítek).

Zapněte pí a po několika sekundách otevřete prohlížeč na Node-Red (IP adresa: 1880).

V Node-Red nastavte vstřikovací uzel a propojte jej s výstupem mqtt a nastavte server mqtt na localhost. Téma, uživatele a heslo nechte prázdné, protože je nastavíme v uzlu pro vložení. Také nastavte vstupní uzel mqtt a připojte jej k ladicímu uzlu, abychom viděli odpovědi. Nastavte vstupní poznámku mqtt na localhost (již by měla být nastavena) a zadejte+/+/+pro téma, aby zachytila veškerý provoz.

Do uzlu vstřikování zadejte následující sekvenci nastavení.

Nejprve zkontrolujte připojení pomocí

Téma: cmnd/sonoff/Status

Zpráva: 6

klikněte na „Vložit jednou při spuštění“. Nasadit. Měli bychom vidět ladění včetně 7 řádků dat ze stat/sonoff/STATUS6

Zadejte téma: cmnd/sonoff/téma a zpráva: loungelight. Nasadit. Tím se změní název přepínače ze sonoff na loungelight

Na kartě ladění by se mělo zařízení restartovat s novým názvem/tématem

Téma: cmnd/loungelight/MqttUser

Zpráva: loungelight

Klikněte na nasadit. Ladění by mělo být viděno ze stat/loungelight/RESULT s {„MtqqUser“: „loungelight“}

Téma: cmnd/loungelight/MqttPassword

Zpráva: loungelightPW (všimněte si více nápaditosti než toto!)

Vymažte kartu ladění a nasaďte.

Odpověď by měla být viděna ze statistik/loungelight/VÝSLEDEK s {"MqttPassword": "loungelightPW"}

Nyní zadejte NodeRed a NodeRedPW jako uživatelské jméno a heslo do uzlu mqtt out. To se provádí pomocí ikony tužky serveru a karty zabezpečení v okně, které se otevře. To se automaticky zkopíruje do ostatních uzlů MQTT.

Znovu zkontrolujte pomocí

Téma: cmnd/loungelight/Stav a zpráva: 6. Nasadit.

A že odpověď je odeslána.

V tomto bodě jsme tedy přejmenovali naše zařízení Sonof, aby poslouchalo témata cmnd/loungelight/…… a přihlásilo se na sever MQTT pomocí uživatelského jména loungelight a hesla loungelightPW. Také jsme nastavili uživatelské jméno a heslo pro Node-Red.

Dále musíme říci serveru MQTT komárů, aby přijímal pouze klienty s uživatelskými jmény a aby uvedl seznam uživatelských jmen a hesel, která mají být přijata.

Postup je následující:

  • Zastavte komáry
  • Vytvořte vlastní konfigurační soubor
  • Upravit konfigurační soubor
  • Vytvořte soubor hesel
  • Přidejte uživatele/hesla.

Přihlaste se tedy pomocí nové relace PuTTY a spusťte následující příkazy:

sudo /etc/init.d/mosquitto zastavit

cd /etc/mosquitto/conf.d/

sudo nano mosquitto.conf Spustí se editor.

Přidat řádky:

allow_anonymous false

heslo_soubor /etc/mosquitto/conf.d/passwd

require_certificate false

Uložte a ukončete (Ctrl+X), Y, zadejte.

sudo touch passwd Tím se vytvoří soubor hesel a následující pokyny přidají jména a hesla.

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 restartovat

Všimněte si, že při přidávání nového zařízení budete muset buď zadat uživatele a heslo přes sériový port a přidat je do souboru s hesly, nebo dočasně změnit konfigurační soubor mosquitto a okomentovat (přidat # na začátek řádku) řádky „allow_anonymous false "a" heslo_soubor /etc/mosquitto/conf.d/passwd "a poté je resetujte, když byly detaily odeslány do zařízení a přidány do souboru hesel, jak je uvedeno výše.

Změnili jsme název sonoff na loungelight, a tak aktualizujeme výstupní uzel mqtt (připojený k přepínači), aby používal téma cmnd/loungelight/POWER.

Klikněte na Nasadit a zkontrolujte, zda uzly mqtt ukazují „připojeno“.

Dále zkuste tlačítko přepnout a vyhledejte ladicí program, který ukazuje, že přepínač Sonoff reaguje. Všimnete si, že zařízení ukazuje změnu s tématem: stat/loungelight/POWER. Nyní tedy změňte vstupní uzel, který byl nastaven na cmnd/sonoff/POWER na stat/loungelight/POWER. Můžeme použít toto zakrytí mezery v naší funkčnosti. Systém, jak byl původně nastaven, bude synchronizován se všemi přihlášenými uživateli, ale nebude synchronizován se změnami přepínačů provedenými stisknutím tlačítka na přepínači Sonoff. Nyní tedy připojte výstup vstupního uzlu stat/loungelight/POWER mqtt ke spínacímu vstupu (LHS). Nyní dvakrát klikněte na přepínač a zrušte zaškrtnutí políčka „pokud zpráva dorazí na vstup, projděte na výstup“. Tím se zobrazí několik nových možností - vyberte „ikona přepínače ukazuje stav vstupu“. Nasadit. Takže teď máme dobrou zpětnou vazbu. Poloha přepínače na palubní desce se vždy změní, když se změní přepínač Sonoff, bez ohledu na to, kde byla změna zahájena.

Nyní tedy máme zabezpečený a samostatný systém domácí automatizace v provozu a připravený k rozšíření o cokoli, co chcete. V další části se budu zabývat některými z mých dosavadních experimentů a výzvami, se kterými se chystám vypořádat.

Krok 8: Počáteční kroky pro rozšíření

Mám další Instructable Home Automation Sonoff-Tasmota Sensors LEDs Development Board, která ukazuje některé z dalších schopností firmwaru Sonoff-Tasmota:

Měření teploty a vlhkosti

Detekce narušitele (vstup spínače)

IR dálkové ovládání (pro TV atd.)

Řetězce LED - RGB i NeoPixel (jednotlivě adresovatelné)

Senzory I2C

Pro výše uvedené používám ESP12F a vlastní PCB. Rovněž lze použít NodeMCU a breadboard. To umožňuje tyto další funkce bez zapojení do zařízení Sonoff, a proto je to mnohem bezpečnější přístup. Se vstupem teploty jsem mohl dokončit automatizaci elektrické deky.

Hudbu a internetové rádio lze snadno přidat. Tím se otevírají možnosti zapnutí konkrétních stanic nebo alb ve stanovených časech nebo třeba v reakci na detekci návštěvníka (telefonu). Tento související pokyn je k dispozici ve vysoce kvalitním hudebním přehrávači a internetovém rádiu s ovládáním pomocí smartphonu. Protože to také řídí Node-RED, mělo by být dokonce možné mít více než jeden zvukový systém a řídit je komunikací MQTT.

Také jsem zkoumal Node-Red, včetně odesílání e-mailů a vytváření hlasových upozornění. Systém má také potenciál detekovat, kdy jste dovnitř/ven - pomocí pingování adresy IP vašeho mobilního telefonu. Node -Red má také přístup k počasí a zprávám - můžete tedy přidávat informace a provádět automatizaci.

Existuje několik triků, které je třeba se naučit - ale ty se stanou mrtvými snadno podruhé.

Další možností je přidání displeje k pí pro zobrazení palubní desky. Toto je „nedokončená práce“- nebo jinými slovy nejsem příliš šťastný. Displej, který jsem dostal, je obtížné otočit do režimu na výšku a prohlížeč Chromium je bolestivě pomalý. Alternativou by bylo vyzvednout si starý tablet na ebay a použít ho. Můžu zkusit s Pi 2 a zjistit, zda to přináší dostatečné vylepšení (model B použitý pro tento vývoj).

Doufám, že tím začnete a rozproudí se vaše představivost. Potenciální rozsah je obrovský. V případě potřeby lze dokonce upravit Sonoffův kód pro další senzory.

Celkově jsem byl ohromen tím, co tento systém dokáže. Mým původním cílem bylo spolehlivě řídit přepínač ze smartphonu prostřednictvím samostatného systému. Měl jsem představy o potřebě spravovat servery a klienty a psát html pro uživatelské rozhraní. To, kde to skončilo, je mnohem dál, s vyšším zabezpečením, vynikající spolehlivostí, fantastickým uživatelským rozhraním, programováním drag and drop a obrovským potenciálem pro expanzi. A to vše s mnohem menším úsilím.

Mike

Krok 9: Dodatek - načítání z Raspbian Stretch Lite

Tato možnost se vyhýbá bloatwaru, který je dodáván s plnou verzí Raspbian Stretch. Většinu z toho nebudete potřebovat při používání Pi pro domácí automatizaci. Node-Red však musí být nainstalován.

Postupujte jako v kroku 1, ale místo Raspbian Stretch použijte Raspbian Stretch Lite.

Místo kroku 2 proveďte následující:

sudo apt -y install npm

npm -v by se mělo vrátit: 1.4.21 nebo novější

sudo npm install -g n

sudo n 8.9.0

K instalaci Node-Red nyní můžeme použít správce paketů uzlů:

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

Z důvodu nesprávné adresy se zobrazí několik chybových zpráv. Systém však k vyřešení tohoto problému provede „zdrojovou kompilaci“. Pokud zopakujete výše uvedené pokyny (není nutné), chyby se nevyskytnou.

Nyní máme Node-Red a jeho podpůrné balíčky nainstalované a můžeme přejít ke kroku 3, načítání komára.

Bezdrátová soutěž
Bezdrátová soutěž
Bezdrátová soutěž
Bezdrátová soutěž

Druhé místo v bezdrátové soutěži

Doporučuje: