烟雾报警器
AO模拟信号(任意值) DO 数字信号(0/1 高低电平)
#define MQPIN 13
void setup() {
Serial.begin(115200);
pinMode(MQPIN, INPUT);
}
void loop() {
int val = digitalRead(MQPIN);
Serial.print(F("smoke: "));
Serial.println(val);
delay(1000);
}
DHT11温湿度 + 烟雾 +0.96OLED + U8g2显示
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
#define MQPIN 13
#include <U8g2lib.h>
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE, 5, 4);
void setup() {
Serial.begin(115200);
dht.begin();
u8g2.begin();
u8g2.enableUTF8Print();
u8g2.setFont(u8g2_font_wqy12_t_gb2312);
u8g2.setCursor(0, 15);
u8g2.print("正在加载.........");
u8g2.sendBuffer();
pinMode(MQPIN, INPUT);
}
void loop() {
u8g2.clearDisplay();
int val = digitalRead(MQPIN);
float h = dht.readHumidity();
float t = dht.readTemperature();
float f = dht.readTemperature(true);
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
float hif = dht.computeHeatIndex(f, h);
float hic = dht.computeHeatIndex(t, h, false);
Serial.print(F("Hum: "));
Serial.print(h);
Serial.print(F("% Temp: "));
Serial.print(t);
Serial.print(F("°C "));
Serial.print(f);
Serial.print(F("°F heat index: "));
Serial.print(hic);
Serial.print(F("°C "));
Serial.print(hif);
Serial.print(F("°F"));
Serial.print(F(" smoke: "));
Serial.println(val);
u8g2.setCursor(0, 12);
u8g2.print("湿度:");
u8g2.println(String(h) + "%");
u8g2.setCursor(0, 26);
u8g2.print("温度:");
u8g2.println(String(t) + "°C");
u8g2.setCursor(0, 42);
u8g2.print("烟雾:");
u8g2.println(String(val));
u8g2.setCursor(84, 58);
u8g2.println(millis());
u8g2.sendBuffer();
delay(10);
}