电子说
规格 SIM800L V2.0 GSM/GPRS模块
SIM800L V2.0 GSM/GPRS模块有多种规格,您可以在下面查看:
TTL串行接口兼容3.3V和5V微控制器,与arduino兼容。
此SIM800L模块有一组TTL电平串行接口,一组电源接口。
此外,还有一套天线接口。模块。
网络支持:四频850/900/1800/1900 MHz,可以低功耗传输语音,短信和数据信息
VDD TTL UART接口TTL UART串行接口,可以直接连接51MCU或ARM或MSP430等MCU。 VDD的引脚用于匹配TTL的电压。
型号:SIMCOM SIM800L
工作电压:3.7V至5V-尺寸:40mm x 28mm x 3mm
GPRS多插槽类12/10
GPRS移动台B类
符合GSM阶段2/2 +
4类(2 W) @ 850/900MHz)
1级(1 W @ 1800/1900MHz)
第1步:您需要的材料
您需要:
SIM800L V2.0 GSM/GPRS模块
Arduino Uno
4通道5伏继电器模块
跳线
步骤2:设置
连接每个组件后,创建一个程序,然后将其上传到您的arduino上。但首先,您必须安装可在此处下载的GPRS库文件。
步骤3:代码
一旦你‘已将SIM800L,4通道中继模块和ARduino插入您的计算机,运行以下代码即可完成。
#include
#include
#define TIMEOUT 5000
#define ACTIVE LOW
#define OFF HIGH
byte Relay [] = {A0,A1,A2, A3};
字节StatRelay [4];
char buffNumber [20];
char currentLine [500] =“”;
int currentLineIndex = 0;
bool nextLineIsMessage = false;
String replyNumber =“089510863958”;
GPRS gprs;
void setup(){
for(int i = 0; i 《4; i ++){
pinMode(Relay [i],OUTPUT);
digitalWrite(Relay [i],MATI);
StatRelay [i] = MATI;
}
Serial.begin(9600);
while(!Serial);
Serial.println(“激活SIM800L V2 》》》自动读取短信”);
gprs.preInit();
延迟(1000);
while(0!= gprs.init()){
延迟(1000);
Serial.print(“init errorrn”);
}
//管理消息到模式ASCII
if(0!= gprs.sendCmdAndWaitForResp(“AT + CMGF = 1rn”,“OK”,TIMEOUT)){
错误(“错误:CNMI”);
返回;
}
//读取传入短信
if(0!= gprs.sendCmdAndWaitForResp(“AT + CNMI = 1,2,0,0,0nn”,“OK”,TIMEOUT)){
ERROR(“ERROR:CNMI”) ;
return;
}
int pjg = replyNumber.length()+ 1;
buffNumber [pjg];
replyNumber.toCharArray(buffNumber,pjg);
Serial.print(“Send reply to number =》”);
Serial.println(buffNumber);
Serial.println(“Initialization Done”);
Serial.println(“====================== =======================================“);
}
void loop(){
//更改状态继电器ON/OFF
for(int i = 0;我《4; i ++){
digitalWrite(Relay [i],StatRelay [i]);
}
//如果有来自SIM800的输入数据
if(gprs.serialSIM800.available()){
char lastCharRead = gprs.serialSIM800.read();
//保存lastCharRead上的所有数据,如果有r或n,作为传入消息的最终信号
if(lastCharRead ==’r‘|| lastCharRead ==’n‘){
String lastLine = String( currentLine);
//如果最后一条消息+ CMT表示新消息到达
if(lastLine.startsWith(“+ CMT:”)){
Serial.println(lastLine);
nextLineIsMessage = true;
}否则if(lastLine.length()》 0){
if(nextLineIsMessage){
Serial.println(lastLine);
//============================================= =================== 》》继电器控制器的功能
//继电器1控制器
if(lastLine.indexOf( “Relay 1 ON”)》 = 0){
StatRelay [0] = AKTIF;
Serial.print(“Reply ==== 》》》》”);
Serial.println(“Relay 1 Status Active”);
gprs.sendSMS(buffNumber,“Relay 1 Status Active”);
}
else if(lastLine.indexOf(“Relay 1 OFF”)》 = 0){
StatRelay [0] = MATI;
Serial.print(“Reply =” === 》》》》“);
Serial.println(”Relay 1 Status Off“);
gprs.sendSMS(buffNumber,”Relay 1 Status Off“);
}
//中继2控制器
if(lastLine.indexOf(“Relay 2 ON”)》 = 0){
StatRelay [1] = AKTIF;
Serial.print(“Reply ==== 》》》》”);
Serial.println(“Relay 2 Status Active”) ;
gprs.sendSMS(buffNumber,“Relay 2 Status Active”);
}
否则if(lastLine.indexOf(“Relay 2 OFF”)) 》 = 0){
StatRelay [1] = MATI;
Serial.print(“回复==== 》》》》”);
Serial.pri ntln(“继电器2状态关闭”);
gprs.sendSMS(buffNumber,“继电器2状态关闭”);
}
//继电器3控制器
if(lastLine.indexOf(“Relay 3 ON”)》 = 0){
StatRelay [2] = AKTIF;
Serial.print( “回复==== 》》》》”);
Serial.println(“Relay 3 Status Active”);
gprs.sendSMS(buffNumber,“Relay 3 Status Active” “);
}
否则if(lastLine.indexOf(”Relay 3 OFF“)》 = 0){
StatRelay [2] = MATI;
Serial.print(“Reply ==== 》》》》”);
Serial.println(“Relay 3 Status Off”);
gprs.sendSMS(buffNumber,“Relay 3 Status Off”);
}
//Relay 4 Controller
if(lastLine.indexOf(“Relay 4”) ON“)》 = 0){
StatRelay [3] = AKTIF;
Serial.print(”回复==== 》》》》“);
Serial.println(“Relay 4 Status Active”);
gprs.sendSMS(buffNumber,“Relay 1 Status Active”);
}
else if(lastLine.indexOf(“Relay 4 OFF”)》 = 0){
StatRelay [3] = MATI;
Serial.print(“回复==== 》》》》“);
Serial.println(”Rela y 4状态关闭“);
gprs.sendSMS(buffNumber,”继电器4状态关闭“);
}
nextLineIsMessage = false;
}
//==================================== ============================== 》》
}
//清除用于下一行读取的char数组
for(int i = 0; i
currentLine [i] =(char)0;
}
currentLineIndex = 0;
}
else {
currentLine [currentLineIndex ++] = lastCharRead;
}
}
}
第4步:试一试!
此工具的工作原理是在SIM800L上发送带有某些关键字的短信。在此,要打开继电器1,请使用“继电器1接通”命令,并使用“继电器1关闭”命令将其关闭。对于其他几乎相同的继电器命令,只需根据受控继电器的序列号替换数字即可。在自动发送消息后,SIM800将以每张SIM的状态消息的形式发送回复。
全部0条评论
快来发表一下你的评论吧 !