node red, node js
node red, node js
INTERNET OF THINGS
Disusun oleh :
FAUZI IRMAN MAULANA (21410300488)
OSCAR ABDUL HAKIM (21410300490)
ALMAS GILANG RAMADHAN (21410300489)
SAIFUL FADIL MUBAROK (21410300487)
A. TUJUAN PRAKTIKUM
1. Memahami cara menggunakan ESP8266 untuk membaca data dari sensor jarak (HC-
SR04) dan suhu (DHT11/DHT22), serta mengonfigurasinya untuk mengirim data
secara nirkabel menggunakan protokol MQTT.
2. Mempelajari penggunaan broker MQTT (seperti Mosquitto/EMQX) untuk mengelola
komunikasi publish/subscribe antara ESP8266 dan aplikasi client.
3. Membuat dashboard interaktif di Node-RED untuk memvisualisasikan data sensor
dalam bentuk grafik atau indikator dengan memanfaatkan data dari broker MQTT.
4. Merancang sistem IoT real-time yang mengintegrasikan perangkat keras (ESP8266
dan sensor) dengan perangkat lunak (MQTT dan Node-RED).
5. Menganalisis data sensor suhu dan jarak untuk memahami pola dan perubahan
lingkungan melalui visualisasi yang telah dibuat.
WiFiClient espClient;
PubSubClient client(espClient);
DHT dht(DHT_PIN, DHT11);
long lastMsg = 0;
float temperature = 0;
float level = 0;
void setup_wifi() {
delay(10);
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("WiFi connected, IP address: ");
Serial.println(WiFi.localIP());
}
void reconnect() {
while (!client.connected()) {
Serial.print("Attempting MQTT connection...");
if (client.connect("clientId-xEZb7frpLH")) {
Serial.println("connected");
} else {
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
delay(5000);
}
}
}
float readDistance() {
digitalWrite(TRIGGER_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
void setup() {
Serial.begin(115200);
setup_wifi();
client.setServer(mqtt_server, 1883);
dht.begin();
pinMode(TRIGGER_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
}
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
long now = millis();
if (now - lastMsg > INTERVAL) {
lastMsg = now;
c. Pembahasan Program
1) Inisialisasi Koneksi WiFi
a) Bagian setup_wifi() digunakan untuk menghubungkan ESP8266 ke
jaringan WiFi.
b) Menggunakan SSID dan password yang didefinisikan di program (realme
C17 dan 12345678).
c) Setelah terhubung, alamat IP perangkat ditampilkan di Serial Monitor.
2) Koneksi ke Broker MQTT
a) Fungsi reconnect() memastikan ESP8266 tetap terhubung ke broker
MQTT.
b) Menggunakan broker public broker.hivemq.com pada port 1883.
c) Topik yang digunakan
mbah_Haji_SUHU_X untuk mengirim data suhu.
mbah_Haji_JARAK_X untuk mengirim data jarak.
3) Pengukuran Suhu (DHT11)
a) Menggunakan library DHT untuk membaca suhu.
b) Data suhu dikirimkan ke broker MQTT jika pengukuran berhasil.
c) Jika sensor gagal membaca suhu, pesan kesalahan ditampilkan di Serial
Monitor.
4) Pengukuran Jarak (HC-SR04)
a) Fungsi readDistance() mengukur jarak berdasarkan durasi pulse yang
diterima dari sensor HC-SR04.
b) Jika jarak berada dalam batas maksimal (MAX_DISTANCE), data
dikalkulasi dan dikirimkan ke broker MQTT.
c) Jarak dikonversi ke persen level (100% jika jarak 0 cm, 0% jika mencapai
jarak maksimal).
d) Jika jarak melebihi batas atau tidak terdeteksi, pesan kesalahan
ditampilkan di Serial Monitor.
5) Pengiriman Data MQTT
a) Data suhu dan jarak diterbitkan ke broker MQTT setiap 5000 ms (interval
pengiriman).
b) Data ditampilkan di Serial Monitor untuk debugging.
d. Pin yang Digunakan
1) Pin untuk DHT11
a) DHT_PIN (D7): Pin digital untuk membaca data suhu dari sensor DHT11.
2) Pin untuk HC-SR04
a) TRIGGER_PIN (D5): Pin digital untuk mengirim sinyal trigger ke sensor
HC-SR04.
b) ECHO_PIN (D6): Pin digital untuk menerima sinyal echo dari sensor HC-
SR04.
3) Pin Lainnya pada ESP8266
a) 3.3V: Untuk memberi daya pada DHT11.
b) 5V: Untuk memberi daya pada HC-SR04.
c) GND: Ground untuk semua perangkat.
4. Installasi Broker MQTT
a. Broker Lokal (Mosquitto)
1) Instal Mosquitto di komputer
2) Jalankan Broker
6) Jalankan Node-RED
10) Selanjutnya install palette atau exstension pada node-red dengan cara, klik
garis tiga pada pojok kanan atas node-red terus pilih manage palette
11) Kemudian pilih tab install, ketikan node-red-dashboard pada kolom
pencarian, terus pilih install
12) Cek pada pilihan flow dengan scroll kebawah seharusnya sudah ada flow
untuk membuad dashboard
13) Kemudian ambil dua buah flow dengan Drag And Drop
14) Douuble klik pada mqtt yang barusan diambil kemudian akan muncul sebagai
berikut
15) Pada kolom Server silahkan anda klik tombol pensil seperti yang ditunjuk
pada gambar selanjutnya akan muncul tampilan untuk konfigurasi server,
silahkan anda isi sebagai berikut, kemudian jika sudah klik tombol add
16) Kemudian akan kembali ke tampilan sebelumnya, silahkan untuk server anda
pilih ke yang barusan anda tambahkan, terus masukan topic untuk subscribe
ke topic temperature dari ESP anda,jika sudah pilih done
21) Untuk membuat dashboard group caranya klik tombol pensil seperti
pada gambar sebelumnya, terus akan muncul tab seperti pada gambar
berikut
22) Untuk membuat dashboard tab dapat dengan menekan tombol pensil
seperti pada gambar sebelumnya lalu akan muncul gambar seperti
berikut
Jika sudah
memasukan
nama
dashboard
klik ad
Masukan
nama
dashboard
nya
23) Jika sudah maka pada konfigurasi flow dashboard maka seharusnya muncul
untuk group dashboard dan tab dashboard yang barusan anda buat.
24) Kemudian klik tombol done.
25) Lakukan konfigurasi serupa untuk flow dashboard yang lainnya.
26) Jika sudah hubungkan untuk setiap komponen flow yang telah
dikonfigurasi sebelumnya misal sebagai berikut
27) Jika sudah klik tombol Deploy pada pojok kanan atas Node-RED.
28) Selanjutnya untuk melihat dashboard yang telah anda buat bisa
mengakses url dengan endpoint “/ui” yakni http://127.0.0.1:1880/ui/
maka akan muncul dashboard yang telan anda buat sebelumnya.