規(guī)格 SIM800L V2.0 GSM/GPRS模塊
SIM800L V2.0 GSM/GPRS模塊有多種規(guī)格,您可以在下面查看:
TTL串行接口兼容3.3V和5V微控制器,與arduino兼容。
此SIM800L模塊有一組TTL電平串行接口,一組電源接口。
此外,還有一套天線接口。模塊。
網(wǎng)絡(luò)支持:四頻850/900/1800/1900 MHz,可以低功耗傳輸語音,短信和數(shù)據(jù)信息
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:設(shè)置
連接每個組件后,創(chuàng)建一個程序,然后將其上傳到您的arduino上。但首先,您必須安裝可在此處下載的GPRS庫文件。
步驟3:代碼
一旦你‘已將SIM800L,4通道中繼模塊和ARduino插入您的計算機,運行以下代碼即可完成。
#include
#include
#define TIMEOUT 5000
#define ACTIVE LOW
#define OFF HIGH
byte Relay [] = {A0,A1,A2, A3};
字節(jié)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(){
//更改狀態(tài)繼電器ON/OFF
for(int i = 0;我《4; i ++){
digitalWrite(Relay [i],StatRelay [i]);
}
//如果有來自SIM800的輸入數(shù)據(jù)
if(gprs.serialSIM800.available()){
char lastCharRead = gprs.serialSIM800.read();
//保存lastCharRead上的所有數(shù)據(jù),如果有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(“回復(fù)==== 》》》》”);
Serial.pri ntln(“繼電器2狀態(tài)關(guān)閉”);
gprs.sendSMS(buffNumber,“繼電器2狀態(tài)關(guān)閉”);
}
//繼電器3控制器
if(lastLine.indexOf(“Relay 3 ON”)》 = 0){
StatRelay [2] = AKTIF;
Serial.print( “回復(fù)==== 》》》》”);
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(”回復(fù)==== 》》》》“);
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(“回復(fù)==== 》》》》“);
Serial.println(”Rela y 4狀態(tài)關(guān)閉“);
gprs.sendSMS(buffNumber,”繼電器4狀態(tài)關(guān)閉“);
}
nextLineIsMessage = false;
}
//==================================== ============================== 》》
}
//清除用于下一行讀取的char數(shù)組
for(int i = 0; i
currentLine [i] =(char)0;
}
currentLineIndex = 0;
}
else {
currentLine [currentLineIndex ++] = lastCharRead;
}
}
}
第4步:試一試!
此工具的工作原理是在SIM800L上發(fā)送帶有某些關(guān)鍵字的短信。在此,要打開繼電器1,請使用“繼電器1接通”命令,并使用“繼電器1關(guān)閉”命令將其關(guān)閉。對于其他幾乎相同的繼電器命令,只需根據(jù)受控繼電器的序列號替換數(shù)字即可。在自動發(fā)送消息后,SIM800將以每張SIM的狀態(tài)消息的形式發(fā)送回復(fù)。
-
控制器
+關(guān)注
關(guān)注
112文章
16390瀏覽量
178442 -
SIM800
+關(guān)注
關(guān)注
1文章
8瀏覽量
6154
發(fā)布評論請先 登錄
相關(guān)推薦
評論