Taula de continguts:
- Pas 1: teoria
- Pas 2: disseny
- Pas 3: detalls tècnics: l'API
- Pas 4: detalls tècnics: maquinari
- Pas 5: detalls tècnics: connexió dels punts | Domòtica
- Pas 6: finalitzar …
Vídeo: Llums del Ramadà - Domòtica IOT: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Mentre el ramadà truca a la porta, les ciutats de tot el món s’il·luminen i es preparen per al mes de dejuni. Les llums es pengen a les places públiques i als carrers de la ciutat, així com a les parets exteriors de les cases il·luminades durant les nits fins que surt el sol al matí.
En aquest projecte, m'agradaria compartir la meva contribució, en què automatitzo la il·luminació d'aquestes decoracions en funció dels temps d'Adhan i l'afegeixo al meu sistema de casa intel·ligent.
Pas 1: teoria
Bàsicament, és més fàcil i aplicable automatitzar la il·luminació en funció de la intensitat del sol, per exemple. Tanmateix, m’agradaria que tingués l’esperit del mes sagrat, és a dir, que s’encenguin els llums sempre que es permeti menjar durant el mes de dejuni. En particular, les llums s’encenen des de Maghrib Adhan fins a Fajr Adhan cada dia sense cap interacció humana.
Pas 2: disseny
A continuació, enumeraré els requisits / capacitats d’aquest projecte:
- El sistema hauria de poder processar automàticament en arrencar.
- El sistema hauria de poder executar periòdicament l'algorisme de decisió (ON / OFF).
- El sistema hauria de poder trucar a l'API diàriament.
- El sistema hauria de poder recuperar-se d'un reinici no planificat.
- El sistema hauria d'executar l'algorisme de decisió (ON / OFF) en rebre dades a l'instant.
- El sistema hauria de proporcionar un commutador per activar el mode de pilot automàtic (mode automàtic).
- El sistema hauria de proporcionar un commutador per encendre / apagar els llums manualment.
- Si activeu l'interruptor manual, el mode manual s'hauria de desactivar.
- Quan el mode automàtic està ACTIVAT, el resultat de l'algorisme de decisió s'hauria de reflectir a l'interruptor manual ON / OFF.
Pas 3: detalls tècnics: l'API
Per fer que la teoria sigui aplicable, és necessari conèixer el temps d’Adhan a la base diària des de la seva variable i actuar sobre ella per encendre / apagar els llums / decoracions.
Amb aquest propòsit, vaig decidir utilitzar una API basada en la ubicació per publicar les dades (temps per a Adhan)
muslimsalat.com/api/#location
- Aquesta API proporciona una gran varietat d'opcions i paràmetres de configuració descrits a l'enllaç de documentació anterior.
- Es recomana utilitzar la vostra pròpia API_key, que és gratuïta després del registre.
- En el meu disseny, m’interessa una cronologia diària.
- El temps retornat té un format de 12 hores (AM / PM).
- Quant a la ubicació, desitjaria que aquesta API pogués proporcionar opcions més precises per a ubicacions com el sistema de coordenades geogràfiques de coordenades (latitud i longitud). D'aquesta manera, aquesta API es pot proporcionar amb un nom de ciutat, per exemple, i és suficient en la majoria dels casos. Malauradament, els resultats de la meva ciutat específica van ser força esbiaixats en diverses proves i hi va haver un parell de minuts de diferència en comparar el temps d'Adhan entre els resultats de l'API i el temps real d'Adhan a la meva ciutat. D’altra banda, els resultats van coincidir perfectament quan vaig proporcionar una ciutat propera al nord i em vaig quedar amb ella.
- L'URL de l'API que estic utilitzant és: https://muslimsalat.com/.json? Key =
Pas 4: detalls tècnics: maquinari
Per simplicitat, deixo el maquinari fora del procés de sincronització amb l'API i el càlcul del temps delegant aquestes operacions al meu sistema domòtic. Això em donarà més control si vull ajustar la font de l'API i l'algoritme de càlcul.
Dit això, he utilitzat un ESP8266 (NodeMCU) per connectar-me a la xarxa local mitjançant WIFI i un mòdul de relé com a actuador. El NodeMCU utilitzarà el protocol MQTT i escoltarà un tema específic per obtenir ordres per activar / desactivar el relé. Tan simple com això!
Pas 5: detalls tècnics: connexió dels punts | Domòtica
El meu RaspberryPi té una instància amb cap que és capaç de gestionar tot el que necessito per a aquest projecte. També té instal·lat un servidor MQTT per publicar els nostres missatges.
Al principi, vaig pensar que podia obtenir les dades de l'API en base diària a les 9:00 i extreure els temps Fajr i Mahgrib Adhan i seguir comparant l'hora actual amb aquestes variables:
cada 30 segons:
si: Mahgrib <ARA <Fajr true | encendre els llums | publiqueu un missatge ACTIVAT al tema MQTT especificat més: apagueu
Per comparar l'hora, estic convertint les hores proporcionades per l'API de hh: mm (AM / PM) a format de data completa establint la porció de data a una data insignificant de la història, per exemple (1/1/1970), ja que comparem l'hora només a l'hora actual (la part de la data també es converteix).
Malauradament, això només funcionarà en casos directes. Suposem que es produeix un descens de l’energia elèctrica o el sistema es reinicia per un motiu no planificat. Si aquest cas es produeix abans de les 12:00, encara estem en el punt segur, però després de les 00:00 això fallarà en el nostre algorisme senzill.
Per posar un exemple, posem Magrib Adhan a les 19:30 i Fajr a les 4:10. Quan el sistema s'engegui, enviarà una nova sol·licitud per obtenir les dades esmentades anteriorment. Si el temps ara és a la 1:45 AM, esperem que el nostre algoritme sigui cert, però de fet no ho farà perquè la 1:45 AM és inferior a Fajr (4:10 AM) però no és superior a Magrib (19:30 PM). Això es deu al fet que unim la data entre totes les variables. A continuació es mostra la versió final de l'algorisme (fins ara):
cada 30 segons:
if ((magrib.getHours ()> = 12 && fajr.getHours () <= 12) || fajr <maghrib) {fajr.setDate (fajr.getDate () + 1); // gestionar els dies d’extensió endTime if (now.getHours () <= 12) {now.setDate (now.getDate () + 1); // gestiona els dies d’actualització}} // a continuació es mostra el bloc de codi anterior si: Mahgrib <ARA <Fajr true | encendre els llums | publiqueu un missatge ON al tema MQTT especificat else: false | tanca
El flux complet del procés s’anota a la imatge anterior.
Pel que fa a la interfície d’usuari, he afegit 2 commutadors a la interfície d’usuari / interfície:
- Un commutador per convertir aquest procés en automàtic o manual.
- Un interruptor per encendre / apagar els llums manualment.
Pas 6: finalitzar …
El temps vola per no recordar-se mai. Fer projectes tan senzills d’un dia us permetrà respirar en aquest carril ràpid i ajudar-vos a reviure les vostres habilitats suaus amb el pas del temps.
He intentat tant en aquest projecte per mantenir-lo senzill i reutilitzable a tot el món.
Voteu aquest amable si creieu que aquest projecte es mereix.
Feliç Ramadà!
Recomanat:
Llums del millor amic de llarga distància de bricolatge: 4 passos (amb imatges)
Llums de millor amic de llarga distància de bricolatge: vaig fer llums sincronitzats de llarga distància coneguts com a "Millor amic" llums. Això només significa que es mantenen sincronitzats amb el color actual de l'altra làmpada. Per tant, si canvies una llum verda, poc després l’altra làmpada es tornaria grisa
Com controlar les llums domèstiques / llums mitjançant Arduino i Amazon Alexa: 16 passos (amb imatges)
Com controlar les llums domèstiques / llums mitjançant Arduino i Amazon Alexa: he explicat com controlar la llum connectada a UNO i controlada per Alexa
Llums interactius de pati, llums de passarel·la: 3 passos
Interactive Yard Lights, Walkway Lights: volia construir algun tipus de llums interactius per al jardí. La idea era que quan algú caminava per un camí, desencadenava una animació en la direcció que caminaveu. Vaig començar amb llums solars Dollar General d’1,00 dòlars
Llums de Nadal de bricolatge musicades: llums de casa coreografiades: 15 passos (amb imatges)
Llums de Nadal de bricolatge musicades: llums de casa coreografiades: llums de Nadal de bricolatge musicades: llums de casa coreografiades NO és un bricolatge per a principiants. Necessitareu comprendre fermament l’electrònica, el circuit, la programació BÀSICA i intel·ligències generals sobre seguretat elèctrica. Aquest bricolatge és per a una persona experimentada, així que
36 volts - 900 llums LED llums d'estadi: 5 passos
36 Volt - 900 Lumen LED Llums d'estadi: El final de l'estiu i la manca de llums significaven que les pràctiques de futbol a les 17:30 estarien totalment fosques. Amb l’espai de camp molt limitat, això va significar la fi de les pràctiques. L’any vinent estarem preparats amb il·luminació portàtil de camp amb bateria, que