【物联网智能网关-03】GPRS模块中文短信收发

简介: 支持PDU方式收发短信(支持中文)、彩信发送、二进制方式 GPRS数据收发、短信按类型提取、短信删除和短信事件通知等等功能。

在去年年初,就已经推出V1.0.0的GPRS库,不过在这个版本上只是实现了西文短信收发和字符串方式的GPRS数据通信,功能还相对不完善(参见我以前的博文《GPRS通信实现》)。最近升级的版本,对以上功能进行了大幅度的升级改进,比如支持PDU方式收发短信(支持中文)、彩信发送、二进制方式 GPRS数据收发、短信按类型提取、短信删除和短信事件通知等等功能。

考虑到功能比较多,我们分三篇文章来介绍最新的GPRS库的功能,这一篇我们先介绍和短信收发相关的内容。

库函数中和短信收发相关的方法如下:

(1)设置短消息中心地址

声明:int SetCenterNum (sring CenterNum)

参数:CenterNum–  短消息中心地址

返回:操作返回值

      0 –  发送成功

      -1 -  设置失败

说明:短消息中心地址。联通和移动不同地区,号码都不同,一般情况下,不需要专门设置

(2)发送短信(PDU方式)

声明:int SendMessage (sring phone,string msg)

参数:phone –  电话号码

msg –  要发送的字符串

返回:操作返回值

      0 –发送成功

      -1 –字符长度为0或大于70个字节

      -2 –设置短消息格式失败

- 3 –发送短信失败

说明:发送短信。支持中文字符发送。

(3)读取短信

声明:int ReceiveMessage(out GsmMessage[] msgs,MessageType msgType)

参数:
msgs –  信息集合,每一项都包括,短信发送的电话,发送时间和内容

msgType –  消息类型:未读消息,已读消息,未发消息,已发消息,全部消息

返回:返回指定类型的短信字符串集合。

说明:接收短信。目前支持中英文短信接收。

(4)删除短信

声明:int DeleteMessage ()

参数:无

返回:操作返回值

      0 –  删除0个消息

      -1 –  设置PDU模式失败

      >0 –  删除的短消息个数

说明:删除全部的短消息。

 

除了方法外,还有一个短信收到事件,具体声明如下:

(1)短信收到通知

声明:SMSMessageReceivedEventHandler MessageReceived

参数:object sender – GPRS类的实例

说明:短信接收通知

 

为了便于说明库的使用,我们设定一个场景,来进行相关代码的功能演示。
image.png

场景是这样设定的:

(1)、程序不断采集温湿度数据,一旦超出预先设置好的范围,就会短信通知报警。

(2)、手机发送短信,控制继电器,可以远程打开和关闭加湿器。

具体代码如下(其中温湿度采集部分,详情请参见:通过AD采集获取温湿度):

(1)、GPRS模块初始化相关代码

int ret = 0;

gprs = new GPRS("COM3", 115200, GPRS.GprsType.SIM300_V6_x);

//打开GPRS模块

if ((ret = gprs.Open()) != 0)

{

    Debug.Print("Open Failed:" + ret.ToString());

    gprs.Close();

    screen.DrawText("打开GPRS模块失败", font, Colors.Red, 20, 60);

    screen.Flush();

    return;

}

Debug.Print("Open OK");

screen.DrawText("打开GPRS模块成功", font, Colors.Green, 20, 60);

screen.Flush();

 

//判断是否在线,超时时间10s

if ((ret = gprs.IsOnline(10000)) != 0)

{

    Debug.Print("AT Failed:" + ret.ToString());

    gprs.Close();

    screen.DrawText("GPRS模块不在线", font, Colors.Red, 20, 100);

    screen.Flush();

    return;

}

Debug.Print("AT OK");

screen.DrawText("GPRS模块在线", font, Colors.Green, 20, 100);

screen.Flush();

 

//GPRS模块初始化

if ((ret = gprs.Initialize()) != 0)

{

    Debug.Print("Initialize Failed:" + ret.ToString());

    gprs.Close();

    return;

}

Debug.Print("Initialize OK");

screen.DrawText("GPRS初始化成功", font, Colors.Green, 20, 140);

screen.Flush();

 

//显示信号强度

//Debug.Print("Signal:" + gprs.Signal.ToString());     

 

gprs.MessageReceived += new SMSMessageReceivedEventHandler(gprs_MessageReceived);

(2)、GPRS模块短信接收并控制部分

static void gprs_MessageReceived(object sender)

{

    int ret = 0;

    GsmMessage[] msgs = null;

 

    //读未读的短消息

    if ((ret = gprs.ReceiveMessage(out msgs, GPRS.MessageType.REC_UnRead)) < 0)

    {

        Debug.Print("ReceiveMessage Failed:" + ret.ToString());

    }

    else

    {

        if (ret > 0)

        {

            foreach (GsmMessage msg in msgs)

            {

                Debug.Print(msg.ToString());

            }

            //gprs.SendMessage(msgs[0].phone, msgs[0].ToString());

 

            switch (msgs[0].message)

            {

                case "开":

                    opSwitch.Write(true);

                    State = true;

                    break;

                case "关":

                    opSwitch.Write(false);

                    State = false;

                    break;

            }

        }

    }

    //删除短消息

    //gprs.DeleteMessage();

}

(3)湿度报警相关代码

//湿度报警

if (H > 60 && !AlarmFlag)

{

    //发送报警短信(实际应用时,请填入实际的电话号)

    gprs.SendMessage("158XXXXXXX", "当前湿度:" + H.ToString("F2"));

    AlarmFlag = true;

}

