はじめに
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」(スマホ用)
- MQTTブローカー(
broker.hivemq.com
など)に接続 esp32/sensor
トピックを購読- 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デバイスを作りましょう!
コメント