Проблемы пользования RTC из SIM900
- Войдите на сайт для отправки комментариев
Приветствую,
Бьюсь как рыба. Помогите разобраться.
После того как я обнаружил, что имеющийся у меня RTC 1307 врет на 10 минут в час, задался вопросом - зачем мне внешний RTC если в самом шилде SIM900 уже он есть. И решил его задействовать. Но наткнулся на проблему работы с модулем посредством АТ команд.
Суть такая: в нужный мне момент (событие) происходит обращение к RTC посредством команды:
AT+CCLK?
в ответ модуль выдает
+CCLK: "15/05/07,17:51:53+12"
где +12 - это временная зона.
Задача - подать команду запроса времени, принять ответ, вычитать время и вставив его в СМС с описанием события, благополучно мне отправить.
Вот кусочки кода слепленные в скетч. Просто для понимания процесса.
Самое главное что процедуры запроса времени работает, а вот чтение времени и вставка в смс - нет. И я не могу понять почему.
Вообще работа со строками и "чтение" - не мой конек совсем. Помогите пожалуйста.
#include <SoftwareSerial.h> SoftwareSerial SIM900(2, 3); #define GPRS SIM900 // ВНИМАНИЕ!!! Настройки модуля пропущены! Но они есть! #define BTN_PIN 10 //датчик на 10 pin char RTC_time[20]; void setup() { GPRS.begin(9600); // GSM SMS-передача плата GPRS delay(2000); get_Time(); startSMS(); GPRS.print("SmartHome ON - "); // дом включен GPRS.println(RTC_time);// время включения EndSMS(); pinMode(BTN_PIN, INPUT); digitalWrite(BTN_PIN,HIGH); } void loop() { alarm_check(); } void startSMS() { GPRS.print("AT+CMGF=1\r"); delay(300); GPRS.println("AT + CMGS = \"+7111111111\""); delay(300); } void EndSMS() { delay(300); GPRS.println((char)26); // Команда отправки СМС delay(5000); } void get_Time() { if (!GPRS.available()) return; GPRS.println( "AT+CCLK?" ); delay (100); int i = 0; RTC_time[i]=GPRS.read(); if (RTC_time[i]=='\n') { RTC_time[++i] = '\0'; } i++; } void alarm_check() { if(digitalRead(BTN_PIN)==LOW) {alarm_SMS();} // код просто для примера. } void alarm_SMS() { get_Time(); startSMS(); GPRS.print(RTC_time); GPRS.print("Trevoga!: Srabotal datchik vorot!"); EndSMS(); }
Да, шилд с модулем такой -
http://wiki.epalsite.com/index.php?title=SIM900_Quad-Band_GPRS_shield_with_Micro_SD_card_slot