arduino_esp32_trouble00

ESP32 ( ESP-WROOM-32 , M5Stack )自分的 トラブルシューティング まとめ

記事公開日:2018年2月1日


スポンサーリンク

34.自作ライブラリ ESP32_mgo_tec で「SD.h」、「WiFi.h」に対して複数のライブラリが見つかりました、などのコンパイルエラーが出る

私の自作ライブラリ、ESP32_mgo_tec で、Arduino-ESP32 でコンパイルする場合、以下のようなエラーが出る場合があります。

「SD.h」に対して複数のライブラリが見つかりました
使用済:C:\Users\.....\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0\libraries\SD
未使用:D:\...............\arduino-1.8.6\libraries\SD
In file included from C:\Users\.........\Documents\Arduino\libraries\ESP32_mgo_tec-master\src\ESP32_mgo_tec_bV1\Sensor\display_bme280_i2c.cpp:33:0:

「WiFi.h」に対して複数のライブラリが見つかりました
C:\Users\.........\Documents\Arduino\libraries\ESP32_mgo_tec-master\src/ESP32_mgo_tec_bV1/Sensor/display_bme280_i2c.h:44:64: fatal error: bme280.h: No such file or directory

使用済:C:\Users\........\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0\libraries\WiFi
compilation terminated.

未使用:D:\...............\arduino-1.8.6\libraries\WiFi
exit status 1
ボードESP32 Dev Moduleに対するコンパイル時にエラーが発生しました。

原因

このライブラリでは、BOSCH製センサ BME280 と、BME680 ライブラリをincludeしています。
そのライブラリがインストールされていないとエラーが出ます。

対策その1

BOSCH純正ライブラリをインストールするか、不要ならば、そのライブラリを削除します。
インストールする場合、GitHub のBOSCH純正ライブラリは以下のリンクにあります。

●BME280ライブラリ
https://github.com/BoschSensortec/BME280_driver
●BME680ライブラリ
https://github.com/BoschSensortec/BME680_driver

対策その2

使わないセンサライブラリファイルを削除する。
Windows 10 の場合のファイルパスは以下です。

C:\Users\__user_name__\Documents\Arduino\libraries\ESP32_mgo_tec-master\src\ESP32_mgo_tec_bV1\Sensor

このフォルダ中で不要なセンサのライブラリを削除してください。
BME280が不要ならば、以下の2つのファイルを削除。
display_bme280_i2c.h
display_bme280_i2c.cpp

BME680が不要ならば、以下の2つのファイルを削除。
display_bme680_i2c.h
display_bme680_i2c.cpp

両方不要ならば、Sensorフォルダごと削除してください。

35.Web記事取得していて、数時間後に記事取得失敗し、さらに時間が経つと勝手に再起動してしまう

Arduino – ESP32 の WiFiClientSecure ライブラリを使って、SSL サイトから記事を定期的に GET している時、数時間後には記事取得に失敗し、さらに時間が経つと勝手に再起動してしまう場合があります。

原因

Arduino IDE の「ツール」の Core Debug Level:”Verbose” にしている状態で起きます
記事取得後に
WiFi.mode( WIFI_OFF );
を実行して、再び
WiFi.begin()
を繰り返すと、mbedtlsライブラリによって heap memory が少しずつ食い尽くされて、SSLコネクション確立できなくなり、記事取得失敗します。
最終的には再起動してしまいます。

対策

以下の記事を参照してください。
ESP32 および M5Stack で数時間後に Web 記事取得失敗する問題について

36.Web記事を複数取得していて、数時間後になぜか最初の一記事だけ取得失敗し、再接続できない

ESP32 や M5Stack で、Yahoo! Japan RSS ニュース記事などを複数記事、連続して取得している場合、数時間後になぜか最初の一記事だけが取得失敗し、再接続できないことがあります。
前項の対策や、固定 IP 設定していても取得できない場合があります。

原因

Arduino – ESP32 で、WiFiClientSecure ライブラリの client.connect 関数で、最初の Host 接続に失敗することが原因です。

対策

以下の記事の最後の方に追記しましたので、そちらを参照してください。

ESP32 および M5Stack で数時間後に Web 記事取得失敗する問題について

編集後記

トラブルシューティング記事を一人で書くというのも、かなり辛いものがありますね。
ホントに、個人ブログ作成というのは、割に合わない作業です。
やればやるほど気が滅入ってきます。

