質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

MQTT

MQTT(Message Queue Telemetry Transport)とは、TCP/IPネットワークで利用可能な通信プロトコルの一つで、IoT/M2M向けに開発された軽量なプロトコルです。ヘッダ部分は最小2バイトと小さく、通信量・CPU負荷・電力消費量などを抑えることができます。

Q&A

解決済

1回答

5035閲覧

ESP32(Arduino) MQTT接続

raspypy

総合スコア247

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

MQTT

MQTT(Message Queue Telemetry Transport)とは、TCP/IPネットワークで利用可能な通信プロトコルの一つで、IoT/M2M向けに開発された軽量なプロトコルです。ヘッダ部分は最小2バイトと小さく、通信量・CPU負荷・電力消費量などを抑えることができます。

0グッド

0クリップ

投稿2019/03/12 02:43

##やりたいこと
LINEからのメッセージに応じて、LEDの点灯・消灯を制御してみたいです。
LINEから「つけて」とメッセージを送ると、
LINE BOTから「つけました」と返信があり、MQTTメッセージは、「ON」が送られます。

##今の状態
やりたいことの内容は、
・LINEの送信・受信(「つけて」と送信し、「つけました」と返信がある)
・CloudMQTTのWEBSOCKET UIを使用して、MQTTメッセージの受信データで「ON」が受信できている。
この2つの方法で確認できています。
webアプリケーションの環境は整っている状態です。

##ハードウェアの環境
ESP32を使用しています。
開発環境はArduino IDEを使用しています。

##つまづいている内容
ESP32にプログラムコードを記述し、シリアルモニタで状態を確認した所、
次のメッセージが出てしまいます。
原因を調べてみたのですが、よく分からず手詰まりの状態です。
エラーの原因と対策案がありましたら、教えていただけると助かります。

html

1connecting to xxxxxx... 2WiFi connected: 192.168.1.11 3MQTT connection failed: -2

##プログラムコード
WiFi及びMQTTへ接続する部分のコードを掲載します。

html

1void setup() { 2 Serial.begin(115200); 3 Serial.println(); 4 WiFi.mode(WIFI_STA); 5 client.setCallback(callback); 6 client.setServer(host, port); 7} 8 9void loop() { 10 //Wifi接続 11 if (WiFi.status() != WL_CONNECTED) { 12 Serial.print("connecting to "); 13 Serial.print(ssid); 14 Serial.println("..."); 15 WiFi.begin(ssid, password); 16 17 if (WiFi.waitForConnectResult() != WL_CONNECTED) { 18 //アクセスポイントへの接続に失敗したら5秒間待ってリトライ 19 Serial.println("failed to connect"); 20 delay(5000); 21 return; 22 } else { 23 Serial.print("WiFi connected: "); 24 Serial.println(WiFi.localIP()); 25 } 26 27 wifiClient.setCACert(ca_cert); 28 } 29 30 //CloudMQTTに接続 31 if (!client.connected()) { 32 client.connect(clientID, CloudMQTT_user, CloudMQTT_pass); 33 34 if (client.connected()) { 35 Serial.println("MQTT connected"); 36 37 // トピック名を指定してsubscribe 38 client.subscribe(topic); 39 } else { 40 Serial.print("MQTT connection failed: "); 41 Serial.println(client.state()); 42 delay(5000); 43 } 44 } else { 45 // 既にサーバに接続されていれば通常処理を行う 46 client.loop(); 47 } 48}

##Config.hの設定内容

html

1const char* ssid = "xxxxxx"; 2const char* password = "yyyyy"; 3 4const char *clientID = "LINE"; 5 6//CLOUDMQTT 7const char *host = "mxx.cloudmqtt.com"; 8const char *CloudMQTT_user = "hhhppp"; 9const char *CloudMQTT_pass = "yyycccc"; 10const int port = 248xx; 11const char *topic = "esp32/LED";

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

次の2点を修正し、解決しました。
・CA証明書の一部に記述ミス
・CientIDをユニークな名前に変更

投稿2019/03/13 02:26

raspypy

総合スコア247

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問