Implementasi dan Contoh Proyek Full Code menggunakan Protocol IoT MQTT dari RabbitMQ dan ESP8266 pada Proyek Internet of Things

Implementasi dan Contoh Proyek Full Code menggunakan Protocol IoT MQTT dari RabbitMQ dan ESP8266 pada Proyek Internet of Things

Pendahuluan

Internet of Things (IoT) telah mengubah cara kita berinteraksi dengan perangkat di sekitar kita dan membuka peluang baru dalam berbagai industri. Dalam proyek IoT, protokol komunikasi yang efisien dan handal sangat penting. MQTT (Message Queuing Telemetry Transport) adalah protokol yang sering digunakan dalam implementasi IoT. Dalam artikel ini, kita akan membahas implementasi MQTT menggunakan RabbitMQ dan modul ESP8266 dalam proyek Internet of Things. Kami juga akan memberikan contoh proyek lengkap beserta kode sumbernya.

Pengenalan MQTT

MQTT adalah protokol komunikasi ringan yang dirancang khusus untuk IoT. Protokol ini menggunakan model publikasi-berlangganan (publish-subscribe), di mana perangkat pengirim (publisher) dapat mengirim pesan ke topik tertentu, dan perangkat penerima (subscriber) dapat menerima pesan dari topik yang relevan. MQTT memiliki overhead komunikasi yang rendah dan sangat efisien dalam penggunaan bandwidth, menjadikannya pilihan ideal untuk lingkungan IoT.

Penggunaan RabbitMQ sebagai Pialang Pesan

RabbitMQ adalah sistem pesan open-source yang dapat digunakan sebagai pialang pesan dalam implementasi MQTT. RabbitMQ menyediakan infrastruktur yang handal untuk menghubungkan perangkat IoT menggunakan protokol MQTT. Dengan RabbitMQ, kita dapat mengelola pengiriman dan penerimaan pesan dengan antrian yang andal, menjaga integritas komunikasi dalam proyek IoT.

Pengenalan ESP8266

ESP8266 adalah modul Wi-Fi berdaya rendah yang populer digunakan dalam proyek IoT. Modul ini memiliki prosesor yang terintegrasi dan dukungan untuk protokol Wi-Fi, membuatnya menjadi pilihan yang ideal untuk menghubungkan perangkat ke jaringan Internet. ESP8266 memiliki dukungan yang kuat untuk protokol MQTT, memungkinkan perangkat menggunakan modul ini untuk berkomunikasi dengan RabbitMQ dan pertukaran pesan dengan perangkat lain dalam jaringan.

Implementasi Proyek IoT dengan MQTT, RabbitMQ, dan ESP8266

Berikut adalah contoh implementasi proyek IoT menggunakan MQTT, RabbitMQ, dan ESP8266. Kami akan memberikan contoh proyek pemantauan suhu yang menggunakan sensor suhu DS18B20 dan mengirimkan data suhu melalui protokol MQTT ke RabbitMQ. Server akan menerima data suhu dan menampilkan informasi suhu secara real-time.

  • Komponen Perangkat Keras:
    • Modul ESP8266 (NodeMCU atau ESP-01)
    • Sensor Suhu DS18B20
    • Resistor 4.7k Ohm (untuk konektivitas sensor suhu)
  • Konfigurasi Perangkat Lunak:
    • Install Arduino IDE dan pustaka ESP8266 untuk pengembangan firmware.
    • Pasang pustaka PubSubClient dan OneWire pada Arduino IDE.
    • Buatlah akun RabbitMQ dan konfigurasikan RabbitMQ pada server yang akan digunakan.
  • Koneksi Perangkat Keras:
    • Sambungkan sensor suhu DS18B20 ke modul ESP8266 menggunakan koneksi OneWire.
    • Sambungkan resistor 4.7k Ohm antara kabel data dan kabel VCC pada sensor suhu.
    • Hubungkan modul ESP8266 ke komputer melalui kabel USB untuk memprogramnya.

Wiring

Gambar Pengkabelan

Source Code

Berikut adalah contoh kode sumber untuk modul ESP8266:

#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <OneWire.h>
#include <DallasTemperature.h>

// Konfigurasi Wi-Fi
const char* ssid = "nama_ssid";
const char* password = "kata_sandi_wifi";

// Konfigurasi MQTT
const char* mqttServer = "alamat_ip_rabbitmq";
const int mqttPort = 1883;
const char* mqttUser = "username_rabbitmq";
const char* mqttPassword = "kata_sandi_rabbitmq";
const char* mqttTopic = "topik_suhu";

// Konfigurasi Sensor Suhu
#define ONE_WIRE_BUS D2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

WiFiClient espClient;
PubSubClient client(espClient);

void setup() {
  Serial.begin(115200);

  // Menghubungkan ke jaringan Wi-Fi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }
  Serial.println("Connected to WiFi");

  // Menghubungkan ke server MQTT
  client.setServer(mqttServer, mqttPort);
  client.setCallback(callback);

  while (!client.connected()) {
    if (client.connect("ESP8266Client", mqttUser, mqttPassword )) {
      Serial.println("Connected to MQTT");
    } else {
      Serial.print("Failed, rc=");
      Serial.print(client.state());
      Serial.println(" retrying in 5 seconds...");
      delay(5000);
    }
  }

  // Mulai membaca sensor suhu
  sensors.begin();
}

void loop() {
  client.loop();

  // Membaca suhu dari sensor
  sensors.requestTemperatures();
  float temperature = sensors.getTempCByIndex(0);

  // Mengirim data suhu melalui MQTT
  char msg[10];
  sprintf(msg, "%.2f", temperature);
  client.publish(mqttTopic, msg);

  // Delay antara pengiriman data
  delay(5000);
}

void callback(char* topic, byte* payload, unsigned int length) {
  // Callback untuk pesan yang diterima (opsional)
}
  • Konfigurasi Server RabbitMQ:
    • Buatlah exchange dan antrian pada RabbitMQ untuk menerima dan mengirimkan pesan suhu.
    • Konfigurasikan RabbitMQ untuk mengarahkan pesan dari exchange ke antrian yang sesuai.
  • Implementasi Aplikasi Penerima:
    • Buat aplikasi penerima menggunakan bahasa pemrograman pilihan Anda (misalnya, Python atau Node.js).
    • Konfigurasikan aplikasi penerima untuk terhubung ke server RabbitMQ menggunakan protokol MQTT.
    • Terima pesan suhu dari antrian yang relevan dan lakukan tindakan sesuai kebutuhan proyek.

Kesimpulan

Implementasi protocol IoT menggunakan MQTT dari RabbitMQ dan ESP8266 merupakan kombinasi yang kuat dalam proyek Internet of Things. Protokol MQTT dengan efisiensi dan kehandalan komunikasinya, serta RabbitMQ sebagai pialang pesan yang handal, memungkinkan pengembang untuk mengimplementasikan proyek IoT yang kompleks dan efisien. Dengan menggunakan contoh proyek pemantauan suhu, Anda dapat melihat bagaimana MQTT, RabbitMQ, dan ESP8266 dapat saling berinteraksi dalam proyek IoT. Selanjutnya, Anda dapat menyesuaikan dan mengembangkan proyek ini untuk memenuhi kebutuhan spesifik proyek IoT Anda.


Hari ini belajar, Besok main

Leave a Reply

Your email address will not be published. Required fields are marked *

You might also like