esp8266温湿度-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4491|回复: 7

[求助] esp8266温湿度

[复制链接]
发表于 2020-2-26 20:35 | 显示全部楼层 |阅读模式
我做了一个简单的温湿度计,就是用esp8266+DHT11+Blinker接入小爱同学,目前实现了。技穷的我还不满足于此,我想还是利用这写器材,当温度或者湿度达到某个阈值之后给我的微信发送消息。我在查看了微信官方文档之后发现可以接入微信,实现微信推送,示例是Blinker.wechat("HELLO BLINKER"),可是我代码不知道怎么写,求助各位developer!谢谢!我的代码是这样的:
[mw_shl_code=arduino,true]#define BLINKER_WIFI
#define BLINKER_MIOT_SENSOR   //小爱同学定义为传感器设备

#include <Blinker.h>
#include <DHT.h>

char auth[] = "478ff5e77704";    //设备key
char ssid[] = "CMCC-WnWH";         //wifi ssid
char pswd[] = "7awwwhza";     //wifi 密码
                                                                                                                                            
BlinkerNumber HUMI("humi");    //定义湿度数据键名
BlinkerNumber TEMP("temp");    //定义温度数据键名
  
#define DHTPIN 2      //定义DHT11模块连接管脚io2

#define DHTTYPE DHT11   // 使用DHT 11温度湿度模块
//#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
//#define DHTTYPE DHT21   // DHT 21 (AM2301)

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 dataStorage()
{    Blinker.dataStorage("temp",temp_read);
     Blinker.dataStorage("humi",humi_read);
}

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();
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, LOW);

    Blinker.begin(auth, ssid, pswd);   
    Blinker.attachHeartbeat(heartbeat);
    //BlinkerMIOT.attachQuery(miotQuery);
    Blinker.attachDataStorage(dataStorage);
    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, " *C");
        humi_read = h;
        temp_read = t;
    }



    Blinker.delay(2000);
}[/mw_shl_code]
发表于 2020-2-27 00:08 | 显示全部楼层
[mw_shl_code=arduino,true]定义一个常量:温度阀值
#define wd 25
在loop中加入以下代码
if(h >= wd) Blinker.wechat("温度过高!当前温度为:",h);[/mw_shl_code]
 楼主| 发表于 2020-2-27 10:59 | 显示全部楼层
Creeper666 发表于 2020-2-27 00:08
[mw_shl_code=arduino,true]定义一个常量:温度阀值
#define wd 25
在loop中加入以下代码

,谢谢指点。试过了,还是不行
发表于 2020-2-27 12:00 来自手机 | 显示全部楼层
roohom 发表于 2020-2-27 10:59
,谢谢指点。试过了,还是不行

你的微信绑定了吗?
 楼主| 发表于 2020-2-27 16:05 | 显示全部楼层
Creeper666 发表于 2020-2-27 12:00
你的微信绑定了吗?

绑定了的,而且Binlker.wechat()示例里只允许字符串或者数字,不能带参,修改后还是不行。
发表于 2020-5-7 18:26 | 显示全部楼层
请问楼主解决了吗,我目前也是跟楼主类似的情况
发表于 2020-5-14 21:04 | 显示全部楼层
测试一下,看能不能实现
发表于 2020-5-21 18:39 | 显示全部楼层
老哥,能把你之前实现了的程序发一下吗,这里还是个新手。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 17:39 , Processed in 0.226580 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表