📡 MQTT با ESP32: داشبورد اینترنت اشیاء به زبان ساده

در وب‌سرور ESP32 گوشی مستقیم به برد وصل می‌شد. ولی در خانه‌ی هوشمند واقعی ده‌ها دستگاه داریم و همه باید با هم حرف بزنند. راه رایجش MQTT است: یک «پستخانه» وسط (به آن بروکر می‌گویند) که همه پیام‌هایشان را به آن می‌دهند و از آن می‌گیرند.

سه کلمه که باید بدانی

کد ESP32 با PubSubClient

#include <WiFi.h>
#include <PubSubClient.h>

WiFiClient espClient;
PubSubClient client(espClient);

void callback(char* topic, byte* payload, unsigned int length) {
  String msg = "";
  for (unsigned int i = 0; i < length; i++) msg += (char)payload[i];
  if (msg == "ON")  digitalWrite(4, HIGH);
  if (msg == "OFF") digitalWrite(4, LOW);
}

void setup() {
  pinMode(4, OUTPUT);
  WiFi.begin("MyHome", "12345678");
  while (WiFi.status() != WL_CONNECTED) delay(200);
  client.setServer("broker.local", 1883);
  client.setCallback(callback);
}

void loop() {
  if (!client.connected()) {
    if (client.connect("esp32-kid")) client.subscribe("home/led");
  }
  client.loop();                         // hands new messages to callback()
  client.publish("home/knob", String(analogRead(34)).c_str());
  delay(1000);
}

نکته‌هایی که بچه‌ها روی برد واقعی گیر می‌کنند

در شبیه‌ساز

پروژه‌ی آماده‌ی اینترنت اشیاء با MQTT را باز کن و اجرا کن، بعد تب «اینترنت اشیاء» زیر کد را بزن. آخرین عدد هر موضوع را به شکل کارت می‌بینی، برای موضوع‌هایی که برد به آن‌ها گوش می‌دهد دکمه‌ی ON و OFF داری، و همه‌ی پیام‌ها در یک فهرست می‌آیند. بروکر داخل خود شبیه‌ساز است و به اینترنت واقعی وصل نمی‌شود؛ وقتی برد واقعی خریدی، فقط آدرس setServer را به یک بروکر واقعی عوض کن.

MQTT را امتحان کن 📡

مقاله‌های دیگر

🤖

آردوینو چیست؟ راهنمای کامل برای شروع از صفر

⚡

بهترین شبیه‌ساز مدار آنلاین فارسی — چرا شبیه‌ساز، و چرا تینکرکد فارسی؟

💡

ساده‌ترین پروژه الکترونیک برای بچه‌ها: روشن‌کردن یک LED

بیشتر بخوان در ووکوی فارسی