Sadržaj:
- Korak 1: Teorija
- Korak 2: Dizajn
- Korak 3: Tehnički detalji: API
- Korak 4: Tehnički detalji: Hardver
- Korak 5: Tehnički detalji: Povezivanje točaka | Kućna automatizacija
- Korak 6: Završavanje
Video: Ramazanska svjetla - Kućna automatizacija IOT: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Dok Ramazan kuca na vrata, gradovi diljem svijeta svijetle i pripremaju se za mjesec posta. Svjetla su okačena na javne trgove i po gradskim ulicama, kao i na vanjske zidove kuća osvijetljene tokom noći sve dok sunce ne izađe ujutro.
U ovom projektu želio bih podijeliti svoj doprinos u kojem automatiziram osvjetljavanje ovih ukrasa na temelju vremena Adhan i dodajem to u svoj sustav pametne kuće.
Korak 1: Teorija
U osnovi, lakše je i primjenjivije automatizirati osvjetljenje na temelju intenziteta sunčeve svjetlosti, na primjer. Međutim, želio bih da ovo ima duh svetog mjeseca, odnosno da će se svjetla paliti sve dok je ljudima dopušteno jesti tijekom mjeseca posta. Konkretno, svjetla su uključena od Maghrib Adhana do Fajr Adhan svaki dan bez ikakve ljudske interakcije.
Korak 2: Dizajn
U nastavku ću navesti zahtjeve/mogućnosti ovog projekta:
- Sustav bi trebao imati mogućnost automatske obrade pri pokretanju.
- Sustav bi trebao biti u mogućnosti povremeno izvršavati algoritam odlučivanja (ON/OFF).
- Sustav bi trebao biti u mogućnosti svakodnevno pozivati API.
- Sustav bi se trebao moći oporaviti od neplaniranog ponovnog pokretanja.
- Sustav bi trebao izvršiti algoritam odlučivanja (ON/OFF) nakon trenutnog primanja podataka.
- Sustav bi trebao osigurati prekidač za uključivanje načina autopilota (Automatski način rada).
- Sustav bi trebao omogućiti prekidač za ručno uključivanje/isključivanje svjetla.
- Pokretanje ručnog prekidača treba postaviti ručni način rada na OFF.
- Kada je Automatski način rada UKLJUČEN, rezultat algoritma donošenja odluke trebao bi se odraziti na ručni prekidač za uključivanje/isključivanje.
Korak 3: Tehnički detalji: API
Kako bi teorija bila primjenjiva, potrebno je svakodnevno poznavati ezansko vrijeme od njegove varijable i djelovati prema njemu za paljenje/gašenje svjetla/ukrasa.
U tu sam svrhu odlučio koristiti API na temelju lokacije za posluživanje podataka (vrijeme za Adhana)
muslimsalat.com/api/#location
- Ovaj API nudi niz opcija i konfiguracijskih parametara opisanih u gornjoj dokumentacijskoj vezi.
- Preporučuje se korištenje vlastitog API_ključa koji je besplatan pri registraciji.
- U mom dizajnu zanima me dnevna vremenska linija.
- Vraćeno vrijeme je u 12 -časovnom formatu (AM/PM).
- Što se tiče lokacije, želio bih ako ovaj API može pružiti točnije opcije za lokacije poput koordinatnog sustava geografskih koordinata (zemljopisna širina i dužina). Za ovaj način, ovom API -u može se na primjer dati naziv grada, što je u većini slučajeva sasvim dovoljno. Nažalost, rezultati mog konkretnog grada bili su prilično pristrani u više testova i došlo je do par minuta razlike u usporedbi Adhan vremena između API rezultata i stvarnog vremena Adhana u mom gradu. S druge strane, rezultati su se savršeno poklopili kada sam osigurao bliski grad na sjeveru i držao sam ga se!
- URL API -ja koji koristim je: https://muslimsalat.com/.json? Key =
Korak 4: Tehnički detalji: Hardver
Radi jednostavnosti, izostavljam hardver iz procesa sinkronizacije s API -jem i računanja vremena delegiranjem ovih operacija u moj sustav kućne automatizacije. To će mi dati veću kontrolu ako želim prilagoditi izvor API -ja i algoritam izračuna.
Uzimajući to u obzir, koristio sam ESP8266 (NodeMCU) za povezivanje s lokalnom mrežom putem WIFI -a i relejni modul kao pokretač. NodeMCU će koristiti MQTT protokol i osluškivati određenu temu kako bi dobio naredbe za uključivanje/isključivanje releja. Jednostavno!
Korak 5: Tehnički detalji: Povezivanje točaka | Kućna automatizacija
Moj RaspberryPi sadrži instancu s čvorom koja može podnijeti sve što mi je potrebno za ovaj projekt. Također ima instaliran MQTT poslužitelj za objavljivanje naših poruka.
U početku sam mislio da mogu dohvatiti API podatke dnevno u 9 sati ujutro i izdvojiti Fajr i Mahgrib Adhan vrijeme te uspoređivati trenutno vrijeme s ovim varijablama, a to je:
svakih 30 sekundi:
ako: Mahgrib <SADA <Fajr istina | upali svjetla | objavite ON poruku na navedenu temu MQTT -a: isključite
Za usporedbu vremena, pretvaram sate koje pruža API iz hh: mm (AM/PM) u format punog datuma postavljajući dio datuma na zanemariv datum u povijesti, npr. (1/1/1970) budući da uspoređujemo vrijeme samo u trenutno vrijeme (dio datuma se također pretvara).
Nažalost, ovo će djelovati samo u otvorenim slučajevima. Pretpostavimo slučaj pada električne energije ili ponovnog pokretanja sustava iz neplaniranog razloga. Ako se ovaj slučaj dogodi prije 12 sati, i dalje smo na sigurnoj strani, ali nakon 12 sati ovo će propasti u našem jednostavnom algoritmu.
Za primjer, uzmimo Magrib Adhan u 19:30 i Fajr u 04:10. Kad se sustav pokrene, poslat će novi zahtjev za dohvaćanje prethodno spomenutih podataka. Ako je trenutačno 1:45 sati, očekujemo da će se naš algoritam vratiti točno, ali u stvari neće jer je 1:45 sati manje od Fajra (4:10 AM), ali nije veće od Magriba (7:30 PM). To je zato što objedinjujemo datum između svih varijabli. U nastavku je konačna verzija algoritma (do sada):
svakih 30 sekundi:
if ((magrib.getHours ()> = 12 && fajr.getHours () <= 12) || fajr <maghrib) {fajr.setDate (fajr.getDate ()+1); // obrađuje rasponske dane endTime if (now.getHours () <= 12) {now.setDate (now.getDate ()+1); // ručka koja se proteže kroz dane currentTime}} // ispod je prethodni blok koda ako: Mahgrib <SADA <Fajr true | upali svjetla | objaviti poruku ON na navedenu temu MQTT -a else: false | isključiti
Cjelokupni tijek procesa označen je na gornjoj slici.
U smislu korisničkog sučelja, korisničkom sučelju/sučelju dodao sam 2 prekidača:
- Prekidač za uključivanje ovog procesa u automatski ili ručni postupak.
- Prekidač za ručno uključivanje/isključivanje svjetla.
Korak 6: Završavanje
Vrijeme leti nikad se ne može podsjetiti. Izvođenje takvih jednostavnih jednodnevnih projekata omogućuje vam da dođete do daha u ovoj brzoj traci i s vremenom vam oživi meke vještine.
Potrudio sam se u ovom projektu učiniti ga jednostavnim i za višekratnu upotrebu diljem svijeta.
Ljubazno glasajte za ovo uputstvo ako mislite da ovaj projekt zaslužuje.
Sretan Ramazan!
Preporučeni:
Jednostavna automatizacija stražnjeg svjetla: 3 koraka
Jednostavna automatizacija pozadinskog osvjetljenja stepenica: ASL Arduino štit✔ Dostupnost postavljanja do 24 stepenice. ✔ Učinak nestajanja. PWM modulacija. ✔ Može se bežično povezati s više od 20 vodećih kontrolera kućne automatizacije na tržištu. ✔ Skica spremna za upotrebu. ✔ Kombinirano
Interaktivna svjetla za dvorište, svjetla za hodnike: 3 koraka
Interaktivna svjetla za dvorište, svjetla za hodnike: Htjela sam izgraditi neku vrstu interaktivnih svjetla za dvorište. Ideja je bila da, kad bi netko hodao u jednom smjeru, pokrenula bi se animacija u smjeru u kojem ste hodali. Počeo sam sa solarnim svjetlima Dollar General od 1,00 USD
Prekidač svjetla aktiviran pokretom sa senzorom svjetla: 5 koraka
Prekidač svjetla aktiviran pokretom sa senzorom svjetla: Prekidač svjetla aktiviran pokretom ima mnogo primjena kako u kući tako i u uredu. Ovo je, međutim, imalo dodatnu prednost uključivanjem svjetlosnog senzora, tako da se ovo svjetlo može aktivirati samo noću
LED svjetla za tamna svjetla: 7 koraka
LED svjetla za tamna svjetla: LED dioda ne svijetli samo kada se napaja, već stvara i mali napon pri primjeni svjetla. Za nadzor ovog napona može se koristiti mikrokontroler PICAXE. Pokazat ću vam kako napraviti elektroničku svijeću koja će treptati LED diodom kad se pojavi
Božićna svjetla "uradi sam" uglazbljena - koreografska svjetla kuće: 15 koraka (sa slikama)
Božićna svjetla "Uradi sam" uglazbljena - Svjetla u koreografiji: Svjetla u kućnoj radinosti uglazbljena - Umjetnička svjetla u koreografiji Ovo nije DIY za početnike. Trebat će vam dobro razumijevanje elektronike, kruga, OSNOVNOG programiranja i općenite spoznaje o električnoj sigurnosti. Ovaj DIY je za iskusnu osobu pa