Tartalomjegyzék:

Erőteljes önálló otthoni automatizálási rendszer - Pi, Sonoff, ESP8266 és Node -Red: 9 lépés (képekkel)
Erőteljes önálló otthoni automatizálási rendszer - Pi, Sonoff, ESP8266 és Node -Red: 9 lépés (képekkel)

Videó: Erőteljes önálló otthoni automatizálási rendszer - Pi, Sonoff, ESP8266 és Node -Red: 9 lépés (képekkel)

Videó: Erőteljes önálló otthoni automatizálási rendszer - Pi, Sonoff, ESP8266 és Node -Red: 9 lépés (képekkel)
Videó: 15. ESP8266 alapú MQTT szerver 2024, November
Anonim
Erőteljes önálló otthoni automatizálási rendszer - Pi, Sonoff, ESP8266 és Node -Red
Erőteljes önálló otthoni automatizálási rendszer - Pi, Sonoff, ESP8266 és Node -Red

Ennek az útmutatónak el kell juttatnia az első bázishoz, ahol a helyi hálózathoz csatlakozni képes eszközön keresztül ki- és bekapcsolhatja a lámpát vagy a készüléket, valamint egy nagy testreszabható webes felületet. A kiterjesztési/ hozzáadási funkciók kiterjedtek, beleértve az e -mailek küldését, twitter üzeneteket, olvasási érzékelőket (pl. Hőmérséklet). Könnyen beállíthat szabályokat pl. - ha a hőmérséklet 15 fok alatt van 23 órakor, kapcsolja be az elektromos takarót 30 percre. A rendszer az MQTT protokollt használja a TCP -vel, amely sokkal megbízhatóbb, mint az UDP - ezt meglepő módon használják egyes kereskedelmi otthoni automatizálási eszközök. Miután elvégezte a rendszer beállításával kapcsolatos, itt leírt kemény munkát, kezdődhet a móka. A Node Red fantasztikus felhasználói felületet biztosít, amely intuitív, gyors és könnyen beállítható, és elképesztő képességeket biztosít.

Az eredmény egy erőteljes otthoni automatizálási rendszer, amely teljes mértékben saját irányítás alatt áll, és teljes egészében helyi hálózaton működik. Az Instructables -en megjelenített rendszerek közül sok felhőalapú kiszolgálókkal működik, ezért biztonsági kockázatot jelentenek, és előfizetést igényelhetnek. Ezeket könnyebb beállítani, de nagyobb a biztonsági kockázatuk és potenciálisan magasabbak a költségeik. Hozzá kell tennem, hogy beállíthat egy VPN -t (virtuális magánhálózatot) a Pi -hez, hogy lehetővé tegye a biztonságos kapcsolatot az otthoni hálózattal/rendszerrel, ha a kívülről érkező hozzáférés hasznos lenne (utasításokért a Google Pi OpenVPN).

Ez a rendszer Sonoff-eszközök újraprogramozását igényli egy nagyszerű nyílt forráskódú rendszerrel, Sonoff-Tasmoda néven. Ezt megteheti egy speciális Arduino beállítás és egy USB -soros átalakító használatával. A Sonoff készülékek az ESP8266 Wi-Fi chipet használják, így saját eszközeit is elkészítheti az ESP8266 modulok segítségével, vagy illesztheti más elemekhez a vezeték nélküli kapcsolat biztosítása érdekében.

A legnagyobb feladat egy Raspberry Pi beállítása hubként. Ez futtatja az MQTT közvetítőt (vagy szervert), amely a csatlakoztatott eszközökkel folytatott kommunikációt kezeli. A Pi egy Node-Red nevű rendszert is futtat, amely képes elfogni az üzeneteket és az adatokat, valamint a kimeneti parancsokat-például mikor kell bekapcsolni az elektromos takarót. A Node-Red egy felületet is kínál a weboldal kiszolgálásához, amelybe bejelentkezhet okostelefonon/táblagépen/PC-n/laptopon keresztül, hogy lássa, mi történik, és lehetővé teszi a lámpák kézi kapcsolását stb.

Célom ezzel az utasítással az, hogy minden lépést kellő részletességgel adjak meg ahhoz, hogy egy kezdő is működőképessé tegye a rendszert.

A lépések a következők:

  • Töltsön be egy Pi -t Rasbian Stretch segítségével
  • Frissítse és adjon hozzá funkciókat a Node-Red-hez
  • Telepítse a Mosquitto MQTT közvetítőt
  • Állítsa be az Arduino környezetet a Sonoff-Tasmota firmware feltöltéséhez
  • Programozza újra a Sonoff kapcsolót
  • Állítsa be a Node-Red interfészt
  • Teszteld, hogy minden működik.

Hardver, amire szüksége lesz:

  • Raspberry Pi és tápegység (valamint billentyűzet és monitor a kezdeti beállításhoz) (itt használt B modell)
  • Sonoff kapcsoló
  • USB soros átalakító
  • Opcionális - ESP fejlesztőlap, például a NodeMCU.

Az én tapasztalataim a Raspberry Pi -vel kapcsolatban az, hogy bármi beállítása lényegesen több fájdalommal jár, mint azt valaha is elképzelni lehetne, ha a dolgok nem működnek, vagy elakadnak egy triviális lépésen, ahol a magyarázat jobb is lehetett volna. A fórumok nem mindig kapnak hatékony tanácsokat! Találtam több útvonalat, amelyek egyszerűen nem működtek egyik vagy másik okból. Ez 3 napba került! Ezután mindent letöröltem, és újrakezdtem, és kevesebb mint (hosszú) nap alatt befejeztem. Ez azonban az idősebb raspiai Jessie -t használta. Ezek után megtaláltam a módját a jelenlegi és nemrég megjelent verzió (Stretch) használatának, és újra csináltam. Ez az útmutató lehetővé teszi az utasítások másolását és beillesztését a Pi -be. Tehát néhány órán belül készen kell állnia. Mindenesetre remélem, hogy ez gyorsabban feljut a tanulási görbére, és sokkal kevesebb fájdalommal jár. Hidd el megéri a végeredményért.

