Satura rādītājs:
- 1. solis: teorija
- 2. solis: projektēšana
- 3. darbība. Tehniskā informācija: API
- 4. darbība. Tehniskā informācija: aparatūra
- 5. darbība. Tehniskā informācija: punktu savienošana | Mājas automatizācija
- 6. darbība: iesaiņošana
Video: Ramadāna gaismas - Mājas automatizācija IOT: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Ramadānam klauvējot pie durvīm, pilsētas visā pasaulē iedegas un gatavojas gavēņa mēnesim. Gaismas tiek piekārtas publiskos laukumos un pāri pilsētas ielām, kā arī pie mājas ārsienām, kas tiek apgaismotas naktīs, līdz saule uzlec no rīta.
Šajā projektā es vēlos dalīties ar savu ieguldījumu, kurā, pamatojoties uz Adhana laikiem, automatizēju šo rotājumu iedegšanu un pievienoju to savai viedās mājas sistēmai.
1. solis: teorija
Būtībā ir vieglāk un piemērotāk automatizēt apgaismojumu, piemēram, pamatojoties uz saules gaismas intensitāti. Tomēr es gribētu, lai tam būtu svētā mēneša gars, tas ir, gaismas iedegsies tik ilgi, kamēr cilvēkiem būs atļauts ēst badošanās mēnesī. Jo īpaši gaismas tiek ieslēgtas no Maghrib Adhan līdz Fajr Adhan katru dienu bez jebkādas cilvēku mijiedarbības.
2. solis: projektēšana
Zemāk es uzskaitīšu šī projekta prasības/iespējas:
- Sistēmai jāspēj automātiski apstrādāt sāknēšanas laikā.
- Sistēmai jāspēj periodiski izpildīt lēmuma (IESLĒGTS/IZSLĒGTS) algoritmu.
- Sistēmai vajadzētu būt iespējai izsaukt API katru dienu.
- Sistēmai vajadzētu būt iespējai atgūties no neplānotas restartēšanas.
- Sistēmai jāizpilda lēmuma (IESLĒGŠANAS/IZSLĒGŠANAS) algoritms, saņemot datus uzreiz.
- Sistēmai vajadzētu nodrošināt slēdzi, lai ieslēgtu autopilota režīmu (automātiskais režīms).
- Sistēmai vajadzētu nodrošināt slēdzi, lai manuāli ieslēgtu/izslēgtu gaismas.
- Ieslēdzot manuālo slēdzi, manuālajam režīmam jābūt izslēgtam.
- Kad automātiskais režīms ir ieslēgts, lēmuma algoritma rezultāts jāatspoguļo manuālajā slēdzī ON/OFF.
3. darbība. Tehniskā informācija: API
Lai teorija būtu piemērojama, ir jāzina Adhana laiks katru dienu kopš tā mainīgā un jārīkojas, lai ieslēgtu/izslēgtu gaismas/rotājumus.
Šim nolūkam es nolēmu datu apkalpošanai izmantot uz atrašanās vietu balstītu API (laiks Adhanam)
muslimsalat.com/api/#location
- Šī API nodrošina dažādas iespējas un konfigurācijas parametrus, kas aprakstīti iepriekš dokumentācijas saitē.
- Ieteicams izmantot savu API_ atslēgu, kas reģistrēšanās laikā ir bezmaksas.
- Manā dizainā mani interesē ikdienas laika grafiks.
- Atgrieztais laiks ir 12 stundu formātā (AM/PM).
- Attiecībā uz atrašanās vietu es vēlējos, lai šī API varētu sniegt precīzākas iespējas tādām atrašanās vietām kā koordinātu ģeogrāfisko koordinātu sistēma (platums un garums). Šādā veidā šo API var nodrošināt, piemēram, ar pilsētas nosaukumu, un vairumā gadījumu tas ir pilnīgi pietiekami. Diemžēl manas konkrētās pilsētas rezultāti vairākos testos bija diezgan neobjektīvi, un, salīdzinot Adhan laiku starp API rezultātiem un faktisko Adhan laiku manā pilsētā, bija pāris minūšu atšķirība. No otras puses, rezultāti bija perfekti saskaņoti, kad es nodrošināju tuvu pilsētu uz ziemeļiem un pie tā pieturējos!
- API URL, ko izmantoju, ir: https://muslimsalat.com/.json? Key =
4. darbība. Tehniskā informācija: aparatūra
Vienkāršības labad es izslēdzu aparatūru no sinhronizācijas ar API un laika aprēķināšanas procesa, deleģējot šīs darbības manai mājas automatizācijas sistēmai. Tas man dos lielāku kontroli, ja vēlos pielāgot API avotu un aprēķina algoritmu.
To sakot, es izmantoju ESP8266 (NodeMCU), lai izveidotu savienojumu ar vietējo tīklu, izmantojot WIFI, un releja moduli kā izpildmehānismu. NodeMCU izmantos MQTT protokolu un klausīsies konkrētu tēmu, lai saņemtu komandas releja ieslēgšanai/izslēgšanai. Tik vienkārši!
5. darbība. Tehniskā informācija: punktu savienošana | Mājas automatizācija
Manā RaspberryPi ir saspiests eksemplārs, kas spēj apstrādāt visu, kas man vajadzīgs šim projektam. Tam ir arī instalēts MQTT serveris, lai publicētu mūsu ziņas.
Sākumā es domāju, ka es varu iegūt API datus katru dienu pulksten 9:00 un iegūt gan Fajr, gan Mahgrib Adhan laikus un turpināt salīdzināt pašreizējo laiku ar šiem mainīgajiem lielumiem:
ik pēc 30 sekundēm:
ja: Mahgrib <TAGAD <Fajr taisnība | ieslēgt gaismas | publicējiet ON ziņu norādītajai MQTT tēmai citādi: izslēdziet
Laika salīdzināšanai es konvertēju API nodrošinātās stundas no hh: mm (AM/PM) uz pilnu datuma formātu, iestatot datuma daļu uz nenozīmīgu datumu vēsturē, piemēram, (1/1/1970), jo mēs salīdzinām laiku tikai pašreizējam laikam (tiek konvertēta arī datuma daļa).
Diemžēl tas darbosies tikai tiešos gadījumos. Pieņemsim, ka gadījums, kad neplānota iemesla dēļ pazūd elektrība vai sistēma tiek restartēta. Ja šis gadījums notiek pirms pulksten 12:00, mēs joprojām esam drošā pusē, bet pēc pulksten 12:00 mūsu vienkāršais algoritms neizdosies.
Lai minētu piemēru, pieņemsim Magrib Adhan 19:30 un Fajr 4:10 AM. Kad sistēma sāk darboties, tā nosūtīs jaunu pieprasījumu iegūt iepriekš minētos datus. Ja pašlaik ir pulksten 1:45, mēs sagaidām, ka mūsu algoritms atgriezīs patiesību, bet patiesībā tas nenotiks, jo 01:45 ir mazāks par Fadžru (4:10), bet nav lielāks par Magribu (19:30). Tas ir tāpēc, ka mēs apvienojam datumu starp visiem mainīgajiem. Zemāk ir algoritma galīgā versija (līdz šim):
ik pēc 30 sekundēm:
if ((magrib.getHours ()> = 12 && fajr.getHours () <= 12) || fajr <maghrib) {fajr.setDate (fajr.getDate ()+1); // apstrādāt aptverošās dienas endTime if (now.getHours () <= 12) {now.setDate (now.getDate ()+1); // apstrādāt aptverošās dienas currentTime}}} // zemāk ir iepriekšējais koda bloks, ja: Mahgrib <NOW <Fajr true | ieslēgt gaismas | publicēt ON ziņu norādītajai MQTT tēmai else: false | izslēgt
Visa procesa gaita ir atzīmēta iepriekš redzamajā attēlā.
Attiecībā uz lietotāja interfeisu es pievienoju 2 slēdžus lietotāja saskarnei/saskarnei:
- Slēdzis, lai šo procesu ieslēgtu automātiski vai manuāli.
- Slēdzis, lai manuāli ieslēgtu/izslēgtu gaismas.
6. darbība: iesaiņošana
Laiks skrien nekad, lai to neatcerētos. Veicot šādus vienkāršus vienas dienas projektus, varat atvilkt elpu šajā ātrajā joslā un laika gaitā palīdzēt atjaunot mīkstās prasmes.
Es šajā projektā centos, lai tas būtu vienkāršs un atkārtoti izmantojams visā pasaulē.
Lūdzu, balsojiet par šo pamācību, ja uzskatāt, ka šis projekts ir pelnījis.
Laimīgu Ramadānu!
Ieteicams:
Runājošā automatizācija -- Audio no Arduino -- Balss vadāma automatizācija -- HC -05 Bluetooth modulis: 9 soļi (ar attēliem)
Runājošā automatizācija || Audio no Arduino || Balss vadāma automatizācija || HC -05 Bluetooth modulis: …………………………. Lūdzu, abonējiet manu YouTube kanālu, lai iegūtu vairāk videoklipu …. …. šajā video mēs esam izveidojuši runīgu automatizāciju. Kad jūs nosūtīsit balss komandu, izmantojot mobilo tālruni, tā ieslēgs mājas ierīces un nosūtīs atsauksmes
Programmējams policijas gaismas diode, izmantojot STM8 [72 gaismas diodes]: 9 soļi
Programmējams policijas LED mirgojošais signāls, izmantojot STM8 [72 gaismas diodes]: STM8S001J3 ir 8 bitu mikrokontrolleris, kas piedāvā 8 KB Flash programmas atmiņu, kā arī integrētu patiesu datu EEPROM. STM8S mikrokontrolleru saimē to sauc par zema blīvuma ierīci. Šis MCU tika piedāvāts nelielā SO8N iepakojumā
Pavelciet gaismas - gaismas moduli, izmantojot Neopixel & Pull Up Switch: 6 soļi (ar attēliem)
Pavelciet gaismu - gaismas moduli, izmantojot Neopixel & Pull Up Switch: Gaismas moduļa funkcijas Arduino Uno Hardware & korpuss iegādāts no interneta Neopixel & Barošanas avots aizgūts no Informātikas skolas & Produkta dizaina gaismas modulis, ko kontrolē barošana. Visas funkcijas tiek kontrolētas, izmantojot
Gaismas diodes kā gaismas sensori: 5 soļi
Gaismas diodes kā gaismas sensori: gaismas diodes ir lieliskas, lai radītu gaismu, taču tās var arī sajust gaismu! Nesen es nejauši uzgāju šo vietni, kurā minēts: "1977. gadā Forress M. Mims atgādina mums vienā no savām" Inženiera piezīmju grāmatiņām " ka gaismas diodes var izmantot arī kā fotodiodes … & q
Bluetooth tālvadības gaismas slēdzis - modernizēts. Gaismas slēdzis joprojām darbojas, bez papildu rakstīšanas: 9 soļi (ar attēliem)
Bluetooth tālvadības gaismas slēdzis - modernizēts. Gaismas slēdzis joprojām darbojas, bez papildu rakstīšanas: 2017. gada 25. novembra atjauninājums - šī projekta lieljaudas versiju, kas var kontrolēt kilovatu slodzi, skatiet, modernizējot BLE vadību lieljaudas slodzēm - nav nepieciešama papildu vadu atjaunināšana. 2017. gada 15. novembris - Dažas BLE plates / programmatūras kaudzes tiek gatavotas