手持ちの開発ボードはESP8266互換ボードばかりでESP32系ボードがありません。
ESP8266系統は技適マークが無いものがほとんどで、Espressif社の提供モジュールでのプログラム実装が若干異なってしまい管理が煩雑化します。
古くてもよいので、安いESP32ボードが欲しかったので購入しました。
2個入りなので1個あたり1,090円です。
Bluetoothは使う予定が無いので特に問題無しです。
機能的にはESP-WIFI-MESH、ESP-Nowを使って検証してみたかった感じです。
ESP-WROOM-32なので性能的には古い
製品仕様:
- 電源:5V
- Wi-Fi:802.11 b/g/n(802.11 nは150 Mbpsまで)
- BLE v4.2
- シリアル⇔USB変換チップ:CP2102
- クロックを調整可能:80 MHz ~ 240 MHz
- SRAM:520 KB
- フラッシュ:4 MB
- オンチップセンサ:ホールセンサ、温度センサ
- インターフェース:
--GPIO
--I2C
--UART
--SPI
--モータ用PWM
--LED用PWM
--I2S
--ADC
--DAC
--SDカード(SDIO)
--IR
--静電容量式タッチセンサ
--ローノイズプリアンプ
ん-?温度センサが実装されている?
検索してみると実装はされていますが、ESP-WROOM-32モジュールで発生した熱の管理のような気がします。
パソコンでいうならCPU温度(コアではなく)やマザーボード温度に相当でしょうか。
少なくとも外気気温を測定するものでは無いと推測します。
癖はありそう???
今回は開発ツールとして VSCode を使用します。
開発する場合、上記画像にある1~38と振ってある番号を使用します。
事前にこのような情報を入手しないと取り扱いにとても苦労します。
スケッチのアップロード時に接続要求をしたときにBOOTボタンを押し続ける必要があります。
接続出来たらボタンを離して大丈夫ですが、アップロード時は一手間あります。
こちらはAmazonレビューで事前に情報入手していたので、特に苦も無く対処出来ました。
ENとGNDにコンデンサを入れることでBOOTボタンを押さなくても自動で認識してくれるようです。
platformio.iniは下記のように設定しました。
[env:esp32dev]
platform = espressif32
board = esp32dev
board_build.f_cpu = 240000000L
board_build.f_flash = 40000000L
framework = arduino
upload_speed = 921600
monitor_speed = 115200
upload_speedを上記のように変更することで、スケッチのアップロード速度が向上します。
標準のブレッドボードでは開発ボードの両サイドのPINがブレッドボードの端になるので接続が出来ません。
ブレッドボードを2つ用意して右側・左側でそれぞれ接続すれば使えるかも。
ENとGNDにコンデンサを入れる必要があるなら、専用にアクセス用基盤を作成しても良いかもしれません。
とりあえず・・・ピン番号通りに実装したが、動作しない・・・。
ソースコード上でピン番号指定せず下記をI2Cで使用したが動作はした。
つまり・・・提供画像のピン番号情報が間違っている気がする・・・。20番とか重複してるしね。
Arduino IDEではなく、VSCodeでPlatformioを使ってるので動作しないのかもしれない・・・。
★2023-04-26追記
ピン番号は提供画像通りではなかったです。
基本はGIOPの番号に準拠のようです。
全ピン1つずつLチカチェックで確認しましたが、少なくともデジタルについてはそのように見受けられます。
デジタルピンは使えますが、アナログピンが使えないかもしれません。
アナログのOUTPUTはいけるかもしれませんが、INPUTが機能している感じがしないです。
現状、下記のように定義した。(esp32devで使用する pins_arduino.h の定義に対してG09など拡張している)
#define PIN_ADC0_SP A0 // Analog(Input?)
#define PIN_ADC3_SN A3 // Analog(Input?)
#define PIN_ADC6_G34 A6 // Analog(Input?)
#define PIN_ADC7_G35 A7 // Analog(Input?)
#define PIN_ADC4_G32 A4 // Analog(Output?)
#define PIN_ADC5_G33 A5 // Analog(Output?)
#define PIN_ADC18_DAC1_G25 A18 // Analog(Output?)
#define PIN_ADC19_DAC2_G26 A19 // Analog(Output?)
#define PIN_ADC17_G27 A17 // Analog(Output?)
#define PIN_ADC16_G14 A16 // Analog(Output?)
#define PIN_ADC15_G12 A15 // Analog(Output?)
#define PIN_ADC14_G13 A14 // Analog(Output?)
#define PIN_RX1_G09_SO2 9
#define PIN_TX1_G10_SO3 10
// #define PIN_G6_SLK 6 // unused
// #define PIN_G7_SD0 7 // unused
// #define PIN_G8_SD1 8 // unused
#define PIN_ADC13_G15 A13
#define PIN_ADC12_G2 A12
#define PIN_ADC11_G0 A11
#define PIN_ADC10_G4 A10
#define PIN_RX2_G16 16
#define PIN_TX2_G17 17
#define PIN_SPI_SS_G5 SS
#define PIN_SPI_SCK_G18 SCK
#define PIN_SPI_MISO_G19 MISO
#define PIN_I2C_SDA_G21 SDA
#define PIN_G3_RX0 RX
#define PIN_G1_TX0 TX
#define PIN_I2C_SCL_G22 SCL
#define PIN_SPI_MOSI_G23 MOSI
G6/G7/G8は使用するとリブートを繰り返したりなど挙動がおかしくなる。
よって使用すべきではないと判断。
アナログピンが使えないと結構痛いなぁ。
-
購入金額
2,180円
-
購入日
2023年04月07日
-
購入場所
Amazon.co.jp
ZIGSOWにログインするとコメントやこのアイテムを持っているユーザー全員に質問できます。