調べたところ、ESP32-WROOM-32では電力を使いすぎるらしく、ESP32-C3だと電力をそこまで使わないらしいとのことでした。
そこでESP32-C3を購入し実験しました。
以下より、ESP32-C3で使うmicropythonをインストールします。
ls /dev/tty.*
/dev/tty.Bluetooth-Incoming-Port /dev/tty.usbmodem101
/dev/tty.WI-XB400 /dev/tty.wlan-debug
esptool.py --port /dev/tty.usbmodem101 erase_flash
esptool.py --chip esp32c3 --port /dev/tty.usbmodem101 write_flash 0x0 ESP32_GENERIC_C3-20240222-v1.22.2.bin
これで実行できると思ったのですが、以下のエラーが発生しました。
Found DS18B20 sensors: []
Traceback (most recent call last):
File "/Users/user/anaconda3/bin/ampy", line 8, in <module>
sys.exit(cli())
^^^^^
File "/Users/user/anaconda3/lib/python3.11/site-packages/click/core.py", line 1157, in __call__
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/user/anaconda3/lib/python3.11/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/Users/user/anaconda3/lib/python3.11/site-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/user/anaconda3/lib/python3.11/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/user/anaconda3/lib/python3.11/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/user/anaconda3/lib/python3.11/site-packages/ampy/cli.py", line 338, in run
output = board_files.run(local_file, not no_output, not no_output)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/user/anaconda3/lib/python3.11/site-packages/ampy/files.py", line 309, in run
self._pyboard.execfile(filename, stream_output=True)
File "/Users/user/anaconda3/lib/python3.11/site-packages/ampy/pyboard.py", line 285, in execfile
return self.exec_(pyfile, stream_output=stream_output)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/user/anaconda3/lib/python3.11/site-packages/ampy/pyboard.py", line 279, in exec_
raise PyboardError('exception', ret, ret_err)
ampy.pyboard.PyboardError: ('exception', b'mac_id : ecda3bbe966c\r\nmacAddress : ecda3bbe966c\r\nFound DS18B20 sensors: []\r\n', b'Traceback (most recent call last):\r\n File "<stdin>", line 138, in <module>\r\n File "<stdin>", line 103, in read_temperature\r\n File "ds18x20.py", line 1, in convert_temp\r\n File "onewire.py", line 1, in reset\r\nOneWireError: \r\n')
どうやらセンサーが見つからないようです。
これについて、色々と調べましたが、まず、ESP32-WROOM-32で使っていたピン(GPIOxx)とESP32-C3のピン(Dxx)で表記が違うということでした。
しかしそれを加味してコードを記載してもエラーとなっていました。
色々と試した結果、盲点でしたがはんだづけをしていないため接触しておらず、電流が流れていないようでした。逆さまにしたところ通電しました。
左:通常の配置(点灯しない) 右:逆さまにした場合(点灯)
そのため、ピンヘッダの上にESP32-C3を置くだけでは通電しないのではんだづけをする必要がある、ということになります。
実際にはんだづけをしたところ、通電し解決しました。