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 というフォルダがあるので、そのフォルダごとコピーすれば良いです。
コメント
非常に参考にさせていただいております。
以下のエラーで色々やっているのですが、うまくコンパイルしたのが転送できておりません。
アドバイスいただけると嬉しいです。
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
「ファイル」メニューの「環境設定」から
「より詳細な情報を表示する:コンパイル」を有効にすると
より詳しい情報が表示されます。
藤田さん
当ブログをご覧いただき、ありがとうございます。
さて、私はMac を持っておりませんので、どうしてそういうエラーになるのか、正直分かりません。
と出ているので、おそらくシリアルポートの速度が速すぎるのかもしれません。
試しに、115200 bps でアップロードしてみるとかですかね。
ご回答いただいていたのにもかかわらず、お返事が遅くなり申し訳ございません。一度試してみます。よろしくお願いします。
いえいえ。
全然遅れても大丈夫ですよ~。
esp8266でespNow通信を試そうとしています。
esp8266のボードやその他のライブラリーはインストールが成功し正常に動作しています。
しかしながらesp_now.hがインストールできません。
何か方法が有るのでしょうか?
よろしくお願いします。
匿名さん
記事をご覧いただき、ありがとうございます。
コメント投稿が連続で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をインストールする必要も無いように思います。
違っていたらゴメンナサイ。