Monitoring Temperature Penetas Telur dengan Sistem Wireless Sensor Network Berbasis Node MCU ESP 8266

Monitoring Temperature Penetas Telur dengan Sistem Wireless Sensor Network Berbasis Node MCU ESP 8266


Disusun Oleh :
   Kun Wibisono             3.32.20.3.11
      Ulul Rahmawati          3.32.20.3.23   

Kelas : EK-3D

Latar Belakang
     Salah satu penerapan teknologi peternakan adalah penggunaan mesin penetas telur atau biasa disebut dengan inkubator penetas telur. Pada dasarnya inkubasi telur merupakan cara yang digunakan untuk memproses perkembangan embrio di dalam telur fertil sampai telur tersebut menetas oleh indukannya. 
    Kebutuhan masyarakat akan ketersediaan daging dan telur ayam akan menjadi suatu masalah jika para peternak tidak sanggup untuk memenuhi permintaan pasar. Dalam kasus ini induk ayam hanya dapat mengerami telurnya maksimal sekitar 10 sampai 12 butir saja. Oleh karenanya digunakanlah mesin tetas telur yang dapat membantu para peternak untuk meningkatkan produktifitas dan daya tetas telur sehingga penetasan menjadi efisien dan banyak. Dengan penggunaan alat ini maka waktu yang seharusnya digunakan induk unggas untuk mengerami telurnya dapat dialihkan untuk bersiap bertelur kembali. Inkubator penetas telur dijual dengan harga dan kapasitas telur yang beragam. Mekanisme dari inkubator ini adalah dengan menghangatkan telur sedemikian rupa seperti pada saat dierami oleh induknya sehingga telur dapat menetas. 
     Untuk menghangatkan telur di dalam alat inkubator secara otomatis biasanya digunakanlah bantuan termostat yang akan menjaga suhu tetap pada batas yang ditentukan. Terdapat dua buah jenis termostat yang dapat kita jumpai yaitu berjenis kapsul dan digital. Mekanisme dari termostat yang menggunakan kapsul adalah ia akan mengembang saat terpapar suhu yang panas hingga pada akhirnya kapsul akan mengenai saklar untuk mematikan penghangat yang biasanya berupa lampu bohlam. Pada saat suhunya menurun maka kapsul akan mengempis dan akan membuka saklar yang menyebabkan pemanas akan menyala kembali. Sedangkan pada termostat digital pembacaan suhu dilakukan dengan menggunakan sensor yang kemudian diolah untuk menyalakan atau mematikan pemanas pada inkubator sesuai dengan setpoint suhu yang telah diberikan.
    Kebutuhan untuk memantau keadaan atau kondisi suatu lingkungan mendorong manusia untuk menciptakan alat yang bisa mengukur atau menampilkan situasi kondisi lingkungan tersebut. Pada penelitian ini dibuatlah alat yang dapat mengirimkan informasi berupa suhu dan kelembaban di dalam inkubator penetas telur dengan menggunakan jaringan internet atau dengan istilah Internet of Things (IoT). 

Tujuan
1. Merancang sistem monitoring temperature penetas telur dengan sistem wireless network berbasis            Node MCU ESP 8266.
2. Membuat alat penetas telur berbasis IoT yang nantinya dapat membantu para peternak unggas                memantau kondisi di dalam inkubator dari mana saja.
3. Mengetahui hasil penggunaan sensor DHT 11 untuk mendeteksi suhu dan kelembaban di dalam            inkubator.

Komponen yang digunakan
1. Mikrokontroler : Node MCU ESP 8266
2. Masukan : Sensor DHT 11
3. Keluaran : Lampu, Kipas, Relay

Software yang digunakan
1. Arduino IDE
2. Telegram

Cara Kerja
Projek ini dimulai dengan mendeteksi suhu dan kelembaban ruang inkubator penetas telur menggunakan sensor DHT 11. Saat sensor mendeteksi suhu ruang inkubator sesuai atau tidak sesuai dengan set point suhu, maka lampu sebagai penghangat ruang inkubator akan menyala. Namun saat suhu dalam ruangan terlalu panas maka lampu sebagai penghangat ruangan akan padam, dan kipas akan menyala untuk menjaga suhu dalam inkubator, sistem akan melanjutkan informasi ke server inkubator, lalu informasi dari server akan diteruskan ke telegram, dan memberikan informasi melalui aplikasi telegram. Juga informasi tersebut ditampilkan dalam LCD.

Link PPT : 

https://docs.google.com/presentation/d/15tQ01KTMnhhCDfVMhOHfhh7Q93eFw0uA/edit?usp=share_link&ouid=113339270901899086561&rtpof=true&sd=true

