专栏首页人工智能头条环境监控场景的 IoT 物联网开发实战

环境监控场景的 IoT 物联网开发实战

一、准备工作

1.1 硬件:

本次实战活动需要的硬件列表如下:

在这里插入图片描述

1.2 开发软件:

  • Arduino IDE(NodeMCU 硬件设备集成开发工具);
  • Node.js(在电脑上模拟 IoT 设备,方便没有硬件的同学开发体验);
  • Sublime Text(编辑器)。

1.3 云资源

我们本次 IoT 物联网开发实战涉及以下云资源的使用:

  • 物联网平台 IoT :IoT 设备上云接入平台;
  • 表格存储 OTS :非关系型数据库;
  • 函数计算 FC :Serverless 计算平台;
  • 数据可视化 DataV :数据可视化产品;
  • 钉钉群机器人 :群机器人是钉钉群的高级扩展功能。群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。

二、MQTT 协议

MQTT(消息队列遥测传输) 是基于 TCP/IP 协议栈而构建的支持在各方之间异步通信的消息协议。MQTT 在空间和时间上将消息发送者与接收者分离,因此可以在不可靠的网络环境中进行扩展。虽然叫做消息队列遥测传输,但它与消息队列毫无关系,而是使用了发布和订阅(Pub/Sub)的模型。

MQTT 是一种轻量级的、灵活的网络协议,致力于为 IoT 开发人员实现适当的平衡:

  • 这个轻量级协议可在严重受限的设备硬件和高延迟/带宽有限的网络上实现;
  • 它的灵活性使得为 IoT 设备和服务的多样化应用场景提供支持成为可能。

在基于阿里云 IoT 物联网平台进行开发的场景下,设备与 IoT 平台使用 MQTT 协议通信,设备相当于 Client 端,IoT 平台相当于 Broker。

在这里插入图片描述

设备和 IoT 平台建立连接的 Connect 过程如下:

在这里插入图片描述

Connect 消息内容参数如下:

在这里插入图片描述

其中 clientId、username、password 由设备三元组(productKey,deviceName,deviceSecret)按照规则生成,具体规则如下:

在这里插入图片描述

官方文档可戳这里。

连接建立后,我们就可以 Publish 设备端采集的数据到 IoT 云平台,同时可以从 IoT 云平台接收 Subscribe订阅的 Topic 消息。

三、IoT 物联网平台

IoT 物联网平台是阿里云针对物联网领域开发人员推出的一款设备管理平台。高性能 IoT Hub 实现设备与云端稳定通信,全球多节点部署有效降低通信延时,多重防护能力保障设备云端安全。此外,物联网平台还提供丰富的设备管理功能、稳定可靠的数据存储能力,以及规则引擎。使用规则引擎,您仅需在 Web 上配置简单规则,即可将设备数据转发至阿里云其他产品,获得数据采集、数据计算、数据存储的全栈服务,真正实现物联网应用的灵活快速搭建。

阿里云 IoT 平台支持的 MQTT 控制报文如下:

在这里插入图片描述

阿里云 IoT 物联网平台的整体产品架构:

在这里插入图片描述

3.1 IoT Hub

IoT Hub 帮助设备连接阿里云 IoT 服务,是设备与云端安全通信的数据通道。IoT Hub 支持 PUB/SUB 与 RRPC 两种通信方式,其中 PUB/SUB 是基于 Topic 进行的消息路由。

IoT Hub 具有下列特性:

  • 高性能扩展:支持线性动态扩展,可以支撑十亿设备同时连接;
  • 全链路加密:整个通信链路以 RSA、AES 加密,保证数据传输的安全;
  • 消息实时到达:当设备与 IoT Hub 成功建立数据通道后,两者间将保持长连接,以减少握手时间,保证消息实时到达;
  • 支持数据透传: IoT Hub 支持将数据以二进制透传的方式传到自己的服务器上,不保存设备数据,从而保证数据的安全可控性;
  • 支持多种通信模式:IoT Hub 支持 RRPC 和 PUB/SUB 两种通信模式,以满足您在不同场景下的需求;
  • 支持多种设备接入协议:支持设备使用 CoAP、MQTT、HTTPS 协议接入物联网平台。

3.2 设备管理

物联网平台为您提供功能丰富的设备管理服务。包括:生命周期、设备组、设备影子、固件升级、物模型、数据解析、在线调试、远程维护、数据存储、实时监控等。不同版本的物联网平台设备管理功能有所不同,具体请参考产品规格。

3.3 规则引擎

当设备基于 Topic 进行通信时,您可以编写 SQL 对 Topic 中的数据进行处理,然后配置转发规则将数据转发到其他 Topic 或阿里云服务上。例如:

  • 可以转发到 RDS、Table Store、TSDB 中进行存储;
  • 可以转发到 DataHub 中进而使用 Streamcompute 进行流计算,使用 MaxCompute 进行大规模离线计算;或转发到函数计算进行事件计算;
  • 转发到消息队列 MQ 实现高可靠消费数据;
  • 可以将 Topic 中的数据处理转发到另一个 Topic 中实现 M2M 通信。

