前回のCO2測定に引き続きESP32を使って部屋の環境測定(のはずだった)。Arduino IDE使ってます。
忙しい人のための要点
- Arduino IDEでやってます。
- Wemos D1 R32なる怪しい基板使ってます。
- UploadSpeedを256,000か115,200にしないと書き込めませんでした。
- I2CピンはSCL=22, SDA=21でした。
- UARTは問題なし。
mBaaSにデータあげるのを先にやろうと思ったのだけど、NiftyCloudMobileBackendのデータを上げる際にHMACの計算が必要で、それがArduino向けはあるけどスタンドアローンなpure Cライブラリがなかったので諦めてしばらくはローカルでやります。
前回前々回と、ESP32にOLEDが載った謎基板を使っていましたが、ArduinoUNO配置に拡張されたものを見つけたので購入してみました。Groveシールドとかそういう類のもの使えればちょっと楽だなーという理由による判断です。
なおググるとこんなURLが…
Index of /images/WeMos-fake/D1-R32
WeMos D1 R32 ESP32 Arduino UNO互換
- 出版社/メーカー: WeMos
- メディア:
- この商品を含むブログを見る
トラブル
書き込めなかった
とりあえず動確用に、setup()でシリアル開いてloop()で一秒に一回適当な文字列を吐き続けるコードを書きました。コンパイルして書き込みます。書き込めないです。 色々確認した結果、UploadSpeedを下げれば何故か書き込めることがわかりました。それも、ただ下げるのではなく、特定の2速度のみ。
- 115200
- 256000
230400はダメでした。256000より速いのもダメでした。この二つにした場合のみ書き込めました。よくわからないですけど書き込めて、とりあえず動きました。
I2Cピン出してあるけど何番?
ピン配置が、Arduino UNO R3準拠(?)なので、デジタルピン側にSDAピン、SCLピンが出ています。この2ピンがないと、Arduino UNO用GroveシールドのI2Cコネクタが使えません。以前Seeeduino megaで嵌りました。(Seeduino megaは、アナログピンの横に[VCC,GND,SCL,SDA]のよくある順でI2C用ピンが引き出してあるので、これはこれで便利でした。)
Seeeduino Megaマイコンボード( ATmega2560/ Arduino互換 /USB ポート) [並行輸入品]
- 出版社/メーカー: Seeedstudio
- メディア: エレクトロニクス
- この商品を含むブログを見る
前回のOLED付きボードでもそうでしたが、ボードによって割り当てがまちまちです。 とりあえず動けばいいやなのでテスター当ててみてみます。その結果以下のようになりました。
- SCLピン=22
- SDAピン=21
これはESP32 Arduino core最下部のdev boardのpin mapと同じですね。
UART(問題なし)
UART自体では特に問題なかったけど処理を雑に書いてたら配列領域外参照してることに気づかず、CPU haltして悩みました。
まとめ
- とりあえず当初の目的のGroveシールド(でI2CとUART)を使うということは達成。
- 端々怪しいけどなんとか使えてるよ。
WeMos D1 R32 ESP32 Arduino UNO互換
- 出版社/メーカー: WeMos
- メディア:
- この商品を含むブログを見る