#include "SIM900.h"
#include <SoftwareSerial.h>
#include "sms.h"
SMSGSM sms;
boolean started=false;
int count = 0;
void setup()
{
pinMode(5, INPUT); // input pin for switch
Serial.begin(9600);
if (gsm.begin(2400))
{
Serial.println("nstatus=READY");
started=true;
}
else Serial.println("nstatus=IDLE");
delay(1000);
}
void loop()
{
if (digitalRead(5)==1)
{
delay(500);
if (digitalRead(5)==1)
{
count = count+1;
/*if(started)
{
if (sms.SendSMS("+12345678", "ALARM"))
Serial.println("nSMS sent OK");
}*/
Serial.println("Count = ");
Serial.println(count);
readtime();
Serial.println(content);
}
}
else
{
Serial.println("Normal");
}
}
我使用sim 900和arduino来检测输入引脚5的变化,然后报警给用户。我有几个问题需要你的帮助
- 我怎么知道sim 900使用哪个引脚通信发送短信?我在D2和D3处使用跳线。它用了这两个大头针吗?因为在我的程序中,我使用了一个。h包含文件,我不知道里面的细节。
- 我如何从sim 900模块中的RTC读取日期和时间数据并存储在变量中并将其用于数据记录器?我知道,如果我已经在RTC中设置了日期和时间,它可以通过"AT+CCLK?"读取,它返回日期和时间数据。但是如何在我的程序中使用这个命令呢?
我找到了这段代码并为我工作。首先你要求时间,然后期待答案并解析它。
const char* const SIM900::getTimeStamp(){
Serial2.print("AT+CCLK?"); //SIM900 AT command to get time stamp
Serial2.print(13,BYTE);
delay(2000);
if (Serial2.available()>0){
int i = 0;
while (Serial2.available()>0){
timeStamp[i]=(Serial2.read());
i++;
}
}
int years = (((timeStamp[25])-48)*10)+((timeStamp[26])-48);
int months = (((timeStamp[22])-48)*10)+((timeStamp[23])-48);
int days = (((timeStamp[19])-48)*10)+((timeStamp[20])-48);
int hours = (((timeStamp[28])-48)*10)+((timeStamp[29])-48);
int mins = (((timeStamp[31])-48)*10)+((timeStamp[32])-48);
int secs = (((timeStamp[34])-48)*10)+((timeStamp[35])-48);
//YOUR CODE HERE
}