3.4 安全认证&权限策略

安全是 IoT 的重要话题。阿里云物联网平台提供多重防护保障设备云端安全。

物联网平台为每个设备颁发唯一证书,设备使用证书进行身份验证连接 IoT Hub。

四、技术架构

我们本次 IoT 物联网开发实战整体技术架构如下:

在这里插入图片描述

温湿度传感器设备(DHT11+NodeMCU)使用 MQTT 协议接入 IoT 物联网平台,通过规则引擎配置,把全量数据存储到表格存储数据库,再使用数据可视化产品 DataV 呈现出来一张实时监控大屏;同时把异常数据流转到函数计算,再推送到钉钉群里,实时接收异常告警。

五、设备端开发

5.1 Arduino 硬件开发

ESP8266 开发板管理

在 Ardunio IDE 首选项窗口中的 附加开发板管理器网址 添加如下 URL,保存后重启 Arduino IDE。

https://arduino.esp8266.com/stable/package_esp8266com_index.json

如图:

在这里插入图片描述

在 Ardunio IDE 菜单栏选择工具->开发板->开发板管理器,在搜索框输入 esp8266,选择 2.4.1 版本并进行安装。

在这里插入图片描述

项目依赖软件库

本次项目依赖如下 C 库(可以通过附录 Github 地址获取),下载 libs.zip 解压到 Arduino libraries 目录,如图:

在这里插入图片描述

针对 PubSubClient 库,我们需要修改一些 MQTT 连接的默认参数,具体如下:

在这里插入图片描述

至此我们就完成了 Arduino 项目依赖库的安装和参数修改。

Arduino IDE 使用

我们使用 NodeMCU 1.0(ESP-12E Module)固件,Arduino IDE 的 Tools 参数设置如下:

编译和烧录

在这里插入图片描述

硬件接线

我们把 DHT11 模块的 Data 针脚和 NodeMCU 的 D7 针脚连接,电源+针脚连接 3V3 的针脚,电源-针脚连接 GND 针脚。

在这里插入图片描述

代码部分就不贴在这了,

有兴趣的同学

可以直接扫描下方二维码继续阅读

??

毫无疑问 IoT 物联网开发将是继移动互联网之后又一个新浪潮,企业对物联网开发工程师的需求也会随之爆发,普通的程序员如何快速转向物联网开发?

本场 Chat 将围绕 IoT 物联网的硬件传感器数据采集,数据通过 MQTT 上传,云端数据存储,数据可视化展示,异常告警实时推送串联一个完整的环境监控实战案例,手把手带你进入 IoT 开发领域。

本场 Chat 包含三个部分(2019-1-16发布)

1. IoT 物联网开发基础介绍;

2. 硬件数据采集开发实战;

3. 云端数据存储,可视化,实时告警开发实战。

适宜人群:

- 对物联网平台入门感兴趣的开发人员;

- 渴望掌握物联网实际开发经验的人员。

本文分享自微信公众号 - 人工智能头条(AI_Thinker)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-12-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 了解物联网生态系统

    用户1737318
  • 将机器学习应用于金融技术领域的15家公司(英)

    用户1737318
  • 用AI给裸女自动“穿”上比基尼,妈妈再也不担心我“辣眼睛”了

    互联网的内容繁杂,一不小心就会看到一些“辣眼睛”的内容,比如裸女,这也是为什么我们需要审核人员的存在。当然,受益于 AI 技术的发展,现在很多审核工作已经自动化...

    用户1737318
  • 工业4.0在Openshift上的落地

    工业4.0即第四次工业革命: 由自动化和数据驱动的下一阶段工业发展。它是物联网、工业物联网、大数据、云计算、网络物理系统、人工智能和机器学习等各种技术的统称。预...

    魏新宇
  • 【IoT迷你赛】腾讯物联TencentOS tiny上云初探

    2017年中旬曾写过一篇关于物联网平台的文章《微软最完善,百度最“小气” 看微软阿里百度三大物联网云平台对比》。现在已经过去两年了,物联网的格局又发生了不少的变...

    刘洪峰IoT
  • GAIR | 2018最火的AIoT 即将发生什么翻天覆地的变化?

    物联网发展至今的三十多年间,也是互联网飞速发展的三十多年,特别是2005-2015这十年间,物联网概念被更多地提及,互联网的普及和飞速发展以及移动互联网的变革,...

    AI科技评论
  • MQTT业务流程(一机一密)

    公众号php_pachong
  • TDengine是怎么解决物联网大数据处理问题的

    物联网平台里模块很多,但其中很重要的一块就是数据处理,包括采集、存储、查询、分析和计算,是整个物联网行业里面比较共性的部分,个性化程度不高。

    春哥大魔王
  • 一道网易笔试题引发的血案……

    作者:柳行刚 编辑:黄俊嘉 网易的2016年笔试题,题目经典。 所以特地找来给各位有兴趣的童鞋看看, 有详细的解题思路以及代码喔~ 各位,请看题! 题目描述: ...

    机器学习算法工程师
  • Qmake设置输出文件路径与名字

    Qt君

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动