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);
    }
  }
}
Baca Juga
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

More posts

4 comments