##やりたいこと
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";
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。