硬件筹备
明天咱们在只有 20 元估算前提下,率领大家实现一次 IoT 物联网开发之旅!
感激万能的淘宝,让咱们能洽购到 esp8266 开发板,dht11 温湿度传感器:
架构计划
咱们通过 DHT11 采集温度,湿度数据,通过 MQTT 协定上报到阿里云 IoT 物联网平台,并通过规定引擎转发到表格存储 OTS 数据库中,整体技术计划如下:
创立产品和注册设施
咱们登录阿里云 IoT 物联网平台控制台,创立产品温湿度计。
在温湿度计产品详情的 Topic 类列表能够看到零碎默认创立的 Topic,这就是咱们用来上报温湿度数据的 Topic。
接下来,我基于温湿度计产品注册一个设施 hz9527,并获取到设施身份三元组。
配置 数据流转 规定引擎
咱们在表格存储控制台,事后创立数据库实例 iotMsg 和 iot_thermometer_data 表,如下图:
而后,咱们回到 IoT 物联网平台控制台,配置数据流转规定,把设施上报数据存储到已有的表格存储数据库实例 iotMsg 中的 iot_thermometer_data 表中,规定引擎配置如下:
残缺的数据处理 SQL:
SELECT *,
deviceName() as deviceName,
timestamp() as time,
timestamp('yyyy-MM-dd HH:mm:ss') as date_time
FROM "/a1k3547Gr0v/+/user/update"
数据转发配置如下:
设施和云端通信 Topic 和 Payload 如下:Topic:
Topic:
/a1k823sJ0v/hz9527/user/update
Payload:
{
"temperature":23,
"humidity":65
}
硬件 开发
Arduino 开发依赖 C 库,如下:
/* 连贯 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 控制台的日志服务中查看到上报的数据,如下图:
物模型开发
物模型指将物理空间中的实体数字化,并在云端构建该实体的数据模型。物模型形容产品是什么、能做什么、能够对外提供哪些服务。
咱们在物联网平台控制台,产品详情页面的性能定义,增加温度和湿度两个属性,如下图:
物模型属性上报的通信 Topic,如下图:
物模型通信 Topic 和 Payload 如下:
Topic:
/sys/a1k823sJ0v/hz9527/thing/event/property/post
Payload:
{
"id":1596087445906,
"params":{
"temperature":23,
"humidity":65
},
"method":"thing.event.property.post"
}
咱们批改 Arduino 查问中 Topic 和 Payload 后,从新烧录,设施上报数据后,在控制台能够查看日志,如下图:
设施详情
物模型数据
运行状态
【往期回顾】
1、39 张 IoT 传感器工作原理 GIF 图汇总
2、IoT 设施发送 MQTT 申请的波折经验
3、智能手持测温枪开发实际
4、JMeter 压测 MQTT 服务性能实战
5、IoT 物联网平台日志服务详解
物联网平台产品介绍详情:https://www.aliyun.com/produc…
阿里云物联网平台客户交换群