#include "DHT.h"
#include <LiquidCrystal_I2C.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Keypad.h>
#include <WiFi.h>
#include <UUID.h>
#define DHTPIN 4
#define DHTTYPE DHT22
#define ONE_WIRE_BUS 3
float moisture, temperature, Celsius, Fahrenheit, SoilM;
const uint8_t ROWS = 4;
const uint8_t COLS = 4;
char keys[ROWS][COLS] = {
{ '1', '2', '3', 'A' },
{ '4', '5', '6', 'B' },
{ '7', '8', '9', 'C' },
{ '*', '0', '#', 'D' }
};
uint8_t colPins[COLS] = { 8, 7, 6, 5 };
uint8_t rowPins[ROWS] = { 12, 11, 10, 9 };
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DHT dht (DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd (0x27,20,4);
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println("Starting Program");
lcd.init();
lcd.backlight();
lcd.setBacklight(HIGH);
dht.begin();
sensors.begin();
UUID uuid;
uuid.seed(2);
uuid.generate();
Serial.println(uuid.toCharArray());
lcd.setCursor(0,1);
lcd.print("Memulai Menghidupkan");
lcd.setCursor(6,2);
lcd.print("Alat IoT");
delay(10000);
}
void loop() {
// put your main code here, to run repeatedly:
lcd.clear();
//kelembapan udara
moisture = dht.readHumidity();
//suhu udara
temperature = dht.readTemperature();
//suhu tanah
sensors.requestTemperatures();
Celsius = sensors.getTempCByIndex(0);
//kelembapan tanah
SoilM = analogRead(A3);
LCD20x4();
//cek_serial();
char key = keypad.getKey();
if (key != NO_KEY) {
Serial.println(key);
}
delay(5000);
}
void LCD20x4(){
//baris 1
lcd.setCursor(0,0);
lcd.print("Air Temp ");
lcd.print(temperature);
lcd.print("*C");
//baris 2
lcd.setCursor(0,1);
lcd.print("Air Hum: ");
lcd.print(moisture);
lcd.print("%");
//baris 3
lcd.setCursor(0,2);
lcd.print("Soil Temp: ");
lcd.print(Celsius);
lcd.print("*C");
//baris 4
lcd.setCursor(0,3);
lcd.print("Soil Hum: ");
lcd.print(SoilM);
lcd.print("%");
}
void cek_serial(){
//DHT 22
Serial.print("PH: ");
Serial.println();
Serial.print("Hum: ");
Serial.println(moisture);
Serial.print("Suhu: ");
Serial.println(temperature);
Serial.print("Suhu Tanah: ");
Serial.println(Celsius);
Serial.print("Hum Tanah: ");
Serial.println(SoilM);
Serial.println();
}
Loading
esp-01
esp-01