自己动手做一个小爱同学温湿度传感器(成本八块左右)


不多哔哔,直接给干货!!!

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。

点击下载APP

  • 1)打开App,点击右上方的加号+,添加新设备
    打开App,点击右上方的加号+,添加新设备

  • 2)点击独立设备
    点击独立设备

  • 3)选择WIFI接入
    选择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的定制,有微信小程序的定制,但是因为收费,我就没有进行尝试。
  • 12
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

达娃里氏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值