En trådlös Smart Home (var: hem simulator och larm med Arduino eller Atmega328 (Uppdaterad maj 2016)) (5 / 11 steg)
Steg 5: Den grundläggande koden för användning med DS1307 RTC
Koden hittar du på codebender (se längst ner på sidan).
I grund och botten är vad koden gör efter definiera dess grundläggande parametrar är att lopp genom en massa "Om" förhållanden som den aktuella tiden kontrolleras mot några ange tidsvärden och om uppfyllda, slå en ljus på eller av.
Status för lamporna sparas i en variabel för att arbeta med såväl som i NVR RAM som säkerhetskopiera om det inträffar ett strömavbrott.
Användning av NVR RAM innebär att du är tvungen att använda DS1307 RTC-modulen.
Du har två andra alternativ att använda som permanent lagring: EEPROM av Arduino eller EEPROM som finns på de flesta RTC moduler.
Av flera anledningar valde jag inledningsvis för NVRam, men i efterhand som det hade varit bättre att valde för EEPROM finns på de flesta RTC moduler som DS1307 eller DS3231 som det gör koden lite mer universell. Jag har skrivit om som för mer omfattande program. Använda min "Extended program" att få flexibilitet i med en RTC DS3231 eller DS1307
Tillstånd testningen tar följande formen
IF currenthour == x och currentminute + random == y och lightstatus == OFF
SEDAN byta på ljus
Skriva lightstatus till ON
udate NVR
Jag tillägga randomfactor bara så att det ser mer naturligt. Att alltid ha yr lampor gå på vid 9:00:00 signalerar "Jag bort"
Koden har flera print uttalanden men tehse självklart är inte bara till nytta om du har en bluetooth-modul atteched eller en terminal.
Du kan göra koden mycket mer sofistikerade genom att kontrollera säga dag eller månad och byta lampor längre eller kortare beroende på månad eller om det är en vardag eller en helg.
Den utökade versionen (se senare) har mycket mer funktionalitet och kommer att köras på den grundläggande versionen