[TUTORIAL] Menghubungkan ThingsBoard dengan ESP32 di Wokwi (Project Air Quality Monitoring menggunakan Sensor DHT22)

Assalamu‘alaikum wr. wb.

Hello guys! Jika sebelumnya, kita telah mencoba menghubungkan Wokwi dengan Blynk IoT untuk Project Kontrol LED Sederhana, sekarang kita akan menghubungkan Wokwi dengan ThingsBoard untuk Project Air Quality Monitoring menggunakan Sensor DHT22 (Sensor Suhu dan Kelembaban).

Sumber (Referensi) : Saptaji.com (Blogspot)


MENGGUNAKAN THINKSBOARD

Kali ini kita akan membagikan Cara membuat Sensor Ultrasonik sederhana dan dihubungkan ke Internet dengan menggunakan ThinksBoard. Pertama, klik pada "Try it Now" untuk memulai memuat Proyek menggunakan ThingsBoard.

Kemudian, akan muncul Halaman seperti pada Gambar di bawah ini. Maka, klik pada Tombol "Start Free".

Kemudian, akan diarahkan untuk membuat/menghubungkan Akun, kita pilih saja Akun Google untuk mendaftar ke ThingsBoard. Ikuti perintah selanjutnya untuk melakukan Sign in menggunakan Akun Google.

Jika sudah, maka akan diarahkan ke bagian "Privacy Policy and Terms of Use". Maka, kita akan mencentang dari seluruh Aturan Kebijakan Privasi dan Syarat Penggunaan. Jika sudah, maka klik "Continue".

Jika sudah, maka muncullah pada bagian "Getting Started", dan boleh di-skip saja dengan mengeklik pada Tombol "Close".

Sebagai Informasi, jika Anda menggunakan ThingsBoard versi Gratis, maka Anda hanya bisa menggunakannya selama 30 Hari saja. Dan selebihnya, semua Proyek yang telah Anda buat di ThingsBoard akan hilang setelah 30 Hari.

Contoh dari Status Kadaluwarsa di ThingsBoard Cloud sampai dengan Tanggal 28 April 2023 (Karena saya mendaftarnya pada Tanggal 29 Maret 2023, atau 30 Hari sesudah dari Tanggal Pendaftarannya) :

Maka, kita akan diarahkan ke bagian Dashboard Halaman Utama dari Akun ThingsBoard yang telah kita masukkan tadi.

Kemudian, klik pada bagian "Device Groups" pada Navbar di Samping Kiri. Lalu, klik pada Tombol Plus (➕) di atas untuk menambahkan Grup baru.

Kemudian, namailah Kelompok yang ingin dibuat untuk Proyek IoT selanjutnya. Setelah itu, klik Tombol "Add".

Setelah itu, maka kita klik lagi pada Tombol Plus (➕) di atas untuk menambahkan Proyek baru.

Kemudian, buatlah Perangkat (Device) yang Anda inginkan untuk membuat Project IoT. Jika sudah, klik Tombol "Add".

Maka, kita telah mendapatkan Token ID yang dapat menghubungkan ke Perangkat IoT kita. Untuk menyalin Token ID, silakan klik Tombol "Copy Access Token". Selain itu, Anda juga bisa menyalin Device ID dengan mengeklik Tombol "Copy Device ID".

Inilah Access Token ID yang telah saya salin :

9jM0MqUqsxwnpJVRNU8O

Inilah Device ID yang telah saya salin :

aaa629b0-ce08-11ed-a47e-9ba30be05e76

Jadi, Access Token ID akan digunakan untuk menghubungkan ke Perangkat IoT kita seperti untuk menghubungkan ke Wokwi di bawah.

Biasanya, Bagian "Latest Telemetry" akan berisi jika Program di Wokwi sudah dijalankan.

Dan akan seperti ini jika telah menjalankan Program sebelumnya di Wokwi, sudah terisi 2 Bagian Telemetry, yaitu Humidity (Kelembapan), dan Temperature (Suhu).


PERSIAPAN WOKWI

Jika sudah menyiapkan Modul ThingsBoard di atas, selanjutnya kita buka Situs Wokwi di sini (Wokwi.com). Kemudian, Masuklah menggunakan Akun Google.

Kemudian, Scroll ke bawah sampai menemukan "Start from Scratch". Kemudian pilih ESP32.

Jika sudah, maka kita persiapkan terlebih dahulu peralatan dan rangkaiannya seperti Sensor Sensor Suhu dan Kelembaban DHT22 dan Breadboard.

Kemudian, kita rangkailah dengan cara menghubungkan Pin-pinnya seperti GND, 3.3V, dan Pin sekitarnya.

Selanjutnya, masukan beberapa Kode Program di bawah ini.

