問題タブ [nodemcu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1271 参照

string - 大きな文字列を管理する方法

ESP8266 の最近のテストで、メモリ制限にぶつかりました。

ESP8266 で利用可能な AP の json を提供する単純な http サーバーがあります。

パリの自宅にいると、AP リストが長くなり、ペイロードの最大サイズに達します。

このメモリ パニックを回避するために、json をいくつかのチャンクに分割してから、1 つずつ送信したいと考えています。

私はこれを書きました:

次に、これで関数をテストしようとしました:

いくつかのテストの結果:

約 1500 バイトのメモリ制限に達したようです。

この制限を超えるためのアドバイスは何ですか?

0 投票する
1 に答える
6025 参照

dns - ローカルホストに接続できません

127.0.0.1:8000 (Django アプリケーション) でサーバーを実行しています。すべて問題ありません。ブラウザまたは curl からアクセスできます。

しかし、データを送信するために ESP8266 を接続しようとすると、何かが壊れており、localhost サーバーに接続することさえできません。

I have tried:

Nothing is printed.

I tried with conn:connect(8000, "localhost") , conn:connect(8000, "http://127.0.0.1") , conn:connect(80, "127.0.0.1"). Same results, nothing is printed. With the last one, I have a "DNS fail!" message.

Just to check, with conn:connect(80, "www.google.com"), "in connection" is printed.

Any guess?

0 投票する
1 に答える
330 参照

string - 特定の文字の間の部分文字列を検索

Lua 言語に慣れていないので、助けてください。POST を介していくつかの値を受信しようとしていますが、値は次のようなものです。


上記のコードの実際の結果は次のとおりです (Web ブラウザーを介して ssid=htc および password=fr を送信しています):

文字列にパスワードのみを入れ、別の文字列に ssid を入れたいと思います。したがって、私の考えは、次のロジックを使用して文字列を検索することです。 pwd=" and ("&" または文字列の末尾)

0 投票する
2 に答える
2232 参照

lua - ループが実行されている場合、wifi.sta モジュールは接続しますか?

.connect には次のような簡単なことを行うコールバックがないため、モジュールが実際に wifi AP に接続するタイミングを検出しようとしています。

しかし、ループ内では .sta.status() の出力は常に 1 です。終了時に、コマンド =wifi.sta.status() を IDE から手動で送信すると、5. なぜですか?

0 投票する
1 に答える
4059 参照

mqtt - NodeMCU と ESP8266: mqtt パブリッシュが遅い

Marcel の NodeMCU カスタム ビルドhttp://frightanic.com/nodemcu-custom-build/で作成されたファームウェアで esp8266 を使用しています 。「dev」ブランチと「master」をテストしました。

ここにある「 Connect to MQTT Broker」コードを少し変更しましたhttps://github.com/nodemcu/nodemcu-firmware

私は mosquitto を mqtt ブローカーとして使用しており、すべてのトピック#でサブスクライバーを立ち上げました。

結果は次のとおりです。メッセージは正しく到着しますが、サブスクライバーに到着するのは本当に遅いです (それぞれ約 1 秒)...なぜですか?

また、UDP を優先して mqtt アーキテクチャを変更しようとしました。esp8266 は 100 メッセージを高速で送信します。

更新 1#:

私はさらにいくつかの実験を行いました:

  • [android phone + a mqtt publisher] を使用してブローカーとサブスクライバーをテストすると、サブスクライバーはすぐにメッセージを受信します
  • 「デバッグ」を有効にして nodemcu をロードしたところ、興味深い発見がありました: 続きを読む

デバッグログとソースコードを読んで理解したことについて..メッセージをメモリに保存する一種のキューがあり、タイマー(頻度/間隔はわかりません)がキューからメッセージを読み取り、それを介して送信しますmqtt。100通のメッセージを送ろうとするとキューが増えるのですが、同時にメッセージを届けることができません(もしかしたら競合状態?)。

ここで 2 つ目の問題があります。15 を超えるメッセージがエンキューされた後、ファームウェアがクラッシュし、デバイスが再起動します。これは、メモリが使用できなくなったという症状のようです。

0 投票する
1 に答える
2701 参照

lua - パニック: Lua API の呼び出しで保護されていないエラーが発生しました (stdin:8: グローバル 'run' (nil 値) を呼び出しようとしています)

https://github.com/nodemcu/nodemcu-firmwareから NodeMCU を使用して、次のコードを実行します。

このエラーが発生しました:

これを解決するにはどうすればよいですか?