IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 20元搞定IoT 物联网毕业答辩 - 自制 Arduino 环境监测仪 -> 正文阅读

[嵌入式]20元搞定IoT 物联网毕业答辩 - 自制 Arduino 环境监测仪

d4c984d0182c25f072b0873966e940a9.png

???硬件准备???

今天我们在只有20元预算前提下,带领大家完成一次IoT物联网开发之旅!

感谢万能的淘宝,让我们能采购到esp8266开发板,dht11温湿度传感器:

3e14e67a70291b45fc8cd8c05e773844.png

??架构方案??

我们通过DHT11采集温度,湿度数据,通过 MQTT 协议上报到阿里云 IoT 物联网平台,并通过规则引擎转发到表格存储OTS数据库中,整体技术方案如下:

a1e4594e4d62d917da5c6e6d69b069f1.png

??创建产品和注册设备??

我们登录阿里云IoT物联网平台控制台,创建产品温湿度计。

704e7c07f760f4c0d3654c34fa5c8d57.png

接下来,我基于温湿度计产品注册一个设备hz9527,并获取到设备身份三元组。

59040c64b8a5b559ffd8abab932fa847.png

??物模型开发??

物模型指将物理空间中的实体数字化,并在云端构建该实体的数据模型。物模型描述产品是什么、能做什么、可以对外提供哪些服务。

ab8ce1f3bccbb889eee69ae6430c3d20.png

我们在物联网平台控制台,产品详情页面的功能定义,添加温度和湿度两个属性,如下图:

2cfd5e2760186855df35cda5175d7bb4.png

物模型属性上报的通信Topic,如下图:

10f1bf95b76353bf853a738cad947bcc.png

物模型通信Topic和Payload如下:

Topic:
/sys/a1k823sJ0v/hz9527/thing/event/property/post

Payload:
{
????"id":1596087445906,
????"params":{
????????"temperature":23,
????????"humidity":65
????},
????"method":"thing.event.property.post"
}

??规则引擎流转??

我们在表格存储控制台,预先创建数据库实例iotMsg和iot_thermometer_data表,如下图:

b6a999a6d2f6fbf873d5a9a767d1b21f.png

然后,我们回到IoT物联网平台控制台,配置数据流转规则,把设备上报数据存储到已有的表格存储数据库实例iotMsg中的iot_thermometer_data表中,规则引擎配置如下:

1fee6b2887705f475cba9a42ea2add69.png

数据转发配置如下:

97cd5827ce0007febac382a2a3b49bf7.png

??硬件开发??

Arduino开发依赖C库,如下:

ff9625650f52ad5c3acdf9fd3c0d42fe.png

设备和云端通过 PubSubClient 建立 MQTT 连接代码:

/*?连接WiFi之后,连接MQTT服务器?*/
client.setServer(MQTT_SERVER,?MQTT_PORT);
client.setCallback(callback);
client.connect(CLIENT_ID,?MQTT_USRNAME,?MQTT_PASSWD)

 

设备读取传感器数据,并通过?MQTT?通道发送到云端:

void?loop()?{
??//?从传感器获取温度,湿度数据?
??float?temperature?=?dht.readTemperature();
??float?humidity?=?dht.readHumidity();
??char?jsonBuf[128];
??sprintf(jsonBuf,?BODY_FORMAT,?temperature,?humidity);

??//?通过?MQTT?发送数据上云
??if?(client.connected())?{
????boolean?d?=?client.publish(PROP_POST_TOPIC,?jsonBuf);
??}

??client.loop();
??//?delay
??delay(DELAY_TIME);
}

使用 Arduino IDE 烧录程序到 esp8266 开发板:

e666befcb1a23a7d65fcecd770785890.png

??联机运行??

烧录完成后,程序启动,在设备详情页面,物模型数据Tab也可以实时看到设备运行状态,如下图:

64125843b873d3c153129378ca83f3ad.png

观察日志服务中的记录,可以看到消息上报和数据流转的过程,如下图:

68826cbeacb335021061d811aae4597f.png

在表格存储控制台,可以看到存储在 iot_thermometer_data 里的数据

4b70077b05ce35adefb8df45097fac9a.png

往期推荐

1、HarmonyOS 到底是不是Android套壳?

2、2021国内四大IoT物联网平台性能对比

3、ThingsBoard 开源物联网平台入门

4、IoT物联网开发入门优秀课程

5、艾瑞 2021中国?IoT物联网平台研究

56265e617d09a1dfd8a4757acfb24ea6.gif

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-11-12 19:45:23  更:2021-11-12 19:47:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:52:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码