Arduino+sim800C家居安防火災報警 撥打電話 發送短信例程程序


家居安防報警器,參考程序。

火災報警
涉及用sim800c發短信,撥打電話通知。
在這里插入圖片描述在這里插入圖片描述接線:

Sim800c 3.3V -> Arduino 3.3V
Sim800c GND -> Arduino GND
Sim800c RX -> Arduino TX
Sim800c TX -> Arduino RX
#include <SoftwareSerial.h> // 采用軟件的串口
#define Infrared 7 //啟動開關

SoftwareSerial SIM800C(10, 11);     // Serial RX, TX
boolean bState, bOldState;
int incomingByte = 0;               // for incoming serial data
int Infrared_NUM = 0;

void setup() {
  // put your setup code here, to run once:
  // Open serial communications and wait for port to open
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(Infrared,INPUT_PULLUP);
  digitalWrite(13,LOW);
  digitalWrite(12,LOW);
  
  Serial.begin(9600);
  while (!Serial) {  // wait for serial port to connect. Needed for native USB port only
  } 

  Serial.println("Good Morning, my old friend!");
  
  SIM800C.begin(9600);
  SIM800C.println("AT+CMGF=1");
  
}

void loop() {
  // put your main code here, to run repeatedly:
  if (SIM800C.available()) {
    Serial.write(SIM800C.read());
    digitalWrite(13, HIGH);// 如果通信成功,則把Arduino上面的L13 LED 燈打開
  }
  if (Serial.available()) {
    SIM800C.write(Serial.read());
// incomingByte = Serial.read();
// Serial.print("I received: ");
// Serial.println(incomingByte, DEC);
// digitalWrite(13, !digitalRead(13));
  }
  
  Infrared_NUM = digitalRead(Infrared);//檢測啟動開關
  if(Infrared_NUM == LOW){
   // sendMeg();//發送短信例程代碼
    SIM800C.println("AT");
     delay(2000);
    SIM800C.println("ATD12345678900;\r");//12345678900改成你要撥打的電話號碼
    digitalWrite(12,HIGH);
    delay(5000);
    while(!digitalRead(Infrared));
    digitalWrite(12,LOW);
    //SIM800C.println("ATH");
    delay(1000);
  }
}

//發送短信例程代碼
void sendMeg()
  {
   
  SIM800C.println("AT");
  delay(2000);
  SIM800C.println("AT+CMGF=1");
  delay(2000);
  SIM800C.println("AT+CMGS=\"12345678900\"");//這里改成你的號碼
  delay(2000);
  SIM800C.print("Test\r\n");//這里寫內容
  delay(2000);
  SIM800C.write(0x1A);//發送:0x1A,即“CTRL+Z”的鍵值,用於告訴 SIM800C,要執行發送操作
                      //發送: 0x1B,即“ESC”的鍵值,用於告訴 SIM800C,取消本次操作,不執行發送。 
  }

在這里插入圖片描述在這里我們發送了一個AT命令,SIM800C返回一個Ok。再發送一個AT+GSV,返回:
  13:33:20.943 -> SIMCOM_Ltd
  13:33:20.943 -> SIMCOM_SIM800C
  13:33:20.979 -> Revision:1418B06SIM800C24
  通訊成功。任務初步完成。

//參考資料

//指令https://blog.csdn.net/cqdawnxsg/article/details/80680270
//https://www.cnblogs.com/xiaqiuchu/p/11568269.html
//https://www.arduino.cn/thread-6985-1-1.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM