#include <Adafruit_Sensor.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd1(8, 9, 4, 5, 6, 7);
#include <DHT.h>
#include <DHT_U.h>
#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);
#define DHTPIN 2
#define DHTTYPE DHT22
DHT_Unified dht(DHTPIN, DHTTYPE);
char buf[9];
int T,H;
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 16
#define LCD_LINES 2
LiquidCrystal_I2C lcd2(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
void setup() {
lcd2.init();
lcd2.backlight();
Serial.begin(9600);
dht.begin();
u8g.setFont(u8g_font_gdr20r);
lcd1.begin(16, 2);
}
void loop() {
show();
LCD();
LCDI2C();
delay(500);
sensors_event_t event;
dht. temperature().getEvent(&event);
if (isnan(event.temperature)) {
Serial.println(F("Error reading temperature!"));
}else {
Serial.print(F("Temperature: "));
Serial.print(event.temperature);
Serial.println(F("°C"));
T = event.temperature;
}
dht.humidity().getEvent(&event);
if (isnan(event.relative_humidity)) {
Serial.println(F("Error reading humidity!"));
}else {
Serial.print(F("Humidity:"));
Serial.print(event.relative_humidity);
Serial.println(F("%"));
H = event.relative_humidity;
}
}
//----------------------------
void show(void){
u8g.firstPage();
do{
u8g.setFont(u8g_font_gdr20r);
u8g.drawStr( 10, 20, "T = ");
u8g.setFont(u8g_font_gdr20r);
u8g.drawStr( 80, 20, "H = ");
sprintf (buf,"%d",T);
u8g.drawStr(10,45,buf);
sprintf (buf,"%d",H);
u8g.drawStr(80,45,buf);
}while( u8g.nextPage() );
}
void LCD(void){
lcd1.setCursor(0 , 0);
lcd1.print("T = ");
lcd1.setCursor(5 , 0);
lcd1.print(T);
lcd1.setCursor(0 , 1);
lcd1.print("H = ");
lcd1.setCursor(5 , 1);
lcd1.print(H);
}
void LCDI2C(void){
lcd2.setCursor(0, 0);
lcd2.print("T = ");
lcd2.setCursor(5, 0);
lcd2.print(T);
lcd2.setCursor(0, 1);
lcd2.print("H = ");
lcd2.setCursor(5, 1);
lcd2.print(H);
}
Loading
ssd1306
ssd1306