查看: 321|回复: 4

esp8266温湿度

[复制链接]

该用户从未签到

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

kittenblock中小学创客名师推荐的图形化编程软件

#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);
}

  • TA的每日心情
    郁闷
    2020-3-30 11:28
  • 签到天数: 183 天

    [LV.7]常住居民III

    发表于 2020-2-27 00:08 | 显示全部楼层

    kittenblock中小学创客名师推荐的图形化编程软件

    定义一个常量:温度阀值
    #define wd 25
    在loop中加入以下代码
    if(h >= wd) Blinker.wechat("温度过高!当前温度为:",h);

    该用户从未签到

     楼主| 发表于 2020-2-27 10:59 | 显示全部楼层
    Creeper666 发表于 2020-2-27 00:08
    [mw_shl_code=arduino,true]定义一个常量:温度阀值
    #define wd 25
    在loop中加入以下代码

    ,谢谢指点。试过了,还是不行
  • TA的每日心情
    郁闷
    2020-3-30 11:28
  • 签到天数: 183 天

    [LV.7]常住居民III

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

    你的微信绑定了吗?

    该用户从未签到

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

    绑定了的,而且Binlker.wechat()示例里只允许字符串或者数字,不能带参,修改后还是不行。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    【Arduino】108种传感器模块系列实验(55)---DHT11温湿度传感器
    【Arduino】108种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    一个初级的hello world的问题
    一个初级的hello world的
    串口监视器不显示,第一个程序就这样,求大佬指点
    【Arduino】u8g2中文字库制作教程 小白请进
    【Arduino】u8g2中文字库
    我知道对于这个话题许多大佬们都会,发这个贴子也算是炒冷饭了,所以一开始我也十分纠
    【干货分享】mega2560原理图PCB图纸altium designer18
    【干货分享】mega2560原理
    分享一下mega2560的板子 AD版本 **** 本内容被作者隐藏 **** ergo
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表