Power Point



















 

Lampiran Program :

#include <ESP8266WiFi.h>                         //Library ESP8266

#include <WiFiClientSecure.h>

#include <UniversalTelegramBot.h>               //Library Telegram Bot

#include "DHT.h"  

#include <Wire.h> 

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

//Library DHT11


#define DHTPIN  14

#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);


// Initialize Wifi connection to the router

char ssid[] = "Koen";                          // diisi nama wifi

char password[] = "12341234";                 // diisi password wifi


// Initialize Telegram BOT

#define BOTtoken "5812788910:AAHeOFYmed_DzvmFQBKuNTE1sG95jSnv6So"

WiFiClientSecure client;

UniversalTelegramBot bot(BOTtoken, client);


int lampu = 13;

int kipas = 12;

int botRequestDelay = 100;

unsigned long lastTimeBotRan;

void handleNewMessages(int numNewMessages) {

  Serial.println("handleNewMessages");

  Serial.println(String(numNewMessages));

for (int i=0; i<numNewMessages; i++) {

 String chat_id = String(bot.messages[i].chat_id);

 String text = bot.messages[i].text;

 String from_name = bot.messages[i].from_name;

 if (from_name =="") from_name ="Guest";

 

 //Cek Command untuk setiap aksi

if (text =="/start") {

 String welcome ="Gimana Bang"+ from_name +"?\n";

 welcome +="Coba deh comment dibawah\n";

 welcome +="/cek : cek suhu, kelembapan, status relay\n";

 welcome +="/on : menyalakan alat";

 welcome +="/off : mematikan alat";

 bot.sendMessage(chat_id, welcome,"Markdown");

}

if (text =="/off"){

    int t = 0;

    int h = 0;

    digitalWrite(lampu, LOW);

    digitalWrite(kipas, LOW);

    String n ="Mematikan sistem";

    bot.sendMessage(chat_id, n);

   }

//Cek Pembacaan Sensor DHT11

if (text =="/cek") {

 int t = dht.readTemperature()-2;

 int h = dht.readHumidity();

 String temp ="Suhu saat ini :";

 temp += t;

 temp +=" °C";

 temp +="\nKelembaban:";

 temp += h;

 temp +=" %";

 temp += "\nKondisi Lampu :";

boolean a=digitalRead(lampu);

  if(a)temp +="menyala.";

  else temp +="mati.";

  temp +="\nKondisi Kipas :";

  boolean b=digitalRead(kipas);

  if(b)temp +=" menyala";

  else temp +=" mati";

  bot.sendMessage(chat_id,temp);

 }

}

}

void setup() {

 lcd.backlight();

 lcd.begin();

 Serial.begin(9600);

 dht.begin();

 client.setInsecure();


 // Set WiFi to station mode and disconnect from an AP if it was Previously

 // connected

 WiFi.mode(WIFI_STA);

 WiFi.disconnect();

 delay(100);

 pinMode(lampu, OUTPUT);

 pinMode(kipas, OUTPUT);


 // 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);

 digitalWrite(lampu,LOW);

 digitalWrite(kipas,LOW);

}


Serial.println("");

Serial.println("WiFi connected");

Serial.print("IP address:");

Serial.println(WiFi.localIP());


  lcd.setCursor(0,0);

  lcd.print("Kelompok 9");

  lcd.setCursor(3,1);

  lcd.print("INKUBATOR");

  delay(1000);

  lcd.clear();


  lcd.setCursor(2,0);

  lcd.print("Di Buat Oleh");

  lcd.setCursor(2,1);

  lcd.print("Kun Ulul");

  delay(1000);

  lcd.clear();

}


void loop() {

 float t = dht.readTemperature()-2;

 float h = dht.readHumidity();

//Kondisi relay aktif

 if(t<32){

  digitalWrite(lampu,HIGH);

  delay(50);

  digitalWrite(kipas,LOW);

}

else if(t>=32){

 digitalWrite(lampu,LOW);

 delay(50);

 digitalWrite(kipas,HIGH);

}


 Serial.print("Humidity: ");

    Serial.print(h);

    Serial.print(" %t");

    

    Serial.print("Temperature: "); 

    Serial.print(t);

    Serial.println(" *C");


  lcd.setCursor(0,0);

  lcd.print("Humi: "); 

  lcd.print(h);

  lcd.print(" %      ");

  lcd.setCursor(0,1);

  lcd.print("Temp: "); 

  lcd.print(t);

  lcd.print(" C      ");   

  

if(millis() > lastTimeBotRan + botRequestDelay){

 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);

}

lastTimeBotRan = millis();

}

}











Komentar