1. lépés: Töltsön be egy Pi -t Rasbian Stretch segítségével

Ennek elég egyszerűnek kell lennie. Kezdje 8Gb vagy 16Gb SD kártyával. Töltse le a legújabb verziót innen:

www.raspberrypi.org/downloads/

A fő szál itt azt feltételezi, hogy a teljes verzió betöltődött. Helytakarékosság érdekében azonban használhatja az egyszerűbb verziót. Ha Raspbian Stretch Lite -ot használ, folytassa ezt a lépést, majd folytassa a 9. lépéssel a végén.

A letöltött fájl kicsomagolásakor egy mappa található az.img fájllal. A 7Zip a Windows (és az Unarchiver Mac) számára ajánlott. A képet fel kell égetni az SD -kártyára - de speciális programot kell használni, mivel a fájlrendszer nem kompatibilis a Windows rendszerrel. Az ajánlott szoftver neve Etcher, és letölthető innen:

etcher.io/

Az Etcherre vonatkozó utasítások megtalálhatók a weboldalukon, és aligha lehetne egyszerűbb. Válassza ki a képet és a meghajtót, majd kattintson a Flash elemre.

Most a villogó SD -kártyánkkal elindíthatjuk a Pi -t.

Ha ismeri a Pi által használt IP -címet, vagy örömmel találja meg, ha bejelentkezik az útválasztóba, akkor elkerülheti a billentyűzet és a monitor szükségességét, és azonnal használhatja az SSH -t. Csak adjon hozzá egy üres SSH nevű fájlt az SD -kártyához, helyezze be, csatlakozzon az Ethernet -hez és kapcsolja be. Ellenkező esetben kövesse az alábbi útmutatót.

Csatlakoztassa a Pi -t az internethez, a képernyőhöz, az egérhez és a billentyűzethez, és csatlakoztassa az áramellátáshoz. Első lépésként engedélyezzük az SSH -t, hogy a beállítások nagy részét kényelmesen elvégezhessük PC -n. Természetesen közvetlenül is elvégezhető, de sokat segít abban, hogy ezt az útmutatót ugyanazon az eszközön kövessük, mint a Pi -t, és a másolás és beillesztés funkciót használjuk a legtöbb utasításhoz. Az én esetemben a PC -s munkaállomásom szép és kényelmes, de nem elég nagy a pi -hez.

Van egy útmutató a YouTube -videóval kapcsolatos munkák nagy részéhez. Itt kezdtem. Az alábbi utasításokat követve futtathatja a videót. Amikor azonban ismét végigfutottam a folyamaton, miközben ezt írtam, könnyebbnek találtam az itt leírt utasítások követését. Van néhány jelentős eltérés. Vannak olyan részek is, ahol azt tanácsoltam, hogy kövessék a videót, ahelyett, hogy felsorolnám a lépéseket. Azt javaslom azonban, hogy nézze meg, hogy megértse az MQTT-t, a Node-Red-t és a széles beállítási folyamatot. A videó 38 perc hosszú, így érezd jól magad. A videó azzal kezdődik, hogy bemutatja, mire képes a Node Red, majd bemutatja a Pi telepítését és beállítását, majd a Node Red frissítését és végül a Mosquitto telepítését. A legfontosabb időzítések arra az esetre, ha vissza szeretne térni egy szakaszhoz:

00:00 Bevezetés a videóba

03:00 Node Red bemutató

14:14 A műszerfal elemeinek importálása a Node Red rendszerbe

21:05 Pi kezdeti beállítás, beleértve az SSH -t

23:35 Node Red támogató kód telepítése

27:00 Bevezetés az MQTT -be

29:12 Mosquitto (MQTT) telepítése (a megjegyzés csak Raspian Jessie esetén működik)

33:00 Csomópont Piros példák

A parancsokat félkövér dőlt betűkkel fogom felsorolni (a „” helyett). Ezt a formázást figyelmen kívül hagyja, amikor másolja és beilleszti őket a Pi -be.

A Node Red bevezetője képet ad arról, hogy mire képes a rendszer, és képet ad arról, hogy hol fogunk végezni.

A YouTube videó itt található:

Kövesse a telepítési eljárást 21:05 és 23:35 között. Ne feledje, hogy az alapértelmezett bejelentkezés felhasználó: pi és jelszó: málna. Az újraindítás előtt keresse meg a pi IP -címét. Vagy kattintson a „fel+le nyíl” ikonra az asztali felső sávon, vagy írja be a következő utasítást a terminál/terminál ablakába:

sudo ifconfig cím

Ezután jegyezze fel az IP -címet a következő után: inet addr:. 192.168.x.y formában lesz

Jegyezze fel ezt a címet, és indítsa újra (írja be: sudo shutdown –r now)

A legfontosabb ezen a ponton az, hogy az SSH engedélyezve van, és a PC -ről lehet létrehozni egy linket a Pi -hez (a Mac és a Linux tartalmaz SSH interfészeket). Egy jó program erre a PuTTY nevű ingyenes letöltés, amely soros interfészként is használható, és Telnetet is tud csinálni. A gitt itt kapható:

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

Töltse le és telepítse a PuTTY -t.

