Sistem Penyiraman Tanaman Otomatis dan Manual Berbasis IoT Telegram
Seiring pertukaran masa dan pergeseran waktu aktivitas manusia kian lama semakin disibukkan oleh teknologi dalam berbagai aspek, baik itu urusan pekerjaaan, rumah tangga, bisnis, dan lainnya .Tetapi dengan berkembangnya teknologi, Internet Of Things (IoT) menjadi sebuah solusi untuk membantu aktivitas manusia dalam mengotrol sesuatu dari jarak jauh. Hal ini dapat membantu kehidupan sehari-hari menjadi lebih mudah. Salah satu contoh kecilnya yaitu menyiram tanaman dari jarak jauh dengan menggunakan telegram. Bagaimana caranya ? Cekidot !!!
Alat yang dibutuhkan :
1. NodeMCU v3
2. Relay 5v
3. Adaptor 5v (Charger handphone) beserta USB kabel
4. Soil Moisture Sensor
5. Pompa Air DC/AC Aquarium/kolam
Bahan yang digunakan :
1. Selang Atau Pipa
2. Drum atau bak Air
3. Tanaman
Software yang digunakan :
1. Arduino IDE terbaru download di sini
2. Syaratnya sudah terinstal Board ESP8266 versi 2.4.1, jika belum cari di sini
3. Library Universal Telegram Bot download di sini
Tahap Wiring
Pada tahap ini kita akan menyambungkan kabel pada board NodeMCU, agar lebih mudahnya lihat skema fritzing dibawah ini :
Jika ingin file fritzingnya silahkan download di sini
Rangkai alat kira kira bentuknya seperti di bawah ini, tetapi terserah selera anda sih
Ini kodingannya :
#include "ESP8266WiFi.h"
#include "WiFiClientSecure.h"
#include "UniversalTelegramBot.h"
// Inisialisasi koneksi Wifi ke router
char ssid[] = "isi nama wifi anda"; // Nama WIFI
char password[] = "isi passwor wifi anda"; // Password Wifi
// Initialize Telegram BOT
#define BOTtoken "isi token dari bot father" // Bot Token Anda (Dapatkan dari Botfather)
#define CHAT_ID "isi dari @getid"
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);
int Bot_mtbs = 1000;
long Bot_lasttime;
bool Start = false;
bool status = false;
#define pompa 16 //atau pada nodeMCU D0
#define moisture A0
int kelembaban;
int pompaStatus = 0;
int statusMode = 0;
void handleNewMessages(int numNewMessages) {
Serial.println("handleNewMessages");
Serial.println(String(numNewMessages));
for (int i=0; i 80 %";
bot.sendMessage(chat_id, otomatis);
statusMode = 1;
}
if (text == "/manual") {
String manual = "Mode Manual Diaktifkan\n\n";
manual += "/pumpOn : Untuk Menyalakan Pompa\n";
manual += "/pumpOff : Untuk Mematikan Pompa\n";
manual += "/info : Untuk Informasi Alat\n";
bot.sendMessage(chat_id,manual, "");
statusMode = 0;
}
if (text == "/pumpOn") {
digitalWrite(pompa, HIGH); // Menghidupkan Pompa
bot.sendMessage(chat_id, "Pompa dinyalakan", "");
}
if (text == "/pumpOff") {
digitalWrite(pompa, LOW); // Mematikan Pompa
bot.sendMessage(chat_id, "Pompa dimatikan", "");
}
if (text == "/info") {
sensor();
String info = "Kelembaban tanah saat ini adalah :\n";
info += kelembaban;
info += "%.\n";
bot.sendMessage(chat_id, info);
{
if(pompaStatus){ // Memeriksa Status Pompa, Hidup/Mati
bot.sendMessage(chat_id, "Saat Ini : Pompa Menyala", "");
} else{
bot.sendMessage(chat_id, "Saat Ini : Pompa Mati", "");
}
}
{
if(statusMode){ // Memeriksa Status Pompa, Hidup/Mati
bot.sendMessage(chat_id, "Mode Otomatis : Aktif", "");
} else{
bot.sendMessage(chat_id, "Mode Manual : Aktif", "");
}
}
}
if (text == "/start") { // Text Pembuka saat Program dijalankan
String welcome = "SELAMAT DATANG DI TEKNIKTAMBANG.TECH.\n\n";
welcome += "PENYIRAM TANAMAN OTOMATIS DAN MANUAL BERBASIS IOT TELEGRAM\n\n";
welcome += "OLEH : TEKNIK TAMBANG B\n\n";
welcome += "SILAHKAN PILIH PERINTAH DI BAWAH INI : \n\n";
welcome += "/start : Untuk Memulai Program\n";
welcome += "/otomatis : Untuk Mode Otomatis\n";
welcome += "/manual : Untuk Mode Manual\n\n";
welcome += "Mode Manual Saat Ini : Aktif \n";
bot.sendMessage(chat_id, welcome, "Markdown");
}
}
}
void setup() {
pinMode(pompa, OUTPUT);
digitalWrite(pompa, LOW);
Serial.begin(115200);
// Set WiFi to station mode and disconnect from an AP if it was Previously
// connected
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
// attempt to connect to Wifi network:
Serial.print("Connecting Wifi: ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("");
Serial.println("WiFi connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
statusMode = 0;
}
void sensor (){
kelembaban = analogRead(moisture); // Membaca Nilai Sensor Kelembaban
kelembaban= map(kelembaban,882,487,0,100); // Mengubah Nilai Sensor Dalam Bentuk Persen
if(kelembaban<0 0="" 100="" d="" else="" hanya="" if="" kelembaban="" membatasi="" nilai="" pada="" s="" sensor="">100)kelembaban=100;}
void loop() {
sensor();
if (statusMode){
if(kelembaban<=65){digitalWrite(pompa, HIGH); // Menghidupkan Pompa Otomatis Jika Kelembaban < dari 65%
pompaStatus = 1;
}
else if (kelembaban>=80){digitalWrite(pompa, LOW); // Mematikan Pompa Otomatis Jika Kelembaban > dari 80%
pompaStatus = 0;
}
if (kelembaban>=59&&kelembaban<=70){
String hidup = "Saat Ini : Pompa Menyala\n\n";
bot.sendMessage(CHAT_ID, hidup);
}
else if(kelembaban>=79&&kelembaban<=90){
String mati = "Saat Ini : Pompa Mati\n\n";
bot.sendMessage(CHAT_ID, mati);
}
}
else {}
if (millis() > Bot_lasttime + Bot_mtbs) {
int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
while(numNewMessages) {
Serial.println("got response");
handleNewMessages(numNewMessages);
numNewMessages = bot.getUpdates(bot.last_message_received + 1);
}
}
}
0>
DONASI VIA PAYPAL
Bantu berikan donasi jika artikelnya dirasa bermanfaat. Donasi akan digunakan untuk memperpanjang domain https://perpustakaantambang.blogspot.com/. Terima kasih.
Newer Posts
Newer Posts
Older Posts
Older Posts
scriptnya kok gamau ya gan?
ReplyDeletenggak mau dmnanya gan
Deleteom ada channel youtube nya?
ReplyDeletehttps://www.youtube.com/channel/UCcPP-ApWCVdZ58B5wOmChQQ
Deletetapi blum buat tutorial