ESP8266, ESP-WROOM-02, ESPr Developer トラブルシューティングまとめ

ESP8266 ( ESP-WROOM-02 )

目次ページ

11.正常に動作するプログラムでも、コンパイル後の実行で、シリアルモニターに文字化けデータしか表示されない

正常に動作するプログラムのはずが、コンパイル後のシリアルモニターに稀に文字化けデータしか表示されない時があります。
もちろん、シリアルモニターの速度は115200 bps に設定されていてる場合です。

【原因??】
電源を起動して、前のプログラムが走っていて、その途中でコンパイルした時、稀に文字化けデータしか表示されない時があります。
恐らく、前のプログラムの実行が連続高速処理されている場合に、途中でコンパイル指令を出すと、こういうことが起こるような気がします。

【対策】
再度、コンパイルすると、正常にコンパイルされる場合が殆どです。

12.Web と連動してテキストを抽出する場合に、途中でフリーズ(固まる)する

以下の記事でツィッター検索記事を定時取得した場合に発生します。

Twitter 検索結果のツイートを有機EL ( OLED )に表示させてみた

【原因??】
まだハッキリと原因は突き止められておりませんが、Twitter検索結果記事の取得の場合、決まってフリーズするのは、記事取得最中に同じルーター環境内の他のパソコンでインターネット通信している時に発生しているようです。
client.read() のところでフリーズしていて、タイムアウト設定を作ってもフリーズしてしまう為、機能しなくなります。
プログラム中にyield(); やdelay(1); を散りばめて配置してもフリーズしてしまいます。
恐らく、Webから送られてくるパケットの断片化が原因でしょうか・・・。

【対策??】
残念ながらまだ判りません。
ESPr Developer ( ESP-WROOM-02, ESP8266 ) をリセットするしかないようです。

13.ESPr Developer ( ESP-WROOM-02, ESP8266 )にLEDを接続したら壊れた

【原因】
ESP8266 ( ESP-WROOM-02 ) のGPIO 端子に流すことができる最大電流は 12mA までです。
これは、ESPRESSIF社で公開されているデータシートに掲載されています。
GPIO に 電流制限抵抗等を接続せずに LED を直結して、12mA 以上の電流が流れてしまうと、殆どの場合、即故障します。
私の手持ちの一般的で安価な砲弾型LED (5V) は、GPIOに直結しても5mA ほどしか流れないものでしたので、過去に挙げた記事のように直結しても問題ありませんでした。
高輝度LED を直結してしまうと、12mA を超えてしまう場合があります。

【対策】
ESPr Developer ( ESP-WROOM-02, ESP8266 ) のGPIO にLED を直結する前に、そのLED が3.3V をかけても12mA 以上電流が流れないかどうか、データシートで確認してください。
また、別電源でLEDに可変抵抗器などを接続して、電流計でチェックしながら3.3V をかけてみてチェックしておくことが必要です。それから必要に応じて抵抗を挟みながら、GPIOに接続してください。
また、定電流ダイオードを間に接続するという方法もあります。
例えば、以下のような10mAのものがあります。

14.Arduino IDE スケッチのコンパイル書き込みで、「シリアルポート「COM9」が開けません。」というメッセージが出る

複数のESPr Developer ( ESP-WROOM-02 開発ボード )を使ってそれぞれ USB を差し替えてコンパイル書き込みするときにこのメッセージが出る時があります。

【原因】
別のESPr Developer にUSBを差し替えた時に、Arduino IDE の「ツール」メニューのシリアルポートが選択されていない

【対策】
ESPr Developer のUSB を差し替えた後は Arduino IDE の「ツール」メニューのシリアルポートで、COMポートを選択すればOKです。

15.ライブラリマネージャーでインストール、アップデート、アンインストールができない

【原因】
当方自作のライブラリ、EasyWebSocket、Utf8toSjis、ShinonomeFNTread 等は、Arduino IDE のライブラリマネージャーではインストールやアンインストール、アップデートはできません。
残念ながら、ライブラリマネージャーを使用できるような申請をしておりません。

