Проблемы пользования 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