Monitoring Suhu dan Kelembaban Ruang Budidaya Jamur Tiram

Indobot Update

monitoring suhu dan kelembapan budidaya jamur tiram dengan webserver

Halo Sahabat Indobot! Kali ini kita akan membuat sebuah monitoringn suhu dan kelembaban untuk budidaya jamur tiram

Tau ga? Budidaya Jamur Tiram  tidak bisa sembarangan lo. Budidaya jamur tiram membutuhkan perawatan yang cukup ekstra. Salah satu yang harus tetap dipantau adalah suhu dan kelembaban dari ruangannya. Bagian ini terkadang dapat berubah-ubah tergantung dengan kondisi di lingkungannya. Ketika kita berada dalam 1 wilayah budidaya, kita tidak bisa untuk terus memantau kondisi ke lokasinya secara langsung. Jadi kita membutuhkan informasi suhu dan kelembaban yang dapat di update di smartphone atau kompeter di kantor budidaya tersebut.

Monitoring Suhu dan Kelembapan Jamur Tiram

Nah. Untuk mengatasi hal tersebut, kita dapat menggunakan webserver untuk memantau suhu dan kelembaban. Webserver ini akan dihubungkan dengan NodeMCU ESP8266 yang dapat membaca sensor DHT 11 sebagai sensor suhu dan kelembaban. Webserver ini, nantinya dapat dipantau melalui smartphone atau komputer oleh siapapun yang mengetahui IP Address dari NodeMCU. Bagaimana caranya? yuk kita simak.

monitoring suhu dan kelembapan jamur tiram

Alat dan Bahan

Alat dan bahan untuk project ini adalah sebagai berikut.

  1. Software Arduino ID
  2. NodeMCU ESP8266 1
  3. DHT22 1
  4. Projectboard 1
  5. Kabel jumper Secukupnya

 

Belajar Elektronika, Arduino, dan IoT step by step dengan bantuan tangga belajar? Daftar sekarang dan dapatkan PROMO

Rangkaian

Susun device di atas menjadi rangkaian seperti berikut. Pastikan semua terhubung dengan baik.

rangkaian Monitoring Suhu dan Kelembaban Ruang Budidaya Jamur Tiram dengan WebServer

baca juga: Monitoring Suhu dan Kelembaban Ruangan Budidaya Jamur Tiram dengan Sensor DHT22

Program

Tahap selanjutnya adalah penulisan program pada Arduino IDE. Buatlah program seperti berikut. Perhatikan keterangan (comment) untuk memahami program dengan baik.

Jangan lupa untuk memasukkan terlebih dahulu library DHT, Adafruit Sensor, ESPAsyncWebServer, dan ESPAsyncTCP.

 
/*********
 Menampilkan Suhu dan kelembaban dengan webserver
 oleh Rui Santos
*********/

#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <Hash.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>

// Masukan hotspot dan passwordnya 
const char* ssid = "***************";
const char* password = "***********";

#define DHTPIN A0     // pin DHT menggunakan pin A0


#define DHTTYPE    DHT22

DHT dht(DHTPIN, DHTTYPE);

// Variabel untuk suhu dan kelembaban
float t = 0.0;
float h = 0.0;

AsyncWebServer server(80);

unsigned long previousMillis = 0;  

// update pembacaan DHT
const long interval = 5000;  

const char index_html[] PROGMEM = R"rawliteral(
<!DOCTYPE HTML><html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">
  <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cstyle%3E%0A%20%20%20%20html%20%7B%0A%20%20%20%20%20font-family%3A%20Arial%3B%0A%20%20%20%20%20display%3A%20inline-block%3B%0A%20%20%20%20%20margin%3A%200px%20auto%3B%0A%20%20%20%20%20text-align%3A%20center%3B%0A%20%20%20%20%7D%0A%20%20%20%20h2%20%7B%20font-size%3A%203.0rem%3B%20%7D%0A%20%20%20%20p%20%7B%20font-size%3A%203.0rem%3B%20%7D%0A%20%20%20%20.units%20%7B%20font-size%3A%201.2rem%3B%20%7D%0A%20%20%20%20.dht-labels%7B%0A%20%20%20%20%20%20font-size%3A%201.5rem%3B%0A%20%20%20%20%20%20vertical-align%3Amiddle%3B%0A%20%20%20%20%20%20padding-bottom%3A%2015px%3B%0A%20%20%20%20%7D%0A%20%20%3C%2Fstyle%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;style&gt;" title="&lt;style&gt;" />
