AI Assistant
Detail Karya Portofolio

MONITORING SUHU DAN KELEMBABAN BERBASIS WEBSERVER

Muhammad Arya Ismail Oleh: Muhammad Arya Ismail

Ringkasan Portofolio

Pada perkembangan teknologi saat ini salah satunya adalah sistem monitoring terdapat banyak jenis sistem monitoring salah satunya adalah sistem monitoring suhu dan kelembaban, monitoring suhu dan kelembaban merupakan alat yang digunakan untuk mendeteksi suhu serta kelembaban pada sebuah ruangan dengan menggunakan web server. Dengan menggunakan web server kita dapat memonitoring suhu serta kelembaban ruangan atau rumah kita dari handphone.   

Deskripsi & Detail Proyek

Web server adalah sebuah software (perangkat lunak) yang memberikan layanan berupa data. Berfungsi untuk menerima permintaan HTTP atau HTTPS dari klien atau kita kenal dengan web browser (Chrome, Firefox). Selanjutnya ia akan mengirimkan respon atas permintaan tersebut kepada client dalam bentuk halaman web. 

Seperti yang sudah dijelaskan di atas bahwa teknologi yang satu ini berfungsi menerima permintaan HTTP atau HTTPS dari klien atau kita kenal dengan web browser (Chrome, Firefox). Ia juga akan mengirimkan respon atas permintaan kepada client dalam bentuk halaman web yang umumnya HTML.Jika berbicara secara detail, maka Web Server memiliki peran dalam memproses berbagai data yang diminta oleh klien (web browser). Kemudian ia memberikan hasil atau jawaban berupa dokumen, video, foto, atau beragam bentuk berkas lainnya.

Adapun kita pecah menjadi beberapa bagian fungsi dari web server:

  1.    Membersihkan berbagai cache yang terdapat pada penyimpanan serta semua dokumen yang tidak terpakai lagi.Melakukan                 pemeriksaan terhadap sistem security yang berasal dari permintaan HTTP berdasarkan request klien atau web browser.
  2.   Menyediakan data berdasarkan request atau permintaan yang masuk agar dapat menjamin keamanan sistem yang berjalan    dengan lancar.

Protokol HTTP dan HTTPS digunakan web server untuk dapat berkomunikasi dengan klien. Dengan protokol HTTP dan HTTPS, komunikasi antar server dengan klien dapat saling terhubung serta dapat dimengerti dengan mudah.

adapun program yang saya gunakan sebagai berikut :

Program

 

#include <WiFi.h>

#include <WebServer.h>

#include "DHT.h"

 

const char* ssid = "tempathotspot";

const char* password = "123456789";

 

const int DHT_PIN = 4; // Pin data sensor DHT11

const int RELAY_PIN = 2; // Pin relay yang terhubungdengan LED

 

DHT dht(DHT_PIN, DHT11);

WebServerserver(80);

 

void handleRoot();

void handleData();

 

void setup() {

Serial.begin(115200);

 

pinMode(RELAY_PIN, OUTPUT);

digitalWrite(RELAY_PIN, LOW); // LED matisaatawal program dijalankan

 

WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {

delay(1000);

Serial.println("KoneksiWiFi...");

  }

 

Serial.println("KoneksiWiFiberhasil!");

Serial.println(WiFi.localIP());

 

dht.begin();

 

server.on("/", handleRoot);

server.on("/data", handleData); // Endpoint baruuntuk data real-time

server.begin();

}

 

void loop() {

server.handleClient();

 

  float temperature = dht.readTemperature();

 

  if (temperature > 30) {

digitalWrite(RELAY_PIN, HIGH); // LED menyalajikasuhu>= 31°C

  } else if (temperature <= 30) {

digitalWrite(RELAY_PIN, LOW); // LED matijikasuhu< 30°C

  }

}

 

void handleRoot() {

  String webpage = "<html><body>";

  webpage += "<h1>Monitoring Suhu dan Kelembaban</h1>";

  webpage += "<p id='temperature'>Suhu: </p>";

  webpage += "<p id='humidity'>Kelembaban: </p>";

  webpage += "<script>";

  webpage += "setInterval(function() {";

  webpage += "fetch('/data').then(response =>response.json()).then(data => {";

  webpage += "document.getElementById('temperature').innerHTML = 'Suhu: ' + data.temperature + ' °C';";

  webpage += "document.getElementById('humidity').innerHTML = 'Kelembaban: ' + data.humidity + ' %';";

  webpage += "});";

  webpage += "}, 2000);"; // Update setiap 2 detik

  webpage += "</script>"; // Added the missing closing tag

  webpage += "</body></html>";

 

server.send(200, "text/html", webpage);

}

 

void handleData() {

  float temperature = dht.readTemperature();

  float humidity = dht.readHumidity();

 

  String json = "{"temperature": " + String(temperature) + ", "humidity": " + String(humidity) + "}";

server.send(200, "application/json", json);

}