Seperti inilah Kode Program untuk menghubungkan ke ThingsBoard :

#if defined(ESP8266)
#include <ESP8266WiFi.h>
#elif defined(ESP32)
#include <WiFi.h>
#endif

#include "ThingsBoard.h"
#include "DHTesp.h"

#define CURRENT_FIRMWARE_TITLE "TEST"
#define CURRENT_FIRMWARE_VERSION "1.0.0"

#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASSWORD ""

// See https://thingsboard.io/docs/getting-started-guides/helloworld
// to understand how to obtain an access token
#define TOKEN "9jM0MqUqsxwnpJVRNU8O"
#define THINGSBOARD_SERVER "thingsboard.cloud"

// Baud rate for debug serial
#define SERIAL_DEBUG_BAUD 115200

const int DHT_PIN = 15;
DHTesp dhtSensor;

// Initialize ThingsBoard client
WiFiClient espClient;

// Initialize ThingsBoard instance
ThingsBoard tb(espClient);

// the Wifi radio's status
int status = WL_IDLE_STATUS;

void InitWiFi() {
    Serial.println("Connecting to AP ...");
    // attempt to connect to WiFi network
    WiFi.begin(WIFI_SSID, WIFI_PASSWORD);

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

    Serial.println("Connected to AP");
}

void reconnect() {
    // Loop until we're reconnected
    status = WiFi.status();
    if ( status != WL_CONNECTED) {
        WiFi.begin(WIFI_SSID, WIFI_PASSWORD);

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

void setup() {
    // initialize serial for debugging
    Serial.begin(SERIAL_DEBUG_BAUD);
    Serial.println();
    InitWiFi();
    dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
}

void loop() {
    delay(1000);

    if (WiFi.status() != WL_CONNECTED) {
        reconnect();
    }

    if (!tb.connected()) {
        // Connect to the ThingsBoard
        Serial.print("Connecting to: ");
        Serial.print(THINGSBOARD_SERVER);
        Serial.print(" with token ");
        Serial.println(TOKEN);

        if (!tb.connect(THINGSBOARD_SERVER, TOKEN)) {
            Serial.println("Failed to connect");
            return;
        }
    }

    Serial.println("Sending data...");
    // Uploads new telemetry to ThingsBoard using MQTT.
    // See https://thingsboard.io/docs/reference/mqtt-api/#telemetry-upload-api
    // for more details

    TempAndHumidity data = dhtSensor.getTempAndHumidity();
    tb.sendTelemetryInt("temperature", data.temperature);
    tb.sendTelemetryFloat("humidity", data.humidity);
    Serial.print("Suhu : ");
    Serial.print(data.temperature);
    Serial.print(" Kelembaban : ");
    Serial.println(data.humidity);
    tb.loop();
    tb.loop();
}

Keterangan : Token di atas didapatkan berdasarkan dari Device yang telah Anda buat di ThingsBoard.

Sebelum menjalankan Program dan Perangkat di atas, marilah kita cari terlebih dahulu Library ThingsBoard yang ada di Wokwi. Caranya adalah dengan cara menekan pada "Library Manager" kemudian klik pada Tobol Plus (➕) dan ketiklah dan pilih "ThingsBoard".

Kemudian, tambahkan lagi beberapa Komponen Library agar dapat menjalankan Project Air Quality Monitoring menggunakan Sensor DHT22 seperti DHT Sensor Library, Arduino JSON, dan PubSubClient.

Jika masih ada yang Error, artinya Versi dari Arduino JSON masih yang Versi lama.

Maka tambahkan Versi berikut ini seperti pada Gambar di bawah ini.

ArduinoJson@6.20.1

Maka kita jalankan Program tersebut :

Pada Gambar di atas, hanya mengeluarkan Output Suhu dan Kelembaban saja. Jika ingin menampilkan Data secara Realtime di ThingsBoard, pergilah pada Telemetry Device.

Humidity Telemetry :

Temperature Telemetry :

Humidity & Temperature Telemetry :

Terakhir, jika ingin menyimpan Project Wokwi kita, maka klik di Tombol "Save" kemudian ketiklah pada Kolom "Save Your Project". Setelah itu, klik "Save".


Itulah Tutorial Air Quality Monitoring menggunakan Sensor DHT22 (Sensor Suhu dan Kelembaban) menggunakan ThingsBoard IoT dengan ESP32 di Wokwi. Anda juga bisa menggunakan MCU lainnya seperti ESP8266 atau bahkan Arduino Uno yang dihubungkan ke ThingsBoard.

Terima Kasih 😄😘👌👍 :)

Wassalamu‘alaikum wr. wb.

Post a Comment

Previous Post Next Post