Obsah:
- Krok 1: Teorie
- Krok 2: Design
- Krok 3: Technické detaily: API
- Krok 4: Technické detaily: Hardware
- Krok 5: Technické detaily: Připojení teček | Automatizace domácnosti
- Krok 6: Zabalení
Video: Ramadánová světla - Domácí automatizace IOT: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Jak ramadán klepe na dveře, města po celém světě se rozzáří a připraví se na měsíc půstu. Světla jsou zavěšena na veřejných prostranstvích a v ulicích měst i na vnějších stěnách domů osvětlených v noci, dokud ráno nevyjde slunce.
V tomto projektu bych se chtěl podělit o svůj příspěvek, ve kterém automatizuji rozsvícení těchto dekorací na základě Adhanových časů a přidávám je do svého systému inteligentní domácnosti.
Krok 1: Teorie
V zásadě je snazší a použitelnější automatizovat osvětlení například na základě intenzity slunečního světla. Chtěl bych však, aby to mělo ducha svatého měsíce, to znamená, že světla se rozsvítí, dokud budou lidé během půstního měsíce moci jíst. Zejména světla každý den začínají od Maghriba Adhana až po Fajra Adhana bez jakékoli lidské interakce.
Krok 2: Design
Níže uvedu požadavky/možnosti tohoto projektu:
- Systém by měl být schopen automaticky zpracovávat při spuštění.
- Systém by měl být schopen pravidelně provádět rozhodovací (ON/OFF) algoritmus.
- Systém by měl být schopen volat API na denní bázi.
- Systém by měl být schopen zotavit se z neplánovaného restartu.
- Systém by měl okamžitě po přijetí dat provést rozhodovací (ON/OFF) algoritmus.
- Systém by měl poskytnout přepínač pro zapnutí režimu autopilota (automatický režim).
- Systém by měl poskytnout přepínač pro ruční zapnutí/vypnutí světel.
- Aktivací ručního spínače by měl být manuální režim nastaven na VYPNUTO.
- Když je automatický režim zapnutý, výsledek rozhodovacího algoritmu by se měl projevit na ručním spínači ZAP/VYP.
Krok 3: Technické detaily: API
Aby byla teorie použitelná, je nutné znát čas Adhan na denních základnách od jeho proměnné a podle toho zapínat/vypínat světla/dekorace.
Za tímto účelem jsem se rozhodl použít k poskytování dat API založené na poloze (čas pro Adhan)
muslimsalat.com/api/#location
- Toto API poskytuje řadu možností a konfiguračních parametrů popsaných v odkazu na dokumentaci výše.
- Doporučujeme použít vlastní API_key, který je při registraci zdarma.
- V mém návrhu mě zajímá denní harmonogram.
- Vrácený čas je ve 12hodinovém formátu (AM/PM).
- Pokud jde o umístění, přál jsem si, aby toto API mohlo poskytovat přesnější možnosti pro umístění, jako je systém zeměpisných souřadnic souřadnic (zeměpisná šířka a délka). Tímto způsobem může být tomuto API poskytnuto například jméno města a to ve většině případů stačí. Výsledky mého konkrétního města byly ve více testech bohužel velmi zkreslené a při porovnání času Adhan mezi výsledky API a skutečným časem Adhan v mém městě došlo k pár minutovému rozdílu. Na druhou stranu byly výsledky perfektně sladěny, když jsem poskytl blízké město na severu a toho jsem se držel!
- URL, kterou používám, je: https://muslimsalat.com/.json? Key =
Krok 4: Technické detaily: Hardware
Pro jednoduchost ponechávám hardware mimo proces synchronizace s API a výpočet času delegováním těchto operací na můj domácí automatizační systém. To mi poskytne větší kontrolu, pokud chci vyladit zdroj API a algoritmus výpočtu.
Když to bylo řečeno, použil jsem ESP8266 (NodeMCU) pro připojení k místní síti přes WIFI a reléový modul jako pohon. NodeMCU bude používat protokol MQTT a poslouchat konkrétní téma, aby získal příkazy k zapnutí/vypnutí relé. Tak jednoduché!
Krok 5: Technické detaily: Připojení teček | Automatizace domácnosti
Můj RaspberryPi obsahuje uzlovanou instanci, která je schopná zvládnout vše, co pro tento projekt potřebuji. Má také nainstalovaný server MQTT pro publikování našich zpráv.
Zpočátku jsem si myslel, že mohu načíst data API na denních základnách v 9:00 a extrahovat časy Fajr a Mahgrib Adhan a porovnávat aktuální čas s těmito proměnnými, což je:
každých 30 sekund:
pokud: Mahgrib <NYNÍ <Fajr pravda | zapnout světla | publikovat zprávu ON na zadané téma MQTT jinak: vypnout
Pro porovnávání času převádím hodiny poskytované rozhraním API z hh: mm (AM/PM) na plný formát data tak, že nastavím část data na zanedbatelné datum v historii, např. (1/1/1970), protože porovnáváme čas pouze na aktuální čas (část data se také převede).
Bohužel to bude fungovat pouze v přímých případech. Předpokládejme případ, kdy dojde k výpadku elektrického proudu nebo restartování systému z neplánovaného důvodu. Pokud k tomuto případu dojde před 12:00, jsme stále na bezpečné straně, ale po 12:00 to náš jednoduchý algoritmus selže.
Jako příklad uvedeme Magrib Adhan v 19:30 a Fajr v 4:10. Když se systém spustí, odešle nový požadavek na načtení dříve zmíněných dat. Pokud je nyní čas 1:45 AM, očekáváme, že se náš algoritmus vrátí na true, ale ve skutečnosti to nebude, protože 1:45 AM je menší než Fajr (4:10 AM), ale není větší než Magrib (19:30). Důvodem je, že sjednocujeme datum mezi všemi proměnnými. Níže je konečná verze algoritmu (zatím):
každých 30 sekund:
if ((magrib.getHours ()> = 12 && fajr.getHours () <= 12) || fajr <maghrib) {fajr.setDate (fajr.getDate ()+1); // zpracování spanning days endTime if (now.getHours () <= 12) {now.setDate (now.getDate ()+1); // handle spanning days currentTime}} // níže je předchozí blok kódu, pokud: Mahgrib <NOW <Fajr true | zapnout světla | publikovat ON zprávu na zadané téma MQTT else: false | vypnout
Kompletní průběh procesu je anotován na výše uvedeném obrázku.
Pokud jde o uživatelské rozhraní, přidal jsem do uživatelského rozhraní/rozhraní 2 přepínače:
- Přepínač, který tento proces zapne automaticky nebo ručně.
- Přepínač pro ruční zapnutí/vypnutí světel.
Krok 6: Zabalení
Čas letí, aby se na něj nikdy nevzpomínalo. Provádění takových jednoduchých jednodenních projektů vám umožní v tomto rychlém pruhu nadechnout a pomůže vám časem oživit vaše měkké dovednosti.
V tomto projektu jsem se snažil tolik, aby byl jednoduchý a opakovaně použitelný po celém světě.
Laskavě Hlasujte pro tento návod, pokud si myslíte, že si tento projekt zaslouží.
Šťastný Ramadán!
Doporučuje:
Talkative Automation -- Zvuk z Arduina -- Hlasem řízená automatizace -- Modul Bluetooth HC - 05: 9 kroků (s obrázky)
Talkative Automation || Zvuk z Arduina || Hlasem řízená automatizace || Modul Bluetooth HC - 05: …………………………. Přihlaste se k odběru mého YouTube kanálu pro další videa …. …. V tomto videu jsme vytvořili Talkative Automation .. Když odešlete hlasový příkaz přes mobil, zapne domácí zařízení a odešle zpětnou vazbu
Automatizace skleníku pomocí LoRa! (Část 2) -- Motorický otvírač oken: 6 kroků (s obrázky)
Automatizace skleníku pomocí LoRa! (Část 2) || Motorický otvírač oken: V tomto projektu vám ukážu, jak jsem vytvořil motorický otvírač oken pro svůj skleník. To znamená, že vám ukážu, jaký motor jsem použil, jak jsem navrhl skutečný mechanický systém, jak motor poháním a nakonec, jak jsem použil Arduino LoRa
AUTOMATIZACE S PIR SENZOREM: 5 kroků
AUTOMATIZACE S PIR SENZOREM: PIR senzory nebo pasivní infračervené senzory jsou určité typy senzorů, které detekují infračervené záření. Všechny teplokrevné bytosti, jako jsou lidé nebo zvířata, vyzařují určité množství infračerveného záření nebo tepla, které lze detekovat infračervenými senzory. Aktivní IR senzory
Automatizace skleníku pomocí LoRa! (Část 1) -- Senzory (teplota, vlhkost, vlhkost půdy): 5 kroků
Automatizace skleníku pomocí LoRa! (Část 1) || Senzory (teplota, vlhkost, vlhkost půdy): V tomto projektu vám ukážu, jak jsem automatizoval skleník. To znamená, že vám ukážu, jak jsem postavil skleník a jak jsem zapojil napájecí a automatizační elektroniku. Také vám ukážu, jak naprogramovat desku Arduino, která používá L
Automatizace světla pomocí pohybového senzoru MESH: 3 kroky (s obrázky)
Automatizace světla pomocí pohybového senzoru MESH: Často zapomínáte vypnout světla? Při odchodu z domu nebo pokoje je vždy možné zapomenout vypnout světla, ale s pohybovým senzorem MESH jsme problém vyřešili pomocí funkcí detekce a detekce, které vám pomohou usnadnit