SINAU PROGRAMMING
SINAU PROGRAMMING
  • Home
  • Source Code
  • Social
  • CONTROL
    • Internet of Think (IoT)
    • ESP
      • NodeMcu
      • Lora
      • WeMos
      • Esp 32 Dev
      • Node 32s
    • Arduino
    • Raspberry
    • Proteus
  • MATLAB
    • MATLAB PROJECT
    • PLC
      • Omron
      • Mitsubishi
      • Siemens
      • Schneider
      • ArduinoPLC
    • Arduino
    • Basic & Doc
  • Contact Us

 

Praktik Pengiriman dan Pengambilan Data antara ESP32 dan Mosquitto menggunakan MQTT

Protokol MQTT (Message Queuing Telemetry Transport) adalah protokol pesan ringan yang sering digunakan dalam aplikasi Internet of Things (IoT) untuk komunikasi data antara perangkat. Salah satu platform yang sering digunakan untuk mengimplementasikan MQTT adalah Mosquitto, sebuah broker MQTT yang bertanggung jawab untuk menerima, menyimpan, dan mengirimkan pesan antara client.

Dalam artikel ini, kita akan mempelajari bagaimana cara mengirim dan mengambil data dari ESP32 ke Mosquitto, kemudian kembali lagi ke ESP32, menggunakan MQTT.

Apa itu MQTT?

MQTT adalah protokol komunikasi berbasis publish-subscribe yang digunakan dalam berbagai aplikasi IoT. Dalam sistem MQTT, terdapat tiga komponen utama:

  1. Publisher: Perangkat yang mengirimkan pesan ke topik tertentu.
  2. Subscriber: Perangkat yang berlangganan untuk menerima pesan dari topik tertentu.
  3. Broker: Komponen yang menerima pesan dari publisher dan mengirimkannya ke subscriber yang relevan.

Dalam konteks ini, kita akan menggunakan ESP32 sebagai publisher dan subscriber, dan Mosquitto sebagai broker MQTT.

Langkah 1: Persiapan dan Instalasi Mosquitto Broker

Untuk memulai, Anda perlu memiliki Mosquitto broker yang terinstal di jaringan lokal atau server Anda. Berikut adalah cara menginstalnya pada sistem operasi yang umum digunakan:

  • Ubuntu:


    sudo apt-get install mosquitto mosquitto-clients sudo systemctl enable mosquitto sudo systemctl start mosquitto

    Setelah instalasi selesai, Mosquitto broker akan berjalan di port default 1883.

  • Windows dan macOS: Anda dapat mengunduh instalasi Mosquitto dari situs resmi Mosquitto dan mengikuti instruksi yang disediakan.


Langkah 2: Persiapkan ESP32 dan Install Library

Pada ESP32, kita akan menggunakan library PubSubClient yang berfungsi untuk menghubungkan ESP32 ke broker MQTT.

  1. Buka Arduino IDE dan pergi ke Sketch -> Include Library -> Manage Libraries.
  2. Cari PubSubClient dan install library tersebut.

Selain itu, Anda juga memerlukan library untuk menghubungkan ESP32 ke WiFi, yaitu WiFi.h yang sudah tersedia secara default di Arduino IDE.

Langkah 3: Kode Program untuk Mengirim dan Mengambil Data dari Mosquitto

Berikut adalah kode yang akan kita gunakan pada ESP32. Program ini akan melakukan dua tugas utama: mengirim data (publish) ke Mosquitto dan menerima data (subscribe) dari Mosquitto.

Kode untuk ESP32:


