0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于SIM800LV2SMS控制器的制作

454398 来源:工程师吴畏 2019-08-09 09:58 次阅读

规格 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串行接口,可以直接连接51MCUARMMSP430等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的状态消息的形式发送回复。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16197

    浏览量

    177394
  • SIM800
    +关注

    关注

    1

    文章

    8

    浏览量

    6137
收藏 人收藏

    评论

    相关推荐

    国产控制器厂家 整车控制器 以太网控制器 CAN控制器 国产化替代

    控制器
    长沙硕博电子科技股份有限公司
    发布于 :2024年09月03日 09:15:51

    车载智能控制器 工程机械控制器 CAN总线控制器 硕博电子 #控制器 #can总线 #国产化替代

    控制器总线
    长沙硕博电子科技股份有限公司
    发布于 :2024年08月29日 10:43:57

    LM3S800控制器数据表

    电子发烧友网站提供《LM3S800控制器数据表.pdf》资料免费下载
    发表于 08-03 10:55 0次下载
    LM3S<b class='flag-5'>800</b>微<b class='flag-5'>控制器</b>数据表

    TSB12LV32高性能通用IEEE 1394a-2000链路层控制器数据表

    电子发烧友网站提供《TSB12LV32高性能通用IEEE 1394a-2000链路层控制器数据表.pdf》资料免费下载
    发表于 07-09 10:32 0次下载
    TSB12<b class='flag-5'>LV</b>32高性能通用IEEE 1394a-2000链路层<b class='flag-5'>控制器</b>数据表

    TSB12LV26/TSB12LV26I EEE 1394主机控制器数据表

    电子发烧友网站提供《TSB12LV26/TSB12LV26I EEE 1394主机控制器数据表.pdf》资料免费下载
    发表于 07-09 10:31 0次下载
    TSB12<b class='flag-5'>LV</b>26/TSB12<b class='flag-5'>LV</b>26I EEE 1394主机<b class='flag-5'>控制器</b>数据表

    TSB12LV32-EP通用链路层控制器数据表

    电子发烧友网站提供《TSB12LV32-EP通用链路层控制器数据表.pdf》资料免费下载
    发表于 07-09 10:29 0次下载
    TSB12<b class='flag-5'>LV</b>32-EP通用链路层<b class='flag-5'>控制器</b>数据表

    TSB12LV26-EP IEEE 1394主机控制器数据表

    电子发烧友网站提供《TSB12LV26-EP IEEE 1394主机控制器数据表.pdf》资料免费下载
    发表于 07-09 10:05 0次下载
    TSB12<b class='flag-5'>LV</b>26-EP IEEE 1394主机<b class='flag-5'>控制器</b>数据表

    DS90LV804 4通道800 Mbps LVDS缓冲/中继数据表

    电子发烧友网站提供《DS90LV804 4通道800 Mbps LVDS缓冲/中继数据表.pdf》资料免费下载
    发表于 07-05 10:16 0次下载
    DS90<b class='flag-5'>LV</b>804 4通道<b class='flag-5'>800</b> Mbps LVDS缓冲<b class='flag-5'>器</b>/中继<b class='flag-5'>器</b>数据表

    TSB12LV01B IEEE 1394-1995高速串行总线链路层控制器数据表

    电子发烧友网站提供《TSB12LV01B IEEE 1394-1995高速串行总线链路层控制器数据表.pdf》资料免费下载
    发表于 07-04 10:04 1次下载
    TSB12<b class='flag-5'>LV</b>01B IEEE 1394-1995高速串行总线链路层<b class='flag-5'>控制器</b>数据表

    DS90LV001 800 Mbps LVDS缓冲数据表

    电子发烧友网站提供《DS90LV001 800 Mbps LVDS缓冲数据表.pdf》资料免费下载
    发表于 07-03 13:11 0次下载
    DS90<b class='flag-5'>LV</b>001 <b class='flag-5'>800</b> Mbps LVDS缓冲<b class='flag-5'>器</b>数据表

    控制器的主要作用是指什么

    (Controller)是一种用于实现对被控对象的控制作用的设备或装置。它根据被控对象的输入信号和预定的控制规律,通过计算和处理,产生相应的输出信号,以实现对被控对象的控制控制器的主
    的头像 发表于 06-30 10:39 3084次阅读

    工业控制器制作与数学的关系

    数学在工业控制器设计中的应用 工业控制器的设计涉及到多个方面,包括硬件设计、软件设计、系统架构设计等。在这些设计过程中,数学发挥着关键作用。 1.1 硬件设计中的数学应用 工业控制器的硬件设计主要
    的头像 发表于 06-16 14:34 489次阅读

    移动机械控制器 车载智能控制器 CAN总线控制器

    控制器机械
    长沙硕博电子科技股份有限公司
    发布于 :2024年06月13日 17:02:51

    PID控制器与PWM控制器的区别

    在工业自动化和控制系统设计中,PID控制器(比例-积分-微分控制器)和PWM控制器(脉冲宽度调制控制器)是两种常用的
    的头像 发表于 06-05 18:25 2752次阅读

    具有宽占空比范围的 LV5144 95V 同步直流/直流降压控制器数据表

    电子发烧友网站提供《具有宽占空比范围的 LV5144 95V 同步直流/直流降压控制器数据表.pdf》资料免费下载
    发表于 03-27 14:32 0次下载
    具有宽占空比范围的 <b class='flag-5'>LV</b>5144 95V 同步直流/直流降压<b class='flag-5'>控制器</b>数据表