NAMA : MUHAMMAD IKHWANUL
NIM : D0219410
JURUSAN : TEKNIK INFORMATIKA
email : ikhwanmuhammad551@gmail.com
KPI ( KERJA PRAKTIK INDUSTRI ) UNIVERSITAS SULAWESI BARAT
Membuat Sistem Penyiraman Tanaman Otomatis Berbasis IOT
Membuat skema pembuatan sistem secara otomatis dengan melihat beberapa referensi di
youtube :
website :
openlibrarypublications.telkomuniversity.ac.id/index.php/engineering/article/view/17302/17013 dan lain-lain.
mempersiapkan bahan bahan yang dibutuhkan untuk membuat sistem tersebut :
Perangkat Mikrokontroler :
ESP32
DHT11
SOIL MOISTURE
RELAY
KABEL JUMPER
KABEL USB
Software :
ARDUINO IDE 2.0
Blynk
Browser
IFTTT
UPLOAD KODE PROGRAM UNTUK SISTEM PENYIRAMAN TANAMAN OTOMATIS
PEMASANGAN CASE UNTUK SISTEM PENYIRAMAN TANAMAN OTOMATIS
PERTEMUAN ANTAR DESA UNTUK PEMBUATAN WEBSITE BUMDES
PENGINPUTAN DATA SRIKANDI
PEMASANGAN ALAT SISTEM PENYIRAMAN OTOMATIS SEKALIGUS PENEMPATAN SELANG AIR
MEMPERKENALKAN CARA KERJA SISTEM PENYIRAMAN OTOMATIS
CARA PEMBUATAN APLIKASI BERBASIS ANDROID
PEMASANGAN ULANG ALAT SISTEM PENYIRAMAN OTOMATIS BERBASIS WEB
UPRAGADE SISTEM PENYIRAMAN OTOMATIS MENGGUNAKAN LCD MONITOR BERBASIS WEB
//SISTEM PENYIRAMAN TANAMAN OTOMATIS BERBASIS WEB
#include <WiFi.h>
#include <WiFiClient.h>
#include <WebServer.h>
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
const char* ssid = "Relawan TIK";
const char* password = "RelawanTIK22";
WebServer server(80);
#define DHTPIN 16
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
#define relay 5
int moisture_value = 34;
int waterState = LOW;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(115200);
lcd.begin();
lcd.backlight();
lcd.print("~ LAPEO PAINDO ~ ");
lcd.setCursor(0,1);
delay(2000);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
IPAddress ip = WiFi.localIP();
Serial.println("IP Address: " + ip.toString());
server.on("/", [](){
String html = "<html><head>";
html += "<meta name='viewport' content='width=device-width, initial-scale=1.0'>";
html += "<link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css'>";
html += "</head><body>";
html += "<head>";
html += "<meta name='viewport' content='width=device-width, initial-scale=1.0'>";
html += "<style>";
html += "header {";
html += "background: linear-gradient(to right, #006400, #228B22);";
html += "padding: 30px 0;";
html += "text-align: center;";
html += "width: 100%;";
html += "}";
html += "h1 {";
html += "color: #fff;";
html += "font-size: 36px;";
html += "margin-bottom: 20px;";
html += "}";
html += "p {";
html += "color: #fff;";
html += "font-size: 18px;";
html += "margin-bottom: 20px;";
html += "}";
html += "</style>";
html += "</head>";
html += "<header>";
html += "<h1>PENYIRAMAN TANAMAN OTOMATIS</h1>";
html += "<p>Monitoring dan Penyiraman Otomatis Tanaman Anda</p>";
html += "</header>";
html += "<style>";
html += "body {";
html += "background-color: #E0FFFF;";
html += "}";
html += "</style>";
html += "</head><body>";
html += "<table class='table'>";
html += "<thead><tr><th>Jenis Nilai</th><th>Nilai</th></tr></thead>";
html += "<tbody><tr class='success'><td>Kelembaban Tanah</td><td>" + String(moisture_value) + " </td></tr>";
html += "<tr class='danger'><td>Suhu</td><td>" + String(dht.readTemperature()) + " °C</td></tr>";
html += "<tr class='warning'><td>Kelembaban Udara</td><td>" + String(dht.readHumidity()) + " %</td></tr></tbody>";
html += "</table>";
html += "<p><button id='state' class='btn ";
html += waterState ? "btn-danger'>SEDANG MELAKUKAN PENYIRAMAN OTOMATIS" : "btn-success'>SEDANG MELAKUKAN PENYIRAMAN";
html += "</button></p>";
html += "<script>";
html += "document.getElementById('state').addEventListener('click', function() {";
html += "var xhr = new XMLHttpRequest();";
html += "xhr.open('GET', '/state', true);";
html += "xhr.send();";
html += "});";
html += "</script>";
html += "<p style='color: #000; font-size: 10px;'><b>KETERANGAN: Tekan tombol di atas untuk mengaktifkan atau menonaktifkan sistem penyiraman tanaman otomatis</b></p>";
html += "</body></html>";
server.send(200, "text/html", html);
});
server.on("/state", [](){
waterState = !waterState;
digitalWrite(relay, waterState);
});
server.begin();
Serial.println("Server started");
pinMode(relay, OUTPUT);
dht.begin();
}
void loop() {
lcd.clear();// clear previous values from screen
//SUHU
lcd.print("SUHU : ");
lcd.setCursor(7,0);
lcd.print(dht.readTemperature());
lcd.setCursor(12,0);
lcd.print("'C");
//MOISTURE
lcd.setCursor(0,1);
lcd.print("KLBB : ");
lcd.setCursor(7,1);
lcd.print(moisture_value);
delay(1000);
moisture_value = analogRead(34);
if (waterState == 1) {
digitalWrite(relay, HIGH);
}
if(moisture_value > 1300){
digitalWrite(relay, HIGH);
}
else{
digitalWrite(relay, LOW);
}
if (waterState == 0) {
digitalWrite(relay, LOW);
}
server.handleClient();
}