#include <WiFi.h> #include <PubSubClient.h> // Ganti dengan kredensial WiFi Anda const char* ssid = "your_SSID"; const char* password = "your_PASSWORD"; // Alamat IP atau hostname dari Mosquitto Broker const char* mqtt_server = "192.168.x.x"; // Ganti dengan alamat IP Mosquitto Anda WiFiClient espClient; PubSubClient client(espClient); // Fungsi untuk menghubungkan ke WiFi void setup_wifi() { delay(10); Serial.println(); Serial.print("Connecting to WiFi..."); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("Connected to WiFi"); } // Callback ketika menerima pesan void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message arrived ["); Serial.print(topic); Serial.print("] "); // Menerima pesan String message = ""; for (int i = 0; i < length; i++) { message += (char)payload[i]; } Serial.println(message); } // Fungsi untuk menghubungkan ESP32 ke Broker MQTT void reconnect() { while (!client.connected()) { Serial.print("Attempting MQTT connection..."); // Membuat ID client unik String clientId = "ESP32Client-"; clientId += String(WiFi.macAddress()); // Mencoba koneksi if (client.connect(clientId.c_str())) { Serial.println("connected"); client.subscribe("esp32/data"); // Subscribe ke topik 'esp32/data' } else { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" try again in 5 seconds"); delay(5000); } } } void setup() { Serial.begin(115200); // Menghubungkan ESP32 ke WiFi setup_wifi(); // Menyiapkan MQTT client.setServer(mqtt_server, 1883); // Default port MQTT adalah 1883 client.setCallback(callback); } void loop() { // Mengecek koneksi MQTT if (!client.connected()) { reconnect(); } client.loop(); // Mengirimkan data setiap 5 detik static unsigned long lastMsg = 0; unsigned long now = millis(); if (now - lastMsg > 5000) { lastMsg = now; // Mengirimkan pesan ke broker MQTT pada topik 'esp32/data' String msg = "Data dari ESP32"; Serial.print("Publish message: "); Serial.println(msg); client.publish("esp32/data", msg.c_str()); } }

Penjelasan Kode:

  1. Koneksi WiFi:

    • Fungsi setup_wifi() menghubungkan ESP32 ke jaringan WiFi menggunakan SSID dan password yang telah ditentukan.
  2. Koneksi ke Mosquitto (Broker MQTT):

    • Fungsi reconnect() digunakan untuk memastikan bahwa ESP32 selalu terhubung dengan broker MQTT. Jika koneksi terputus, ESP32 akan mencoba menyambung ulang.
    • Koneksi dilakukan dengan menggunakan alamat IP broker (dalam hal ini adalah 192.168.x.x), pastikan alamat tersebut sesuai dengan alamat IP Mosquitto di jaringan lokal Anda.
  3. Pengiriman Data (Publish):

    • Pada bagian loop(), ESP32 akan mengirimkan pesan ke topik esp32/data setiap 5 detik. Pesan yang dikirimkan adalah string "Data dari ESP32".
  4. Penerimaan Data (Subscribe):

    • Setelah koneksi berhasil, ESP32 akan menyubscribe topik esp32/data. Saat ada pesan baru yang diterima, fungsi callback() akan dipanggil dan pesan tersebut akan ditampilkan pada Serial Monitor.

 Cara Pembelajaran pemrograman Electronic Development Board ( Arduino, ESP dan lainnya) dapat dilakukan dengan berbagai cara, salah satunya dengan simulasi. Untuk Sekarang ini mudah bagi kita melakukan simulasi Online. Simulasi membantu kita dalam memahami penggunaan board, rangkaian, pemrograman, dan komponen pendukukung lainnya.

