阿里云优惠卷,戳我领取!

摘要
最近做一个项目,要使用移远的M26模组,用MQTT协议将一个设备对接到阿里云的IoT平台。

1、注册阿里云IoT平台并创建产品
本文专注于写终端设备的对接流程,而不是IoT平台的配置,关于产品的创建,请看阿里的官方文档,很详细。

2、获取产品三元组

在IoT平台获取三元组ProductKey、DeviceName、DeviceSecret,这好比终端设备的身份证,有了它才能对接到阿里云平台上。

3、根据产品三元组,推算出MQTT协议所需的数据

1、clientID:
自己随便定义字符串 我这里示例为“12345”
2、mqttClientId:
格式为”clientID“+”|securemode=3,signmethod=hmacsha1,timestamp=10|“
3、mqttUsername:
格式为”DeviceName+&+ProductKey“
4、mqttPassword:哈希算法,得出的,后面给出了C语言库
代码示例:

 strcpy(clientID,    "12345"); sprintf(mqttClientId, "%s|securemode=3,signmethod=hmacsha1,timestamp=10|",clientID);sprintf(mqttUsername, "%s&%s",DeviceName,ProductKey);sprintf(str, "clientId%sdeviceName%sproductKey%stimestamp10",clientID,DeviceName,ProductKey);aliyun_iot_common_hmac_sha1(str,strlen(str),mqttPassword,DeviceSecret,strlen(DeviceSecret));

以上都是MQTT协议所需的连接参数。
关于最后的aliyun_iot_common_hmac_sha1函数,是计算mqttPassword的哈希算法。
网上可以找到封装好的C语言库。

如果你看不太明白的话,可以再看这个参考文档。(初试连接阿里云IoT套件,教你一小时完成接入)。我在摸索的时候,它给了我很大的帮助。

确定自己手里的模组固件是否支持MQTT

BC28对MQTT协议栈的支持时从固件R01A07开始支持,发送AT指令查询一下,不支持的话要升级固件。

4、用BC28的AT指令,连接到阿里云平台

看下面的内容之前,建议先看一看官方的文档(BC28 MQTT官方指导文档 、BC28 AT指令官方文档 )。

1、ATI 命令回显
返回ok
2、AT+CPSMS=0 关闭PSM模式
ok
3、AT+CEDRXS=0,5 关闭eDRX模式
ok
4、AT+NCCID 读取sim卡串号
+NCCID:XXXXXX。。。。
5、AT+CSQ 查询信号强度
+CSQ:XX.99
6、AT+CEREG? 查看入网状态
+CEREG:0,1
7、AT+CGATT? 查看网络状况
+CGATT:1
8、AT+QMTOPEN=0,“阿里域名”,1883
ok
ps:上海华东区的域名格式为 :iot-as-mqtt.cn-shanghai.aliyuncs.com
9、AT+QMTCONN=0,“123456”
+QMTCONN: 0,0,0
ps:123456为clientID,随便定义

这样整个连接流程就OK了,在阿里云平台可以看到

此时产品已经上线,但是想要传输数据和接收数据还需要2个指令

10、AT+QMTSUB=0,1,“topic”,2 //订阅消息,订阅之后能接受到这里发布的消息。
ok
ps topic可以在阿里云后台找到:

11、AT+QMTPUB=0,0,0,1,“topic”
返回:>
然后输入要发送的数据 ,末尾带上0x1A (ctrl+Z)。
这样数据就能发布到指定的topic内,服务器订阅了这个后就能收到数据~

