#include <OneWire.h>
#include <DallasTemperature.h>
#include <DHTesp.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define ADC_VREF_mV 5000.0 // in millivolt
#define ADC_RESOLUTION 4096.0
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
const int LM35 = 15;
const int oneWireBus = 12;
const int DH22 = 14;
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
OneWire oneWire(oneWireBus);
DallasTemperature sensors(&oneWire);
DHTesp dhtSensor;
void setup()
{
Serial.begin(115200);
pinMode(LM35, INPUT);
sensors.begin();
dhtSensor.setup(DH22, DHTesp::DHT22);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
}
void loop() {
//Senosr LM35
int ADC;
float temp;
ADC = analogRead(LM35);
float milliVolt = ADC * (ADC_VREF_mV / ADC_RESOLUTION);
temp = milliVolt / 10;
//temp = (temp / 3.999);
Serial.print("Temperature = ");
Serial.print(temp);
Serial.println(" °C");
delay(1000);
//Sensor DHT22
float suhu = 0;
float kelembaban = 0;
TempAndHumidity data = dhtSensor.getTempAndHumidity();
suhu = data.temperature;
kelembaban = data.humidity;
Serial.print("Temp: ");
Serial.print(suhu);
Serial.println("C");
Serial.print("Hum: ");
Serial.print(kelembaban);
Serial.println("%");
delay(1000);
//Sensor DS18B20
sensors.requestTemperatures();
float temperatureC = sensors.getTempCByIndex(0);
Serial.print("TempC= ");
Serial.print(temperatureC);
Serial.println("ºC");
delay(1000);
//LCD OLED
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.print("Suhu= ");
display.print(temp);
display.print((char)247);
display.print("C");
display.setCursor(0,10);
display.print("Humidity= ");
display.print(kelembaban);
display.print("%");
display.setCursor(0,20);
display.print("TempC= ");
display.print(temp);
display.print((char)247);
display.print("C");
display.setCursor(0,30);
display.print("Temp is= ");
display.print(temperatureC);
display.print((char)247);
display.print("C");
display.setCursor(0,40);
display.print("Citra Sukma Wardani");
display.setCursor(0,50);
display.print("42222005");
display.display();
delay(2000);
}