Ada beberapa simulator online yang dapat Anda gunakan untuk Internet of Things (IoT). Berikut adalah beberapa pilihan yang mungkin menarik :

  1. IoT Simulator: Platform ini memungkinkan Anda untuk mensimulasikan perangkat dunia nyata dan mengonfigur asi jaringan IoT dengan mudah. Fitur-fitur utamanya meliputi:

    • Pembuatan Massal: Simulasi ribuan perangkat virtual dengan topik dan pesan unik dalam waktu singkat.
    • Pesan Dinamis: Mengirim pesan dalam format teks datar dan JSON kompleks.
    • Simulasi Perilaku: Menciptakan respons otomatis berdasarkan pesan yang diterima.
    • Integrasi dengan Broker: Mendukung koneksi dengan Azure IoT Hub, AWS IoT Core, dan platform IoT lainnya.

      Dapat Dikunjungi pada https://www.bevywise.com/iot-simulator/
  2. ThingsBoard: Platform open-source untuk pengumpulan data, pemrosesan, visualisasi, dan manajemen perangkat. Fitur-fitur utamanya meliputi:

    • Konektivitas Perangkat: Mendukung protokol IoT standar seperti MQTT, CoAP, dan HTTP.
    • Visualisasi Data: Menyediakan widget dan dasbor yang dapat disesuaikan untuk memvisualisasikan data.
    • Pengolahan Data: Memungkinkan pembuatan aturan pemrosesan data dan pengelolaan alarm.


      Dapat dikunjungi Pada https://thingsboard.io/

  3. Wokwi : Platform yang dapat digunakan sebagai simulator Electronics Development Board seperti Arduino, ESP32, dan Raspberry Pi Pico

    Dapat dikunjungi pada : https://wokwi.com/
  4. Arduino Cloud: Solusi IoT yang memungkinkan pengguna untuk membangun, mengontrol, dan memantau proyek IoT mereka. Fitur-fitur utamanya meliputi:

    • Dasbor yang Dapat Disesuaikan: Memungkinkan pengguna untuk mengontrol perangkat dari mana saja.
    • Pembaruan Over-the-Air: Memungkinkan pembaruan perangkat secara jarak jauh.
    • Integrasi API: Mendukung integrasi dengan berbagai perangkat dan platform.

      https://cloud.arduino.cc/
  5. Tinkercard

    Tinkercad adalah suatu platform yang memiliki layanan desain 3D, 3D modelling dan simulasi elektronika. Simulasi elektronika sangat mudah dilakukan di platform ini karena sudah terdapat arduino dan komponen pendukung lainnya. Terdapat pemrograman berbasis block sehingga akan sangat membantu untuk memahami kode program Arduino.

    Dapat dikunjungi pada : https://www.tinkercad.com/

 

Thingsboard IoT

ThingsBoard IoT adalah platform open-source yang menyediakan solusi untuk mengelola perangkat IoT (Internet of Things) dan menganalisis data yang dihasilkan oleh perangkat tersebut. ThingsBoard memungkinkan pengguna untuk memantau dan mengontrol perangkat IoT secara efisien melalui antarmuka pengguna yang ramah dan berbagai fitur yang kuat.

Beberapa fitur kunci dari ThingsBoard IoT meliputi:

1. Dashboard yang Interaktif:Memungkinkan pengguna untuk membuat dashboard kustom yang menampilkan data sensor dan informasi penting lainnya secara visual.

2. Manajemen Perangkat:Memfasilitasi pendaftaran, manajemen, dan penghapusan perangkat IoT secara mudah dan efisien.

3. Pemrosesan Data:Mampu melakukan pemrosesan data real-time dan historis untuk menganalisis data yang dikumpulkan dari perangkat IoT.

4. Integrasi Mudah:Mendukung integrasi dengan berbagai sistem dan layanan eksternal seperti databases, messaging services, dan lainnya.

5. Keamanan:Menyediakan fitur keamanan yang kuat untuk melindungi data dan perangkat dari ancaman keamanan.

Dengan ThingsBoard IoT, pengguna dapat membangun solusi IoT yang andal, skalabel, dan dapat disesuaikan sesuai dengan kebutuhan bisnis atau proyek mereka.


Thingsboard ini mempunyai dua fungsi utama yakni sebagai broker dalam terminologi IoT (core services) dan sebagai web presentation atau penyaji data (web UI).

https://thingsboard.io/


Menginstal dukungan untuk mikrokontroler ESP32 di Arduino IDE adalah langkah awal yang diperlukan untuk mulai mengembangkan proyek berbasis ESP32. Berikut adalah panduan langkah demi langkah untuk menginstal dan mengonfigurasi ESP32 di Arduino IDE:


Langkah 1: Unduh dan Instal Arduino IDE

