4
#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");
  }
}

入力ピン 5 の変化を検出するために arduino で sim 900 を使用し、ユーザーに ALARM を送信します。あなたの助けが必要な質問がいくつかあります

  1. SIM 900 が送信された SMS の通信に使用するピンを知るにはどうすればよいですか? D2 と D3 でジャンパーを使用します。この2つのピンを使用しましたか?私のプログラムでは、内部の詳細を知らなかった.hインクルードファイルを使用しているためです。
  2. sim 900 モジュールの RTC から日付と時刻のデータを読み取り、変数に格納して後でデータ ロガーに使用するにはどうすればよいですか? RTC に日付と時刻を設定済みの場合、「AT+CCLK?」で読み取れることはわかっています。日付と時刻のデータを返します。しかし、プログラムでこのコマンドを使用するにはどうすればよいでしょうか?
4

1 に答える 1

1

私はこのコードを見つけて、私のために働いています。最初に時間を尋ねてから、答えを期待して解析します。

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
}
于 2015-06-05T16:06:52.450 に答える