今天我们花20元在淘宝购买了 乐鑫ESP8266 开发板和 DHT11 温湿度传感器,基于腾讯云 IoT 物联网平台(IoT Explorer)和 腾讯连连 小程序,从0到1组装一个温湿度传感器,然后分享给家庭成员,在微信小程序中实时查看客厅温湿度数据。
硬 件 采 购
我们需要采购的如下硬件:
腾讯云 IoT 开发
准备好硬件后,我们开通腾讯云IoT 物联网开发服务,官网入口:
https://console.cloud.tencent.com/iotexplorer
在控制台,我们创建项目,并新建产品 ESP8266温湿度计,如下:
接下来,完成产品 功能定义,如下:
然后我们在交互开发,完成 腾讯连连控制面板定义,如下:
最后,我们在设备调试,注册一个新设备 esp8266Living,并获取到设备认证的身份信息,如下:
ESP8266 硬件开发
我们完成控制台配置后,需要按腾讯云 IoT 设备接入规范进行设备端程序开发。
设备证书签名
根据腾讯云文档,我们知道MQTT连接建立所需参数生成规则如下:
连接域名
域名和端口:
${productid}.iotcloud.tencentdevices.com:1883
通信Topic和Payload
Topic :
$thing/up/property/{ProductID}/{DeviceName}
Payload:
{
"method":"report",
"clientToken":"msg-id-1599367492484",
"params":{
"temperature":25.7,
"humidity":45
}
}
ESP8266主板 Arduino 程序
Arduino程序依赖和常量信息,如下:
设备和云端通过 PubSubClient 建立 MQTT 连接代码:
WiFiClient espClient;
PubSubClient client(espClient);
/* 连接WiFi之后,连接MQTT服务器 */
client.setServer(MQTT_SERVER, MQTT_PORT);
client.connect(MQTT_CLIENT_ID, MQTT_USERNAME, MQTT_PASSWORD)
读取DHT11传感器数据,并通过 MQTT 通道上报到云端,代码示例:
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
char jsonBuf[128];
int timestamp = millis()
sprintf(jsonBuf, BODY_FORMAT, timestamp,temperature, humidity);
boolean d = client.publish(POST_TOPIC, jsonBuf);
联 机 运 行
我们将程序烧录到 ESP8266 开发板后,即可在腾讯云 IoT 控制台实时看到上报的数据:
腾讯云 IoT 控制台设备详情:
设备完整的上报日志:
使用腾讯连连小程序扫码添加设备,实时查看客厅数据:
至此,我们完成了乐鑫ESP8266开发板 基于腾讯云 IoT 和腾讯连连小程序的家居环境监控实战。
【往期回顾】
Ruff开发板 x 微信连连 家庭环境监测系统