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的状态消息的形式发送回复。

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

    关注

    114

    文章

    17915

    浏览量

    195818
  • SIM800
    +关注

    关注

    1

    文章

    8

    浏览量

    6293
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探索ON Semiconductor LV5061VGEVB评估板:单通道降压开关控制器的利器

    探索ON Semiconductor LV5061VGEVB评估板:单通道降压开关控制器的利器 引言 在电子工程师的日常工作中,评估板是验证和开发电路设计的重要工具。今天,我要和大家分享的是安森美
    的头像 发表于 04-11 10:10 265次阅读

    深入解析AT87LV51:一款强大的8位微控制器

    深入解析AT87LV51:一款强大的8位微控制器 在嵌入式控制应用领域,选择一款合适的微控制器至关重要。AT87LV51作为一款低电压、高性
    的头像 发表于 04-07 10:05 182次阅读

    AT87LV52:高性能8位微控制器的全面解析

    AT87LV52:高性能8位微控制器的全面解析 在嵌入式控制应用领域,一款性能卓越的微控制器是实现各种智能设备功能的核心。今天,我们就来深入了解一下Atmel公司的AT87
    的头像 发表于 04-07 09:45 191次阅读

    AT89LV55微控制器:特性、功能与应用详解

    AT89LV55微控制器:特性、功能与应用详解 在嵌入式控制应用领域,微控制器扮演着至关重要的角色。今天,我们就来深入了解一款经典的微控制器
    的头像 发表于 04-06 11:40 813次阅读

    AT89LV51微控制器:特性、应用与编程全解析

    AT89LV51微控制器:特性、应用与编程全解析 一、AT89LV51概述 AT89LV51是一款低电压、高性能的CMOS 8位微控制器,它
    的头像 发表于 04-06 11:40 766次阅读

    Texas Instruments TSB12LV26-EP:PCI至1394主机控制器深度解析

    Texas Instruments TSB12LV26-EP:PCI至1394主机控制器深度解析 在电子设备互联互通的时代,高效稳定的主机控制器对于数据传输和设备协作起着至关重要的作用。Texas
    的头像 发表于 02-25 16:05 252次阅读

    TSB12LV32-EP:高性能IEEE 1394a-2000链路层控制器的全面解析

    : TSB12LV32TPZEP.pdf 一、TSB12LV32-EP概述 1.1 功能描述 TSB12LV32(GP2Lynx)具备在1394物理链路接口、外部主机
    的头像 发表于 01-28 17:05 627次阅读

    探索TSB12LV01B:高性能IEEE 1394 - 1995高速串行总线链路层控制器

    探索TSB12LV01B:高性能IEEE 1394-1995高速串行总线链路层控制器 在当今电子技术飞速发展的时代,高速串行总线技术在数据传输领域扮演着至关重要的角色。TI公司的TSB12LV
    的头像 发表于 01-04 10:25 923次阅读

    探索TSB12LV32:高性能IEEE 1394a-2000链路层控制器

    的TSB12LV32(GP2Lynx)就是一款这样的高性能通用IEEE 1394a - 2000链路层控制器(LLC),下面将为大家详细介绍。 文件下载: tsb12lv32.pdf
    的头像 发表于 12-31 17:05 1516次阅读

    深入解析DS90LV001:800 Mbps LVDS缓冲的卓越性能与应用

    深入解析DS90LV001:800 Mbps LVDS缓冲的卓越性能与应用 在高速数据传输的电子领域中,LVDS(低压差分信号)技术凭借其低功耗、高速率和抗干扰能力强等优势,成为了众多设计工
    的头像 发表于 12-31 09:40 446次阅读

    深入剖析TSB12LV26-EP:PCI-to-1394主机控制器的技术洞察

    深入剖析TSB12LV26-EP:PCI-to-1394主机控制器的技术洞察 在当今的电子设备领域,高性能、低功耗的主机控制器是实现高效数据传输和稳定系统运行的关键。TSB12LV26
    的头像 发表于 12-30 14:20 438次阅读

    TSB12LV32-EP:高性能IEEE 1394链路层控制器的深度解析

    : tsb12lv32-ep.pdf 一、TSB12LV32-EP概述 1.1 功能描述 TSB12LV32(GP2Lynx)能够在1394物理链路接口、外部主机
    的头像 发表于 12-30 14:00 476次阅读

    探索TSB12LV26:PCI - 1394主机控制器的卓越之选

    探索TSB12LV26:PCI - 1394主机控制器的卓越之选 在电子工程师的日常设计工作中,选择合适的主机控制器至关重要。今天,我们就来深入了解一下德州仪器(Texas Instruments
    的头像 发表于 12-29 16:35 425次阅读

    探索TSB12LV26:PCI到1394主机控制器的卓越之选

    探索TSB12LV26:PCI到1394主机控制器的卓越之选 在电子设计领域,选择合适的主机控制器对于系统性能至关重要。今天,我们就来深入了解一下德州仪器(Texas Instruments
    的头像 发表于 12-18 17:25 817次阅读

    ‌MIC21LV32评估板技术解析:多相降压控制器的工程实践

    Microchip Technology EV71S00A MIC21LV32评估板方便全面评估MIC21LV32功能的特性和性能。MIC21LV32是一款恒定导通时间、双相同步降压控制器
    的头像 发表于 10-14 14:38 916次阅读
    ‌MIC21<b class='flag-5'>LV</b>32评估板技术解析:多相降压<b class='flag-5'>控制器</b>的工程实践