Senin, 30 Januari 2023

Kode arduino logging sensor suhu LM 35 dengan IOT

 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);
    }
  }
}

Catatan: Pastikan untuk mengganti nilai ssid, password, mqttServer, mqttPort, mqttUser, dan mqttPassword dengan informasi yang sesuai untuk jaringan Wi-Fi dan server MQTT Anda. Anda juga harus menginstal biblioteka WiFi dan PubSubClient sebelum menjalankan kode ini.

Berikut adalah contoh kode PHP untuk menampilkan data suhu yang diterima dari Arduino melalui MQTT pada sebuah web server:

<?php
  $server = "tcp://your-mqtt-server-address:1883";
  $username = "your-mqtt-username";
  $password = "your-mqtt-password";
  $topic = "sensors/temperature";
 
  $connection = new Mosquitto\Client();
  $connection->setCredentials($username, $password);
  $connection->connect($server);
 
  $connection->onConnect(function($code, $message) use ($connection, $topic) {
    $connection->subscribe($topic, 1);
  });
 
  $connection->onMessage(function($message) {
    $data = json_decode($message->payload, true);
    $temperature = $data["temperature"];
    echo "Current temperature is $temperature &#8451;<br>";
  });
 
  while (true) {
    $connection->loop();
  }
?>

Catatan: Pastikan untuk mengganti nilai server, username, dan password dengan informasi yang sesuai untuk server MQTT Anda. Anda juga harus menginstal biblioteka Mosquitto (MQTT client untuk PHP) sebelum menjalankan kode ini.

Untuk membuat protokol MQTT, ada beberapa hal yang perlu dilakukan:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.

Itulah beberapa langkah untuk membuat protokol MQTT. Penting untuk mengikuti spesifikasi protokol yang telah ditentukan agar protokol MQTT dapat berfungsi dengan baik.





0 komentar: