マイコン温度通知システムの製作23 ESP32-C3での実験

調べたところ、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を置くだけでは通電しないのではんだづけをする必要がある、ということになります。

実際にはんだづけをしたところ、通電し解決しました。

タイトルとURLをコピーしました