memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

IoT巣箱(その3)

昨日、以下について書いたばかりですが、さてお次はソフトウェアだな。。。というところでまたつまずきがあったので記録しておきたいと思います。

マイコンはESPr® Developer 32っていうやつを使います。

本を参考にしながらやればハマることは少ないだろうと思っていたのですが。。。出だしからつまずきました。よくあるようです。

とりあえずうまくいった手順を書いておきます。

開発環境(前提).開発パソコンはMac(11.6)です。Macbook Pro 2020です。

ステップ1Arduino IDEのインストール(←もとから入っていたので実際にはやっていません)

Software Open-source electronic prototyping platform enabling users to www.arduino.cc

ステップ2Arduino IDEを起動して[Arduino]-[Preferences]を選択し、追加のボードマネージャのURLの欄に「https://dl.espressif.com/dl/package_esp32_index.json」を記入してOKボタンを押します。

ステップ3.ドライバを入れる必要があるようです。1.4.7のリンクをクリックするとFTDIUSBSerialDextInstaller_1_4_7.zipがダウンロードできるので展開して、FTDIUSBSerialDextInstaller_1_4_7を/Applicationsに移動し、そこで実行します(アイコンをダブクリしても反応しなかったのでターミナルで実行しました)。

VCP Drivers - FTDI ftdichip.com

ステップ4.USBマイクロのケーブルでMacとESP32を繋げます。ケーブルは充電用ではなく通信用ケーブルです。色々と相性があるようです。うまく認識しなければいくつか試してみる感じですね。あるあるです。うまく接続できると、ターミナルで「ls /dev/cu*」とか実行すると「/dev/cu.Bluetooth-Incoming-Port」の他に「/dev/cu.usbserial-D306E25F」のような感じが表示されるとOKですが、「/dev/cu.Bluetooth-Incoming-Port」だけだと認識されていない状況ってことです。

ステップ5Arduino IDEで[ツール]-[ボード]-[ESP32 Arduino]-[ESP32 Dev Module]を選択します。

ステップ6.テキトウなコードを入力します。何でもいいです。シリアルモニターにtestという文字列を1秒間隔で出力されるはずです。

void setup() {

 Serial.begin(115200);

}



void loop() {

 Serial.println("test");

 delay(1000);

}

ステップ7.ここからがよくわからなかったところですが。Arduinoであれば、あとは「マイコンボードに書き込む」ボタンを押せばコンパイルされたコードが転送されるはずですが。。。以下のようなエラーメッセージが表示されるだけで、どうやっても転送が完了しません。

esptool.py v3.0-dev

Serial port /dev/cu.usbserial-D306E25F

Connecting........_____....._____....._____....._____....._____....._____....._____



A fatal error occurred: Failed to connect to ESP32: Invalid head of packet (0x68)

ESP32の基板の上に2つのボタンがついていると思います。この2つのボタンを使うようです。まずシリアルモニターを開きます。そして、通信速度を115200bpsに、CRおよびLFを選択します。

そして、FLASHボタンを押しながら、BOOTボタンを押します。すると以下のメッセージが表示されます。この状態で「マイコンボードに書き込む」ボタンを押せば転送されるかと思うのですが、されません。。。

ets Jun  8 2016 00:22:57



rst:0x1 (POWERON_RESET),boot:0x3 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2))

waiting for download

そこで、2つともボタンから手を離した状態で、再度、FLASHボタンを押し続けまして、この状態で「マイコンボードに書き込む」ボタンを押すとコードの転送が成功するはずです。

成功したかどうかも微妙なんですね。。。どういうことかというと、書き込みが完了するとArduino IDEのコンソールには以下のように何となくうまくいった風のメッセージが表示されるのですが、シリアルモニターには「⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮」と表示されるだけ。

Writing at 0x00008000... (100 %)

Wrote 3072 bytes (128 compressed) at 0x00008000 in 0.0 seconds (effective 1796.2 kbit/s)...

Hash of data verified.



Leaving...

Hard resetting via RTS pin...

ここで、ESP32のRESTボタンを押せば、やっとマイコン上のコードが動き出すようです。

わかってしまえばどうってことはない話なのですが、以下の本にはそんなこと書いてなかったですしね。。。もし全くの初心者だったら情報を探し回るのは難しいでしょうし。。。うーんっていう感じですね。

IoT開発スタートブック ── ESP32でクラウドにつなげる電子工作をはじめよう! www.amazon.co.jp 2,592円 (2021年10月08日 19:16時点 詳しくはこちら) Amazon.co.jpで購入する

とりあえず、開発環境が整いましたとさ。

でわ!