wamisnet / Azure-iothub-mqtt-esp8266

MIT License
11 stars 7 forks source link

Err:Not connected to the Internet(ライブラリのメモリ消費を抑える) #6

Closed Blue-Tone closed 8 years ago

Blue-Tone commented 8 years ago

Not connected to the Internet で再接続でつながらない、WDTでリブート、一旦Wifi接続?、再接続でつながらない、WDTでリブート を繰り返しているようです。

どこかチェックポイントありますか?

Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
scandone
no SSID found, reconnect after 1s
reconnect
f -180, Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
scandone
no SSID found, reconnect after 1s
Not connected to the Internet
reconnect
f r0, Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
scandone
no SSID found, reconnect after 1s
Not connected to the Internet
reconnect
f 0, Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
scandone
no SSID found, reconnect after 1s
Not connected to the Internet
reconnect
f -180, Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
scandone
no SSID found, reconnect after 1s
Not connected to the Internet
reconnect
f r0, err already associed!
station: 00:22:fb:6c:30:08 leave, AID = 1
rm 1
Not connected to the Internet
add 1
aid 1
station: 00:22:fb:6c:30:08 join, AID = 1
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
scandone
no SSID found, reconnect after 1s
Not connected to the Internet
reconnect
f 0, scandone
no SSID found, reconnect after 1s
reconnect
f -180, LmacRxBlk:1
LmacRxBlk:1
err already associed!
station: 00:22:fb:6c:30:08 leave, AID = 1
rm 1
scandone
no SSID found, reconnect after 1s
add 1
aid 1
station: 00:22:fb:6c:30:08 join, AID = 1
reconnect
f r0, Not connected to the Internet
LmacRxBlk:1
Not connected to the Internet
Not connected to the Internet

 ets Jan  8 2013,rst cause:4, boot mode:(3,6)

wdt reset
load 0x4010f000, len 1384, room 16 
tail 8
chksum 0x2d
csum 0x2d
v09f0c112
~ld

Startup
server On
1032

loading WiFiConf
37001119120485045571025648575700000000000000000000055499897565053535410010257480000000000000000000000000000000000000000000000000007810110211412145539753530000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
load format : 37 : EEPROM format : 37
load format : 0 : EEPROM format : 0
load format : 0 : EEPROM format : 0
load format : 1 : EEPROM format : 1
memory Ok

Nefry Startup

Name: Nefry-5a55
SSID: wx02-9f8099
Module ID: Nefry-5a55
WiFi Startup

scan done
3 networks found
1: wx02-9f8099 (-41)
2: 184F32E18639-2G (-82)
3: C48E8FDC5531-2G (-87)

Waiting for WiFi to connect
.......WiFi connected
LAN: 192.168.179.4
AP: 192.168.4.1

Server started

mDNS responder started
ap_loss
scandone
state: 5 -> 0 (0)
rm 0
reconnect
f 0, Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
LmacRxBlk:1
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
Not connected to the Internet
scandone
no SSID found, reconnect after 1s
reconnect
f -180, scandone
no SSID found, reconnect after 1s
reconnect
f r0, 
wamisnet commented 8 years ago

現状、Nefryライブラリーとの相性が悪いですので、Nefryライブラリーを使わずにhttps://github.com/esp8266/Arduino 大元のこちらを使用してください。

wamisnet commented 8 years ago

ボードの設定については、こちらを参考にしてください。 default

wamisnet commented 8 years ago

