Časove hodiny RTC + GSM
Napsal: 27 srp 2017, 19:33
Dobrý deň,
najprv uvediem aký je zámer. Pomocou Arduino Mega 2560 , DS1307 RTC a modulu SIM900 urobiť časove hodiny ktoré spínajú relé. Ich funkcia by mala byt nasledovná:
- spínať relé podľa času s RTC
- pomocou zavolania zapnúť a vypnúť relé
- raz za mesiac nastaviť RTC čas s GSM modulu
Prikladám aj to čo som zatiaľ napísal. Viem, že to nie je krásne napísané a asi niekto by to napísal lepšie, ale takto je to pre mňa zrozumiteľné a verím že bude funkčné . Pri písaní kódu som ale narazil na problém , ktorý sa mi nedari vyriešiť a preto spolieham na rady skúsenejších.
Ak pustím samotný časovač s čítaním RTC, časovač funguje podľa mojich predstáv a spína relé ako ma na sekundu presne. V tom momente ako som pridal podmienku na čakanie hovoru prestal cely časovač fungovať korektne. Aj na výpise v terminály je vidieť odozva každých <5 sek. Musel som s podmienok času vymazať sekundy. Ak sa to netrafilo do sekúnd tak sa stav relé nezmenil (čo je logické). Zmena stavu pomocou zavolania funguje korektne. Ako dosiahnuť aby čas išiel ako ma, aby som ohol spínať na sekundy?
Mám ešte ďalší problém, ale to je ďalšia časť kde po načítaní času s GSM pomocou AT+CCLK? spôsob ako s toho dostať formát, ktorý by bol použiteľný do príkazu RTC.adjust(DateTime(__DATE__, __TIME__)).
A ešte mám jednu zaujímavosť. Ak k modulu DS1307 pripojím GND pin tak prestane fungovať.
Ďakujem!
najprv uvediem aký je zámer. Pomocou Arduino Mega 2560 , DS1307 RTC a modulu SIM900 urobiť časove hodiny ktoré spínajú relé. Ich funkcia by mala byt nasledovná:
- spínať relé podľa času s RTC
- pomocou zavolania zapnúť a vypnúť relé
- raz za mesiac nastaviť RTC čas s GSM modulu
Prikladám aj to čo som zatiaľ napísal. Viem, že to nie je krásne napísané a asi niekto by to napísal lepšie, ale takto je to pre mňa zrozumiteľné a verím že bude funkčné . Pri písaní kódu som ale narazil na problém , ktorý sa mi nedari vyriešiť a preto spolieham na rady skúsenejších.
Ak pustím samotný časovač s čítaním RTC, časovač funguje podľa mojich predstáv a spína relé ako ma na sekundu presne. V tom momente ako som pridal podmienku na čakanie hovoru prestal cely časovač fungovať korektne. Aj na výpise v terminály je vidieť odozva každých <5 sek. Musel som s podmienok času vymazať sekundy. Ak sa to netrafilo do sekúnd tak sa stav relé nezmenil (čo je logické). Zmena stavu pomocou zavolania funguje korektne. Ako dosiahnuť aby čas išiel ako ma, aby som ohol spínať na sekundy?
Mám ešte ďalší problém, ale to je ďalšia časť kde po načítaní času s GSM pomocou AT+CCLK? spôsob ako s toho dostať formát, ktorý by bol použiteľný do príkazu RTC.adjust(DateTime(__DATE__, __TIME__)).
A ešte mám jednu zaujímavosť. Ak k modulu DS1307 pripojím GND pin tak prestane fungovať.
Ďakujem!