【対策】
Arduino IDEのフォーマットに沿ったZIP形式ライブラリならば、IDE の「ZIP形式のライブラリをインストール」機能を使えば簡単にインストールできます。

うまくいかない場合は、手動でZIPファイルを解凍して、Arduino IDE のlibrariesフォルダにコピーしてください。
Windows10 の場合は
ドキュメント/Arduino/libraries
というパスにあります。
EasyWebSocket_SPIFFS-master の場合、解凍したフォルダの中に更に同じ名前の EasyWebSocket_SPIFFS-master というフォルダがあるので、そのフォルダごとコピーすれば良いです。

目次ページ

コメント

  1. 藤田大悟 より:

    非常に参考にさせていただいております。
    以下のエラーで色々やっているのですが、うまくコンパイルしたのが転送できておりません。
    アドバイスいただけると嬉しいです。

    Arduino:1.8.1 (Mac OS X), ボード:”Generic ESP8266 Module, 160 MHz, 80MHz, QIO, 921600, 4M (3M SPIFFS), nodemcu, Disabled, None”

    ビルドオプションが変更されました。全体をリビルドしています。
    最大1044464バイトのフラッシュメモリのうち、スケッチが230557バイト(22%)を使っています。
    最大81920バイトのRAMのうち、グローバル変数が32108バイト(39%)を使っていて、ローカル変数で49812バイト使うことができます。
    warning: serialport_set_baudrate: baud rate 921600 may not work
    Uploading 234704 bytes from /var/folders/z0/ggnt7s1d3cx7v_ynhpp295jr0000gn/T/arduino_build_551472/sketch_feb19a.ino.bin to flash at 0x00000000
    …………………………………………………………………….. [ 34% ]
    …………………………………………………………………….. [ 69% ]
    ….スケッチの書き込み中にエラーが発生しました
    .warning: espcomm_send_command: didn’t receive command response
    warning: espcomm_send_command(FLASH_DOWNLOAD_DATA) failed
    warning: espcomm_send_command: didn’t receive command response
    error: espcomm_upload_mem failed

    「ファイル」メニューの「環境設定」から
    「より詳細な情報を表示する:コンパイル」を有効にすると
    より詳しい情報が表示されます。

    • mgo-tec mgo-tec より:

      藤田さん

      当ブログをご覧いただき、ありがとうございます。

      さて、私はMac を持っておりませんので、どうしてそういうエラーになるのか、正直分かりません。

      warning: serialport_set_baudrate: baud rate 921600 may not work

      と出ているので、おそらくシリアルポートの速度が速すぎるのかもしれません。
      試しに、115200 bps でアップロードしてみるとかですかね。

  2. 匿名 より:

    esp8266でespNow通信を試そうとしています。
    esp8266のボードやその他のライブラリーはインストールが成功し正常に動作しています。
    しかしながらesp_now.hがインストールできません。
    何か方法が有るのでしょうか?
    よろしくお願いします。

    • mgo-tec mgo-tec より:

      匿名さん

      記事をご覧いただき、ありがとうございます。
      コメント投稿が連続で2つ投稿されていたので、最初の方のコメントを採用させていただきました。

      私は現在ESP8266を全く使用しておらず、当時とは環境が大幅に変化しており、しかもESP-NOWは全く使ったことがありませんので、あまりまともにお答えできないかも知れません。

      ESP-NOWについてザッとネットで調べてみたところ、Arduinoスケッチ上で、
      #include <esp_now.h>
      と入力するのは、ESP32の場合っぽいです。
      ESP8266 の場合は、
      #include <espnow.h>
      で良いのではないかなと思いました。

      一応、現在の私の環境
      Arduino IDE 1.8.19
      Arduino core for the ESP8266 ver 3.0.2
      でコンパイルしてみたところ、エラーせずに通ったので、ライブラリマネージャでESP-NOWをインストールする必要も無いように思います。
      違っていたらゴメンナサイ。

タイトルとURLをコピーしました