Blinker 模拟传感器+数字传感器例程(DHT11 温湿度+气体传感)-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9778|回复: 18

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

[复制链接]
发表于 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
发表于 2019-2-7 09:40 | 显示全部楼层
8266只有一路ADC,如果有更多ADC需求,可以用ESP32
 楼主| 发表于 2019-2-7 09:46 来自手机 | 显示全部楼层
奈何col 发表于 2019-2-7 09:40
8266只有一路ADC,如果有更多ADC需求,可以用ESP32

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

点评

这个和blinker无关,就是直接用arduino的analogread读就行了  详情 回复 发表于 2019-2-7 14:53
发表于 2019-2-7 14:53 | 显示全部楼层
ecstart 发表于 2019-2-7 09:46
大佬!blinke 有没有模拟传感器的例程啊!

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

感谢大佬的基础教程,理解一下,总算成功了!
发表于 2019-2-15 20:03 来自手机 | 显示全部楼层
@ecstart,用了你的代码怎么老是掉线呀,
 楼主| 发表于 2019-2-15 20:57 来自手机 | 显示全部楼层
换了代码了 看我新的帖子
 楼主| 发表于 2019-2-15 20:58 来自手机 | 显示全部楼层
极客杰 发表于 2019-2-15 20:03
@ecstart,用了你的代码怎么老是掉线呀,

新帖子写了原因 加上去那段代码就好了.
发表于 2019-2-15 22:38 来自手机 | 显示全部楼层
谢谢大佬
发表于 2019-2-17 00:07 来自手机 | 显示全部楼层
很期待你的下一个作品
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 09:49 , Processed in 0.145891 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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