Talaan ng mga Nilalaman:

Mga Ilaw ng Ramadan - Home Automation IOT: 6 na Hakbang
Mga Ilaw ng Ramadan - Home Automation IOT: 6 na Hakbang

Video: Mga Ilaw ng Ramadan - Home Automation IOT: 6 na Hakbang

Video: Mga Ilaw ng Ramadan - Home Automation IOT: 6 na Hakbang
Video: Smart Home Upgrade & Home Automation Ideas (2022) 2024, Hulyo
Anonim
Mga Ilaw ng Ramadan | Home Automation IOT
Mga Ilaw ng Ramadan | Home Automation IOT

Habang kumakatok sa pintuan ang Ramadan, ang mga lungsod sa buong mundo ay nagniningning at naghahanda para sa buwan ng pag-aayuno. Ang mga ilaw ay nakasabit sa mga pampublikong plasa at sa mga kalye ng lungsod pati na rin sa mga panlabas na pader ng mga bahay na naiilawan sa mga gabi hanggang sa pagsikat ng araw sa umaga.

Sa proyektong ito, nais kong ibahagi ang aking kontribusyon, kung saan isinasaaktibo ko ang pag-iilaw ng mga dekorasyong ito batay sa mga oras ng Adhan at idinagdag ito sa aking matalinong sistema ng bahay.

Hakbang 1: Teorya

Karaniwan, mas madali at mas naaangkop upang i-automate ang pag-iilaw batay sa intensity ng sikat ng araw, halimbawa. Gayunpaman, nais kong magkaroon ito ng diwa ng banal na buwan iyon ay, ang mga ilaw ay bubuksan hangga't pinapayagan ang mga tao na kumain sa buwan ng pag-aayuno. Sa partikular, ang mga ilaw ay nagsisimula simula sa Maghrib Adhan hanggang sa Fajr Adhan sa bawat araw nang walang pakikipag-ugnay ng tao.

Hakbang 2: Disenyo

Sa ibaba ililista ko ang mga kinakailangan / kakayahan ng proyektong ito:

  • Ang system ay dapat na maaaring awtomatikong magproseso sa boot up.
  • Ang system ay dapat na maaring magpatupad ng pana-panahong desisyon (ON / OFF) na algorithm.
  • Dapat tawagan ng system ang API sa isang pang-araw-araw na mga base.
  • Dapat ma-recover ang system mula sa hindi nakaplanong pag-restart.
  • Dapat ipatupad ng system ang algorithm ng desisyon (ON / OFF) sa agad na pagtanggap ng data.
  • Dapat magbigay ang system ng isang switch para sa pag-on ng autopilot mode (Awtomatikong mode).
  • Dapat magbigay ang system ng isang switch upang manu-manong i-ON / OFF ang mga ilaw.
  • Ang pag-trigger ng manu-manong switch ay dapat itakda ang manu-manong mode na OFF.
  • Kapag ang mode na Awtomatikong NAKA-ON, ang resulta ng algorithm ng desisyon ay dapat na masasalamin sa manu-manong switch na ON / OFF.

Hakbang 3: Mga Detalye ng Teknikal: ang API

Mga Detalye ng Teknikal: ang API
Mga Detalye ng Teknikal: ang API

Upang gawing naaangkop ang teorya, kinakailangang malaman ang oras ng Adhan sa pang-araw-araw na mga base dahil ang variable nito at kumilos dito upang i-on / i-off ang mga ilaw / dekorasyon.

Para sa hangaring ito, nagpasya akong gumamit ng isang batay sa lokasyon na API upang maihatid ang data (oras para sa Adhan)

muslimsalat.com/api/#location

  • Nagbibigay ang API na ito ng iba't ibang mga pagpipilian at mga parameter ng pagsasaayos na inilarawan sa link ng dokumentasyon sa itaas.
  • Inirerekumenda na gamitin ang iyong sariling API_key na libre sa pagpaparehistro.
  • Sa aking disenyo, interesado ako sa isang pang-araw-araw na timeline.
  • Ang oras na bumalik ay nasa format na 12 oras (AM / PM).
  • Sa mga tuntunin ng lokasyon, hiniling ko kung ang API na ito ay maaaring magbigay ng mas tumpak na mga pagpipilian para sa mga lokasyon tulad ng coordinate ng mga heyograpikong coordinate system (Latitude at Longitud). Para sa pamamaraang ito, ang API na ito ay maaaring ibigay sa isang pangalan ng lungsod halimbawa at sapat na ito sa karamihan ng mga kaso. Sa kasamaang palad, ang mga resulta ng aking tukoy na lungsod ay lubos na kampi sa maraming pagsubok at mayroong ilang minuto ng pagkakaiba kapag inihambing ang oras ng Adhan sa pagitan ng mga resulta ng API at ang tunay na oras ng Adhan sa aking lungsod. Sa kabilang banda, ang mga resulta ay perpektong naitugma nang magbigay ako ng isang malapit na lungsod sa hilaga at napunta ako rito!
  • Ang API url na ginagamit ko ay: https://muslimsalat.com/.json? Key =

Hakbang 4: Mga Detalye ng Teknikal: Hardware

Mga Detalye ng Teknikal: Hardware
Mga Detalye ng Teknikal: Hardware

