Tartalomjegyzék:
- 1. lépés: Elmélet
- 2. lépés: Tervezés
- 3. lépés: Műszaki adatok: az API
- 4. lépés: Műszaki adatok: Hardver
- 5. lépés: Műszaki adatok: A pontok összekapcsolása | Otthoni automatizálás
- 6. lépés: Csomagolás
Videó: Ramadán fények - Otthoni automatizálás IOT: 6 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Ahogy a ramadán kopogtat az ajtón, világszerte világítanak a városok, és felkészülnek a böjt hónapjára. A lámpákat a köztereken és a városi utcákon, valamint a házak külső falán függesztik fel éjszaka, amíg reggel fel nem kel a nap.
Ebben a projektben szeretném megosztani a közreműködésemet, amelyben automatizálom ezeknek a dekorációknak a megvilágítását az Adhan idők alapján, és hozzáadom ezt az intelligens otthoni rendszerhez.
1. lépés: Elmélet
Alapvetően egyszerűbb és alkalmazhatóbb a világítás automatizálása például a napfény intenzitása alapján. Szeretném azonban, ha ez a szent hónap szelleme lenne, vagyis a lámpák addig kapcsolnak fel, amíg az emberek enni tudnak a böjt hónapjában. Különösen a fények világítanak Maghrib Adhan -tól Fajr Adhan -ig minden nap emberi beavatkozás nélkül.
2. lépés: Tervezés
Az alábbiakban felsorolom a projekt követelményeit/képességeit:
- A rendszernek képesnek kell lennie automatikus feldolgozásra indításkor.
- A rendszernek képesnek kell lennie a döntési (BE/KI) algoritmus időszakos végrehajtására.
- A rendszernek képesnek kell lennie arra, hogy naponta hívja az API -t.
- A rendszernek képesnek kell lennie arra, hogy helyreálljon a nem tervezett újraindítás után.
- A rendszernek végre kell hajtania a döntési (BE/KI) algoritmust az adatok azonnali fogadása után.
- A rendszernek biztosítania kell egy kapcsolót az autopilot üzemmód (automatikus üzemmód) bekapcsolásához.
- A rendszernek kapcsolót kell biztosítania a lámpák manuális be- és kikapcsolására.
- A kézi kapcsoló kioldásával a kézi üzemmódot OFF állásba kell állítani.
- Ha az automatikus üzemmód be van kapcsolva, a döntési algoritmus eredményét tükrözni kell a kézi BE/KI kapcsolón.
3. lépés: Műszaki adatok: az API
Ahhoz, hogy az elmélet alkalmazható legyen, ismernie kell az Adhan -időt napi szinten annak változója óta, és be kell lépnie a fények/díszek be-/kikapcsolásához.
Ebből a célból úgy döntöttem, hogy helyalapú API-t használok az adatok kiszolgálására (Adhan ideje)
muslimsalat.com/api/#location
- Ez az API számos lehetőséget és konfigurációs paramétert biztosít a fenti dokumentációs linkben.
- Javasoljuk, hogy használja a saját API_kulcsát, amely regisztrációkor ingyenes.
- Tervezésemben a napi ütemterv érdekel.
- A visszaadott idő 12 óra formátumban van (AM/PM).
- A helyszín tekintetében azt kívántam, ha ez az API pontosabb lehetőségeket tudna nyújtani olyan helyekre, mint a koordináta -földrajzi koordináta -rendszer (szélesség és hosszúság). Ily módon ezt az API -t el lehet látni például városnévvel, és ez a legtöbb esetben elég. Sajnos az adott városom eredményei meglehetősen elfogultak voltak több tesztben, és néhány perc különbség volt, amikor összehasonlítottuk az Adhan -időt az API -eredmények és a városomban lévő Adhan -idő között. Másrészt az eredmények tökéletesen megegyeztek, amikor közeli várost biztosítottam északra, és ragaszkodtam hozzá!
- Az általam használt API URL -címe: https://muslimsalat.com/.json? Key =
4. lépés: Műszaki adatok: Hardver
Az egyszerűség kedvéért kihagyom a hardvert az API -val való szinkronizálásból és az időszámításból, mivel ezeket a műveleteket az otthoni automatizálási rendszerre delegálom. Ez nagyobb ellenőrzést biztosít számomra, ha módosítani akarom az API forrást és a számítási algoritmust.
Ennek ellenére egy ESP8266 -ot (NodeMCU) használtam a helyi hálózathoz való csatlakozáshoz WIFI -n és egy relé modulon keresztül, mint aktuátor. A NodeMCU az MQTT protokollt használja, és hallgat egy adott témát, hogy parancsokat kapjon a relé be- és kikapcsolására. Ilyen egyszerű az egész!
5. lépés: Műszaki adatok: A pontok összekapcsolása | Otthoni automatizálás
A RaspberryPi -nek van egy bólogatott példánya, amely képes kezelni mindent, amire szükségem van ehhez a projekthez. Van egy MQTT szervere is telepítve az üzeneteink közzétételére.
Először azt hittem, hogy lekérhetem az API adatokat napi 9 órakor, és kinyerhetem a Fajr és Mahgrib Adhan időket, és folyamatosan összehasonlíthatom az aktuális időt ezekkel a változókkal:
30 másodpercenként:
ha: Mahgrib <MOST <Fajr igaz | kapcsolja fel a villanyt | tegyen közzé egy ON üzenetet a megadott MQTT témához, különben: kapcsolja ki
Az idő összehasonlítása érdekében átalakítom az API által biztosított órákat óó: pp (AM/PM) teljes dátum formátumba úgy, hogy a dátumrészt elhanyagolható dátumra állítom be a történelemben, pl. (1970.01.1.), Mivel összehasonlítjuk az időt csak az aktuális időre (a dátumrész is konvertálásra kerül).
Sajnos ez csak egyszerű esetekben fog működni. Tegyük fel azt az esetet, amikor az áramellátás megszakad, vagy a rendszer nem tervezett okból újraindul. Ha ez az eset délelőtt 12 óra előtt következik be, akkor még mindig a biztonságos oldalon állunk, de 12 óra után ez meghiúsítja az egyszerű algoritmusunkat.
Példaként említsük meg Magrib Adhan -t 19: 30 -kor és Fajr -t 4: 10 -kor. Amikor a rendszer elindul, új kérést küld a korábban említett adatok lekérésére. Ha most 1:45 van, akkor azt várjuk, hogy algoritmusunk igaznak bizonyul, de valójában nem fog, mert az 1:45 kevesebb, mint Fajr (4:10), de nem nagyobb, mint a Magrib (19:30). Ez azért van, mert egyesítjük a dátumot az összes változó között. Az alábbiakban az algoritmus végső verziója látható (eddig):
30 másodpercenként:
if ((magrib.getHours ()> = 12 && fajr.getHours () <= 12) || fajr <maghrib) {fajr.setDate (fajr.getDate ()+1); // kezelje az átfedő napokat endTime if (now.getHours () <= 12) {now.setDate (now.getDate ()+1); // kezelje az aktuális napok aktuális idejét}}} // az előző kódblokk, ha: Mahgrib <MOST <Fajr igaz | kapcsolja fel a villanyt | ON üzenet közzététele a megadott MQTT témában else: false | kikapcsolni
A folyamat teljes folyamatát a fenti kép megjegyzi.
Ami a felhasználói felületet illeti, 2 kapcsolót adtam hozzá a felhasználói felülethez/interfészhez:
- Egy kapcsoló a folyamat automatikus vagy kézi kapcsolásához.
- Egy kapcsoló a világítás manuális be-/kikapcsolásához.
6. lépés: Csomagolás
Rohan az idő, hogy soha ne idézzük fel. Az ilyen egyszerű, 1 napos projektek elvégzése lehetővé teszi, hogy levegőt vegyen ebben a gyors sávban, és idővel újjáéleszthesse lágy készségeit.
Ebben a projektben annyit próbáltam, hogy egyszerű és újrahasznosítható legyen az egész világon.
Kérjük, szavazzon erre a tanulságosra, ha úgy gondolja, hogy ez a projekt megérdemli.
Boldog Ramadánt!
Ajánlott:
Disco fények az RGB -ből Arduino használatával a TinkerCad -on: 3 lépés
Disco Lights from RGB Arduino használatával a TinkerCad -on: Miután csatlakoztatta az RGB -t, könnyen szabályozhatja az RGB színét a PWM kimenet vagy az analóg kimenet használatával, az Arduino esetében az analogWrite () funkciót használhatja a 3., 5., 6. tűn , 9, 10, 11, A0, A1, A2, A3, A4, A5 (klasszikus Arduino -khoz, az Atmega328 vagy 1
Forgó karácsonyfa és programozható fények Arduino -val: 11 lépés
Forgó karácsonyfa és programozható fények Arduino -val: Forgó karácsonyfa és programozható lámpák Arduino -val
DIY hosszú távú legjobb barát fények: 4 lépés (képekkel)
DIY Long Distance Best Friend Lights: Távolsági szinkron lámpákat készítettem "Legjobb barát" néven lámpák. Ez csak azt jelenti, hogy szinkronban vannak a másik lámpa aktuális színével. Tehát ha az egyik lámpát zöldre cserélné, röviddel azután, hogy a másik lámpa zöldre vált
Beszédes automatizálás -- Hang az Arduino -tól -- Hangvezérelt automatizálás -- HC -05 Bluetooth modul: 9 lépés (képekkel)
Beszédes automatizálás || Hang az Arduino -tól || Hangvezérelt automatizálás || HC - 05 Bluetooth modul: …………………………. További videókért Iratkozzon fel YouTube -csatornámra …. …. Ebben a videóban egy beszédes automatizálást építettünk fel. Amikor hangparancsot küld mobilon keresztül, akkor bekapcsolja az otthoni eszközöket, és visszajelzést küld
Interaktív udvari fények, sétányi fények: 3 lépés
Interaktív udvari fények, sétányfények: Valamilyen interaktív udvari lámpát akartam építeni a hátsó udvaromhoz. Az ötlet az volt, hogy ha valaki az egyik irányba sétált, akkor animációt indított el abba az irányba, ahol Ön járt. A Dollar General 1,00 dolláros napelemes lámpáival kezdtem