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

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

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

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

MQTT

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

Q&A

2回答

3701閲覧

esp 8266 wroom 02 Arduino 上で MQTT を実施する際バッファ最大値を超え LmacRxBlk:1 というエラーが頻発する

退会済みユーザー

退会済みユーザー

総合スコア0

Arduino

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

MQTT

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

0グッド

0クリップ

投稿2016/09/22 12:07

編集2022/01/12 10:55

お世話になります。

MQTTのテストをesp 8266 wroom 02 で実施しています。
一定量を超えるデータをサブスクライブした段階で以下エラーが頻発(1分で50回程度)します。
サブスクライブしたデータ量が最大値になっているのでエラーが出ているようなのですが、
Pubsubを継続的に実施する為、本エラーを取り除きたいです。

質問は、本エラーに対する具体的な対応コードがわかりませんので
教えてください。宜しくお願い致します。

◆該当エラー

LmacRxBlk:1

◆環境は以下になります。
esp 8266 wroom 02
Arduino 1.6.11

◆スケッチは以下になります。

#include <MQTT.h> #include <PubSubClient.h> #include <ESP8266WiFi.h> #include <PubSubClient.h> #define DF_LED_12 12 // LED #define DF_LED_14 14 // LED // アクセスポイント接続情報 const char *wifi_ssid = "xxxxx"; // SSID const char *wifi_pass = "xxxxx"; // パスワード // MQTT接続情報 const char *mqtt_host = "xxxxx"; // 接続先のホスト名 2あるのでどちらか const char *mqtt_user = "xxxxx"; // ユーザー名 const char *mqtt_pass = "xxxxx"; // パスワード const char *mqtt_topic = "xxxxx/office/tokyo/3F/temp"; // アクセス先トピック const char *mqtt_client = "xxxxx"; int count = 0; WiFiClient wclient; PubSubClient client(wclient, mqtt_host); #define BUFFER_SIZE 100 void callback(const MQTT::Publish& pub) { // Serial.print(pub.topic()); // Serial.print(" => "); if (pub.has_stream()) { uint8_t buf[BUFFER_SIZE]; int read; while (read = pub.payload_stream() ->read(buf, BUFFER_SIZE)){ Serial.write(buf, read); } pub.payload_stream() ->stop(); Serial.println(""); } else Serial.println(pub.payload_string()); } void setup() { Serial.begin(115200); pinMode(DF_LED_12, OUTPUT); // LED pinMode(DF_LED_14, OUTPUT); // LED delay(10); Serial.println(); Serial.println(); } void loop() { if (WiFi.status() != WL_CONNECTED) { Serial.print("Connecting to "); Serial.print(wifi_ssid); Serial.println("..."); WiFi.begin(wifi_ssid, wifi_pass); if (WiFi.waitForConnectResult() != WL_CONNECTED) { return; } Serial.println("WiFi connected"); } //MQTTサーバーへ接続する if (WiFi.status() == WL_CONNECTED) { if (!client.connected()) { Serial.println("Connecting to MQTT server"); if (client.connect(MQTT::Connect(mqtt_client).set_auth(mqtt_user, mqtt_pass))) { Serial.println("Connected to MQTT server"); client.set_callback(callback); client.subscribe(mqtt_topic); } else { Serial.println("Could not connect to MQTT server"); } } Serial.print("---------->>>>>> Publishing: "); String message = String("count ") + count; Serial.println(message); client.publish(mqtt_topic, message); count++; digitalWrite(DF_LED_12, HIGH); delay(200); digitalWrite(DF_LED_12, LOW); delay(100); if (client.connected()) { client.loop(); } } delay(10000); } ``` ```

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

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

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

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

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

guest

回答2

0

質問は、本エラーに対する具体的な対応コードがわかりませんので教えてください

LmacRxBlk:1 (tcp buffer full)

ですかね。

投稿2016/10/20 22:50

hana-da

総合スコア1728

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

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

0

まだエラーは頻発していますが以下参考まで。

http://www.esp8266.com/viewtopic.php?f=29&t=2462

投稿2016/09/22 12:46

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問