Most, amikor a Pi újraindult, indítsa el a PuTTY -t, és írja be a korábban említett IP -címet. Lásd az alábbi példát:

Most kattintson a Megnyitás gombra

Bejelentkezés után: írja be a pi -t

Ezután adja meg jelszavát.

Most kövesse az itt található utasításokat, és tetszés szerint indítsa el a videót 23: 35 -től. A legtöbb esetben másolhat és beilleszthet. Jelölje ki a szöveget, és a másoláshoz használja a Ctrl+C billentyűkombinációt. Ezután kattintson a jobb gombbal a PuTTY -be a beillesztéshez. Néha a szöveg nem jelenik meg azonnal, ezért várjon néhány másodpercet. Ha kétszer lép be, használja a backspace billentyűt a második bejegyzés törléséhez. Nyomja meg az enter gombot az egyes utasítások végrehajtásához.

sudo raspi-update

Kaptam egy parancsot, amelyet nem találtam, és figyelmen kívül hagytam ezt és a következő leállítási/újraindítási utasítást:

sudo shutdown -r most

sudo apt -get -y frissítés

sudo apt -get -y frissítés

Ez eltart egy ideig…..

sudo apt-get autoremove

sudo apt -get -y frissítés

sudo shutdown -r most

Ezen a ponton betöltöttük és frissítettük a Pi operációs rendszert, és készen állunk a következő lépésre.

2. lépés: Frissítse és adjon hozzá funkciókat a Node-Red-hez

A PuTTY kapcsolat megszakad az újraindítással az előző lépés végén. Tehát zárja be a PuTTY -t, és miután megvárta a Pi indítását, jelentkezzen be újra, mint korábban.

Egy egyszerűbb és megbízhatóbb módszerre tértem át a Node-Red betöltésére-a https://nodered.org/docs/hardware/raspberrypi címen található módszer szerint. Ez parancsfájlt használ, és telepíti vagy frissíti a Node-Red csomópontot-így a megközelítés ugyanaz, mint a Raspbian Stretch teljes vagy egyszerű verzióiban. Tehát írja be:

