家居安防報警器,參考程序。
火災報警
涉及用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