Indholdsfortegnelse:
- Trin 1: Teori
- Trin 2: Design
- Trin 3: Tekniske detaljer: API
- Trin 4: Tekniske detaljer: Hardware
- Trin 5: Tekniske detaljer: Tilslutning af prikker | Hjemmeautomatisering
- Trin 6: Indpakning
Video: Ramadanlys - Hjemmeautomatisering IOT: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Da Ramadan banker på døren, lyser byer over hele verden op og forbereder sig på fastemåneden. Lys hænges på offentlige pladser og på tværs af byens gader samt på ydervægge i huse, der er tændt om natten, indtil solen står op om morgenen.
I dette projekt vil jeg gerne dele mit bidrag, hvor jeg automatiserer belysningen af disse dekorationer baseret på Adhan -tider og tilføjer dette til mit smart home -system.
Trin 1: Teori
Grundlæggende er det lettere og mere anvendeligt at automatisere belysningen baseret på f.eks. Sollysintensitet. Jeg vil dog gerne have, at dette har ånden i den hellige måned, det vil sige, at lysene tændes, så længe folk får lov at spise i fastemåneden. Især lyser tændt fra Maghrib Adhan til Fajr Adhan hver dag uden menneskelig interaktion.
Trin 2: Design
Nedenfor angiver jeg kravene/mulighederne for dette projekt:
- Systemet skal kunne behandles automatisk ved opstart.
- Systemet bør være i stand til periodisk at udføre beslutningsalgoritmen (ON/OFF).
- Systemet skal kunne kalde API på daglig basis.
- Systemet skal være i stand til at gendanne sig efter uplanlagt genstart.
- Systemet bør udføre beslutningsalgoritmen (ON/OFF) ved øjeblikkelig modtagelse af data.
- Systemet bør give en switch til at tænde for autopilot -tilstand (automatisk tilstand).
- Systemet bør give en switch til manuelt at tænde/slukke lysene.
- Når den manuelle kontakt aktiveres, skal den manuelle tilstand være OFF.
- Når Automatisk tilstand er TIL, skal resultatet af beslutningsalgoritmen afspejles på den manuelle omskifter TIL/FRA.
Trin 3: Tekniske detaljer: API
For at gøre teorien anvendelig, er det påkrævet at kende Adhan -tiden på daglig basis siden dens variabel og handle på den for at tænde/slukke lysene/dekorationerne.
Til dette formål besluttede jeg at bruge en lokationsbaseret API til at betjene dataene (tid til Adhan)
muslimsalat.com/api/#location
- Denne API giver en række muligheder og konfigurationsparametre beskrevet i dokumentationslinket ovenfor.
- Det anbefales at bruge din egen API_key, som er gratis ved registrering.
- I mit design er jeg interesseret i en daglig tidslinje.
- Den returnerede tid er i 12 -timers format (AM/PM).
- Med hensyn til placeringen ville jeg ønske, om denne API kunne give mere præcise muligheder for placeringer som koordinater geografiske koordinatsystem (breddegrad og længdegrad). På denne måde kan denne API f.eks. Forsynes med et bynavn, og det er i de fleste tilfælde ganske nok. Desværre var resultaterne af min specifikke by ganske forudindtaget i flere tests, og der var et par minutters forskel, når man sammenlignede Adhan -tid mellem API -resultater og den faktiske tid for Adhan i min by. På den anden side matchede resultaterne perfekt, da jeg leverede en tæt by mod nord, og jeg holdt fast ved det!
- API -url'en, jeg bruger, er: https://muslimsalat.com/.json? Key =
Trin 4: Tekniske detaljer: Hardware
For nemheds skyld forlader jeg hardwaren ude af processen med at synkronisere med API'en og tidsberegningen ved at delegere disse operationer til mit hjemmeautomatiseringssystem. Dette vil give mig mere kontrol, hvis jeg vil justere API -kilden og beregningsalgoritmen.
Når det er sagt, brugte jeg en ESP8266 (NodeMCU) til at oprette forbindelse til det lokale netværk via WIFI og et relæmodul som en aktuator. NodeMCU vil bruge MQTT -protokollen og lytte efter et bestemt emne for at få kommandoer til at tænde/slukke relæet. Så simpelt som det!
Trin 5: Tekniske detaljer: Tilslutning af prikker | Hjemmeautomatisering
Min RaspberryPi har en nodereret instans, der er i stand til at håndtere alt, hvad jeg har brug for til dette projekt. Det har også en MQTT -server installeret til at offentliggøre vores meddelelser.
Først troede jeg, at jeg kunne hente API -dataene på daglig basis kl. 9.00 og udtrække både Fajr- og Mahgrib Adhan -tider og blive ved med at sammenligne den aktuelle tid med disse variabler, dvs.
hvert 30 sek:
hvis: Mahgrib <NU <Fajr true | tænde lyset | offentliggøre en ON -meddelelse til det angivne MQTT -emne ellers: sluk
For at sammenligne tid konverterer jeg timer leveret af API'en fra hh: mm (AM/PM) til fuld datoformat ved at indstille datodelen til en ubetydelig dato i historien f.eks. (1/1/1970), da vi sammenligner tiden kun til det aktuelle tidspunkt (datodelen konverteres også).
Desværre fungerer dette kun i simple tilfælde. Antag tilfældet, når strømmen afbrydes, eller systemet genstarter af en ikke -planlagt årsag. Hvis dette tilfælde opstår før kl. 12.00, er vi stadig i den sikre side, men efter kl. 12.00 vil dette mislykkes i vores enkle algoritme.
For at give et eksempel, lad os få Magrib Adhan kl. 19:30 og Fajr kl. 16:10. Når systemet starter op, sender det en ny anmodning om at hente de tidligere nævnte data. Hvis klokken nu er 01:45, forventer vi, at vores algoritme vender tilbage til sandheden, men faktisk vil det ikke være, fordi 01:45 er mindre end Fajr (4:10 AM), men ikke er større end Magrib (19:30). Det er fordi vi forener datoen mellem alle variabler. Nedenfor er den endelige version af algoritmen (indtil videre):
hvert 30 sek:
hvis ((magrib.getHours ()> = 12 && fajr.getHours () <= 12) || fajr <maghrib) {fajr.setDate (fajr.getDate ()+1); // håndtere spændende dage endTime if (now.getHours () <= 12) {now.setDate (now.getDate ()+1); // håndtere spændende dage currentTime}} // nedenfor er den tidligere kodeblok, hvis: Mahgrib <NU <Fajr true | tænde lyset | offentliggøre en ON -meddelelse til det angivne MQTT -emne ellers: false | sluk
Hele processen i processen er annoteret i billedet ovenfor.
Med hensyn til UI tilføjede jeg 2 switches til UI/interface:
- En omskifter til at vende denne proces automatisk eller manuelt.
- En kontakt til at tænde/slukke lysene manuelt.
Trin 6: Indpakning
Tiden flyver for aldrig at blive husket. Ved at lave sådanne enkle 1-dags projekter kan du få vejret i denne hurtige bane og hjælpe dig med at genoplive dine bløde færdigheder over tid.
Jeg forsøgte lige så meget i dette projekt at holde det enkelt og genanvendeligt over hele kloden.
Stem venligst for denne instruktive, hvis du synes, at dette projekt fortjener.
Glædelig ramadan!
Anbefalede:
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)
Nem IOT - Appstyret RF Sensor Hub til mellemstore IOT -enheder: 4 trin
Easy IOT - Appstyret RF Sensor Hub til mellemstore IOT -enheder: I denne serie af selvstudier vil vi opbygge et netværk af enheder, der kan styres via et radioforbindelse fra en central hub -enhed. Fordelen ved at bruge en 433MHz seriel radioforbindelse i stedet for WIFI eller Bluetooth er den meget større rækkevidde (med god
IoT APIS V2 - Autonomt IoT -aktiveret automatiseret plantevandingssystem: 17 trin (med billeder)
IoT APIS V2 - Autonomt IoT -aktiveret automatiseret plantevandingssystem: Dette projekt er en udvikling af mit tidligere instruerbare: APIS - Automatiseret plantevandingssystem Jeg har brugt APIS i næsten et år nu og ville forbedre det tidligere design: Evne til at fjernovervåg planten. Sådan her
IoT Power Module: Tilføjelse af en IoT Power Measurement Feature til min Solar Charge Controller: 19 trin (med billeder)
IoT Power Module: Tilføjelse af en IoT Power Measurement Feature til min Solar Charge Controller: Hej alle sammen, jeg håber, at I alle er gode! I denne instruktive vil jeg vise dig, hvordan jeg lavede et IoT Power Measurement -modul, der beregner den mængde strøm, der genereres af mine solpaneler, der bruges af min solopladningsregulator til
IoT Basics: Tilslutning af din IoT til skyen ved hjælp af Mongoose OS: 5 trin
IoT Basics: Tilslutning af din IoT til skyen ved hjælp af Mongoose OS: Hvis du er en person, der er til at snyde og elektronik, vil du oftere end ikke støde på begrebet Internet of Things, normalt forkortet som IoT, og at det refererer til et sæt enheder, der kan oprette forbindelse til internettet! At være sådan en person