Tartalomjegyzék:
- Lépés: Az áramkör…
- 2. lépés: Nexardu belső webszerverrel (NTP -vel)
- 3. lépés: Nexardu külső szerverrel
- 4. lépés: Értékes információ
- 5. lépés: Kész
Videó: NexArdu: Világítás intelligens vezérlés: 5 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Frissítés
Ha ugyanazt a funkciót fejlesztette ki a Home Assistant segítségével. A Home Assistant hatalmas lehetőségeket kínál. A fejlesztést itt találja.
Vázlat az otthoni megvilágítás intelligens vezérléséhez 433,92 MHz (más néven 433 MHz) vezeték nélküli X10-szerű eszközökön keresztül, pl. Nexa.
Háttér
Ami a dekoratív megvilágítást illeti, valahogy fárasztó volt számomra, hogy minden második vagy harmadik héten újra kellett állítanom az időzítőket, amelyek bekapcsolják a lámpákat, mivel a napóra a CET -hez képest eltolódott. Ugyanakkor néhány este hamarabb megyünk aludni, mint máskor. Emiatt a lámpák néha "túl későn" vagy "túl korán" kapcsolnak ki. A fentiek elgondolkodtattak: azt akarom, hogy a dekoratív megvilágítás mindig ugyanolyan szintű környezeti fényben kapcsoljon be, majd bizonyos időben kikapcsoljon attól függően, hogy ébren vagyunk -e vagy sem.
Célkitűzés
Ez az oktatható kihasználja a 433,92 MHz -es frekvencián működő vezeték nélküli eszközök, például a System Nexa lehetőségeit. Itt szeretnénk bemutatni:
- Automatizált világításvezérlés
- Webes vezérlés
Webes vezérlés. Belső és külső webszerver
A belső szerver kihasználja az Arduino Ethernet pajzs lehetőségét, hogy webszervert biztosítson. A webszerver részt vesz a webes ügyfélhívásokon, hogy ellenőrizze és lépjen kapcsolatba az Arduino -val. Ez egy egyszerű megoldás korlátozott funkcionalitással; a webszerver kódjavításának lehetőségeit korlátozza az Arduino memóriája. A külső szerverhez külső PHP webszervert kell beállítani. Ez a beállítás bonyolultabb, és ezt az oktatóanyag nem támogatja, azonban az Arduino ellenőrzésére és irányítására szolgáló PHP kód/oldal alapvető funkciókkal rendelkezik. A webszerver fejlesztésének lehetőségeit ebben az esetben a külső webszerver korlátozza.
Darabjegyzékben
Ahhoz, hogy teljes mértékben kihasználhassa a vázlat adta lehetőségeket, szüksége van:
- Egy Arduino Uno (R3 -on tesztelve)
- Arduino Ethernet pajzs
- 433,92 MHz -en működő Nexa készlet vagy hasonló
- PIR (passzív infravörös) érzékelő, amely 433,92 MHz -en működik
- 10Kohmos ellenállás
- Egy LDR
- RTC DS3231 (csak külső szerver verzió)
- 433,92 MHz-es adó: XY-FST
- 433,92 MHz-es vevő: MX-JS-05V
A minimálisan ajánlott:
- Egy Arduino Uno (R3 -on tesztelve)
- 433,92 MHz -en működő Nexa készlet vagy hasonló
- 10Kohmos ellenállás
- Egy LDR
- 433,92 MHz-es adó: XY-FST
(Az Ethernet -pajzs kihagyása a vázlat módosítását igényli, amely nem szerepel az utasításban)
A Nexa logika. Rövid leírás
A Nexa vevő megtanulja a távirányító és a gomb azonosítóját. Más szóval, minden távirányítónak megvan a feladó száma, és minden ki/be kapcsológombnak megvan a gomb azonosítója. A vevőnek meg kell tanulnia ezeket a kódokat. Egyes Nexa dokumentumok azt írják, hogy a vevőkészülék legfeljebb hat távirányítóval párosítható. A Nexa paraméterei:
- SenderID: A távirányító azonosítója
- ButtonID: gombpár szám (be/ki). 0 -val kezdődik
- Csoport: igen/nem (más néven "Minden ki/be" gomb)
- Parancs: be/ki
Utasítható lépések. jegyzet
Az itt leírt különböző lépések két különböző ízt kínálnak a cél eléréséhez. Nyugodtan válassza ki az Önnek megfelelőt. Itt az index:
1. lépés: Az áramkör
2. lépés: Nexardu belső webszerverrel (NTP -vel)
3. lépés: Nexardu külső szerverrel
4. lépés: Értékes információ
Lépés: Az áramkör…
Csatlakoztassa a különféle alkatrészeket a képen látható módon.
Arduino pin#8 to Data pin on RX (vevő) modul Arduino pin#2 to Data pin on RX (vevő) modul Arduino pin#7 to Data pin on TX (sender) modul Arduino pin A0 to LDR
RTC konfiguráció. Csak külső kiszolgálókonfiguráció esetén szükséges. Arduino pin A4 - SDA pin az RTC modulon Arduino pin A5 - SCL pin az RTC modulon
2. lépés: Nexardu belső webszerverrel (NTP -vel)
A Könyvtárak
Ez a kód sok könyvtárat használ. Legtöbbjük megtalálható az Arduino IDE "Könyvtárkezelőjén" keresztül. Ha nem talál egy felsorolt könyvtárat, kérjük, google -oljon.
Wire.hSPI.h - Ethernet pajzs megköveteliNexaCtrl.h - Nexa eszközvezérlő Ethernet.h - Az Ethernet pajzs engedélyezése és megjelenítése NTP kliens
A vázlat
Az alábbi kód kihasználja az Arduino UNO kártya használatának lehetőségét nemcsak a Nexa eszközök vezérlésére, hanem belső webszervert is tartalmaz. Egy megjegyzés, hogy az RTC (Real Time Clock) modul automatikusan beállítódik az NTP (Network Time Protocol) segítségével.
Mielőtt feltöltené a kódot az Arduino -ba, előfordulhat, hogy konfigurálnia kell a következőket:
- SenderId: először be kell szippantania a SenderId -t, lásd alább
- PIR_id: először be kell szagolnia a SenderId -t, lásd alább
- LAN IP -cím: állítsa be a LAN IP -címét az Ethernet Arduino pajzsra. Alapértelmezett érték: 192.168.1.99
- NTP -kiszolgáló: Nem feltétlenül szükséges, de jó lehet a Google -on keresni a közelben lévő NTP -kiszolgálókat. Alapértelmezett érték: 79.136.86.176
- A kód a CET időzónához van igazítva. Állítsa be ezt az értéket -ha szükséges, az időzónájához a helyes idő (NTP) megjelenítéséhez
A Nexa kódok szippantása
Ehhez legalább az RX komponenst az Arduino -hoz kell csatlakoztatni, amint az az áramkörön látható.
Az alábbiakban megtalálja a Nexa_OK_3_RX.ino vázlatot, amely írásakor kompatibilis a Nexa NEYCT-705 és PET-910 készülékekkel.
A követendő lépések a következők:
- Párosítsa a Nexa vevőt a távirányítóval.
- Töltse fel a Nexa_OK_3_RX.ino -t az Arduino -ra, és nyissa meg a "Soros monitort".
- Nyomja meg a Nexa vevőt vezérlő távirányító gombot.
- Vegye figyelembe a "RemoteID" és a "ButtonID" beállításokat.
- Állítsa be ezeket a számokat a SenderID és ButtonID alatt az előző vázlat változó deklarációjában.
A PIR azonosítójának olvasásához használja ugyanazt a vázlatot (Nexa_OK_3_RX.ino), és olvassa el az értéket a "Soros monitoron", amikor a PIR mozgást észlel.
3. lépés: Nexardu külső szerverrel
A Könyvtárak
Ez a kód sok könyvtárat használ. A legtöbb megtalálható az Arduino IDE "Könyvtárkezelőjén" keresztül. Ha nem talál egy felsorolt könyvtárat, kérjük, google -oljon.
Wire.hRTClib.h - ez a https://github.com/MrAlvin/RTClibSPI.h könyvtár - Ezt az Ethernet -pajzs írja előNexaCtrl.h - Nexa -eszközvezérlő PIRTime.h - Az RTCTimeAlarms.h számára szükséges - Időriasztás kezelése REST.h - a RESTful API szolgáltatásokhoz, amelyeket külső serverair/wdt.h használ - Watchdog időzítő kezelése
A vázlat
Az alábbi vázlat ugyanazon dolog egy másik ízét mutatja be, ezúttal a külső webszerver adta lehetőségeket. Amint a bevezetőben már említettük, a Külső szerver külső PHP webszerver beállítását igényli. Ez a beállítás bonyolultabb, és ezt az oktatóanyag nem támogatja, azonban az Arduino ellenőrzésére és irányítására szolgáló PHP kód/oldal alapvető funkciókkal rendelkezik.
Mielőtt feltöltené a kódot az Arduino -ba, előfordulhat, hogy konfigurálnia kell a következőket:
- SenderId: először be kell szippantania a SenderId -t, lásd: Nexa kódok szippantása az előző lépésben
- PIR_id: először be kell szagolnia a SenderId -t, lásd: Nexa kódok szippantása az előző lépésben
- LAN IP -cím: állítsa be a LAN IP -címét az Ethernet Arduino pajzsra. Alapértelmezett érték: 192.168.1.99
A Nexa kódszippantási eljárást lásd az 1. lépésben.
Kiegészítő fájl
Töltse fel a mellékelt nexardu4.txt fájlt a külső PHP szerverre, és nevezze át a nexardu4.php fájlra
RTC idő beállítása
Az idő/dátum beállításához az RTC -n a SetTime vázlatot használom, amely a DS1307RTC könyvtárat tartalmazza.
4. lépés: Értékes információ
Jó tudni a viselkedést
-
Ha az Arduino "Light Automatic Control" alatt van, négy különböző állapoton lehet keresztülmenni a környezeti megvilágítás és a napszak függvényében:
- Ébren: Arduino várja az éjszakát.
- Aktív: Eljött az éjszaka, és Arduino bekapcsolta a lámpákat.
- Somnolent: A lámpák világítanak, de eljött az idő, hogy lekapcsolják őket. A "time_to_turn_off - PIR_time" időponttól indul, vagyis ha a time_to_turn_off 22:30 -ra van állítva, és a PIR_time 20 percre van állítva, akkor az Arduino 22:10 -kor álmos állapotba kerül.
- Szunnyadó: Az éjszaka elmúlik, Arduino kikapcsolta a villanyt, és Arduino várja, hogy a hajnal ébren legyen.
- Az Arduino mindig hallgatja a távirányítók által küldött jeleket. Ez lehetővé teszi a világítás (be/ki) állapotának megjelenítését a weben, amikor távirányítót használ.
- Amíg az Arduino ébren van, folyamatosan megpróbálja lekapcsolni a lámpákat, ezért az Arduino rögzítheti a javításvezérlő által a világítás bekapcsolására küldött BE jeleket. Ha ez megtörténik, az Arduino újra megpróbálja lekapcsolni a villanyt.
- Amíg az Arduino aktív, folyamatosan megpróbálja bekapcsolni a lámpákat, ezért az Arduino rögzítheti a távirányító által a világítás kikapcsolására küldött KI jeleket. Ha ez megtörténik, az Arduino megpróbálja újra felkapcsolni a lámpákat.
- Alvó állapotban a lámpák távirányítóval kapcsolhatók be/ki. Az Arduino nem fog ellensúlyozni.
- Alvó állapotban a PIR visszaszámláló visszaáll a "time_to_turn_off - PIR_time" értékről, és így a time_to_turn_off 20 perccel meghosszabbodik minden alkalommal, amikor a PIR mozgást észlel. "PIR jel észlelve!" üzenet jelenik meg a webböngészőben, amikor ez megtörténik.
- Amíg az Arduino alvó állapotban van, a fények a távirányítón keresztül be- és kikapcsolhatók. Az Arduino nem fog ellensúlyozni.
- Az Arduino visszaállítása vagy bekapcsolási ciklusa aktív módba hozza. Ez azt jelenti, hogy ha az Arduino -t a time_turn_off után visszaállították, akkor az Arduino bekapcsolja a lámpákat. Ennek elkerülése érdekében az Arduino -t kézi üzemmódba kell kapcsolni (jelölje be a "Light Automatic Control" jelölőnégyzetet), és várja meg reggelig, hogy visszaállítsa a "Light Automatic Control" állapotba.
- Mint már említettük, Arduino várja, hogy a hajnal újra aktivizálódjon. Emiatt a rendszer becsapható, ha elég erős fényt irányít a fényérzékelő felé, amely meghaladja a "minimális fényerő" küszöbét. Ha ez megtörténik, akkor az Arduino aktív állapotba vált.
- A Tolerancia értéke rendkívül fontos annak elkerülése érdekében, hogy a rendszer a Minimum Fényesség küszöbérték körül be- és kikapcsoljon. A LED -es lámpák villódzásuk és nagy reagálóképességük miatt csapkodó viselkedés forrásai lehetnek. Növelje a tűrésértéket, ha ezt a problémát tapasztalja. Én a 7 -es értéket használom.
Jó tudni a kódról
- Mint látható, a kód nagyon nagy, és jelentős mennyiségű könyvtárat használ. Ez veszélyezteti a halomhoz szükséges szabad memória mennyiségét. A múltban instabil viselkedést észleltem, amikor a rendszer leállt, különösen a webes hívások után. Ezért a legnagyobb kihívás az volt, hogy korlátozzam a méretét és a különböző változók használatát a rendszer stabilitása érdekében.
- A kód, amely kihasználja a belső szervert, amelyet otthon használtam, 2016 februárja óta problémamentesen fut.
- Jelentős erőfeszítéseket tettem annak érdekében, hogy magyarázatokkal gazdagítsam a kódexet. Használja ki ezt a lehetőséget, ha különféle paraméterekkel szeretne játszani, mint például a Nexa -kódos küldések száma sorozatonként, NTP -szinkronizálási idő stb.
- A kód nem rendelkezik nyári időszámítással. Ezt a webböngészőn keresztül kell módosítani, amikor alkalmazható.
Néhány szempontot figyelembe kell venni
- Adja hozzá az antennákat a TX és RX rádiófrekvenciás (RF) modulokhoz. Időt takaríthat meg, ha két fő ponton panaszkodik: a rugalmasság és az RF jel hatótávolsága. Egy 50 Ohmos huzalt használok, 17,28 cm (6,80 hüvelyk) hosszú.
- Ez a beépíthetetlen más otthoni automatizálási rendszerekkel is működhet, például a Proove -val. A sok feltétel közül az egyiknek teljesülnie kell, ha 433,92 MHz -en működnek.
- Az Arduino nagy fejtörést okoz, ha olyan könyvtárakkal foglalkozik, amelyek idővel frissülhetnek, és hirtelen nem lesznek kompatibilisek a "régi" vázlattal; ugyanez a probléma merülhet fel az Arduino IDE frissítésekor. Vigyázzon, hogy ez itt is a mi esetünk lehet -igen, az én problémám is.
- Több egyidejű webes kliens különböző fénymódokkal "villogó" állapotot hoz létre.
Képernyőkép
A fenti képválasztóban talál egy képernyőképet arról a weboldalról, amely akkor jelenik meg, amikor az Arduino -t hívja böngészőjén keresztül. Tekintettel a kód alapértelmezett IP -konfigurációjára, az URL a
Az egyik szempont, amely javításra szorulhat, az a „Küldés” gomb elhelyezése, mivel az minden beviteli mezőre érvényes, és nem csak a „Könnyű automatikus vezérlésre”, mint gondolnánk. Más szóval, ha módosítani szeretne a lehetséges értékek bármelyikén, akkor mindig nyomja meg a "küldés" gombot.
Részletes/speciális dokumentáció
Az alábbi fájlokat csatoltam, hogy segítsenek megérteni a teljes megoldást, különösen a hibaelhárítás és javítás érdekében.
Az Arduino_NexaControl_IS.pdf dokumentációt tartalmaz a belső szerver megoldásról.
Az Arduino_NexaControl_ES.pdf dokumentációt tartalmaz a külső szerver megoldásról.
Külső hivatkozások
Nexa rendszer (svéd)
5. lépés: Kész
Itt minden kész és működésbe lép!
Az Arduino Uno tok megtalálható a Thingiverse-ben "Arduino Uno Rev3 with Ethernet Shield XL-case" néven.
Ajánlott:
Smart Desk LED lámpa - Intelligens világítás W/ Arduino - Neopixels munkaterület: 10 lépés (képekkel)
Smart Desk LED lámpa | Intelligens világítás W/ Arduino | Neopixels Workspace: Napjainkban sok időt töltünk otthon, virtuálisan tanulunk és dolgozunk, miért ne tehetnénk nagyobbá munkaterületünket az Arduino és a Ws2812b LED -eken alapuló egyedi és intelligens világítási rendszerrel. Itt megmutatom, hogyan építse fel Smart Asztali LED -es lámpa, amely
Keskeny sávú IoT: intelligens világítás és mérés a jobb és egészségesebb ökoszisztéma érdekében: 3 lépés
Keskeny sávú IoT: intelligens világítás és mérés a jobb és egészségesebb ökoszisztéma felé: Az automatizálás szinte minden szektorban megtalálta az utat. A gyártástól kezdve az egészségügyig, a szállításig és az ellátási láncig az automatizálás látta meg a napvilágot. Nos, ezek kétségkívül vonzóak, de van egy, ami úgy tűnik
Olcsó intelligens otthon - vezérlés bárhonnan a világon: 6 lépés
Olcsó intelligens otthon - Irányítás bárhonnan a világon: Körülbelül Manapság mindkét szülő azon dolgozik, hogy kényelmes életet biztosítson a családnak. Tehát sok olyan elektronikai készülék van otthonunkban, mint a fűtés, a légkondicionáló, a mosógép stb. Amikor visszatérnek az otthonukba, nagyon kényelmesen kell érezniük magukat
ESP8266 RGB LED STRIP WIFI vezérlés - NODEMCU IR távirányítóként a Wifi -n keresztül vezérelt LED szalaghoz - RGB LED STRIP okostelefon -vezérlés: 4 lépés
ESP8266 RGB LED STRIP WIFI vezérlés | NODEMCU IR távirányítóként a Wifi -n keresztül vezérelt LED szalaghoz | RGB LED STRIP okostelefon -vezérlés: Sziasztok, ebben az oktatóanyagban megtanuljuk, hogyan kell használni a nodemcu -t vagy az esp8266 -ot infravörös távirányítóként az RGB LED -szalag vezérléséhez, és a Nodemcu -t okostelefonon keresztül wifi -n keresztül kell irányítani. Tehát alapvetően okostelefonjával vezérelheti az RGB LED STRIP -et
Intelligens otthoni világítás: 6 lépés
Intelligens otthoni világítás: Helló srácok, ma egy olyan projektet fogunk létrehozni, ahol a környező megvilágítás alapján egy izzót irányítunk. A PICO -t és a fényfüggő ellenállást (LDR) fogjuk használni a fény észlelésére, valamint az izzó be- vagy kikapcsolására, attól függően, hogy milyen