Sistem Monitoring Suhu Ruang Berbasis IoT
Giga Fajar Septanto1, Nisrina
Mayla Wibowo2
Program Studi D-3 Teknik Elektronika, Politeknik Negeri Semarang
Jl. Prof. H. Soedarto, SH, Tembalang, Semarang, Indonesia
1 gigafajar26@gmail.com
2nisrinamayla18@gmail.com
Abstrak
- Suhu ruangan memiliki peran penting dalam menciptakan fungsi ruangan
yang optimal. Oleh karena itu suhu ruangan penting untuk dijaga sesuai dengan
kegunaannya. Suhu ruangan standar bagi manusia akan menyebabkan manusia
tersebut dapat beraktivitas dengan baik.
Tujuan dari pembuatan sistem monitoring suhu ruang adalah untuk menciptakan
alat yang dapat mengatur suhu ruangan agar tetap stabil serta dapat memahami
cara kerja alat tersebut. Tahapan dari pembuatan sistem monitoring suhu ruang
yaitu melakukan studi literatur dengan melakukan kajian berdasarkan data yang
relevan dari sumber-sumber yang ada. Selanjutnya dilakukan perancangan alat
dengan proses menyiapkan komponen yang dibutuhkan, membuat diagram alir,
membuat diagram skematik, menyusun program, perangkaian, dan uji coba. Sistem ini
menggunakan Node MCU ESP 8266 sebagai pemroses. Cara kerja alat ini adalah
dengan mendeteksi suhu ruang, ketika suhu telah di atas 28°C maka kipas akan
menyala dan ketika di bawahnya akan mati. Namun kipas hanya akan menyala ketika
di dalam ruangan terdapat orang, begitu juga dengan nyala lampu. Lalu melalui
website dapat dipantau suhu, kelembapan, dan kondisi ruangan berupa nyala lampu
dan kipas. Berdasarkan uji coba kesimpulan bahwa sistem monitoring suhu ruang
ini dapat bekerja sesuai yang diharapkan.
Kata
kunci : Suhu, Kelembapan, NodeMCU ESP8266, Iot
Abstract
- Room temperature has an important role in creating optimal room function.
Therefore it is important to maintain the room temperature according to its
use. Standard room temperature for humans will cause these humans to be able to
move properly. The purpose of making a room temperature monitoring system is to
create a tool that can regulate room temperature so that it remains stable and
can understand how the tool works. The stages of making a room temperature
monitoring system are conducting a literature study by conducting a study based
on relevant data from existing sources. Furthermore, the design of the tool is
carried out by the process of preparing the required components, making
flowcharts, making schematic diagrams, compiling programs, assembling, and
testing. This system uses NodeMCU ESP 8266 as the processor. The way this tool
works is by detecting the room temperature, when the temperature is above 28°C
the fan will turn on and when it is below it will turn off. But the fan will
only turn on when there are people in the room, as well as the lights. Then
through the website you can monitor temperature, humidity, and room conditions in
the form of lights and fans. Based on the trial, the conclusion is that this
room temperature monitoring system can work as expected..
Keywords:
Temperature, Humidity, NodeMCU ESP8266, Iot
I.
PENDAHULUAN
1.1 LATAR
BELAKANG
Suhu ruangan penting untuk dijaga sesuai dengan penggunaannya,
misalnya suhu ruang penyimpanan obat, ruang penyimpanan alat kesehatan, ruang
server, termasuk tempat tinggal. Suhu ruangan yang baik akan menyebabkan fungsi
ruangan tersebut menjadi optimal. Suhu ruangan standar bagi manusia akan
menyebabkan manusia tersebut dapat beraktivitas dengan baik. Oleh sebab itu,
perlu dilakukan pemantauan suhu ruangan. Salah satu upaya untuk mewujudkannya
adalah dengan menggunakan kipas angin untuk menjaga sirkulasi udara dalam
ruangan sehingga suhu ruangan optimal dapat tercapai. Kipas angin tersebut
dikontrol menggunakan mikrokontroler NodeMCU ESP8266 agar bekerja pada suhu
yang telah ditentukan. Lalu agar dapat dipantau dari jarak jauh, suhu ruangan
yang terdeteksi dan kondisi kipas angin ditampilkan pada website yang
telah dibuat.
1.2 RUMUSAN
MASALAH
Dari
latar belakang tersebut diperoleh rumusan masalah sebagai berikut:
1. Sensor
apa yang digunakan pada projek akhir ini?
2. Bagaimana
cara kerja projek akhir yang sudah dibuat?
1.3
TUJUAN
Tujuan
dari pembuatan sistem monitoring ini adalah sebagai berikut:
1. Membuat
alat yang dapat mengatur suhu ruangan agar tetap stabil.
2. Memahami
cara kerja alat yang telah dibuat.
1.4
BATASAN MASALAH
Pada
projek akhir yang kami rancang terdapat beberapa batasan masalah :
1. Website masih
local host.
2. Tidak
dapat diatur dengan saklar mekanis karena semua dikontrol secara otomatis.
2. Tidak dapat
mengontrol kecepatan pendingin.
II. TINJAUAN
PUSTAKA
Penjelasan
dan uraian teori penunjang yang digunakan dalam membuat alat ini diperlukan
untuk mempermudah pemahaman tentang cara kerja rangkaian maupun dasar-dasar
perencanaan pembuatan alat.
A. Sensor
DHT11
Sensor
DHT11 adalah module sensor yang berfungsi untuk mensensing objek suhu dan
kelembaban yang memiliki output tegangan analog yang dapat diolah lebih lanjut
menggunakan mikrokontroler. Module sensor ini tergolong kedalam elemen resistif
seperti perangkat pengukur suhu seperti contohnya yaitu NTC. Kelebihan dari
module sensor ini dibanding module sensor lainnya yaitu dari segi kualitas
pembacaan data sensing yang lebih responsif yang memliki kecepatan dalam hal
sensing objek suhu dan kelembaban, dan data yang terbaca tidak mudah
terinterverensi.
Sensor
DHT11 pada umumya memiliki fitur kalibrasi nilai pembacaan suhu dan kelembaban
yang cukup akurat dengan kemampuan mengukur suhu 0°C – 50°C ±1°C dan kelembapan 20% –
90% ±1%. Sensor ini digunakan untuk mendeteksi suhu ruangan. Berikut
adalah gambar sensor DHT11, dapat dilihat pada Gambar 1.
Gambar 1. Sensor DHT11
B. Sensor
Ultrasonik
Sensor
ultrasonik adalah sebuah sensor yang berfungsi untuk mengubah besaran fisis
(bunyi) menjadi besaran listrik dan sebaliknya. Cara kerja sensor ini
didasarkan pada prinsip dari pantulan suatu gelombang suara sehingga dapat
dipakai untuk menafsirkan eksistensi (jarak) suatu benda dengan frekuensi
tertentu. Disebut sebagai sensor ultrasonik karena sensor ini menggunakan gelombang
ultrasonik (bunyi ultrasonik).
C. NodeMCU
ESP8266
NodeMCU
adalah sebuah board elektronik yang berbasis chip ESP8266 dengan kemampuan
menjalankan fungsi mikrokontroler dan juga koneksi internet (WiFi). Terdapat
beberapa pin I/O sehingga dapat dikembangkan menjadi sebuah aplikasi monitoring
maupun controlling pada proyek IoT. NodeMCU ESP8266 dapat deprogram dengan
compiler-nya Arduino, menggunakan Arduino IDE. Bentuk fisik dari NodeMCU ESP
8266 terdapat port USB (mini USB) sehingga akan memudahkan dalam pemrogramannya.
NodeMCU ESP8266 merupakan modul turunan pengembangan dari modul platform IoT
(Internet of Things) keluarga ESP8266 tipe ESP-12. Secara fungsi modul ini
hampir menyerupai dengan platform modul Arduino, tetapi yang membedakan yaitu
dikhususkan untuk “Connected to Internet“.
D. Lampu LED
Lampu LED
yang digunakan berdaya 5W yang menyala ketika di dalam ruang terdapat orang.
Mendapat catu daya 220 VAC dengan kontrol relay.
E. Kipas
Angin DC
Bekerja
dengan kontrol relay pada suhu di atas suhu ruang. Berfungsi menjaga sirkulasi
udara dalam ruang.
F. Website Node-Red
Node-RED
adalah suatu alat pemograman untuk menghubungkan perangkat-perangkat keras,
API, dan layanan online dengan cara yang baru dan menarik. Node-RED memberikan
editor berbasis browser yang memudahkan pengguna untuk menghubungkan flow
dengan penggunaan node yang luas di dalam palette yang dapat langsung
diterapkan dengan satu klik.
G. Webcam
Webcam adalah
kependekan dari web camera yang merupakan perangkat
kamera digital untuk dihubungkan ke komputer atau laptop. Pada alat ini,
webcam berfungsi untuk menangkap gambar dalam ruangan selain itu agar dapat
memantau kerja lampu dan kipas apakah sudah bekerja sesuai dengan fungsinya
III. PERANCANGAN
ALAT
3.1 KOMPONEN
YANG DIGUNAKAN
Masukan: sensor DHT11,
sensor ultrasonic, webcam
Pemroses: NodeMCU ESP8266
Luaran: lampu LED, kipas
angin DC, website
Lainnya: modul relay, terminal
blok, papan sirkuit
3.2
DIAGRAM ALIR
3.3
DIAGRAM BLOK
3.4
DIAGRAM SKEMATIK
3.5
DIAGRAM PENGAWATAN
3.6 PROGRAM
#include <ArduinoJson.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClient.h>
#include <DHT.h>
#include <PubSubClient.h>
WiFiClient espClient;
PubSubClient client(espClient);
#define e_echoPin1 D7 //echo pin 11
#define t_trigPin1 D8 //Trigger pin 10
#define e_echoPin2 D5 //echo pin 9
#define t_trigPin2 D6 //Trigger pin 8
#define Relay1 D0
//Pendingin
#define Relay2 D1
//Lampu
#define DEBUG_SW 1
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16,2);
long data_a=0,data_b=0;
int jumlah1=0, jumlah2=0;
int hasil = 0;
String kipas, lampu;
DHT dht(D4, DHT11);
const char* ssid = "gg";
const char* password = "qwertyuiop";
const char* mqtt_server = "192.168.43.206";
const char* serverName = "http://192.168.43.206:1880/update-sensor";
unsigned long lastTime = 0;
unsigned long timerDelay = 30;
#define sub1 "device1/reset"
#define pub1 "device1/reset/pub"
unsigned long lastMsg = 0;
#define MSG_BUFFER_SIZE (50)
char msg[MSG_BUFFER_SIZE];
void ultra_read(int pin_t,int pin_e,long &ultra_time){
long time;
pinMode(pin_t,OUTPUT);
pinMode(pin_e,INPUT);
digitalWrite(pin_t,LOW);
delayMicroseconds(2);
digitalWrite(pin_t,HIGH);
delayMicroseconds(10);
digitalWrite(pin_t,LOW);
time=pulseIn (pin_e,HIGH);
ultra_time = time / 29 / 2;
}
void setup_wifi() {
delay(10);
Serial.println();
Serial.print("Connecting
to ");
Serial.println(ssid);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
randomSeed(micros());
Serial.println("");
Serial.println("WiFi
connected");
Serial.println("IP
address: ");
Serial.println(WiFi.localIP());
}
void callback(char* topic, byte* payload, unsigned int length)
{
Serial.print("Message
arrived [");
Serial.print(topic);
Serial.print("]
");
if (strstr(topic, sub1))
{
for (int i = 0; i < length; i++)
{
Serial.print((char)payload[i]);
}
Serial.println();
// Tombol
Reset Jumlah Orang
if ((char)payload[0] == '1')
{
hasil = 0;
}
}
}
void reconnect() {
while (!client.connected()) {
Serial.print("Attempting
MQTT connection...");
if (client.connect("ESP8266_11")) {
Serial.println("connected");
client.subscribe(sub1);
}
else {
Serial.print("failed,
rc=");
Serial.print(client.state());
Serial.println("
try again in 5 seconds");
delay(5000);
}
}
}
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
pinMode(Relay1, OUTPUT);
digitalWrite(Relay1, HIGH);
pinMode(Relay2, OUTPUT);
digitalWrite(Relay2, HIGH);
setup_wifi();
client.setServer(mqtt_server, 1883);
client.setCallback(callback);
}
void loop() {
if ((millis() - lastTime) > timerDelay)
{
if (!client.connected())
{
reconnect();
}
client.loop();
if(WiFi.status()== WL_CONNECTED){
WiFiClient client;
HTTPClient http;
http.begin(client, serverName);
ultra_read(t_trigPin1,e_echoPin1,data_a);delay(5);
ultra_read(t_trigPin2,e_echoPin2,data_b);delay(5);
Serial.print("da:");Serial.println(data_a);
Serial.print("db:");Serial.println(data_b);
if(data_a<8 && jumlah1==0){jumlah1=1;
if(jumlah2==0){hasil = hasil+1;}
}
if(data_b<8 && jumlah2==0){jumlah2=1;
if(jumlah1==0){hasil = hasil-1;}
}
if(data_a>8 && data_b>8 && jumlah1==1 && jumlah2==1){
jumlah1=0, jumlah2=0;
}
Serial.print("Jumlah
Orang: ");
Serial.print(hasil);
Serial.println("
");
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
int gas = analogRead(A0);
String dataSend;
//-------Json
Command Goes Here----------
StaticJsonDocument<128> doc;
doc["api_key"] = "19489*jj)@41gj";
doc["sensor"] = "Laboratorium Mikrokontroler 2";
doc["value1"] = temperature;
doc["value2"] = humidity;
doc["value3"] = hasil;
doc["value4"] = kipas;
doc["value5"] = lampu;
serializeJson(doc, dataSend);
//---------------------------------------
delay(100);
http.addHeader("Content-Type", "application/json");
int httpResponseCode = http.POST(dataSend);
Serial.print("HTTP
Response code: ");
Serial.println(httpResponseCode);
http.end();
}
else {
Serial.println("WiFi
Disconnected");
}
float temperature = dht.readTemperature();
if(hasil>=1 && temperature>=28){
digitalWrite(Relay1, LOW);
digitalWrite(Relay2, LOW);
kipas= "HIDUP";
lampu= "HIDUP";
}
if(hasil>=1 && temperature<28 ){
digitalWrite(Relay1, HIGH);
digitalWrite(Relay2, LOW);
kipas= "MATI";
lampu= "HIDUP";
}
if(hasil<1) {
digitalWrite(Relay1, HIGH);
digitalWrite(Relay2, HIGH);
hasil=0;
kipas= "MATI";
lampu= "MATI";
}
if(hasil>=1) {
digitalWrite(Relay2, LOW);
lampu= "HIDUP";
}
lastTime = millis();
}
}
IV. CARA KERJA
- Sensor ultrasonik mendeteksi jumlah orang yang berada di ruangan. Ketika terdeteksi ada orang dalam ruangan maka lampu LED akan menyala.
- Sensor DHT 11 mendeteksi
suhu ruang setiap beberapa waktu. Saat suhu ruang berada di atas 28°C maka
kipas akan menyala dan akan mati ketika suhu telah turun.
-
Jumlah orang, suhu, dan
kelembapan dapat dipantau melalui website.
V. KESIMPULAN
Setelah
melakukan perancangan, pembuatan dan uji coba alat, maka didapatkan kesimpulan
yaitu sebagai berikut:
1. Alat ini
dapat bekerja sesuai yang diharapkan yaitu mengatur suhu ruangan agar tetap
stabil dengan menyalakan pendingin ketika suhu ruang telah tinggi.
2. Alat ini
bekerja dengan mendeteksi keberadaan orang dalam ruang. Ketika terdeteksi ada
orang maka lampu akan menyala, dan ketika suhu telah di atas 28°C pendingin
akan menyala. Sebagai pengatur suhu ruangan alat ini bekerja dengan menghidupkan
dan mematikan pendingin agar suhu tetap stabil. Untuk dapat mengetahui kondisi
ruangan berupa nyala lampu dan kipas dapat dipantau melalui website. Suhu
dan kelembapan ruangan juga tertera pada website.
DAFTAR PUSTAKA
[1] A. Faudin, “Cara mengakses sensor
DHT11 menggunakan Arduino.”
https://www.nyebarilmu.com/cara-mengakses-sensor-dht11/ (accessed Dec. 15,
2022).
[2] “Cara Kerja Sensor Ultrasonik,
Rangkaian, & Aplikasinya - Elang Sakti.”
https://www.elangsakti.com/2015/05/sensor-ultrasonik.html (accessed Dec. 15,
2022).
[3] N. H. L. Dewi, M. F. Rohmah, and S.
Zahara, “Prototype smart home dengan modul nodemcu esp8266 berbasis internet
of things(iot)”, Accessed: Dec. 15, 2022. [Online]. Available:
http://repository.unim.ac.id/265/2/JURNAL%205.14.04.11.0.097%20NURUL%20HIDAYATI%20LUSITA%20DEWI.pdf
Lampiran:
Komentar
Posting Komentar