if (AlarmFlag && H < 50)

{

    AlarmFlag = false;

}

实际运行效果图:
image.png

 

说明:硬件平台采用最新的紫藤207系统;GPRS模块采用Sim300 V6.02版本的模块;继电器模块采用5V驱动,可控制220V 10A的电器,一般家用小功率电器可以直接使用;温湿度模块采用了相对低价的AD接口的模块。

 

下一篇博文,将介绍GPRS模块是如何发送彩信的,敬请期待。

 

本文源码:http://www.sky-walker.com.cn/MFRelease/Sample/YF_GPSR01.rar

类库下载:http://www.sky-walker.com.cn/MFRelease/library/v42/YFSoft.Hardware.GPRS.rar

MF简介:http://blog.csdn.net/yefanqiu/article/details/5711770

MF资料:http://www.sky-walker.com.cn/News.asp?Id=25

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
9天前
|
数据采集 人工智能 监控
MyEMS 开源能源管理系统后台配置指南 —— 网关管理模块详解
开源能源管控系统面向建筑、工厂等场景的开源能源管理系统,支持电、水、气等数据采集与智能分析,并提供光伏监控、储能管理等功能模块。系统具备完善的网关管理功能,包括网关查看、添加、编辑、删除及批量操作,助力用户高效实现全链路能源管理。
47 1
|
6月前
|
传感器 人工智能 监控
AI与物联网的融合:开启智能化未来的新篇章
AI与物联网的融合:开启智能化未来的新篇章
1271 96
|
4月前
|
存储 监控 安全
工业物联网关应用:PLC数据通过智能网关上传阿里云实战
本文介绍如何使用智能网关将工厂PLC数据传输至阿里云平台,适合中小企业远程监控设备状态。硬件准备包括三菱FX3U PLC、4G智能网关和24V电源。接线步骤涵盖PLC编程口与网关连接、运行状态检测及天线电源接入。配置过程涉及通讯参数、阿里云对接和数据点映射。PLC程序关键点包括数据上传触发和温度值处理。阿里云平台操作包含实时数据查看、数据可视化和规则引擎设置。最后提供常见故障排查表和安全建议,确保系统稳定运行。
337 1
|
5月前
|
监控 物联网
工业智能网关实现北向自定义报文配置流程
北向接口是设备连接物联网云平台的接口,允许云平台统一监管各厂商设备的运行与报警状态。为解决不同公司报文格式差异导致的数据解析问题,工业智能网关支持北向自定义报文功能,用户可配置不同的报文格式,确保数据准确传输。配置流程包括网关中心、IOT数据云平台和配置工具的设置,最终通过日志或MQTTfx验证上报情况。
134 4
|
8月前
|
人工智能 监控 物联网
深度探索人工智能与物联网的融合:构建未来智能生态系统###
在当今这个数据驱动的时代,人工智能(AI)与物联网(IoT)的深度融合正引领着一场前所未有的技术革命。本文旨在深入剖析这一融合背后的技术原理、探讨其在不同领域的应用实例及面临的挑战与机遇,为读者描绘一幅关于未来智能生态系统的宏伟蓝图。通过技术创新的视角,我们不仅揭示了AI与IoT结合的强大潜力,也展望了它们如何共同塑造一个更加高效、可持续且互联的世界。 ###
|
8月前
|
安全 物联网 物联网安全
智能物联网安全:物联网设备的防护策略与最佳实践
【10月更文挑战第26天】随着物联网(IoT)技术的快速发展,智能设备已广泛应用于智能家居、工业控制和智慧城市等领域。然而,设备数量的激增也带来了严重的安全问题,如黑客攻击、数据泄露和恶意控制,对个人隐私、企业运营和国家安全构成威胁。因此,加强物联网设备的安全防护至关重要。
410 7
|
8月前
|
传感器 存储 运维
智能物联网:LoRaWAN技术在低功耗广域网中的应用
【10月更文挑战第26天】本文详细介绍了LoRaWAN技术的基本原理、应用场景及实际应用示例。LoRaWAN是一种低功耗、长距离的网络层协议,适用于智能城市、农业、工业监控等领域。文章通过示例代码展示了如何使用LoRaWAN传输温湿度数据,并强调了其在物联网中的重要性和广阔前景。
332 6
|
8月前
|
传感器 数据采集 监控
数据采集器和物联网网关的区别
数据采集器主要用于从各种数据源收集数据。这些数据源可以是传感器(如温度传感器、压力传感器等)、仪表(如电表、水表等)或者其他具有数据输出功能的设备。物联网网关是连接感知层(包含各种传感器和数据采集设备)和网络层(如互联网、局域网等)的关键设备。
214 4
|
8月前
|
存储 JSON 运维
智能物联网平台:Azure IoT Hub在设备管理中的实践
【10月更文挑战第26天】随着物联网技术的发展,Azure IoT Hub成为企业管理和连接数百万台设备的强大平台。本文介绍Azure IoT Hub的设备管理功能,包括设备注册、设备孪生、直接方法和监控诊断,并通过示例代码展示其应用。
347 4
|
8月前
|
数据采集 传感器 监控
与传统的物联网相比,IIoT 智能化有何特点
IIoT(工业互联网)相较于传统物联网,其智能化特点主要体现在:更强大的数据处理能力、更精准的实时监控与预测分析、更高的安全性和可靠性,以及更深度的行业应用集成,推动了智能制造和工业4.0的发展。

相关产品

  • 物联网平台