【小程序案例】支付宝小程序-MQTT模器,IoT设备通过WSS接入阿里云IoT物联网平台...

原文链接:https://yq.aliyun.com/articles/698607

支付宝小程序-MQTT模拟器通过WSS接入阿里云IoT物联网平台

小程序效果:
 image.png

1. 准备工作

1.1 注册阿里云账号

开通阿里云账号,并通过支付宝实名认证 https://www.aliyun.com

1.2 免费开通IoT物联网套件

产品官网 https://www.aliyun.com/product/iot
image.png

2. 控制台操作步骤

2.1 创建产品

 JSON格式
image.png

2.2 产品功能定义

添加产品属性温度 temperature,湿度 humidity
image.png

2.3 注册设备

在产品下注册设备,获得身份三元组
image.png

3. 小程序操作                  

3.1 设备上线

image.png

3.2 上报数据

image.png

3.3 订阅主题和数据下行

先点击 订阅主题,再去控制台推送消息。
image.png

发布指令日志
image.png

小程序效果
image.png

4. 小程序开发过程

image.png 

4.1 支付宝小程序socket接口适配

socket接口my.sendSocketMessage和my.onSocketMessage都是base64的string,不支持ArrayBuffer,需要自己转换

import miniBase64 from 'mini-base64';
miniBase64.arrayBufferToBase64()

4.2 阿里云IoT身份认证签名

const params = {
      productKey: pageThat.data.productKey.trim(),
      deviceName: pageThat.data.deviceName.trim(),
      deviceSecret: pageThat.data.deviceSecret.trim(),
      timestamp: Date.now(),
      clientId: Math.random().toString(36).substr(2),
    }
    //1.生成clientId,username,password
    const contentStr = "clientId" + params.clientId + "deviceName" + params.deviceName + "productKey" + params.productKey + "timestamp" + params.timestamp;

    var clientId = `${params.clientId}|securemode=2,signmethod=hmacsha1,timestamp=${params.timestamp}|`;
    var username = `${params.deviceName}&${params.productKey}`;
    var password = crypto.HmacSHA1(contentStr, params.deviceSecret).toString();

IoT物联网技术

展开阅读全文

IoT协议: SharkMQTTMQTT

06-03

rn [b] [size=16px]MQTT协议[/size][/b]rnrn[b][size=18px]MQTT背景:[/size][/b]rnrn IBM公司的Andy Stanford-Clark博士以及Arcom公司的ArlenNipper博士于1999年发明了MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)技术。Andy Stanford-Clark博士称,MQTT将在未来呈现爆炸式的增长。rn MQTT的话题是Andy Stanford-Clark博士和ArlenNipper博士谈论开源物联网平台Pachube时提到的。Stanford-Clark认为Pachube很酷,但其不足之处是不具备真正的推送功能。你需要不断不断轮询才能得到即时数据。这正是MQTT能够实现的,他提到了使用推送通信系统的石油管道检测系统。rnrn[b][size=18px]MQTT简介:[/size][/b]rnrn MQTT是轻量级基于代理的发布/订阅的消息传输协议,它可以通过很少的代码和带宽与远程设备连接。例如通过卫星和代理连接,通过拨号和医疗保健提供者连接,以及在一些自动化或小型设备上,而且由于小巧,省电,协议开销小和能高效的向一和多个接收者传递信息,故同样适用于移动应用设备上。rnrn[b][size=18px]MQTT的特征:[/size][/b]rnrn •轻量级的 machine-to-machine 通信协议。rn •publish/subscribe模式。rn •基于TCP/IP。rn •支持QoS。rn •适合于低带宽、不可靠连接、嵌入式设备、CPU内存资源紧张。rn •是一种比较不错的Android消息推送方案。rn •MQTT将会成为物联网的重要协议。rnrn[b][size=18px]MQTT应用:[/size][/b]rnrn IBM和St. Jude医疗中心使用MQTT开发了一套Merlin系统,该系统应用了用于家庭保健的传感器。St. Jude医疗中心设计了一个叫做Merlin@home的心脏装置,这种无线发射器可以用来监控那些已经植入复律-除颤器和起搏器(两者都是基本的传感器)的心脏病人。该产品利用MQTT把病人的即时更新信息传给医生/医院,然后医院进行保存。这样,病人就不用亲自去医院检查心脏了,医生可以随时查看病人的数据,给出建议。这样,病人在家里就可以进行检查。IBM称该发射器包括一个大型触摸屏,一个嵌入式键盘平台,以及一个Linux操作系统。在未来几年,MQTT的应用会越来越广,值得关注。通过MQTT协议,目前已经扩展出了数十个MQTT服务器端程序,可以通过LSP,PHP,Java,Python,C,C#等系统语言来向MQTT发送相关消息。此外,国内很多企业都广泛使用MQTT作为Android手机客户端与服务器端推送消息的协议。其中Sohu,Cmstop手机客户端中均有使用到MQTT作为消息推送消息。据Cmstop主要负责消息推送的高级研发工程师称,随着移动互联网的发展,MQTT由于开放源代码,耗电量小等特点,将会在移动消息推送领域会有更多的贡献,在物联网领域,传感器与服务器的通信,信息的收集,MQTT都可以作为考虑的方案之一。在未来,MQTT将会进入到我们生活的各方面。如果需要下载MQTT服务器端,可以直接去MQTT官方网站点击software进行下载MQTT协议衍生出来的各个不同版本。rnrn[b][size=18px]MQTT特点:[/size][/b]rnrn MQTT协议是为大量计算,能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:rnrn1、使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;rnrn2、对负载内容屏蔽的消息传输;rnrn3、使用 TCP/IP 提供网络连接;rnrn4、有三种消息发布服务质量:“至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。“至少一次”,确保消息到达,但消息重复可能会发生。“只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。rnrn5、小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量;rnrn6、使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制;rnrn[b][size=18px]SharkMQTT协议[/size][/b]rnrn SharkMQTT是个专为嵌入式系统设计的非常紧凑的安全MQTT client 库。SharkMQTT与精简的嵌入式SSL库相结合,利用SSL证书为系统提供军事级的认证技术和数据加密技术。SSL证书为设备认证MQTT broker(MQTT服务器端的管理程序)和MQTT broker认证设备提供非常强大的认证机制——它比标准的MQTT认证方案更加强大。rnrn[img=https://img-bbs.csdn.net/upload/201606/03/1464944540_412439.png][/img]rn[img=https://img-bbs.csdn.net/upload/201606/03/1464944573_598815.png][/img]rnrn[size=18px]MQTT 移动应用:[/size]rnrn 1、 Facebook Messenger;rn 2、信息推送 (可给第三方处理数据);rn 3、与HTTP相比, 使用SharkMQTT进行信息推送功耗更低;rnrn 充分理解了MQTT原理后,SharkMQTT就很好理解了。实际上SharkMQTT就是个安全版本的MQTT Client,是在MQTT上集成SharkSS库,以确保加密通信链路是安全,可靠的。rnrnrn 论坛

没有更多推荐了,返回首页