手把手教你用移远M26/BC28的 MQTT协议 对接阿里云IoT平台相关推荐

  1. 中移M5311模块MQTT协议连接阿里云物联网平台(干货)

    一.准备三元组 在阿里云物联网平台新建产品和设备后,平台给每一个设备自动赋予三元组. 二.准备MQTT协议参数 新建产品时,阿里云物联网平台会分配一个含productkey的子域名,端口号固定是188 ...

  2. STM32+移远MC20模块采用MQTT协议登录OneNet上传GPS数据

    一.环境介绍 MCU:  STM32F103C8T6 GSM模块: 移远MC20 (MT2503D)(GSM+GPS共存)功能很强大 开发软件: Keil5 MQTT协议采用OneNet的旧版协议,登 ...

  3. 移远BC26模组使用MQTT协议接入阿里云(NB-IoT专栏—进阶篇4)

    目录 1.模块简介 2.阿里云物联网服务部署 3.BC26模组配置 4.数据上传 5.数据下发

  4. 【4G模块】中移物联ML302 + GD32F407 使用支持MQTT协议AT指令接入阿里云物联网平台

    目录 〇.目的.GD32.ML302相关简介 0.目的: 1.ML302: 2.LTE Cat.1: 3.GD32F407 一.GD芯片创建工程写驱动:LED.串口4.4G模块 1.创建工程 2.LE ...

  5. 中移物联与阿里云IoT联合发布“中移天枢”智能云模组 全面接入AliOS Things

    8月24日,在2018云栖大会·重庆峰会上,中国移动全资子公司中移物联网有限公司与阿里巴巴旗下阿里云IoT宣布达成重大合作,双方将联合发布"中移天枢"智能云模组,全面接入阿里云Io ...

  6. 移远NB-IOT BC28模块模组简介和实际应用方向详解

    2017年9月29号,上海移远正式发布全新一代 NB-IoT 模组BC28,为其 LPWA 产品线再添一支生力军.这是继 LTE Cat NB1 BC95 和多模 Cat M1/Cat NB1/EGP ...

  7. 物联网-移远M26模块OpenCPU开发第3讲(看门狗)

    之前在物联网-移远M26模块OpenCPU开发第1讲中提到过需要给外部看门狗芯片喂狗才能正常工作,阅读过的读者应该知道,我是通过周期性的控制M26的一个GPIO引脚电平变化来实现喂狗的.关于其硬件参考 ...

  8. 物联网-移远M26模块OpenCPU开发第2讲(FLASH处理)

    最近有个项目,需要频繁的操作移远M26的内部flash.众所周知,flash的擦写次数为10W次,超过这个次数后flash就没有用了.这个项目需要频繁的对其进行写操作,要想设备工作3~5年,10W明显 ...

  9. 物联网-移远M26模块MQTT开发(AT命令)

    MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分.该协议支持所有平台,几乎可以把所有联 ...

  10. 物联网-移远M26模块OpenCPU开发第1讲

    心心恋恋的基于移远M26模块设计的用于开发OpenCPU功能的板子终于完成,废话少说,直接上图: 对于板子外观这里不作讨论,毕竟不是我设计的,期望能用吧. 可能是由于设计者经验不足的原因吧.我刚拿到板 ...

最新文章

  1. 库存事务处理现有量检查
  2. 算法工程师必知必会10大基础算法!
  3. java propertysource_[spring] @PropertySource
  4. Qt 设置窗口背景图片的几种方法
  5. [BUUCTF-pwn]——ciscn_2019_ne_5
  6. 拉链法导致的链表过深问题为什么不用二叉查找树代替,而选择红黑树?为什么不一直使用红黑树?
  7. nodejs 获取文件路径_Nodejs读取文件时相对路径的正确写法(使用fs模块)
  8. JS对象的属性名规则
  9. leetcode之回溯backtracing专题3
  10. php友价商城手游,2019年T5友价商城网站程序-伪静态规则
  11. USB 3.0 高清音视频采集芯片——MS2130
  12. web之线性渐变,径向渐变,重复渐变
  13. 迅雷对电驴资源的限制
  14. 练习:jsp页面输出九九乘法口诀表
  15. 浙江独立学院计算机专业排名2015,2018中国独立学院排行榜发布,浙江这所独立学院独占鳌头!...
  16. 晓之以理——女儿被老师投诉
  17. Avro RPC的两种实现方法:静态实现和动态实现
  18. 关于放大器失真的原因你了解多少呢?
  19. ggplot2——图例篇
  20. 达尔文的进化论VS柏拉图的理念论

热门文章

  1. 用只读打开服务器上的文档,打开WebDAV文档在MS Office中以IT只读方式打开WebDAV服务器...
  2. android Removing unused resources requires unused code shrinking to be turned on. 错误记录
  3. 解决V-Rep接近传感器(距离传感器、超声波传感器、红外传感器)不能正常识别问题
  4. 举个栗子!Tableau技巧(9):Lisa教你巧妙制作混合地图
  5. 两张图片放在一起有条白线_为什么图片上加两条白线就可以有3d效果?
  6. 《英语语法新思维初级教程——走近语法》阅读笔记(持续更新中)
  7. AidLearning0.87F3安装Python3.8
  8. 【笔记】ThreadFactory自定义线程名前缀
  9. arp映射表查看与管理
  10. 使命召唤 高级战争 闪退_使命召唤:现代战争进入第5季