• 中移动M5311模块使用手册(TCP,MQTT)


    资料下载: https://gitee.com/yang456/learn-m5311.git

    模块链接: https://item.taobao.com/item.htm?ft=t&id=645162253935

    实物图(以最新版为准)

     

    引脚说明

    5V: 模组5V供电引脚

    G: GND

    VBAT:  3.1V ~ 4.2V供电引脚

    RST:   复位模组引脚(拉低复位)

    TX:     模组串口通信发送数据引脚

    RX:     模组串口通信接收数据引脚

    PSM:  模组休眠唤醒引脚

    PWR:  模组开关机引脚

     

    手机卡安装示意图

    注意缺口方向

    测试AT(使用串口模块测试)

    1,串口模块连接示意图

    2,把PWR引脚和GND引脚连接在一起约1S时间,然后去掉连接

    模组开机以后打印如下

    2,打开资料里面的数据手册

    超过20s不和模组进行AT指令通信,模组就会进入睡眠模式.

    进入睡眠模式以后需要把PSM引脚接到低电平进行唤醒

    3,一般在测试时,先发送指令设置模组不主动休眠

    AT+SM=LOCK

    测试连接TCP服务器

    1.安装好手机卡和天线

    2.给模组重新开机

    每次安装好手机卡以后复位模组让模组重新启动,

    正常情况下等待3S左右模组会显示已经识别到SIM卡

    等待10S左右模组注册上网络以后会显示模组的IP地址

    3.依次发送以下指令

    控制模组开机

    AT

    AT+SM=LOCK

    AT+CPIN?

    AT+CEREG?

    AT+CGACT?

    模块根据指令回复如下方可进行下面的步骤

    4.连接TCP服务器

    例如连接IP地址为 47.92.31.46 端口号为 10002的TCP服务器

    模组总共有5路socket(0-4)使用,下面是使用socket0连接通信

    AT+IPSTART=0,"TCP","47.92.31.46",10002

    4.使用socket0发送数据给服务器

    发送字符串  发送 stringdata

    AT+IPSEND=0,0,"stringdata"

    发送16进制数据 发送  0x01 0x02 0x55 0xff

    AT+IPSEND=0,4,"010255ff"

    5.socket0接收数据

    模组默认是不主动把接收的数据通过串口发送出来的.......

    1.数据标识+透传的数据   模式接收数据

    AT+IPRCFG=1,0,0

    模组接收字符串数据(string)如下

    +IPRD: 0,6, 是数据标识, string是接收的数据(最后有个换行哈,是模组自己添加的)

    模组接收16进制数据(0x01 0x02 0x03)如下

    +IPRD: 0,3, 是数据标识, 后面不是乱码哈,是因为字符串显示后面是16进制的 010203

    (数据最后有个换行哈,是模组自己添加的)

    2.透传的数据   模式接收数据

    AT+IPRCFG=1,1,0

    模组接收字符串数据(string)如下

    注意,并不是完全透彻的数据 (模组在数据的开头和结尾都加了换行)

    模组接收16进制数据(0x01 0x02 0x03)如下

    注意,并不是完全透彻的数据 (模组在数据的开头和结尾都加了换行)

    6.模组做的有点问题!!!

    测试发现上面的主动输出不好使: 如果模组不发送数据给服务器,服务器主动发送数据给模组.

    服务器发送数据给模组以后等40S再发送,模组虽然接收到数据,但是不主动输出.......

    如果想获取数据,需要让模组发送数据给服务器一下,缓存数据就主动出来了.

    大家伙可以设置手动查询模式,然后数据接收方式可以是透传模式

    AT+IPRCFG=1,1,0

    查询参考

    测试连接MQTT服务器

    1.安装好手机卡和天线

    2.给模组重新开机

    每次安装好手机卡以后复位模组让模组重新启动,

    正常情况下等待3S左右模组会显示已经识别到SIM卡

    等待10S左右模组注册上网络以后会显示模组的IP地址

    3.依次发送以下指令

    控制模组开机

    AT

    AT+SM=LOCK

    AT+CPIN?

    AT+CEREG?

    AT+CGACT?

    模块根据指令回复如下方可进行下面的步骤

    4.配置连接的MQTT服务器参数

    MQTT服务器IP地址:47.92.31.46

    MQTT服务器端口号:1883

    MQTT客户端ClientID: 000000 (一般使用模组的IMEI代替,确保唯一)

    MQTT客户端心跳时间: 60  (秒)

    MQTT服务器用户名:yang

    MQTT服务器密码:11223344

    让MQTT服务器清除session信息: 1 (不清除的话服务器就记录这个客户端的信息了,以前这个客户端订阅的主题也记录了,再次连接不需要再订阅就可以)

    不使用SSL加密通信: 0

    AT+MQTTCFG=47.92.31.46,1883,000000,60,yang,11223344,1,0

    5.连接MQTT服务器

    AT+MQTTOPEN=1,1,0

    6.订阅主题

    假设订阅 222222

    AT+MQTTSUB=222222,1,0

    7.接收消息

    接收字符串 "qqqqqq"

    接收16进制 "0x01 0x02 0x03"

    注意哈后面不是乱码哈,是因为字符串显示后面是16进制的 010203

    可以使用16进制看下

    8.发送消息

    主题:topic

    消息等级: 0

    不让服务器记录消息: 0

    不是重新上报的消息: 0

    传输字符串,该数为0

    消息: qqqqq

    AT+MQTTPUB="topic",0,0,0,0,"qqqqq"

    主题:topic

    消息等级: 0

    不让服务器记录消息: 0

    不是重新上报的消息: 0

    传输3个16进制数据,该数为3

    消息: 0x01 0x02 0x03

    AT+MQTTPUB="topic",0,0,0,3,"010203"

  • 相关阅读:
    TKStudio示例工程LPC1220_GPIO_LED学习
    LIve Writer图片自动水印,自动居中,自动为原始大小的设置方法.
    cmd 修改文件属性
    [原创]Java下X86机,Bytes和Int的转换
    [原创]把","号分隔的字串转化成一列的Table
    [原创]Java实现PKCS7填充的DES加密(修订版)
    利用ADODB.Stream实现 Bytes到String的指定编码的转换
    [原创]利用HttpModuler实现WEB程序同一时间只让一个用户实例登陆(修改)
    [原创]用XMLHttp BinaryWrite,Post GB2312编码的字串
    UTF8ToBytes
  • 原文地址:https://www.cnblogs.com/yangfengwu/p/15306888.html
Copyright © 2020-2023  润新知