1. Unduh Arduino IDE: Kunjungi [situs resmi Arduino](https://www.arduino.cc/en/software) dan unduh versi terbaru Arduino IDE sesuai dengan sistem operasi Anda (Windows, macOS, atau Linux).

2. Instal Arduino IDE: Ikuti petunjuk instalasi untuk sistem operasi Anda.


 Langkah 2: Tambahkan URL Board Manager untuk ESP32

1. Buka Arduino IDE: Setelah instalasi selesai, buka Arduino IDE.

2. Buka Preferences: Klik pada `File` > `Preferences` (atau `Arduino` > `Preferences` di macOS).

3. Tambahkan URL Board Manager: Di kotak dialog Preferences, temukan kotak teks yang berlabel "Additional Boards Manager URLs" dan masukkan URL berikut:

https://dl.espressif.com/dl/package_esp32_index.json


Jika sudah ada URL lain yang terdaftar, pisahkan dengan tanda koma.

Langkah 3: Instal ESP32 Board Package

1. Buka Boards Manager: Klik `Tools` > `Board` > `Boards Manager`.

2. Cari ESP32: Ketik "ESP32" di kotak pencarian.


3. Instal ESP32: Temukan entri untuk "esp32 by Espressif Systems" dan klik tombol `Install`.

Langkah 4: Pilih Board ESP32 di Arduino IDE

1. Pilih Board: Setelah instalasi selesai, pilih board ESP32 dengan mengklik `Tools` > `Board` dan memilih model ESP32 yang sesuai dengan perangkat keras Anda (misalnya, "ESP32 Dev Module").


Langkah 5: Instal Driver USB (Jika Diperlukan)

1. Driver USB: Pada beberapa sistem operasi, Anda mungkin perlu menginstal driver USB untuk ESP32. Kunjungi situs Espressif atau produsen modul ESP32 Anda untuk mendapatkan driver yang sesuai.

2. Colokkan ESP32 ke Komputer: Gunakan kabel USB untuk menghubungkan modul ESP32 ke komputer Anda.


Langkah 6: Uji Instalasi dengan Program Contoh

1. Buka Program Contoh: Di Arduino IDE, buka contoh program dengan mengklik `File` > `Examples` > `WiFi` > `SimpleWiFiServer`.

2. Pilih Port COM: Klik `Tools` > `Port` dan pilih port yang terhubung dengan ESP32 Anda.

3. Unggah Program: Klik tombol `Upload` (ikon panah ke kanan) untuk mengunggah program ke ESP32.

4. Monitor Serial: Setelah program diunggah, buka Serial Monitor dengan mengklik `Tools` > `Serial Monitor` untuk melihat output dari ESP32.

Jika semua langkah telah dilakukan dengan benar, Anda harus dapat melihat output dari ESP32 di Serial Monitor dan ESP32 siap untuk digunakan dengan Arduino IDE.

Kesimpulan

Mengonfigurasi ESP32 di Arduino IDE adalah proses yang cukup sederhana yang memungkinkan Anda untuk mulai mengembangkan berbagai proyek IoT. Dengan langkah-langkah di atas, Anda bisa segera menghubungkan, memprogram, dan menguji mikrokontroler ESP32 Anda. Selamat mencoba dan semoga proyek IoT Anda sukses!

Newer Posts Older Posts Home





POPULAR POSTS

  • Skema Power Supply Switching SMPS
  • Proteus 8.5 Full Version Professional
  • Tutorial ILI9341 TFT SPI LCD touch Screen
  • Artificial Neural Network for Identification MATLAB
  • Serial Communication UART Raspberry Pico (SoftSerial)
  • Pulse Oxymetry (SPO2) + Raspberry Pi
  • Menampilkan Text Pada LCD 16x2 I2C Arduino

ABOUT ME

cobabaru

Sinau Programming

SUBSCRIBE & FOLLOW

Training


Contact Form

Name

Email *

Message *

Categories

  • alkes 1
  • Android 4
  • Arduino 35
  • Basic & Doc 12
  • centrifuge 1
  • ESP32 8
  • Internet of Things (IoT) 23
  • LCD TFT SPI 2
  • MATLAB 6
  • Metode kendali 1
  • Modul Charger 1
  • Nextion 4
  • NodeMcu 8
  • oled 1
  • Pattern Recognition 2
  • Pemrograman 2
  • Perbaikan 1
  • PID 2
  • PLC HMI VTSCADA ARDUINO 3
  • PRIVACY POLICY 1
  • Proteus 11
  • Python 1
  • raspberry 5
  • Teknik Elektromedik 2
  • Thingsboard 1
  • Video 5
  • Wemos 4

sinau_programming

Sinau Programming Distributed by Sinau Programming