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");
}
}
}
8266只有一路ADC,如果有更多ADC需求,可以用ESP32 奈何col 发表于 2019-2-7 09:40
8266只有一路ADC,如果有更多ADC需求,可以用ESP32
大佬!blinke 有没有模拟传感器的例程啊! ecstart 发表于 2019-2-7 09:46
大佬!blinke 有没有模拟传感器的例程啊!
这个和blinker无关,就是直接用arduino的analogread读就行了 奈何col 发表于 2019-2-7 14:53
这个和blinker无关,就是直接用arduino的analogread读就行了
感谢大佬的基础教程,理解一下,总算成功了! @ecstart,用了你的代码怎么老是掉线呀, 换了代码了 看我新的帖子 极客杰 发表于 2019-2-15 20:03
@ecstart,用了你的代码怎么老是掉线呀,
新帖子写了原因 加上去那段代码就好了. 谢谢大佬 很期待你的下一个作品
页:
[1]
2