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

    文章

    15029

    浏览量

    170358
  • SIM800
    +关注

    关注

    1

    文章

    8

    浏览量

    6114
收藏 人收藏

    评论

    相关推荐

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

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

    SIM800C开发板资料

    SIM800C 模块是一款高性能高性价比工业级的 GSM/GPRS 模块(开发板)。本模块采用 SIMCOM公司的工业级四频 850/900/1800/1900MHz SIM800 芯片, 可以低功耗实现语音、SMS、数据和传真
    发表于 11-13 16:59 1次下载

    简单易用,设计灵活!LPC800控制器,加速实现从8位到32位的平稳升级!

    从8位向32位平台升级,是嵌入式开发的大势所趋。如何让这个过程更平稳、更丝滑?恩智浦给出的解决方案就是——LPC800系列32位微控制器。 作为新一代基于Arm Cortex-M0+的微控制器
    的头像 发表于 11-10 08:15 209次阅读
    简单易用,设计灵活!LPC<b class='flag-5'>800</b>微<b class='flag-5'>控制器</b>,加速实现从8位到32位的平稳升级!

    如何使用sim800芯片实现基站定位?

    需要不太精确的定位功能,已经用sim800芯片实现数据上传,能否使用基站进行定位
    发表于 11-10 06:14

    #控制器 #阀门# 无线传输# 脉冲阀门控制器灌溉控制器

    控制器无线传输
    pgz1234
    发布于 :2023年10月10日 11:03:13

    脉冲阀控制器 智慧农田传感 #三农# 控制器#

    传感控制器
    pgz1234
    发布于 :2023年09月15日 15:52:43

    带有SIM 800L模块的智能家居项目理念

    电子发烧友网站提供《带有SIM 800L模块的智能家居项目理念.zip》资料免费下载
    发表于 06-29 11:30 0次下载
    带有<b class='flag-5'>SIM</b> <b class='flag-5'>800</b>L模块的智能家居项目理念

    使用Arduino和其他常见组件制作热风枪控制器

    电子发烧友网站提供《使用Arduino和其他常见组件制作热风枪控制器.zip》资料免费下载
    发表于 06-26 09:19 1次下载
    使用Arduino和其他常见组件<b class='flag-5'>制作</b>热风枪<b class='flag-5'>控制器</b>

    使用SIM800H发送文本信息

    使用带有 AT 命令的 GPRS 模块可能有点棘手,特别是在初始化和配置方面。nanoframework 驱动程序“隐藏”了开发人员的所有内容,使他能够专注于手头的任务。在此示例中,它发送文本消息 (SMS)。
    发表于 06-21 15:32 0次下载
    使用<b class='flag-5'>SIM800</b>H发送文本信息

    使用NodeMCU ESP8266板制作水族箱控制器的疑问求解

    我正在使用 NodeMCU ESP8266 板制作水族箱控制器。我有 2 个继电器板连接到它,每个继电器板上有 4 个继电器,还有一个 DS18B20 连接到另一个引脚。 我发现的问题是,当我的水箱
    发表于 05-30 06:06

    求分享将ESP12F连接到具有SIM 800的SIP服务的指南

    大家好,我正在开发一个 IVRS,计划使用 SIM800 GSM 模块作为呼叫网关,该网关将通过 ESP12-f 进一步连接到 SIP 服务以在 IP 服务上建立呼叫。我想知道有没有办法或任何
    发表于 05-19 12:32

    CC控制器在框图的CONN2中不能正常运行怎么处理?

    我正在尝试分别使用两个 PTN5150A 和 PTN36043A 制作一个 USB3.0 转接驱动。 我在所附原理图的顶部添加了一个框图。 CC 控制器在框图的 CONN2 中不能正
    发表于 05-10 06:22

    MCU控制器是什么?MCU控制器有哪些作用?

    mcu控制器是什么意思   MCU控制器是Microcontroller Unit的简称,中文名称为“单片机”,是一种集成了处理、存储、输入输出接口等多种功能模块于一体的小型计算机
    发表于 05-05 14:59

    如何将SIM7000G与IDF一起使用?

    我正在使用 LilyGo T-SIM7000G,我正在尝试使用 SIM7000G 调制解调发送 SMS 并将 HTTP/MQTT 数据包发送到云端,但我找不到在
    发表于 04-13 08:37

    SIM-211-P6掀盖式SIM卡座

    SIM-211-P6产品名称:SIM 6PIN全塑操作方式:翻盖式温度范围:-40°C TO +80°C操作寿命:5000Cycles包装方式:卷带最小包装:800/PCS
    发表于 04-04 09:49 0次下载