ということで、もう一度言っておきますが、この記事はあくまで私の個人的見解と、コメント投稿などの意見をまとめただけなので、Espressif Systems 社公式の見解ではありません。
もし、誤り等がありましたらコメント投稿等でご連絡いただけると助かります。
今後、他に気付いたことがあれば、追記していこうと思っています。

ではまた・・・。

【目次ページへ】


スポンサーリンク


 

mgo-tec電子工作ブログ管理人おすすめ
Amazon.co.jp
M5Stack Basic
スイッチサイエンス
Amazon.co.jp
ESPr Developer 32
スイッチサイエンス(Switch Science)
Amazon.co.jp
Amazon.co.jp

「ESP32 ( ESP-WROOM-32 , M5Stack )自分的 トラブルシューティング まとめ」への10件のフィードバック

  1. mgo-tecさん、H.Wです。
    本件記事中の’ESP32トラブルシューティング’の件で、以下ご教示下さい。

    M5stackで当初からスケッチの書込み時に’connecting…—…—…’が永遠に継続し、取りあえずその対処方法として、BOTTOM基板コネクタのRSTとGND間に1.5〜3.3μFのコンデンサを挿入し、この対処法で1ヶ月程継続対応して特に問題なかったのですが、ー昨日、スケッチ書込み時に突然画面が消え、その後リセットを何度繰り返しても全く再起動しなくなってしまいました。。。

    考えられる原因として、BOTTOM基盤の勘合が当初から多少緩く、接触不良or外れていた可能性があります。また、例のマグネット式USBケーブルの接触不良で書込み時の電圧が低下していた可能性もあります。

    目下、購入元のスイッチサイエンスにもこれ迄の経緯も含め、その旨対処方法を問い合わせ中ですが、目下のところ回答が貰えていません…

    この様な状態になってしまったら、ファームウェアを書き直す以外に方法はないのでしょうか?
    またファームウェアを書き直す場合、具体的な手順はどうしたらいいのでしょうか?

    ご多忙中、誠に申し訳ありませんが、ご教示頂けると幸いです。

    1. H.Wさん

      それはそれは面倒なことになりましたね。
      私にも正直分かりませんが、H.Wさんがおそらくおっしゃる通り、スケッチ書き込み中に電源が落ちたということは、ファームが壊れた可能性大ですね。
      粗悪 USB ケーブルは思いのほかインピーダンスが高く、瞬時大電流で思いのほか電圧降下するので、それが原因の可能性もありますね。
      ファームの書き換え方法については私はよく知りませんが、ネットでは情報が沢山あると思います。
      早く治って欲しいですね。

      因みに、私の M5stack で Windows10 環境の場合、最近はUSB書込みに苦労することはありませんでした。
      もしかしたら、H.W さんの今までの書き込み不良はUSBケーブルだったということも考えらそうな気がします。

      ということで、あまりお役に立てる回答ができず申し訳ございません。

  2. mgo-tecさん、
    早速のご連絡有難うございます。

    実は諸般の事情から、IDE用の基幹PCはWindows7を使用しており、一応USBシリアルドライバはCP2104の最新版とはなっていますが、スケッチ書込が上手く行かない主原因はこの環境のせいではないかと思っています。

    尚、ESP32のファームウェア書込みツール(flash_download_tooles_v3.6.4_0)を以前DLしていたことを思い出し、試しにGithubでM5cloud用のfirmwareは直ぐに見つかったので、これを上記ツールで書き込んで起動&リンクさせることはできましたので、少なくともCPUは死んでいないことは確認できました。

    しかし、どういう訳かm5stackの’工場出荷時firmware’が、思い付くリンクの何処をどう探しても見つかりません。
    (最初に出荷時状態をバックアップしておけばよかったのですが、それを怠ったことが悔やまれます。。。)

    尚、スイッチサイエンス側からは未だ回答がなく、どうも技術的なサポートはされない様なのでちょっと期待薄です。

    もし、工場出荷時firmwareの所在情報等でご存知な事がありましたら、宜しくお願い致します。

    1. 申し訳ございませんが、ファームのある場所は知りません。

      私の場合は、ESP32が起動しなくなった時、ファームを書き替えた経験はありませんので、やり方を知りません。
      私は、以下の記事
      ESP32 ( ESP-WROOM-32 , M5stack )自分的 トラブルシューティング まとめ
      の、9番項目の「原因その2」に書いてあるように、Flash の NVS領域を初期化して、最新版 Arduino – ESP32 を入れ直したら、いつの間にか起動できるようになっていた経験があります。
      あまり参考にならないかも知れません。

  3. mgo-tecさん、
    ご多忙中、煩わしい問い合わせをしてしまい誠に申し訳ありません。

    取りあえずCPUが無事だったことは分かり、M5Cloudのfirmware導入でWeb上のIDEを経由してMicroPythonでプロジェクトが組めたり、既にご存知かもしれませんが、microSDに保存された複数のアプリを自由に切り替えて実行できる、’M5stack_MultiApp_Advance_Firmware’なる素晴しいファームがUPされている事も発見できましたので、結果オーライといったところです。
    (これで必ずしも元のfirmwareが必要ということは無くなりました。。。)

    尚、その後ハード面ではPROTO基板を手に入れ、
    1)RSTとGND間に電解コン(3.3μF)を追加。
    (多少容量が大きいですが、手元に実装できる小型コンデンサがこれしか無かったのと、経時変化で容量が最悪半減するだろう事を想定して良しとしました。)
    2)手持ちのLipo電池(860mAh)を裏側に追加。
    (並列接続するのはあまり良くないとされてますが、BOTTOM基板に実装されてる150mAhと合せて1100mAhまで増量。これで、5時間以上の連続動作が可能となりました。。。)
    3)バッテリーモニタ回路を追加。
    小型LED、チップTr(2SC2712)、チップ抵抗(470, 10k)、半固定ボリューム(5k)で回路を組み、本体側の既存穴からモニターできるようにしました。
    (Lipo電池が3.3Vまで低下したらLEDが消えるように、BE間のボリュームで輝度を微調整。尚、使用しない時は完全消灯できる様に小型SWも一応実装。)

    しかしながら、PROTO基板は高さ制約が厳しく、実質チップ部品でないと、自由な配置の回路実装はかなり難しいですね…

    1. H.Wさん

      いえいえ、あまりお役に立てずスミマセン。
      私も思っていたのですが、必ずしも工場出荷時のファームは必要ないと思っています。
      ですから公開しているサイトが無いんでしょうね。
      CPUやその他の回路が生きてさえいれば、Arduinoスケッチが流し込めるのではないかと、個人的に勝手に思っています。

      バッテリーモニタはイイですね。
      私もいつかバッテリー監視ICで回路を組んで、マウントしたいと思っていました。
      というか、M5StackにはそのICが積まれているので、データシートを見れば、どこかにバッテリーモニター出力がありそうな気がします。

      ということで、いつもコメントありがとうございます。
      なにか面白いものができるといいですね。

  4. 初めまして、amisuke1701と言います。

    「9.今まで問題無かったのに、急に Wi-Fi ( WiFi )に繋がらなくなった」、大変参考になりました。私も突然wifi接続ができなくなり焦っておりました。残念ながらこちらの手順を試しても復旧せずあきらめていたところ、以下手順で復旧しましたので参考に掲載します。

    無線ルーター(Aterm WG2600HP)
    暗号モードをWPA/WPA2-PSK(AES) => WPA2-PSK(AES)に切り替える
    これで復旧しました。暗号モードを戻しても問題なくなりました。
    原因は不明で、復旧理由も不明ですw。

    以上、参考までに。

    1. amisuke1701さん

      記事をご覧いただき、ありがとうございます。

      それは新しい手法ですね。
      これはルーターとのコネクションに何らかのバグがあるんでしょうか?
      いずれにしても、貴重な情報ありがとうございます。

      Twitter でもこの情報を流しておきますね。
      もしかしたら、悩んでいる方々の解決につながるかもしれません。

      有難うございました。
      m(_ _)m

  5. はじめまして!

    とても参考にさせていただいています。

    下記、私も同じ現象でした・・・
    このブログを見なかったら、意味がわからず途方にくれるところでした。


    M5Stack 側の USB-TypeC では、挿し込み方向によって、パソコン側がCOMポートとして認識しないことがあります。
    M5Stack 付属の USB-TypeC ケーブル、または M5Stack 側のUSB-TypeCポートの結線に問題がありそうです。
    (詳しく調べていませんが、私の場合、上下逆に挿し込むと認識しないことが確認されています。)

    1. Masaki さん

      記事をご覧いただきありがとうございます。
      無事に動いて良かったですね!
      そう言っていただけると作った甲斐があり、嬉しいです。
      (^^)

コメントを残す

メールアドレスが公開されることはありません。

*画像の文字を入力してください。(スパム防止の為)

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください