Sisällysluettelo:
- Vaihe 1: Teoria
- Vaihe 2: Suunnittelu
- Vaihe 3: Tekniset tiedot: API
- Vaihe 4: Tekniset tiedot: Laitteisto
- Vaihe 5: Tekniset tiedot: Pisteiden yhdistäminen | Kodin automatisointi
- Vaihe 6: Kääriminen
Video: Ramadan -valot - Koti -automaatio IOT: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Ramadanin koputtaessa ovelle kaupungit ympäri maailmaa syttyvät ja valmistautuvat paastokuukauteen. Valot ripustetaan julkisille aukioille ja kaupungin kaduille sekä talojen ulkoseinille, jotka on valaistu yöllä, kunnes aurinko nousee aamulla.
Tässä projektissa haluaisin jakaa panokseni, jossa automatisoin näiden koristeiden sytyttämisen Adhan -aikojen perusteella ja lisään tämän älykkään kodin järjestelmään.
Vaihe 1: Teoria
Periaatteessa on helpompaa ja soveltuvampaa automatisoida valaistus esimerkiksi auringonvalon voimakkuuden perusteella. Haluaisin kuitenkin, että siinä olisi pyhän kuukauden henki eli valot syttyvät niin kauan kuin ihmiset saavat syödä paastokuukauden aikana. Erityisesti valot syttyvät Maghrib Adhanista Fajr Adhaniin joka päivä ilman ihmisten vuorovaikutusta.
Vaihe 2: Suunnittelu
Alla luettelen tämän projektin vaatimukset/ominaisuudet:
- Järjestelmän pitäisi pystyä käsittelemään automaattisesti käynnistyksen yhteydessä.
- Järjestelmän pitäisi pystyä suorittamaan päätösalgoritmi säännöllisesti (ON/OFF).
- Järjestelmän pitäisi pystyä kutsumaan sovellusliittymää päivittäin.
- Järjestelmän pitäisi pystyä toipumaan suunnittelemattomasta uudelleenkäynnistyksestä.
- Järjestelmän tulisi suorittaa päätös (ON/OFF) -algoritmi vastaanotettuaan tiedot välittömästi.
- Järjestelmässä on oltava kytkin automaattisen ohjaustilan (automaattinen tila) kytkemiseksi päälle.
- Järjestelmän pitäisi tarjota kytkin valojen manuaaliseen kytkemiseen päälle/pois.
- Käsikytkimen laukaisun pitäisi asettaa manuaalinen tila OFF -asentoon.
- Kun automaattinen tila on PÄÄLLÄ, päätösalgoritmin tuloksen tulee näkyä käsikytkimessä ON/OFF.
Vaihe 3: Tekniset tiedot: API
Jotta teoriaa voidaan soveltaa, sen on tiedettävä Adhanin aika päivittäin sen muuttujan jälkeen ja toimittava sen mukaan sytyttämään/sammuttamaan valot/koristeet.
Tätä tarkoitusta varten päätin käyttää sijaintiin perustuvaa sovellusliittymää tietojen palvelemiseen (Adhanin aika)
muslimsalat.com/api/#location
- Tämä sovellusliittymä tarjoaa useita vaihtoehtoja ja kokoonpanoparametreja, jotka on kuvattu yllä olevassa dokumentaatiolinkissä.
- On suositeltavaa käyttää omaa API_avainta, joka on ilmainen rekisteröinnin yhteydessä.
- Suunnittelussani olen kiinnostunut päivittäisestä aikataulusta.
- Palautettu aika on 12 tunnin muodossa (AM/PM).
- Sijainnin suhteen toivoisin, voisiko tämä sovellusliittymä tarjota tarkempia vaihtoehtoja sijainneille, kuten koordinaattien maantieteellisille koordinaatistoille (leveys- ja pituusaste). Tätä varten tällä sovellusliittymällä voi olla esimerkiksi kaupungin nimi, ja tämä riittää useimmissa tapauksissa. Valitettavasti tietyn kaupunkini tulokset olivat melko puolueellisia useissa testeissä, ja Adhanin aikaa verrattaessa API -tulosten ja Adhanin todellisen ajan välillä oli parin minuutin ero. Toisaalta tulokset vastasivat täydellisesti, kun annoin läheisen kaupungin pohjoiseen ja pidin siitä kiinni!
- Käyttämäni sovellusliittymän URL -osoite on: https://muslimsalat.com/.json? Key =
Vaihe 4: Tekniset tiedot: Laitteisto
Yksinkertaisuuden vuoksi jätän laitteiston pois synkronoinnista sovellusliittymän kanssa ja ajan laskemisesta delegoimalla nämä toiminnot omalle kotiautomaatiojärjestelmälle. Tämä antaa minulle enemmän valvontaa, jos haluan säätää sovellusliittymän lähdettä ja laskentaalgoritmia.
Sanoin tämän, käytin ESP8266: ta (NodeMCU) yhteyden muodostamiseen paikalliseen verkkoon WIFI: n ja välitysmoduulin kautta toimilaitteena. NodeMCU käyttää MQTT -protokollaa ja kuuntelee tiettyä aihetta saadakseen komentoja releen kytkemiseksi päälle/pois. Niin yksinkertaista!
Vaihe 5: Tekniset tiedot: Pisteiden yhdistäminen | Kodin automatisointi
RaspberryPi -laitteessani on noded -instanssi, joka pystyy käsittelemään kaiken, mitä tarvitsen tähän projektiin. Siihen on myös asennettu MQTT -palvelin viestiemme julkaisemiseksi.
Aluksi ajattelin, että voin hakea API -tiedot päivittäin klo 9.00 ja poimia sekä Fajr- että Mahgrib Adhan -ajat ja vertailla nykyistä aikaa näiden muuttujien kanssa:
30 sekunnin välein:
jos: Mahgrib <NYT <Fajr totta | sytytä valot | julkaise ON -viesti määritettyyn MQTT -aiheeseen muu: sammuta
Ajan vertaamiseksi muutan sovellusliittymän tarjoamat tunnit hh: mm (AM/PM) koko päivämäärän muotoon asettamalla päivämääräosalle vähäpätöisen päivämäärän historiassa, esim. (1/1/1970), koska vertaamme aikaa vain nykyiseen aikaan (myös päivämääräosa muunnetaan).
Valitettavasti tämä toimii vain suoraviivaisissa tapauksissa. Oletetaan tapaus, kun sähkövirta katkeaa tai järjestelmä käynnistyy uudelleen suunnittelemattomasta syystä. Jos tämä tapaus ilmenee ennen klo 12.00, olemme edelleen turvallisella puolella, mutta klo 12.00 jälkeen tämä epäonnistuu yksinkertaisessa algoritmissamme.
Otetaan esimerkiksi Magrib Adhan klo 19.30 ja Fajr klo 4.10. Kun järjestelmä käynnistyy, se lähettää uuden pyynnön noutaa aiemmin mainitut tiedot. Jos kello on nyt 1:45, odotamme algoritmimme palauttavan tosi, mutta itse asiassa se ei tule, koska 1:45 on pienempi kuin Fajr (4:10 AM), mutta ei suurempi kuin Magrib (19:30). Tämä johtuu siitä, että yhdistämme päivämäärän kaikkien muuttujien kesken. Alla on algoritmin lopullinen versio (toistaiseksi):
30 sekunnin välein:
if ((magrib.getHours ()> = 12 && fajr.getHours () <= 12) || fajr <maghrib) {fajr.setDate (fajr.getDate ()+1); // käsittele kattavia päiviä endTime if (now.getHours () <= 12) {now.setDate (now.getDate ()+1); // käsittele nykyisiä päiviä nykyinen aika}}} // alla on edellinen koodilohko, jos: Mahgrib <NYT <Fajr true | sytytä valot | julkaise ON -viesti määritettyyn MQTT -aiheeseen else: false | sammuttaa
Prosessin täydellinen kulku on merkitty yllä olevaan kuvaan.
Käyttöliittymän osalta lisäsin käyttöliittymään/käyttöliittymään 2 kytkintä:
- Kytkin tämän prosessin kääntämiseksi automaattiseksi tai manuaaliseksi.
- Kytkin sytyttää/sammuttaa valot manuaalisesti.
Vaihe 6: Kääriminen
Aika rientää, eikä sitä koskaan muistella. Tällaisten yksinkertaisten yhden päivän projektien tekeminen antaa sinulle mahdollisuuden hengittää tällä nopealla kaistalla ja auttaa elvyttämään pehmeät taitosi ajan myötä.
Yritin tässä projektissa yhtä paljon pitää sen yksinkertaisena ja uudelleenkäytettävänä ympäri maailmaa.
Äänestä ystävällisesti tätä opettavaista, jos luulet tämän projektin ansaitsevan.
Hyvää ramadania!
Suositeltava:
Easy IOT - Sovelluksella ohjattu RF -anturikeskus keskikokoisille IOT -laitteille: 4 vaihetta
Helppo IOT - Sovelluksella ohjattu RF -anturikeskus keskikokoisille IOT -laitteille: Tässä opetusohjelmasarjassa rakennamme laitteiden verkoston, jota voidaan ohjata radiolinkin kautta keskuskeskuslaitteesta. Hyöty 433 MHz: n sarjaradioyhteyden käyttämisestä WIFI: n tai Bluetoothin sijaan on paljon laajempi kantama (hyvällä
IoT APIS V2 - Itsenäinen IoT -yhteensopiva automaattinen kasvien kastelujärjestelmä: 17 vaihetta (kuvilla)
IoT APIS V2 - Itsenäinen IoT -yhteensopiva automatisoitu kasvien kastelujärjestelmä: Tämä projekti on edellisen ohjeeni kehitys: APIS - automaattinen kasvien kastelujärjestelmä Olen käyttänyt APISia lähes vuoden ajan ja halusin parantaa aiempaa suunnittelua: seurata laitosta etänä. Näin
IoT -virtamoduuli: IoT -virranmittausominaisuuden lisääminen aurinkovoimalatausohjaimeen: 19 vaihetta (kuvilla)
IoT -virtamoduuli: IoT -virranmittausominaisuuden lisääminen aurinkovoimalatausohjaimeen: Hei kaikki, toivon, että olette kaikki mahtavia! Tässä ohjeessa näytän sinulle, kuinka tein IoT -tehonmittausmoduulin, joka laskee aurinkopaneelieni tuottaman tehon, jota aurinkopaneelien varausohjain käyttää
IoT: n perusteet: IoT: n yhdistäminen pilveen Mongoose -käyttöjärjestelmän avulla: 5 vaihetta
IoT: n perusteet: IoT: n yhdistäminen pilveen Mongoose -käyttöjärjestelmän avulla: Jos olet henkilö, joka harrastaa tinkimistä ja elektroniikkaa, törmäät usein esineiden Internetiin, yleensä lyhenteellä IoT, ja että viittaa laitteisiin, jotka voivat muodostaa yhteyden Internetiin! Tällainen ihminen
ESP8266 NODEMCU BLYNK IOT -opetusohjelma - Esp8266 IOT Blunkin ja Arduino IDE: n avulla - LEDien ohjaus Internetin kautta: 6 vaihetta
ESP8266 NODEMCU BLYNK IOT -opetusohjelma | Esp8266 IOT Blunkin ja Arduino IDE: n avulla | LEDien ohjaus Internetin kautta: Hei kaverit, tässä oppaassa opimme käyttämään IOT: tä ESP8266: n tai Nodemcun kanssa. Käytämme siihen blynk -sovellusta.Siksi käytämme esp8266/nodemcu -ohjelmaa LED -valojen ohjaamiseen Internetin kautta. Joten Blynk -sovellus yhdistetään esp8266- tai Nodemcu -laitteeseemme