gpt4 book ai didi

arduino - 如何使用arduino从sim900模块的RTC读取日期和时间数据?

转载 作者:行者123 更新时间:2023-12-02 14:58:45 25 4
gpt4 key购买 nike

#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 的变化,然后向用户发出警报。我有几个问题需要您的帮助

  1. 我如何知道 sim 900 使用哪个引脚来发送短信?我在 D2 和 D3 处使用跳线。是用这两个引脚吗?因为在我的程序中我使用了 .h 包含文件,但我不知道其中的详细信息。
  2. 如何从 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
}

关于arduino - 如何使用arduino从sim900模块的RTC读取日期和时间数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30650732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com