← Back to list

#06 ESP32 Project: IoT Monitoring Sensor dengan Node-RED

Pada laman kali saya akan membuat project yang ke-enam, yaitu mengirimkan data dari sensor ke platform Node-RED untuk bisa ditampilkan di…

acit · 2026-06-20 16:13 · 0 claps · 2.7 min read
#esp32-tutorial #node-red #iot
Open on Medium ↗
Wiki topics: 📟 · Gadgets & IoT

#06 ESP32 Project: IoT Monitoring Sensor dengan Node-RED

Pada laman kali saya akan membuat project yang ke-enam, yaitu mengirimkan data dari sensor ke platform Node-RED untuk bisa ditampilkan di browser.

Sensor yang akan saya gunakan untuk project ini adalah dengan menggunakan BMP280 yang sudah pernah saya kerjakan pada project sebelumnya, untuk konfigurasinya kalian bisa lihat disini.

[embed]#03 ESP32 Project: Sensor (18224023) Pada laman kali ini saya akan membuat project yang ketiga, yaitu Sensor. Pada percobaan kali ini saya akan membuat 2…medium.com

Untuk pengerjaan pada project ini saya menggunakan MacOS, sehingga jika teman-teman menggunakan windows mungkin ada yang berbeda nantinya.

Langkah Pengerjaan

Instalasi

Langkah pertama adalah dengan menginstall terlebih dahulu Node-RED, dengan menjalankan perintah di bawah ini pada terminal.

npm install -g node-red

Lalu, jalankan perintah di bawah ini pada terminal.

node-red

Flow Node-RED

Selanjutnya, setelah berhasil diinstall, kita akan menggunakan node:

  • HTTP in
  • Function
  • HTTP Response

Sehabis itu urutannya adalah HTTP in -> Function -> HTTP Response

Pada node HTTP in, ubah bagian Method menjadi POST dan URL menjadi /bmp280

Pada node Function, isi dengan teks di bawah ini

return [
    {payload: msg.payload.temperature},
    {payload: msg.payload.pressure},
    {payload: msg.payload.altitude},
    msg
];

IP Laptop

Selanjutnya, kita harus mendapatkan ip laptop kita sendiri, dapat dilakukan dengan menuliskan ini pada terminal.

ipconfig getifaddr en0

Arduino IDE

Selanjutnya, salin kode ini untuk menghubungkan sensor kita dengan platform (sesuaikan lagi dengan wifi dan ip laptop kalian). Jangan lupa untuk mengubah upload speednya menjadi 115200

#include <WiFi.h>
#include <HTTPClient.h>
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>

#define BMP_SDA 21
#define BMP_SCL 22

const char* ssid = "NAMA_WIFI";
const char* password = "PASSWORD_WIFI";

String server = "http://IP_LAPTOP/bmp280";

Adafruit_BMP280 bmp;

void setup() {

  Serial.begin(115200);
  delay(1000);

  Serial.println("================================");
  Serial.println("BMP280 IoT Project");
  Serial.println("================================");

  // Inisialisasi I2C
  Wire.begin(BMP_SDA, BMP_SCL);

  // Inisialisasi BMP280
  if (!bmp.begin(0x76)) {
    Serial.println("BMP280 tidak ditemukan!");

    while (1) {
      delay(1000);
    }
  }

  Serial.println("BMP280 berhasil terdeteksi");

  // Koneksi WiFi
  Serial.print("Menghubungkan ke WiFi");

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println();
  Serial.println("WiFi Connected!");
  Serial.print("IP ESP32 : ");
  Serial.println(WiFi.localIP());

  Serial.println("================================");
}

void loop() {

  float temperature = bmp.readTemperature();
  float pressure = bmp.readPressure() / 100.0F;
  float altitude = bmp.readAltitude(1013.25);

  Serial.println("DATA SENSOR");

  Serial.print("Temperature : ");
  Serial.print(temperature);
  Serial.println(" °C");

  Serial.print("Pressure    : ");
  Serial.print(pressure);
  Serial.println(" hPa");

  Serial.print("Altitude    : ");
  Serial.print(altitude);
  Serial.println(" meter");

  if (WiFi.status() == WL_CONNECTED) {

    HTTPClient http;

    http.begin(server);

    http.addHeader(
      "Content-Type",
      "application/json"
    );

    String jsonData =
      "{"
      "\"temperature\":" + String(temperature, 2) + ","
      "\"pressure\":" + String(pressure, 2) + ","
      "\"altitude\":" + String(altitude, 2) +
      "}";

    Serial.println("Mengirim JSON:");
    Serial.println(jsonData);

    int responseCode = http.POST(jsonData);

    Serial.print("HTTP Response Code: ");
    Serial.println(responseCode);

    if (responseCode > 0) {

      String response = http.getString();

      Serial.print("Response Server: ");
      Serial.println(response);
    }

    http.end();
  }
  else {

    Serial.println("WiFi Terputus!");
  }

  Serial.println("--------------------------------");

  delay(5000);
}

Dashboard Node-RED

Pada Node-RED, Menu (☰) -> Manage Palette -> search: node-red-dashboard -> Install.

Selanjutnya, setekah berhasil diinstall kalian akan melihat node ui_gauge, dan kita akan menggunakan itu, jadi kita akan menggunakan 3 node.

Untuk Node Gauge, kalian harus setting Group dan Tabnya terlebih dahulu, yaitu dengan membuat baru dan mengisikan

  • Tab: Monitoring BMP280
  • Group: Sensor

Untuk Gauge Suhu setting:

  • Label: Suhu
  • Min : 0
  • Max: 50
  • Unit: °C

Untuk Gauge Tekanan

  • Label: Tekanan
  • Min : 900
  • Max: 1100
  • Unit: hPa

Untuk Gauge Ketinggian

  • Label: Ketinggian
  • Min : 0
  • Max: 500
  • Unit: m

Lalu, untuk flownya kalian bisa ikutin seperti yang di bawah ini.

Terakhir, tinggal kita deploy.

Final

Untuk membuka dashboardnya, kalian bisa mengetikkan ini di browser masing-masing.

http://localhost:1880/ui

atau

http://IP_LAPTOP:1880/ui

Dan, tampilan finalnya akan seperti ini

Maka, project 6 kita kali ini sudah selesai, semoga teman-teman terbantu dengan adanya medium ini dalam membuat project IoT kalian. Terima kasih dan sampai jumpa!


메타데이터
post_id
3a44d24f8fe8
slug
06-esp32-project-iot-monitoring-sensor-dengan-node-red-3a44d24f8fe8
url
https://medium.com/@isisendiriya/06-esp32-project-iot-monitoring-sensor-dengan-node-red-3a44d24f8fe8
canonical_url
https://medium.com/@isisendiriya/06-esp32-project-iot-monitoring-sensor-dengan-node-red-3a44d24f8fe8
author_url
https://medium.com/@isisendiriya
status
ok
fetched_at
2026-08-01 04:07:27