查看: 1967|回复: 15

[分享] Blinker 模拟传感器+数字传感器例程(DHT11 温湿度+气体传感)

[复制链接]
  • TA的每日心情
    开心
    2019-8-10 14:13
  • 签到天数: 50 天

    [LV.5]常住居民I

    发表于 2019-2-6 22:56 | 显示全部楼层 |阅读模式
    本帖最后由 ecstart 于 2019-2-21 11:59 编辑

      才接触1星期,发现Blinker自带了很多例程,已经成功试验了DHT的例程序,并完善了体感温度APP显示,也增加了继电器的,但是现在想添加一个烟雾或者亮度 模拟量传感器,但是貌似没有模拟量的例程序,新手研究了很久也没改成功。

    2-12 日  已经解决读取显示模拟传观器的问题,感谢奈何的基础教程,还是不能一口吃个胖子,基础还是要抓牢

    以下是一个 读取数字温湿度传感器DHT11  和 A0接口模拟量传感器的代码,本文的模拟量传感器用的是气体传感器,本代码初衷是放在厨房检测到气体泄后触发继电器开启换气扇,目前代码只写到了检测温湿度和气体 暂时没加入联动继电器的代码。

    #define BLINKER_WIFI

    #include <Blinker.h>

    char auth[] = "XXXXXXX";
    char ssid[] = "XXXXXXX";
    char pswd[] = "XXXXX";

    BlinkerNumber HUMI("humi");
    BlinkerNumber TEMP("temp");
    BlinkerNumber HEAT("heat");
    BlinkerNumber Kong("kong");
    // Download Adafruit DHT-sensor-library library here:
    // https://github.com/adafruit/DHT-sensor-library
    #include <DHT.h>

    #define DHTPIN 2
    int kong = A0;

    #define DHTTYPE DHT11   // DHT 11
    //#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
    //#define DHTTYPE DHT21   // DHT 21 (AM2301)

    DHT dht(DHTPIN, DHTTYPE);

    uint32_t read_time = 0;

    float humi_read, temp_read, heat_read, kong_read;

    void dataRead(const String & data)
    {
        BLINKER_LOG("Blinker readString: ", data);

        Blinker.vibrate();

        uint32_t BlinkerTime = millis();
        Blinker.print(BlinkerTime);
        Blinker.print("millis", BlinkerTime);
    }

    void heartbeat()
    {
        HUMI.print(humi_read);
        TEMP.print(temp_read);
        HEAT.print(heat_read);
        Kong.print(kong_read);
      }

    void setup()
    {
        Serial.begin(115200);
        BLINKER_DEBUG.stream(Serial);

        pinMode(LED_BUILTIN, OUTPUT);
        digitalWrite(LED_BUILTIN, LOW);
        pinMode(kong,INPUT);

        Blinker.begin(auth, ssid, pswd);
        Blinker.attachData(dataRead);
        Blinker.attachHeartbeat(heartbeat);

        dht.begin();
    }

    void loop()
    {
        Blinker.run();

        if (read_time == 0 || (millis() - read_time) >= 2000)
        {
            read_time = millis();

            float h = dht.readHumidity();
            float t = dht.readTemperature();
            float c = dht.computeHeatIndex(t, h, false);
            float k = analogRead(A0);   
          if (isnan(h) || isnan(t)) {
                BLINKER_LOG("Failed to read from DHT sensor!");
                return;

            humi_read = h;
            temp_read = t;
            heat_read = c;
            kong_read = k;

            BLINKER_LOG("Humidity: ", h, " %");
            BLINKER_LOG("Temperature: ", t, " *C");
            BLINKER_LOG("Heat index: ", c, " *C");
            BLINKER_LOG("Kong Qi: ", k, " /1024");

              }
        }
    }
    IMG_4242.PNG
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2019-2-7 09:40 | 显示全部楼层
    8266只有一路ADC,如果有更多ADC需求,可以用ESP32
    如果以上内容对你有帮助,你可以通过打赏支持作者
  • TA的每日心情
    开心
    2019-8-10 14:13
  • 签到天数: 50 天

    [LV.5]常住居民I

     楼主| 发表于 2019-2-7 09:46 来自手机 | 显示全部楼层
    奈何col 发表于 2019-2-7 09:40
    8266只有一路ADC,如果有更多ADC需求,可以用ESP32

    大佬!blinke 有没有模拟传感器的例程啊!

    点评

    这个和blinker无关,就是直接用arduino的analogread读就行了  详情 回复 发表于 2019-2-7 14:53
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2019-2-7 14:53 | 显示全部楼层
    ecstart 发表于 2019-2-7 09:46
    大佬!blinke 有没有模拟传感器的例程啊!

    这个和blinker无关,就是直接用arduino的analogread读就行了
    如果以上内容对你有帮助,你可以通过打赏支持作者
  • TA的每日心情
    开心
    2019-8-10 14:13
  • 签到天数: 50 天

    [LV.5]常住居民I

     楼主| 发表于 2019-2-12 17:32 | 显示全部楼层
    奈何col 发表于 2019-2-7 14:53
    这个和blinker无关,就是直接用arduino的analogread读就行了

    感谢大佬的基础教程,理解一下,总算成功了!

    该用户从未签到

    发表于 2019-2-15 20:03 来自手机 | 显示全部楼层
    @ecstart,用了你的代码怎么老是掉线呀,
  • TA的每日心情
    开心
    2019-8-10 14:13
  • 签到天数: 50 天

    [LV.5]常住居民I

     楼主| 发表于 2019-2-15 20:57 来自手机 | 显示全部楼层
    换了代码了 看我新的帖子
  • TA的每日心情
    开心
    2019-8-10 14:13
  • 签到天数: 50 天

    [LV.5]常住居民I

     楼主| 发表于 2019-2-15 20:58 来自手机 | 显示全部楼层
    极客杰 发表于 2019-2-15 20:03
    @ecstart,用了你的代码怎么老是掉线呀,

    新帖子写了原因 加上去那段代码就好了.

    该用户从未签到

    发表于 2019-2-15 22:38 来自手机 | 显示全部楼层
    谢谢大佬

    该用户从未签到

    发表于 2019-2-17 00:07 来自手机 | 显示全部楼层
    很期待你的下一个作品
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    ArduinoJason6教程由ArduinoJson作者Benoit亲自出马一对一教学
    ArduinoJason6教程由Ardui
    这几天我觉得社区教学好像缺了点什么,呃呃~我想一想好像是缺少了ArduinoJson6的教学
    Arduino+L298N小车实例教程
    Arduino+L298N小车实例教
    (第一次写教程,如有错漏,敬请拍砖)Arduino+L298N小车实例教程Arduino小车是一个非
    零知开源分享-蓝牙模块与手机APP通信
    零知开源分享-蓝牙模块与
    本篇文章中将讲解蓝牙模块与安卓手机APP进行通信。1、说明MCU:零知开发板-标准板模
    DHT库无法被找到
    DHT库无法被找到
    今天在安装了DHT库之后在编译时却显示无法找到库,请问我是在哪里安装出错了,谢谢大
    (可远程)ESP8266读DHT11温湿度,APP inventor制作app实时显示
    (可远程)ESP8266读DHT11
    原理讲解 原理简述:利用发布订阅模式。第一步,先读取DHT11温湿度数值,第二步,新
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表