Para sa pagiging simple, iniiwan ko ang hardware sa proseso ng pag-sync sa API at ang pagkalkula ng oras sa pamamagitan ng paglalaan ng mga operasyong ito sa Home Automation System ng minahan. Bibigyan nito ako ng higit na kontrol kung nais kong sabunutan ang mapagkukunan ng API at ang algorithm ng pagkalkula.

Nasabi na, gumamit ako ng isang ESP8266 (NodeMCU) upang kumonekta sa lokal na network sa pamamagitan ng WIFI at isang module ng relay bilang isang actuator. Gumagamit ang NodeMCU ng MQTT protocol at makikinig para sa isang tukoy na paksa upang makakuha ng mga utos upang i-on / i-off ang relay. Kasing simple niyan!

Hakbang 5: Mga Detalye ng Teknikal: Pagkonekta sa Mga Tuldok | Pag-aautomat sa Bahay

Mga Detalye ng Teknikal: Pagkonekta sa mga Dot | Pag-aautomat sa Bahay
Mga Detalye ng Teknikal: Pagkonekta sa mga Dot | Pag-aautomat sa Bahay
Mga Detalye ng Teknikal: Pagkonekta sa mga Dot | Pag-aautomat sa Bahay
Mga Detalye ng Teknikal: Pagkonekta sa mga Dot | Pag-aautomat sa Bahay
Mga Detalye ng Teknikal: Pagkonekta sa mga Dot | Pag-aautomat sa Bahay
Mga Detalye ng Teknikal: Pagkonekta sa mga Dot | Pag-aautomat sa Bahay

Ang aking RaspberryPi ay nagtataglay ng isang nodered na halimbawa na may kakayahang hawakan ang lahat ng kailangan ko para sa proyektong ito. Mayroon din itong naka-install na MQTT server upang mai-publish ang aming mga mensahe.

Sa una, naisip ko na maaari kong makuha ang data ng API sa mga pang-araw-araw na base sa 9AM at i-extract ang parehong oras ng Fajr at Mahgrib Adhan at patuloy na ihambing ang kasalukuyang oras sa mga variable na ito na:

bawat 30 sec:

kung: Mahgrib <NGAYON <Fajr totoo | buksan ang ilaw | mag-publish ng isang mensahe na ON sa tinukoy na paksa ng MQTT pa: patayin

Para sa paghahambing ng oras, nagko-convert ako ng mga oras na ibinigay ng API mula sa hh: mm (AM / PM) sa buong petsa ng formate sa pamamagitan ng pagtatakda ng bahagi ng petsa sa isang napapabayaang petsa sa kasaysayan hal (1/1/1970) dahil inihahambing namin ang oras sa kasalukuyang oras lamang (ang bahagi ng petsa ay na-convert din).

Sa kasamaang palad, gagana lamang ito sa mga tuwid na kaso. Ipagpalagay na ang kaso kapag ang lakas ng kuryente ay bumaba o ang system ay nag-restart para sa isang hindi nakaplanong dahilan. Kung ang kasong ito ay nangyari bago ang 12AM pagkatapos ay nasa ligtas pa rin tayo, ngunit pagkatapos ng 12AM mabibigo nito ang aming simpleng algorithm.

Upang magbigay ng isang halimbawa, magkaroon tayo ng Magrib Adhan sa 7:30 PM at Fajr sa 4:10 AM. Kapag nag-boot ang system magpapadala ito ng isang bagong kahilingan upang kunin ang data na nabanggit nang mas maaga. Kung ang oras ngayon ay 1:45 AM inaasahan namin na ang aming algorithm ay magbabalik ng totoo, ngunit sa katunayan hindi ito magagawa sapagkat ang 1:45 AM ay mas mababa sa Fajr (4:10 AM) ngunit hindi ito hihigit sa Magrib (7:30 PM). Ito ay dahil pinag-isa namin ang petsa sa pagitan ng lahat ng mga variable. Nasa ibaba ang huling bersyon ng algorithm (sa ngayon):

bawat 30 sec:

kung ((magrib.getHours ()> = 12 && fajr.getHours () <= 12) || fajr <maghrib) {fajr.setDate (fajr.getDate () + 1); // hawakan spanning araw endTime kung (now.getHours () <= 12) {now.setDate (now.getDate () + 1); // handle spanning days currentTime}} // sa ibaba ay ang nakaraang pag-block ng code kung: Mahgrib <NGAYON <Fajr true | buksan ang ilaw | mag-publish ng isang mensahe na ON sa tinukoy na paksa ng MQTT pa: maling | patayin

Ang kumpletong daloy ng proseso ay naitala sa itaas na imahe.

Sa mga tuntunin ng UI, nagdagdag ako ng 2 switch sa UI / interface:

  1. Isang switch upang buksan ang prosesong ito na Awtomatiko o Manwal.
  2. Isang switch upang i-ON / I-off ang mga ilaw nang manu-mano.

Hakbang 6: Pagbabalot.

Lumilipas ang oras na hindi na maalala. Ang paggawa ng ganoong simpleng mga 1-araw na proyekto ay nagbibigay-daan sa iyo upang huminga sa mabilis na linya na ito at matulungan kang buhayin ang iyong malambot na kasanayan sa paglipas ng panahon.

Sinubukan ko kasing marami sa proyektong ito upang mapanatili itong simple at magagamit muli sa buong mundo.

Pinapayuhan na Bumoto para sa itinuro na ito kung sa palagay mo nararapat ang proyektong ito.

Maligayang Ramadan!

Inirerekumendang: