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

ecstart 发表于 2019-2-6 22:56

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

本帖最后由 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");

          }
    }
}

奈何col 发表于 2019-2-7 09:40

8266只有一路ADC,如果有更多ADC需求,可以用ESP32

ecstart 发表于 2019-2-7 09:46

奈何col 发表于 2019-2-7 09:40
8266只有一路ADC,如果有更多ADC需求,可以用ESP32

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

奈何col 发表于 2019-2-7 14:53

ecstart 发表于 2019-2-7 09:46
大佬!blinke 有没有模拟传感器的例程啊!

这个和blinker无关,就是直接用arduino的analogread读就行了

ecstart 发表于 2019-2-12 17:32

奈何col 发表于 2019-2-7 14:53
这个和blinker无关,就是直接用arduino的analogread读就行了

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

极客杰 发表于 2019-2-15 20:03

@ecstart,用了你的代码怎么老是掉线呀,

ecstart 发表于 2019-2-15 20:57

换了代码了 看我新的帖子

ecstart 发表于 2019-2-15 20:58

极客杰 发表于 2019-2-15 20:03
@ecstart,用了你的代码怎么老是掉线呀,

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

极客杰 发表于 2019-2-15 22:38

谢谢大佬

极客杰 发表于 2019-2-17 00:07

很期待你的下一个作品
页: [1] 2
查看完整版本: Blinker 模拟传感器+数字传感器例程(DHT11 温湿度+气体传感)