bash <(curl -sL

Írja be az Y -t, amikor a rendszer kéri (kétszer). Ez a szkript a Node-Red automatikus indításához szükséges fájlokat is betölti.

Tehát ezen a ponton betöltöttük és frissítettük a pi -t, valamint a Node Redhez szükséges frissítésekkel. Nem árt újraindítani a következő szakasz előtt.

sudo shutdown -r most

3. lépés: A Mosquitto MQTT telepítése

Ha még nem tette meg, érdemes 27:00 órától megtekinteni a videón az MQTT bevezetőjét.

Itt más utat kell választanunk. A videóban bemutatott eljárás csak a Raspian régebbi Jessie verzióján működik. A szúnyogok területén vita folyik, de nem látszik egyértelmű eredmény, és ezért egy egyszerűbb és biztonságosabb útvonal mellett marad.

Tehát jelentkezzen be a PuTTY használatával, és írja be a következőt:

sudo apt-get update

sudo apt-get install mosquitto mosquitto-kliensek

Y

sudo /etc/init.d/mosquitto stop

sudo /etc/init.d/mosquitto start

Az utóbbi két utasítás leáll és elindítja a szúnyogot, és megmutatja, hogy az MQTT brókerünk működik.

A gyors teszthez nyisson meg még két PuTTY szekciót, és jelentkezzen be mindegyikbe.

Mostanra már tudni fogja, hogy az MQTT az eszközön keresztül működik, és szüksége van adatokra, amelyek feliratkoznak egy „témára”. A bróker minden adatot ugyanazzal a „témával” küld. Ekkor az adatot/utasítást küldeni kívánó eszköz ugyanazt a "témát" felhasználva közzéteszi ezt a brókernek.

Tehát egy PuTTY munkamenetben írja be:

mosquitto_sub -d -t hello/world

Ez egy utasítás, hogy iratkozzon fel a következő témára: hello/world.

A másikba írja be:

mosquitto_pub -d -t hello/world -m "Üdvözlet a 2. terminál ablakából!"

Ez egy közzétételi utasítás, ugyanazzal a témával és üzenettel. A szöveg: „Üdvözlet a 2. terminál ablakából!” most meg kell jelennie a másik terminálon.

Jól tetted, hogy idáig eljutottál. Most a Pi-t betöltöttük és frissítettük a Node-Red-hez szükséges frissítésekkel, valamint a szúnyog MQTT bróker telepítve és tesztelve. Innentől kezdve az élet kicsit szórakoztatóbbá válik. Zárja be az MQTT teszthez használt két PuTTY szekciót.

4. lépés: A csomópont piros felületének beállítása

Először el kell indítanunk a Node Red -t. Írja be az utasítást:

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

Várja meg, amíg futni kezd, és megjelenik a „Started flow” szöveg.

Most nyisson meg egy böngészőt, használom a Chrome -ot, és írja be a korábban említett pi IP -címet, majd ezt követi: 1880, azaz valami 192.168.0.8:1880

Most látnia kell a Node Red programozási oldalt az alábbiak szerint:

Most már követheti a Node Red példákat 33: 00 -tól, vagy egyenesen továbbléphet a további beállításokhoz, és betöltheti az első folyamatot, amely megmutatja az MQTT linkjét, és készen áll a kapcsolónk meghajtására.

A további beállításhoz hozzá kell adni a műszerfal elemeit, amelyek lehetővé teszik a webes felületet.

Ezeket a videó 14:14 órakor mutatja.

Kövesse az utasításokat a node-red-dashboard betöltéséhez.

Most játszhatunk egy kicsit, és megmutathatjuk, hogy az MQTT működik és hajt a Node-Red. Ez nem szerepel a videón, de kulcsfontosságú a projektben. Követheti az utasításaimat, és/vagy importálhatja a folyamatokat a mellékelt NRtest1.txt fájlból.

Először adjon hozzá egy bemeneti befecskendezési csomópontot és egy kimeneti mqtt csomópontot, és kapcsolja össze őket.

Kattintson duplán a befecskendezési csomópontra (amely kezdetben időbélyegzővel van ellátva). A hasznos teher részben használja a twiddly -t, hogy karakterláncra váltson, és írja be: Hello from me. Hagyja üresen a témát, mivel ezt beírhatjuk az MQTT csomópontba. Kattintson a Kész gombra

Most kattintson duplán az MQTT csomópontra. Kattintson a ceruza ikonra a Szerver rész jobb oldalán. Ez új párbeszédablakot nyit meg. Írja be: localhost a Szerver szakaszba. Kattintson a Hozzáadás gombra. Most, az Edit mqtt out csomópontban, írja be témánkat a Téma részben: hello/world. Állítsa a QoS -t 1 -re. Kattintson a Kész gombra. Most kattintson a Telepítés gombra. Látnia kell egy zöld foltot, és „csatlakoztatva” az mqtt csomópont alatt.

Most adjon hozzá még két csomópontot - az mqtt bemenetet és a kimeneti hibakeresést, és kösse össze ezeket. Most kattintson duplán a bemeneti mqtt csomópontra, és írja be a hello/world témát. A szervernek már a localhost -ot kell mutatnia: 1883. Állítsa a QoS -t 1 -re. Kattintson a Kész gombra. Ezután kattintson a Telepítés gombra, és kattintson a hibakeresési fülre a jobb oldali panelen. Most kattintson a szürke négyzetre a „Hello from me” injekciós csomópont bal oldalán. Ez elküldi a szöveges hasznos terhet az MQTT brókernek a hello/world témával. A bróker tudja, hogy az mqtt bemeneti csomópont előfizetett ugyanarra a témára, és így továbbítja a hasznos terhet. Az mqtt bemeneti csomópont ezt elküldi a hibakeresési fülre (RHS), és megjelenik a „Hello from me” szöveg.

Ez egy másik négyzetet pipál, amikor a Node Red beszél az MQTT brókerünkkel. Ne feledje, hogy a Node Red csak ügynök a brókernek - mint a Sonoff eszközök, amelyeket később csatlakoztatunk. Mindazonáltal kifinomult automatizálást tesz lehetővé, és nagyszerű felhasználói felületet biztosít.

Most végezhetünk néhány apró változtatást, és beállíthatjuk a folyamatokat a Sonoff kapcsolónkhoz.

Tehát törölje a bemeneti befecskendezési csomópontot (kattintson rá a kiemeléshez, és nyomja meg a törlés gombot). Most vegyen fel egy kapcsolót a műszerfal részből, és csatlakoztassa az mqtt kimenethez. Dupla kattintás kapcsoló. Kattintson a csoport jobb oldalán található ceruzára. Írja be a Név: Fény menüpontot. Ezután kattintson a Tab jobb oldalán található ceruzára, és lépjen be a Név részbe: Lounge. Kattintson ismét a Hozzáadás/Frissítés, majd a Hozzáadás/Frissítés gombra. Most, a Szerkesztés kapcsoló csomópontban, állítsa be és ki a hasznos terheléseket. Használja a twidlys gombot a karakterlánc kiválasztásához, és írja be az ON értéket az On hasznos terheléshez, és OFF értéket az OFF hasznos terheléshez. Kattintson a Kész gombra

Most lépjen az egyes mqtt csomópontokhoz, és módosítsa a témát cmnd/sonoff/POWER értékre. Másolás és beillesztés esetén ellenőrizze, hogy nincs -e szóköz a végén. Ez egy másik téma, és nem fog működni a Sonoff -tal. Egy kóbor tér megtalálása akár egy órát is igénybe vehet - hidd el! Elmentem a műszerfalhoz> Téma, és kiválasztottam: Sötét. Kattintson a Telepítés gombra, és válassza a hibakeresési fület.

Most nyisson meg egy új böngésző munkamenetet egy új ablakban, és méretezze úgy, mint egy mobiltelefon a Node Red munkamenet felett. Adja meg a címet: a Pi IP -címe: 1880/ui/#/0, azaz valami 192.168.0.8:1880/ui/#/0. Látnia kell egy képernyőt a társalgóval és a világítással, és kapcsolnia kell. Kattintson a be-, majd kikapcsolásra. A hibakeresési ablakban az ON és OFF hasznos terheléseket kell megjeleníteni. Ha szeretné, mobilon keresztül is jelentkezzen be. Vegye figyelembe, hogy a kapcsoló helyzete szinkronban van. Nem számít, hogy a Sonoffunk még nincs kapcsolatban. Amikor ez megtörténik, feliratkozik a Témára, felveszi az üzenetet/hasznos terhet, és cselekszik.

Az utolsó kis lépés, hogy a Node Red automatikusan elinduljon a Pi indítása után.

A Node Red útmutatót tartalmaz a következő címen:

A szükséges fájlok azonban már betöltődtek, így nincs szükség telepítésre.

Ha engedélyezni szeretné a Node-RED automatikus futtatását minden indításkor, és összeomláskor lépjen be (nyissa meg a PuTTY munkamenetet):

sudo systemctl enable nodered.service

Ha valaha le kell tiltania ezt, írja be:

sudo systemctl letiltása nodered.service

Most állítsa le a pi -t a sudo leállításával, és távolítsa el az áramot.

Ez most a mi Pi -t lezárta és betöltötte a cselekvésre. Számítógépünk/mobiltelefonunk csatlakozik a Node Red -hez, és ez beszél az MQTT szerverünkkel. Ez hosszú út volt, és megérintett egy nagy veregetést. Szép munka. A következő, Arduino -t kicsit könnyebbnek találtam!

5. lépés: Az Arduino rendszer beállítása a Sonoff eszközök újraprogramozásához

Ehhez minden információ megtalálható a Sonoff-Tasmota GitHub webhelyen. Az egyetlen rész, amivel nehezemre esett, a Téma szövege volt - de ravaszul rávettem, hogy ezt már írja be!

Nyissa meg a https://github.com/arendst/Sonoff-Tasmota oldalt

A beállítási utasításokat a Wiki lapon találja a Feltöltési eszközök részben:

Ahelyett, hogy minden lépésen átmennék, csak azokat a legfontosabb szempontokat jegyzem meg, amelyeket fontosnak éreztem, vagy elakadtam.

Az utasítások jók, de figyelni kell a részletekre. Meglepett, hogy szükség van egy ESP8266 mappára egy olyan mappában, amely egy másik ESP8266 nevű mappában van, és ezért két szintet kimaradtam.

Követtem az ajánlást egy teljesen külön Arduino beállításhoz. Létrehoztam egy új mappát „ArduinoSonoff” néven, amely elkülönül a meglévő Arduino mappámtól. A beállítás meglehetősen fejlett, ezért nagyon jó ötlet külön tartani. Ha ez az első Arduino beállítása, győződjön meg róla, hogy másodszor is telepíti az „Arduino” vagy más mappába bármely más Arduino -munkához, beleértve az ESP8266 -okon végzett munkát.

Töltse le a legújabb Arduino IDE -t a https://www.arduino.cc/en/Main/Software webhelyről. Csomagolja ki a fájlt az új mappába.

Az utasítások tartalmazzák a Sonoff-Tasmoda rendszer letöltését a https://github.com/arendst/Sonoff-Tasmota főoldalról: klónozás vagy Letöltés> ZIP letöltése. Csomagolja ki a fájlt az új mappába.

Gondosan kövesse az utasításokat. Nem tettem meg az Opcionális: Felkészülés az OTA feltöltésre részt. Ezt még egy napra hagyjuk.

Most indítsa el az Arduino IDE -t (kattintson duplán az arduino.exe fájlra). Töltse be a Sonoff-Tasmota vázlatot a Fájl> Vázlatfüzet> sonoff segítségével. Nincs szükség semmilyen szerkesztésre. Minden beállítás soros kapcsolaton keresztül történik a firmware betöltése után. Ezeket az EEPROM tárolja. Így a firmware frissíthető, és az összes beállítás megmarad. Ez elég okos dolog. Azonban elkerülheti, hogy itt néhány lépést kelljen tennie, ha a user-config.h fájlba lép, és megadja a wifi SSID-jét, jelszavát és MQTT_HOST-ját (cserélje ki a „domus1”-második hivatkozást a Pi IP-címére). Később érdemes megadni egy MQTT felhasználót és jelszót is. A letöltés előtt ellenőrizze a tábla beállításait az Eszközök alatt. Ezeken szükség lesz néhány módosításra, hogy megfeleljenek a Wikiben meghatározott követelményeknek. Most kattintson a fordítás gombra (pipálja az ikont). Rendben kell fordítania. Ha nem, vagy ha a szükséges táblabeállítások nem állnak rendelkezésre, menjen vissza, és ellenőrizze a beállítás minden lépését.

6. lépés: Sonoff kapcsoló újraprogramozása

Most készen állunk a letöltésre. Ebben a szakaszban vagy egyenesen előre lehet menni, és villogni lehet egy Sonoff kapcsolóval, vagy először egy ESP8266 modult. Ez utóbbit tettem, részben azért, mert a kapcsolóim még nem érkeztek meg (csak most érkeztem meg, amikor ezt beírtam!), De elővigyázatosságból is, mivel a Sonoff kapcsoló villogása egyirányú lépés, mivel az eredeti firmware nem nyilvánosan elérhető Tisztában vagyok azzal. Van pár NodeMCU lapom. Ezek könnyen csatlakoztathatók, mivel beépített USB-soros átalakítójuk van. A nodemcu visszaállítási módszer azonban nem működik ezzel a rendszerrel. Tehát hagyja az Eszközök> Módosítási módszer beállítást „ck” értékre. Végezze el a normál manuális vakubeállítást úgy, hogy lenyomva tartja a vaku gombot (GPIO 0 a földre), miközben megnyomja és felengedi a Reset (visszaállítás a földre) gombot. Nem vagyok biztos benne, hogy van -e időkorlátja, vagy talán nem tartottam alacsonyan a GPIO 0 -t elég sokáig, de több próbálkozásra volt szükségem, beleértve ezt az Arduino IDE fordítása közben is!

Ha ellenőrizni szeretné a válaszokat - a relékimenet D6 a NodeMCU kártyákon. Az ESP12 -en ez a GPIO 12. A LED kimenet D7 (NodeMCU) vagy GPIO 13 (ESP12).

Sonoff kapcsoló.

FIGYELMEZTETÉS: Azt kell mondanom, hogy „semmilyen körülmények között ne csatlakozzon a hálózathoz, ha a ház nyitva van”. Ne feledje, hogy a NYÁK-on (legalábbis a Sonoff Basic (soros kapcsolón) csak „egyetlen leválasztási” távolság van az alacsony feszültségű szakasz és a hálózat között. Tehát a Sonoff áramkör bármely részét hálózati feszültségként kell kezelni.) A Tasmota GitHub megmutatja a hőmérséklet- és páratartalom -érzékelő csatlakoztatását a Sonoff S20 -hoz. Elszigetelési okok miatt ezt nem tenném. vagy földelt tápegység.

A Sonoff S20 dugaszolható kapcsoló jó kiindulópont, mivel nem igényel hálózati kábelezést. Ezt úgy lehet kinyitni, hogy eltávolít egy csavart (a biztonsági tömítés alatt), és kinyitja a tokot. Az alábbi képen látható, hol vannak a címkék. A tok összepréselése ezeken a pontokon segít.

USB soros átalakító

A kedvenc átalakítóm az FTDI verzió. Ez azonban nem alkalmas a Sonoff 3.3v igényeinek kielégítésére. Az FTDI specifikáció szerint maximum 50 mA. A következő legjobb alternatíva a CP2102 chip használata. Ennek azonban van egy 100 mA -es határa, amely még mindig nem elegendő. Nyilvánvalóan sokan közvetlenül használják ezt az átalakítót, de vannak jelentések arról is, hogy a betöltés nem sikerült. Korlátoznám a csatlakoztatási időt, mivel felmelegszik a terhelés alatt. Tegye ezt saját felelősségére. Az ideális megoldás, ha van egy 3,3 V -os szabályozó is, pl. egy AMS1117 3.3. Ennek előállításához készítettem egy kis PCB -t. Lásd: Programozó Sonoff eszközökhöz.

A programozási sorrendem a következő:

Nyissa meg az Arduino IDE -t.

Az Eszközök alatt ellenőrizze a beállításokat, mint a Wikiben.

Végezze el a user_config.h fájlban szükséges módosításokat. Beállítottam a Wifi SSID -t és jelszót, valamint az MQTT bróker címét és az időzóna/nyári időszámítás adatait.

Kattintson az "ellenőrzés" gombra, hogy ellenőrizze, hogy rendben van -e.

Csatlakoztassa az USB soros átalakítót (önmagában) a számítógéphez. Jegyezze fel a port számát.

Most húzza ki az USB soros vezetéket a számítógépről, és csatlakoztassa a Sonoff kapcsolóhoz. Ellenőrizze, hogy a föld és a 3v3 csatlakozók megfelelő irányban vannak -e (a föld a Sonoff NYÁK -on van csatlakoztatva a földi síkhoz).

Tartsa a programozót úgy, hogy az érintkezők biztonságban legyenek, miközben a gombot is megnyomják.

Most csatlakoztassa az USB -kábelt a számítógéphez, ellenőrizze a port számának helyességét (az Eszközök menüben), majd kattintson a letöltés gombra.

A programozás során továbbra is nyomom a gombot, mert nem akarom megzavarni a kapcsolatokat.

Ha elkészült, az alábbi képernyőt kell látnia:

Kép
Kép

A Sonoffnak szüksége van néhány bit információra, hogy csatlakozzon a rendszerünkhöz: a helyi hálózati wifi SSID és jelszó, valamint a Pi IP -cím. Ennek számos módja van, az egyik a config.ino fájl módosítása, amint azt korábban említettük. Ha okostelefonja van, akkor (a kapcsoló összeszerelése után) nyomja meg a Sonoff gombot négyszer elég gyorsan, hogy webszerver módba kapcsolja. A LED villogni fog. Többször is meg kellett próbálnom, hogy ez működjön. Ezután keresse okostelefonján az új Sonoff hálózatot, és csatlakozzon. Megjelenik egy weboldal, ahol beállíthatja a szükséges adatokat. A Pi IP -cím bekerül a gazdagépnévbe. A második SSID -t és jelszót is hosszú és alapvetően használhatatlanra cseréltem.

Alternatív megoldásként a soros kapcsolaton keresztül is beállítható közvetlenül a betöltés után. Nyissa meg az Arduino soros monitort (az Eszközök alatt).

Beviteli parancsok:

SSIDálja meg a Wi -FiSID azonosítóját

Jelszó a Wi -FiPassword

MqttHost 192.168.x.y (PI IP -cím)

Az effektív letiltáshoz megadhatja az SSId1 és a Password1 kódot is, majd valami hosszú és használhatatlan dolgot.

Most bepakolhatja a Sonoff kapcsolót, megnyithatja a csomó-vörös és a csomó-piros műszerfalat, és kattintson a kapcsológombra, és nézze meg a hibakeresési fület, amelynek most tartalmaznia kell a Sonoff válaszát. Tehát van még egy fontos lépésünk - az első kapcsolónkat számítógépről/okostelefonról hajtjuk.

Eddig nem említettük a biztonságot. Lehetőség van titkosított kommunikáció használatára. Ennek beállítása meglehetősen bonyolult, és valószínűleg megfelelőbb ott, ahol felhőalapú közvetítőt használnak. Lehetőség van felhasználónevek és jelszavak hozzáadására is az összes csatlakoztatott eszközhöz, valamint a névtelen felhasználók letiltásához. Ezt elég egyszerű beállítani. És most a biztonsághoz.

7. lépés: Biztonság

Az MQTT minden felhasználóhoz felhasználóneveket és jelszavakat engedélyez. Ezt könnyű beállítani. Valószínűleg egyszerűbb először átnevezni az egyes eszközöket, majd beállítani a felhasználóneveket és jelszavakat. Ezt az MQTT parancsokkal lehet megtenni, és valószínűleg a Node-Red a legegyszerűbb módja ezek elküldésének. Először döntsön az elnevezési megállapodásról. Az egyik lehetőség, hogy a neveket a helyükre és a funkciókra alapozzák. Ezután rögzítse a nevet (Téma) felhasználónevét és jelszavát a tartalék témával együtt. Ne feledje, hogy van egy „visszaállítási lehetőség” is, amellyel visszaállíthatja a Sonoff -beállításokat az eredeti letöltésre (lásd: Wiki -használat> Gombfunkciók).

Kapcsolja be a pi-t, és néhány másodperc múlva nyissa meg a böngészőt Node-Red-re (IP-cím: 1880).

A Node-Red programban állítson be egy befecskendezési csomópontot, és kapcsolja össze egy mqtt kimenettel, és állítsa az mqtt szervert localhost-ra. Hagyja üresen a témát, a felhasználót és a jelszót, mivel ezeket beállítjuk az injekciós csomópontban. Állítson be egy mqtt bemeneti csomópontot, és csatlakoztassa azt egy hibakeresési csomóponthoz, hogy láthassuk a válaszokat. Állítsa az mqtt bemeneti megjegyzést localhost -ra (már be kell állítani), és írja be a+/+/+témát, hogy minden forgalmat elkapjon.

Írja be az alábbi beállítási sorrendet az injekciós csomópontba.

Először ellenőrizze a csatlakozást

Téma: cmnd/sonoff/Állapot

Üzenet: 6

kattintson az „Injekció egyszer az indításkor” gombra. Telepítés. Látnunk kell a hibakeresést, amely 7 sor adatot tartalmaz a stat/sonoff/STATUS6 -ból

Írja be a témát: cmnd/sonoff/Téma és Üzenet: loungelight. Telepítés. Ezzel a kapcsoló neve sonoffról napozófényre változik

A hibakeresési lapon meg kell jeleníteni, hogy az eszköz újraindul az új nevével/témájával

Téma: cmnd/loungelight/MqttUser

Üzenet: napozófény

Kattintson a telepítés gombra. Hibakeresést kell látni a stat/loungelight/RESULT -ból az {„MtqqUser” segítségével:”loungelight”}

Téma: cmnd/loungelight/MqttPassword

Üzenet: loungelightPW (légy ennél ötletesebb!)

Törölje a hibakeresési fület és telepítse.

A választ a stat/loungelight/RESULT oldalról kell látni, {"MqttPassword": "loungelightPW"}

Most írja be a NodeRed és a NodeRedPW felhasználónevet és jelszót az mqtt out csomópontba. Ez a kiszolgáló ceruzaikonján és a megnyíló ablak biztonsági lapján keresztül történik. Ez automatikusan átmásolódik a többi MQTT csomópontra.

Ellenőrizze újra a gombbal

Téma: cmnd/loungelight/Állapot és üzenet: 6. Telepítés.

És hogy a választ elküldik.

Tehát ezen a ponton átneveztük Sonof készülékünket, hogy meghallgassa a cmnd/loungelight/…… témákat, és bejelentkezzen az MQTT szerverre loungelight felhasználónévvel és jelszóval loungelightPW. A Node-Red felhasználónevét és jelszavát is beállítottuk.

Ezután meg kell mondanunk a szúnyog MQTT szervernek, hogy csak felhasználói névvel rendelkező ügyfeleket fogadjon el, és sorolja fel az elfogadandó felhasználóneveket és jelszavakat.

Az eljárás a következő:

  • Állítsd meg a szúnyogot
  • Hozzon létre saját konfigurációs fájlt
  • A konfigurációs fájl szerkesztése
  • Hozzon létre jelszófájlt
  • Felhasználók/jelszavak hozzáadása.

Tehát jelentkezzen be egy új PuTTY munkamenettel, és futtassa a következő parancsokat:

sudo /etc/init.d/mosquitto stop

cd /etc/mosquitto/conf.d/

sudo nano mosquitto.conf Ez elindítja a szerkesztőt.

Sorok hozzáadása:

allow_anonymous false

password_file /etc/mosquitto/conf.d/passwd

need_certificate false

Mentés és kilépés (Ctrl+X), Y, Enter.

sudo touch passwd Ez létrehoz egy jelszófájlt, és a következő utasítások hozzáadnak neveket és jelszavakat.

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 újraindítás

Megjegyzés: új eszköz hozzáadásakor vagy be kell írnia a felhasználót és a jelszót a soros porton keresztül, és hozzá kell adnia a jelszófájlhoz, vagy átmenetileg módosítania kell a szúnyogkonfigurációs fájlt, és ki kell írnia a megjegyzést (a sor elején kell hozzáadni) az "allow_anonymous false" sorokat. "és" password_file /etc/mosquitto/conf.d/passwd ", majd állítsa vissza ezeket, ha a részleteket elküldte az eszközre, és a fentiek szerint hozzáadta a jelszófájlhoz.

A sonoff nevet loungelight -ra változtattuk, ezért frissítsük az mqtt kimeneti csomópontot (a kapcsolóhoz csatlakoztatva), hogy a cmnd/loungelight/POWER témát használjuk.

Kattintson a Telepítés gombra, és ellenőrizze, hogy az mqtt csomópontok „összekapcsolva” jelennek -e meg.

Ezután próbálja meg a kapcsológombot, és keresse meg a hibakeresést, amelyen a Sonoff kapcsoló reagál. Észre fogja venni, hogy az eszköz a változást egy témával mutatja: stat/loungelight/POWER. Tehát most módosítsa a cmnd/sonoff/POWER értékre állított bemeneti csomópontot stat/loungelight/POWER értékre. Használhatjuk ezt a rést a funkcionalitásunkban. Az eredetileg beállított rendszer szinkronizálva lesz minden bejelentkezett felhasználóval, de nem szinkronizálódik a Sonoff kapcsoló gomb megnyomásával végrehajtott kapcsolóváltásokkal. Tehát most csatlakoztassa a stat/loungelight/POWER mqtt bemeneti csomópont kimenetét a kapcsoló bemenethez (LHS). Most kattintson duplán a kapcsolóra, és törölje a jelet a "ha az üzenet a bemenetre érkezik, át a kimenetre" jelölőnégyzetből. Ez új lehetőségeket kínál - válassza a "kapcsoló ikon a bemenet állapotát". Telepítés. Tehát most van egy jó visszacsatolási körünk. A műszerfal kapcsoló pozíciója mindig megváltozik, amikor a Sonoff kapcsoló megváltozik, függetlenül attól, hogy a változtatást hol kezdeményezték.

Így most már rendelkezésre áll egy biztonságos, önálló otthoni automatizálási rendszer, amely készen áll arra, hogy bármire kiterjessze. A következő részben néhány eddigi kísérletemről és kihívásaimról számolok be.

8. lépés: A bővítés kezdeti lépései

Van egy másik oktatható otthoni automatizálási Sonoff-Tasmota szenzoros LED-ek fejlesztő táblája, amely bemutatja a Sonoff-Tasmota firmware néhány további képességét:

Hőmérséklet és páratartalom mérése

Betolakodó érzékelés (kapcsoló bemenet)

IR távirányító (TV -hez stb.)

LED karakterláncok - mind RGB, mind NeoPixel (egyedileg címezhető)

I2C érzékelők

A fentiekhez ESP12F -et és egyedi PCB -t használok. A NodeMCU és a kenyérlap is használható. Ez lehetővé teszi ezeket a kiegészítő funkciókat anélkül, hogy be kellene kötni egy Sonoff készülékbe, és ezáltal sokkal biztonságosabb megközelítés. A hőmérsékleti bemenettel befejeztem az elektromos takaró automatizálást.

Zene és internetes rádió könnyen hozzáadható. Ez lehetőséget ad arra, hogy meghatározott állomások vagy albumok meghatározott időpontokban, vagy esetleg egy látogató (telefon) észlelésekor kerüljenek bekapcsolásra. Ez a kapcsolódó utasítás kiváló minőségű zenelejátszó és internetes rádió, okostelefon -vezérléssel érhető el. Mivel ezt is a Node-RED vezérli, lehetségesnek kell lennie, hogy több hangrendszere is legyen, és MQTT kommunikációt használjon ezek vezérléséhez.

A Node-Red-t is felfedeztem, beleértve az e-mailek küldését és a hangos figyelmeztetéseket. Lehetőség van arra is, hogy a rendszer felismerje, mikor van ki/be - a mobiltelefon IP -címének pingelésével. A Node -Red hozzáférhet az időjáráshoz és a hírekhez is - így az információkhoz hozzáadhat automatizálást.

Van néhány trükk, amit meg kell tanulni - de ezek másodszor is hirtelen könnyűvé válnak.

Egy másik út egy kijelző hozzáadása a pi -hez, hogy megjelenítse a műszerfalat. Ez „folyamatban lévő munka” - más szóval nem vagyok túl boldog. A kapott kijelzőt nehéz portré módba forgatni, és a Chromium böngésző fájdalmasan lassú. Alternatív megoldás lehet, ha elővesz egy régi táblagépet az ebay -en, és azt használja. Megpróbálhatom egy Pi 2 -vel, és megnézhetem, hogy ez elegendő javulást eredményez -e (ehhez a fejlesztéshez használt B modell).

Remélem, ezzel elindul, és felpezsdül a fantáziája. A potenciális hatókör hatalmas. Szükség esetén akár módosíthatjuk a Sonoff -kódot más érzékelőkhöz.

Összességében meglepett, hogy mire képes ez a rendszer. Az eredeti célom az volt, hogy önálló rendszeren keresztül megbízható módon vezéreljek egy váltást okostelefonról. Volt olyan elképzelésem, hogy szervereket és klienseket kell kezelnem, és html -t kell írnom a felhasználói felülethez. Ahol ez végül is előrébb volt, nagyobb biztonsággal, kiváló megbízhatósággal, fantasztikus felhasználói felülettel, drag and drop programozással és hatalmas bővítési lehetőséggel. És mindezt sokkal kisebb erőfeszítéssel.

Mikrofon

9. lépés: Kiegészítés - betöltés a Raspbian Stretch Lite -ból

Ez az opció elkerüli a teljes Raspbian Stretch verzióhoz tartozó bloatware -t. Ennek legtöbbjére nem lesz szükség, ha Pi -t használ az otthoni automatizáláshoz. A Node-Red-t azonban telepíteni kell.

Folytassa az 1. lépésben leírtak szerint, de Raspbian Stretch Lite használata helyett Raspbian Stretch.

A 2. lépés helyett tegye a következőket:

sudo apt -y telepítse az npm -et

npm -v vissza kell térnie: 1.4.21 vagy újabb

sudo npm install -g n

sudo n 8.9.0

Most már használhatjuk a csomópont csomagkezelőt a Node-Red telepítéséhez:

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

Ez néhány hibaüzenetet ad a helytelen cím miatt. A rendszer azonban „forrásfordítást” végez a probléma megoldására. Ha megismétli a fenti utasítást (nem szükséges), a hibák nem fordulnak elő.

Most telepítve van a Node-Red és a támogató csomagok, és továbbléphetünk a 3. lépésre, a szúnyogok betöltésére.

Vezeték nélküli verseny
Vezeték nélküli verseny
Vezeték nélküli verseny
Vezeték nélküli verseny

Második hely a vezeték nélküli versenyben

Ajánlott: