去年あたりからESP32にカメラがついた便利な基板が出回るようになった。技適マークがないためそのまま使うと電波法違反になるが、ESP32自体は技適マークがついたものがあるので、モジュールをまるごと取り替えて動かしてみた。
購入したもの
ESP32-CAM | 1,259円 | |
ESP-WROOM-32 | 550円 |
TTLシリアルコンバーターは手持ちの物を使ったが、Amazonでも1個500円ぐらいで手に入る。(参考)
ESP32-SをESP-WROOM-32に取り換える
ESP32-SとESP-WROOM-32は製造元が違うだけでスペックは概ね同じなので付け替えても問題なく動作する。まず、ヒートガンで温めて半田を溶かしてESP32-Sを取り外す。数分温めると半田が溶けてくるので、ESP32-Sをピンセットなどで少し押してやれば簡単に外れる。
他の部品がずれないようにカプトンテープで固定したらかえってズレてしまったので、固定しないでそのまま作業したほうがよさそう。
ESP32-Sが外れたら、ESP-WROOM-32を普通に半田づけする。
ピンヘッダは熱で溶けたのか、少しぐらついていたので付け替えた。
TTLシリアルコンバーターをつなぐ
ESP32-CAM | TTL Serial Converter |
UOR | TXD |
UOT | RXD |
5V | 5V |
GND | GND |
IO0 – GND |
ESP32-CAMにプログラムを書き込むために、TTLシリアルコンバーターを左のように結線してPCと接続する。
ESP32-CAMのIO0とGNDの結線はプログラム書き込み時にだけ必要なものなので、動作確認をするときは取り外す必要がある。
Arduino IDEのセットアップ
「ファイル」>「環境設定」(ショートカット:Ctl + , )から追加のボードマネージャーのURLを追加する。
https://dl.espressif.com/dl/package_esp32_index.json
「ツール」>「ボード」>「ボードマネージャー」でESP32を追加する。
「esp32」で絞り込むとすぐに見つかる。
「ツール」でESP32のボード設定を行う。
ボード:ESP32 Wrover Module
Upload Speed:921600
Flash Frequency:80MH
Flash Mode:QIO
Partition Scheme:Huge App
プログラムを書き込む
「ファイル」>「スケッチ例」>「ESP32」> 「Camera」>「CemeraWebServer」でサンプルプログラムを読み込む。
サンプルプログラムを以下のように修正する。修正したらコンパイルしてESP32-CAMに書き込む。
// Select camera model
//#define CAMERA_MODEL_WROVER_KIT
//#define CAMERA_MODEL_ESP_EYE
//#define CAMERA_MODEL_M5STACK_PSRAM
//#define CAMERA_MODEL_M5STACK_WIDE
#define CAMERA_MODEL_AI_THINKER
#include "camera_pins.h"
const char* ssid = "(Wifiのssid)";
const char* password = "(Wifiのpassword)";
動作確認
TTLシリアルコンバーターに繋いだままでIO0とGNDの結線だけ外した後にESP32-CAMのスイッチを押して再起動する。うまくいけばWifi接続されてブラウザで設定画面にアクセスできるようになる。
払い出されたIPアドレスはArudinoIDEのシリアルコンソールで確認できる。送信速度が115200になっていないと文字化けするので注意。
ets Jun 8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
ets Jun 8 2016 00:22:57
rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:9720
ho 0 tail 12 room 4
load:0x40080400,len:6352
entry 0x400806b8
..
WiFi connected
Starting web server on port: '80'
Starting stream server on port: '81'
Camera Ready! Use 'http://192.168.1.11' to connect
色々使えそう
ボードはコンパクトで扱いやすいし値段も手頃、プログラム次第で色々できそうだから技適マークつきのものが出てくれば流行るかもしれない。
Interface 2020年 4月号に特集があったので後で試してみようと思う。