</head>
<body>
  <h2>Ruang Jamur Tiram</h2>
  <p>
    <i class="fas fa-thermometer-half" style="color:#059e8a;"></i> 
    <span class="dht-labels">Temperature</span> 
    <span id="temperature">%TEMPERATURE%</span>
    <sup class="units">&deg;C</sup>
  </p>
  <p>
    <i class="fas fa-tint" style="color:#00add6;"></i> 
    <span class="dht-labels">Humidity</span>
    <span id="humidity">%HUMIDITY%</span>
    <sup class="units">%</sup>
  </p>
</body>
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%3E%0AsetInterval(function%20(%20)%20%7B%0A%20%20var%20xhttp%20%3D%20new%20XMLHttpRequest()%3B%0A%20%20xhttp.onreadystatechange%20%3D%20function()%20%7B%0A%20%20%20%20if%20(this.readyState%20%3D%3D%204%20%26%26%20this.status%20%3D%3D%20200)%20%7B%0A%20%20%20%20%20%20document.getElementById(%22temperature%22).innerHTML%20%3D%20this.responseText%3B%0A%20%20%20%20%7D%0A%20%20%7D%3B%0A%20%20xhttp.open(%22GET%22%2C%20%22%2Ftemperature%22%2C%20true)%3B%0A%20%20xhttp.send()%3B%0A%7D%2C%2010000%20)%20%3B%0A%0AsetInterval(function%20(%20)%20%7B%0A%20%20var%20xhttp%20%3D%20new%20XMLHttpRequest()%3B%0A%20%20xhttp.onreadystatechange%20%3D%20function()%20%7B%0A%20%20%20%20if%20(this.readyState%20%3D%3D%204%20%26%26%20this.status%20%3D%3D%20200)%20%7B%0A%20%20%20%20%20%20document.getElementById(%22humidity%22).innerHTML%20%3D%20this.responseText%3B%0A%20%20%20%20%7D%0A%20%20%7D%3B%0A%20%20xhttp.open(%22GET%22%2C%20%22%2Fhumidity%22%2C%20true)%3B%0A%20%20xhttp.send()%3B%0A%7D%2C%2010000%20)%20%3B%0A%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;script&gt;" title="&lt;script&gt;" />
</html>)rawliteral";

// menampilkan temperatur dan kelembaban
String processor(const String& var){
  //Serial.println(var);
  if(var == "TEMPERATURE"){
    return String(t);
  }
  else if(var == "HUMIDITY"){
    return String(h);
  }
  return String();
}

void setup(){
  // serial monitor menggunakan 115200
  Serial.begin(115200);
  dht.begin();
  
  // konek dengan wifi
  WiFi.begin(ssid, password);
  Serial.println("Connecting to WiFi");
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println(".");
  }

  // menampilkan IP Address
  Serial.println(WiFi.localIP());

  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
    request->send_P(200, "text/html", index_html, processor);
  });
  server.on("/temperature", HTTP_GET, [](AsyncWebServerRequest *request){
    request->send_P(200, "text/plain", String(t).c_str());
  });
  server.on("/humidity", HTTP_GET, [](AsyncWebServerRequest *request){
    request->send_P(200, "text/plain", String(h).c_str());
  });

  // mengawali server
  server.begin();
}
 
void loop(){  
  //millis digunakan untuk menjalankan program tanpa mempengaruhi
  //kecepatan program lain
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;
    float newT = dht.readTemperature();
    if (isnan(newT)) {
      Serial.println("Failed to read from DHT sensor!");
    }
    else {
      t = newT;
      Serial.println(t);
    }
    // Read Humidity
    float newH = dht.readHumidity(); 
    if (isnan(newH)) {
      Serial.println("Failed to read from DHT sensor!");
    }
    else {
      h = newH;
      Serial.println(h);
    }
  }
}

Masukkan ssid dan passwordnya dengan hotspot yang anda gunakan. Setelah program selesai di upload, buka bagian serial monitor untuk melihat nilai IP Address untuk mengakses NodeMCU. Copy IP Address tersebut, kemudian di paste ke website untuk menampilkan webserver. Variabel h dan t adalah variabel yang digunakan untuk membaca hasil dari sensor suhu dan kelembaban yang ada pada ruangan budidaya jamur.

baca juga: Tutorial Keamanan Rumah dengan ArduCam dan NodeMCU ESP8266

Hasil pembacaan ini dapat memantau kondisi suhu dan kelembaban ruangan. Jadi jika ada yang tidak sesuai dengan kondisi seharusnya, kita bisa langsung ke lokasi untuk menyesuaikan suhu dan kelembabannya.

Bagaimana? tertarik untuk mencoba? kuy langsung bikin.

Mau belajar elektronika dasar? Arduino? atau Internet of Things? Ikuti kursus online Indobot Academy!

Ingin Tahu Program Kami Lebih Lanjut?

Silahkan isi Formulir Dibawah Ini untuk Diskusi dengan Tim Indobot Academy.

Baca Juga

Bagikan:

Tags

Tinggalkan komentar

whatsapp