Berikut adalah contoh kode untuk logging data suhu dari sensor LM35 menggunakan Arduino dan IoT:
#include <WiFi.h>
#include <PubSubClient.h>
const char* ssid = "your-wifi-ssid";
const char* password = "your-wifi-password";
const char* mqttServer = "your-mqtt-server-address";
const int mqttPort = 1883;
const char* mqttUser = "your-mqtt-username";
const char* mqttPassword = "your-mqtt-password";
WiFiClient espClient;
PubSubClient client(espClient);
void setup() {
Serial.begin(9600);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
client.setServer(mqttServer, mqttPort);
}
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
int temperature = analogRead(A0);
float voltage = (temperature * 5000.0) / 1024.0;
float celcius = voltage / 10.0;
char temperatureStr[6];
dtostrf(celcius, 4, 2, temperatureStr);
String message = String("{\"temperature\":") + temperatureStr + "}";
const char* payload = message.c_str();
client.publish("sensors/temperature", payload);
Serial.println("Published temperature: " + message);
delay(3000);
}
void reconnect() {
while (!client.connected()) {
Serial.println("Connecting to MQTT...");
if (client.connect("arduinoClient", mqttUser, mqttPassword)) {
Serial.println("Connected to MQTT");
} else {
Serial.print("Failed, rc=");
Serial.print(client.state());
Serial.println("Try again in 5 seconds");
delay(5000);
}
}
}
- Pilih bahasa pemrograman yang akan digunakan untuk membuat MQTT broker atau client. MQTT dapat diimplementasikan di banyak bahasa pemrograman, seperti Python, Java, C++, dan lainnya.
- Install library MQTT. Ada beberapa library MQTT yang tersedia di internet, seperti paho-mqtt untuk Python, Eclipse Mosquitto untuk C/C++, dan lain-lain. Library ini akan mempermudah implementasi protokol MQTT pada program yang akan Anda buat.
- Buat broker MQTT. Broker MQTT bertugas untuk menerima pesan yang dikirim oleh publisher dan mengirimkannya ke subscriber yang berlangganan topik tertentu. Ada beberapa broker MQTT yang populer seperti Mosquitto, HiveMQ, dan lain-lain. Anda juga dapat membuat broker MQTT sendiri menggunakan library yang telah diinstal.
- Buat client MQTT. Client MQTT dapat berupa publisher atau subscriber. Publisher bertugas mengirimkan pesan ke broker, sedangkan subscriber bertugas menerima pesan dari broker. Anda dapat membuat client MQTT menggunakan library yang telah diinstal pada bahasa pemrograman yang dipilih.
- Tentukan topik pesan. Topik pesan adalah topik yang digunakan untuk mengirim dan menerima pesan pada protokol MQTT. Topik dapat digunakan untuk mengelompokkan pesan berdasarkan jenis, lokasi, atau jenis data.
- Tentukan kualitas layanan (QoS) yang digunakan. MQTT mendukung tiga level QoS, yaitu QoS 0, QoS 1, dan QoS 2. Setiap level memiliki kelebihan dan kelemahan masing-masing dan harus dipilih sesuai dengan kebutuhan aplikasi.
- Implementasikan fungsi-fungsi yang dibutuhkan pada program. Beberapa fungsi yang perlu diimplementasikan pada program MQTT adalah fungsi untuk menghubungkan client ke broker, mengirim pesan, dan menerima pesan.