Weather Station
Pe un display LCD se vor afisa toate valorile senzorilor adica temperatura, nivelul de monoxid de carbon si umiditatea.
#include <Wire.h> #include <LiquidCrystal.h> #include “DHT.h” pentru senzori si LCD.
In functia void setup() am setat RTC, am folosit comanda begin pentru senzorul de fum MQ2 cat si pentru LCD.
In functia loop() sunt create variabile pentru a citi si afisa datele furnizate de sezori pe LCD.
#include <Wire.h> #include <LiquidCrystal_I2C.h>
#include “DHT.h” #define DHTPIN 5
#define DHTTYPE DHT11
int MQ2Pin = A0;
const int en = 2, rw = 1, rs = 0, d4 = 4, d5 = 5, d6 = 6, d7 = 7, bl = 3;
const int i2c_addr = (0x27);
LiquidCrystal_I2C lcd(i2c_addr, en, rw, rs, d4, d5, d6, d7, bl, POSITIVE);
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600); lcd.begin(16, 2); dht.begin();
}
void loop() {
delay(1000);
int MQ2Sensor = analogRead(MQ2Pin);
Serial.print("Pin A0: "); Serial.println(MQ2Sensor); lcd.print("Smoke:"); lcd.print(MQ2Sensor-50);
float h = dht.readHumidity(); // Read temperature as Celsius (the default) float t = dht.readTemperature();
if ( isnan(t) || isnan(h)) { lcd.clear(); lcd.setCursor(0, 1); lcd.print(" ERROR READING "); return; }
Serial.print(t);
delay(8000); lcd.setCursor(4, 0); lcd.setCursor(0, 1); lcd.print(h); lcd.print(" % ");
lcd.print(t); lcd.print(" C");
delay(1000);
}