このライブラリーは18300バイト程度メモリを使用している。(SSLを使っているので仕方ない部分

Nefryライブラリーの空き容量は21000バイト程度、NefryのWebページなどで1000-2000は空き容量として必要(クラッシュさせないため

Nefryライブラリー、IoTHubのメモリ使用の削減が今後の課題

Blue-Tone commented 8 years ago

少し調査してみました。 ESP8266スペック  Flash:4M  RAM:36K

フルカラーLチカコンパイル時の出力: 最大1,044,464バイトのフラッシュメモリのうち、スケッチが291,289バイト(27%)を使っています。 最大81,920バイトのRAMのうち、グローバル変数が51,232バイト(62%)を使っていて、ローカル変数で30,688バイト使うことができます。

RAMが問題になっている。

Nefry.cppにhtml作成処理があるが、それをFlashに移せれば、RAMの空きが増やせるかも。

Blue-Tone commented 8 years ago

「arduino RAM Flash 文字列」でググったら情報出てきます。 http://garretlab.web.fc2.com/arduino/introduction/memory/ http://www.musashinodenpa.com/arduino/ref/index.php?f=0&pos=1830 http://www.musashinodenpa.com/arduino/ref/index.php?f=2&pos=168

この辺が使えるかも。 PROGMEMキーワード F()マクロ

wamisnet commented 8 years ago

ありがとうございます。

そうなんですよね、現在コード内に直接HTMLを書き込んでいるのでそのあたりを移動できるとよいなとは思ってるんですけどね…

https://github.com/Nefry-Community/Arduino ライブラリーv1.3ごろ(7月ごろ)SPIFFSという機能で別の場所に移動させようと思ったのですけど、HTMLの読み込みに1秒程度、PCなどでのページ表示に影響したので諦めた経緯があります

Blue-Tone commented 8 years ago

そうですね。FlashはRAMよりも読込速度が遅いので、ページの表示に時間がかかりますね。

コーディングの仕方でもう少し改善できるかも。その辺りのソース見てみます。

Blue-Tone commented 8 years ago

読込に1秒ぐらいかかってたコードと、改善したコードのバージョンを特定できますか? こんな情報がわかればベター。

コミット: ef6b681864cd9046505416569f98a5dd0e81c1f9 [ef6b681] 日時: 2016年7月6日 10:40:37

あと、どのページで確認したかも知りたいです。

wamisnet commented 8 years ago

https://github.com/Nefry-Community/Arduino/tags

タグを追加しておいたのでそちらで確認するのがいいかもしれないです

wamisnet commented 8 years ago

1.2の派生が1.3と1.4ですね、現在は1.4からの派生で開発を進めてます

Blue-Tone commented 8 years ago

今考えてるのは、各行でFlash読込して、文字列連結してたら遅いかも。って予想。 http://d.hatena.ne.jp/mooz/20090628/p1 定型なところ(可変で変数や関数で取得してるところ以外)は、1回でまとめてFlash読込したら、多少ましになるかも。 試してないどこんな書き方。 http://d.hatena.ne.jp/mooz/20090628/p1

        content += "</p>";
        content += "<form method='get' action='set_module_id_next'>";
        content += "<div class = \"row\"> <label for=\"module_id\">";
        content += module_input[10];
↓
        content += "</p>"
                           "<form method='get' action='set_module_id_next'>"
                           "<div class = \"row\"> <label for=\"module_id\">";
        content += module_input[10];

これで最初の3行まとめて取得できるかも。

Blue-Tone commented 8 years ago

1.3タグがFlash読込で1.2、1.4タグが現状の書き方かな? 1.3タグのspiffsWeb("notfound", content);とかがやってみた所だね?

こちらでPROGMEMキーワードか、F()マクロ 試してみるので、どのページで試すのが良さそうとかあれば教えてください。

Blue-Tone commented 8 years ago

SPIFFS調べてみました。ファイルにして読み込む方法ですね。 PROGMEMキーワードか、F()マクロを試して、どちらが早いかですね。 明日以降にやってみます。

wamisnet commented 8 years ago

F()マクロなどで改善されそうですね! あとはどの程度時間に差が出るかですね

Blue-Tone commented 8 years ago

8KぐらいRAMが減りました。 シリアルポートが不調で、動作確認できないので、動かしてみてもらえますか?

こちらにコミットしました。 https://github.com/Blue-Tone/Arduino/tree/ReduceRAM

最大1,044,464バイトのフラッシュメモリのうち、スケッチが292,009バイト(27%)を使っています。 最大81,920バイトのRAMのうち、グローバル変数が43,408バイト(52%)を使っていて、ローカル変数で38,512バイト使うことができます。

影響の大きそうなところだけ、F()で囲みました。 あと、Stringの連結は処理コストが大きそうなので、複数行をまとめられるところはまとめました。

Blue-Tone commented 8 years ago

コミット漏れ修正しました。

wamisnet commented 8 years ago

Nefryでも動作するようになったのでCloseします。