自己动手做一个小爱同学温湿度传感器
不多哔哔,直接给干货!!!
1.开发环境简介
- 系统环境:Win10
- 开发语言:Arduino
- 软件:软件环境搭建
- 硬件:ESP8266(用的ESP-01S,淘宝单价三四块,批量购买更便宜)、ESP-01S烧录器(淘宝单价两块钱左右)、DHT11温湿度传感器(淘宝单价三块左右)、杜邦线(母——母)3根(如下图)
2.开发思路
(1)传感器:利用DHT11模块进行温度湿度的测量,利用烧录器给ESP-01S模块供电并提供接口。
(2)信息传递:利用点灯科技平台作为中介连接小米小爱同学与传感器。
3.程序编写
(1)将点灯科技库文件和DHT11模块库文件导入Arduino的libraries文件夹。
点灯平台库文件(官网下载链接):点击下载
DHT-11模块库文件(百度网盘下载):点击下载
提取码:1234
(2)下载点灯科技APP,为我们的设备申请一个key。
-
1)打开App,点击右上方的加号+,添加新设备
-
2)点击独立设备
-
3)选择WIFI接入
-
4)选择通信服务商,阿里云比较稳定一些
-
5)记住你的设备key,WiFi温湿度传感器用key连接点灯科技平台。
PS:
不要尝试我的设备key!!!
不要尝试我的设备key!!!
不要尝试我的设备key!!!
写完博客我已经删除我的设备key了。。。
点灯科技平台最多支持5个免费设备,多了就要收费了。
(3)打开Arduino,新建一个项目,代码如下:
#define BLINKER_WIFI
#define BLINKER_MIOT_SENSOR //小爱同学定义为传感器设备
#include <Blinker.h>
#include <DHT.h>
char auth[] = "bb05ed5216f1"; //你的设备key
char ssid[] = "test"; //你的WiFi名称
char pswd[] = "12345678"; //你的WiFi密码
BlinkerNumber HUMI("humi"); //定义湿度数据键名
BlinkerNumber TEMP("temp"); //定义温度数据键名
#define DHTPIN 2 //定义DHT11模块连接管脚io2
#define DHTTYPE DHT11 // 使用DHT 11温度湿度模块
DHT dht(DHTPIN, DHTTYPE); //定义dht
float humi_read = 0, temp_read = 0;
void heartbeat()
{
HUMI.print(humi_read); //给blinkerapp回传湿度数据
TEMP.print(temp_read); //给blinkerapp回传温度数据
}
void miotQuery(int32_t queryCode) //小爱同学语音命令反馈
{
BLINKER_LOG("MIOT Query codes: ", queryCode);
int humi_read_int=humi_read; //去掉湿度浮点
BlinkerMIOT.humi(humi_read_int); //小爱接收湿度
BlinkerMIOT.temp(temp_read); //小爱接收温度
BlinkerMIOT.print();
}
void setup()
{
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
BLINKER_DEBUG.debugAll();
Blinker.begin(auth, ssid, pswd);
Blinker.attachHeartbeat(heartbeat);
dht.begin();
BlinkerMIOT.attachQuery(miotQuery);
}
void loop()
{
Blinker.run();
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t))
{
BLINKER_LOG("Failed to read from DHT sensor!");
}
else
{
BLINKER_LOG("Humidity: ", h, " %");
BLINKER_LOG("Temperature: ", t, " ℃");
humi_read = h;
temp_read = t;
}
Blinker.delay(2000);
}
(4)连线图:
(4)烧录程序
PS:烧录完成后需要拔出,再插入才能用,为什么会这样不知道,但只要能程序能跑起来就无所谓了。
(5)连接米家平台
- 1)下载米家APP
- 2)点击我的——》其他平台设备——》添加——》点灯科技平台
- 3)登录点灯科技平台就连接成功了。
- 4)这时候就可以询问小爱同学当前室内的温湿度了。(音响、手机端都支持!!!)
询问语句样例:
我:“小爱同学”
小爱同学:“哎”
我:“当前室内的温度是多少?”
小爱同学:“当前室内的温度为26度”
我:“当前室内的湿度是多少?”
小爱同学:“当前室内的湿度为40%” - 5)使用iOS的童鞋其实也可以用这个温湿度传感器,下载米家APP,在Siri里设置相应的APP功能捷径,即可利用Siri查询当前室内的温湿度。或者使用HomeBridge等接入HomeKit。
(6)在点灯科技APP中查询当前室内的温湿度(非必需)
- 1)点灯科技APP自带一个公版框架,通过简单的拖拖拽拽就可以编辑APP的界面和参数
例如下面的这个组件:
你可以设置样式、数值、单位等等。
其中需要注意的是:数据键名是唯一的,在开发板的程序里需要进行设置后,APP里才会显示相应的数值。
- 2)目前除了公版,点灯科技平台还有商业版安卓、苹果APP的定制,有微信小程序的定制,但是因为收费,我就没有进行尝试。