PR

【完全ガイド】ESP32とMQTTでクラウド連携するデバイス開発

スーツを着た人が青く光る雲を持っています。本文には「ESP32とMQTTで連携するクラウドデバイス開発」「簡単です。今すぐ試してみてください。」と書かれています。背景は暗く、明るい青い雲の輪郭が描かれています。. arduino

はじめに

IoTデバイスをクラウドと連携させることで、遠隔モニタリングやデータ収集が可能になります。本記事では、ESP32とMQTTを使ってクラウドと通信する方法を解説します。

✅ ESP32を使ったセンサーデータの送信
✅ MQTTブローカーとの接続設定
✅ スマホやPCからデータを確認
✅ スマートホームや遠隔制御に応用可能

クラウド連携を活用して、より高度なIoTデバイスを開発しましょう!

1. MQTTとは?

🔹 MQTTの概要

MQTT(Message Queuing Telemetry Transport)は、軽量な通信プロトコルで、IoTデバイスとクラウドを低遅延で接続できます。

パブリッシュ / サブスクライブ方式(データを送受信)
低消費電力&安定した通信
軽量なプロトコルでWi-Fi環境でも動作可能

2. 必要なもの

部品名用途
ESP32クラウドと通信するマイコン
DHT11 / DHT22温湿度センサー(データ送信用)
MQTTブローカー(Mosquitto)データを管理するサーバー
Wi-Fi環境インターネット通信用

3. MQTTブローカーの準備

🔹 MQTTブローカーの選択肢

ローカル(Raspberry Pi + Mosquitto)
クラウド(HiveMQ / AWS IoT / Adafruit IO)

🔹 Mosquittoのセットアップ(ローカル用)

Raspberry PiにMosquittoをインストールする方法:

sudo apt update
sudo apt install mosquitto mosquitto-clients
sudo systemctl enable mosquitto

Mosquittoの起動:

mosquitto -v

4. ESP32とMQTTの接続設定

以下のコードで、ESP32をMQTTブローカーに接続し、センサーデータを送信します。

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

#define WIFI_SSID "your_SSID"
#define WIFI_PASSWORD "your_PASSWORD"
#define MQTT_BROKER "broker.hivemq.com"
#define MQTT_PORT 1883
#define MQTT_TOPIC "esp32/sensor"
#define DHTPIN 4
#define DHTTYPE DHT22

WiFiClient espClient;
PubSubClient client(espClient);
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(115200);
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  client.setServer(MQTT_BROKER, MQTT_PORT);
  dht.begin();
}

void loop() {
  if (!client.connected()) {
    while (!client.connect("ESP32Client")) {
      delay(500);
    }
  }
  float temp = dht.readTemperature();
  char payload[10];
  dtostrf(temp, 6, 2, payload);
  client.publish(MQTT_TOPIC, payload);
  delay(5000);
}

💡 このコードをESP32にアップロードすれば、温度データをMQTTブローカーに送信できます!

5. MQTTデータをスマホで確認

🔹 MQTTクライアントアプリを使う

「MQTT Explorer」(PC用)
「IoT MQTT Dashboard」(スマホ用)

  1. MQTTブローカー(broker.hivemq.com など)に接続
  2. esp32/sensor トピックを購読
  3. ESP32から送信されるデータをリアルタイムで確認

6. 応用機能

🔹 スマートホームに応用(家電制御)

MQTTを利用すれば、リモートから家電を操作するスマートホームシステムを構築できます。

client.publish("esp32/led", "ON");

💡 Node-REDやHome Assistantと組み合わせれば、自動化も可能!

🔹 クラウドサービスと連携(AWS IoT / Adafruit IO)

AWS IoTやAdafruit IOを利用すれば、MQTTデータをクラウド上で管理し、ダッシュボード表示が可能になります。

7. よくあるトラブルと解決策

🔹 MQTTに接続できない

  • Wi-Fi設定(SSID / パスワード)を確認
  • MQTTブローカーのアドレスが正しいか確認
  • ポート番号(1883)が開放されているか確認

🔹 データが届かない

  • client.publish() のトピックが正しいかチェック
  • ブローカー側でサブスクライブ設定を確認
  • Wi-Fiが不安定な場合は再接続処理を追加

8. まとめ

本記事では、ESP32とMQTTを使ったクラウド連携デバイスの開発方法を解説しました。

💡 今回のポイント

ESP32をWi-Fi経由でクラウドと接続
MQTTプロトコルを使ってセンサーデータを送信
スマホやPCでリアルタイムにデータを確認
スマートホームや遠隔監視システムに応用可能

ESP32 × MQTTで、クラウド連携IoTデバイスを作りましょう!

コメント

タイトルとURLをコピーしました