写点什么

基于阿里云物联网平台,用 20 元体验物联网开发( 自制 Arduino 环境监测仪)——实践类

作者:阿里云AIoT
  • 2023-02-28
    浙江
  • 本文字数:1376 字

    阅读完需:约 5 分钟

   硬件准备   

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

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

  架构方案  

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

  创建产品和注册设备  

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

在温湿度计产品详情的 Topic 类列表可以看到系统默认创建的 Topic,这就是我们用来上报温湿度数据的 Topic。

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

  配置数据流转 规则引擎  

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

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

image.png

完整的数据处理 SQL:

SELECT *,deviceName() as deviceName,timestamp() as time,timestamp('yyyy-MM-dd HH:mm:ss') as date_time FROM "/a1k3547Gr0v/+/user/update"
复制代码

数据转发配置如下:


image.png

设备和云端通信 Topic 和 Payload 如下:

Topic:/a1k823sJ0v/hz9527/user/updatePayload:{    "temperature":23,    "humidity":65}
复制代码

  硬件 开发  

Arduino 开发依赖 C 库,如下:

image.png


/* 连接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 开发板:

  联机运行  

烧录完成后,程序启动,我们就可以在 IoT 控制台的日志服务中查看到上报的数据,如下图:

image.png


image.png



image.png


image.png


  物模型开发  

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

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

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

物模型通信 Topic 和 Payload 如下:

Topic:/sys/a1k823sJ0v/hz9527/thing/event/property/postPayload:{    "id":1596087445906,    "params":{        "temperature":23,        "humidity":65    },    "method":"thing.event.property.post"}
复制代码

我们修改 Arduino 查询中 Topic 和 Payload 后,重新烧录,设备上报数据后,在控制台可以查看日志,如下图:


image.png

设备详情

image.png

物模型数据

image.png

运行状态

image.png


【往期回顾】

1、39张IoT传感器工作原理GIF图汇总

2、IoT 设备发送 MQTT 请求的曲折经历

3、智能手持测温枪开发实践

4、JMeter 压测 MQTT 服务性能实战

5、IoT物联网平台日志服务详解


物联网平台产品介绍详情:https://www.aliyun.com/product/iot/iot_instc_public_cn


阿里云物联网平台客户交流群

用户头像

阿里云AIoT

关注

物联网内容搬运者 2022-04-22 加入

还未添加个人简介

评论

发布
暂无评论
基于阿里云物联网平台,用20元体验物联网开发( 自制 Arduino 环境监测仪)——实践类_监控_阿里云AIoT_InfoQ写作社区