
今回もESP32ネタです。以前購入したESP32-CAMの設定をしていこうと思います!
やること
今回やることは、「ESP32-CAM」で調べたやり方を元にESP32-CAMを動かしてみるだけの記事です。
具体的には、ESP32-CAMを家にある無線LANルーターに接続して、作業用PCのwebブラウザからカメラの情報を表示させるという内容です。
他の方がやった事をまねるだけなのでサクッと終わるかと思ったのですが所々つまってしまったのでちょっとまとめてみました。
注意点
ESP32-CAMに使われているESP32-Sは2019年12月5日に技適を取得しているようですが、私の手元にあるESP32-CAMは技適マークの印刷がされていません。現状技適マークが印刷されていないモジュールは使わない方が無難かと思います。※後出しとは言え、技適認証されたモジュールなので、おそらく法律に触れていない範囲で電波を使用していると思うのですが、念のため。
私も今回はソフトウェア開発環境構築のために少し動かしましたが、これ以降は使わないようにします。今後、技適マーク付きのESP32-CAMが発売される可能性があるので、もしそちらが入手出来たら全力で遊ぼうと思います。
Arduino IDEのインストール
ESP32-CAMにファームウェアを書き込むため、作業用のPCに「Arduino IDE」をインストールする必要があります。※私のPCに以前Arduino IDEインストールしたはずなのに、なんで入って無いんだろう?と思ったら、PC買い替えてからインストールし忘れてました。
私のPCはWindows10なので、”Windows app”と書かれているものを選択します。
次の画面で”JUST DOWNLOAD”をクリックします。
Microsoft Storeのサイトに移動するため、右上にある「入手」ボタンをクリックします。
「インストール」ボタンを押下して、インストールを開始します。※今回の環境はWindows10Homeです。OSによって手順が変わる可能性があります。
インストールが完了すると、画面左上の表記が「この商品はインストール済みです。」に変わるため、画面右にある「起動」ボタンをクリックします。
問題が無ければArduino IDEが起動するはずです。
Arduino IDEの環境設定
Arduino IDEでESP32への書き込みを行う場合は、環境設定を行う必要があります。
画面上部にあるバーの中から「環境設定」を選択します。
環境設定ウィンドウが表示されます。「追加のボードマネージャーのURL:」の欄に、以下の値を入力します(※)。
1 |
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json |
(※)この値はこちらから参照しました。
こんな感じです。入力が完了したら”OK”ボタンをクリックして、環境設定ウィンドウを閉じます。
次は、ボードマネージャーにESP32の情報を追加します。画面上部にあるバーの中から「ツール」→「ボード:”Arduiono Uno”」→「ボードマネージャー」の順番で選択していきます。
「ボードマネージャー」のウィンドウを開いたら、検索欄に”esp32″と入力し、esp32のパッケージを検索します。パッケージが見つかったらクリックしてインストールします。
インストールが完了したら「閉じる」ボタンをクリックしてボードマネージャーのウィンドウを閉じます。
ESP32のボード情報が追加されている事を確認します。画面上部にあるバーの中から「ツール」→「ボード:”Arduiono Uno”」の順番で選択し、ボード情報の一覧を確認すると、”ESP32 Wrover Module”が追加されているはずなので、それを選択します。
スケッチの修正
サンプルスケッチを開いてESP32-CAMを動かせるようにしていきます!
ESP32のCAMERAサンプルスケッチが既に用意されているので、そちらをありがたく使わせて頂こうと思います。「ファイル」→「スケッチ例」→”ESP32″→”Camera”→”CameraWebServer”の順番で開く事ができます。開くと、別ウィンドウでサンプルスケッチが表示されます。
では、家の無線LANルーターに接続させるために、スケッチの内容を書き換えて行こうと思います。書き換えるのは”CameraWebServer”スケッチの内容です。
と言っても書き換えるのは合計4か所だけで良いらしいです。ライブラリの有効無効を切り替えて、無線LANのルーターのSSIDとパスワードを入れるだけです!
ArduinoIDEでスケッチをコンパイル
ではコンパイルしていこうと思います!
ArduinoIDEで「検証」ボタンをクリックすると、スケッチのコンパイルが行われるのですが、エラーが発生してしまいました。
1 2 3 4 5 6 7 8 9 10 11 |
Arduino:1.8.12 (Windows Store 1.8.33.0) (Windows 10), ボード:"ESP32 Wrover Module, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), QIO, 80MHz, 921600, None" 最大1310720バイトのフラッシュメモリのうち、スケッチが2100663バイト(160%)を使っています。 text section exceeds available space in board最大327680バイトのRAMのうち、グローバル変数が53552バイト(16%)を使っていて、ローカル変数で274128バイト使うことができます。 スケッチが大きすぎます。http://www.arduino.cc/en/Guide/Troubleshooting#size には、小さくするコツが書いてあります。 ボードESP32 Wrover Moduleに対するコンパイル時にエラーが発生しました。 「ファイル」メニューの「環境設定」から 「より詳細な情報を表示する:コンパイル」を有効にすると より詳しい情報が表示されます。 |
こんなエラーメッセージが表示されました。何ぞや?と思ったら、設定を間違えていただけでした(笑)。
デフォルトでは、”Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)”という設定になっています。ESP32-CAMでカメラを動作させるスケッチはかなり重いので、OTA(Over-The-Air。無線ネットワークでファームウェアを更新できる機能の事)を無効にします。”Huge APP (3MB No OTA/1MB SPIFFS)”を選択して、アプリケーション領域のFlash容量に余裕を持たせれば問題ないはずです。
「検証」ボタンをクリックしたら、問題なくコンパイルできるようになりました!これで、ESP32-CAMのソフトウェア環境は整ったはずです。
ESP32-CAMへの書き込み
次はESP32-CAMにファームウェアを書き込んでいきます!
※今回書き込みに使う「USB-TTLシリアルコンソールのUSB変換COMケーブル」
こちら購入当時は312円でした。安くて使えるという評価から買いましたが、ドライバの導入で少し詰まりました。
PL2303ドライバをインストールするも書き込みに失敗する
Windows10の場合、ドライバは「PL2303_64bit_Installer.exe」を入れれば問題ないはずなのですが、ArduinoIDEの「マイコンボードに書き込む」ボタンをクリックしてもエラーが表示されて、書き込みができませんでした。
1 2 3 4 5 6 7 8 9 10 11 12 |
Traceback (most recent call last): Serial port COM3 File "esptool.py", line 2959, in <module> File "esptool.py", line 2952, in _main File "esptool.py", line 2652, in main File "esptool.py", line 222, in __init__ File "site-packages\serial\__init__.py", line 88, in serial_for_url File "site-packages\serial\serialwin32.py", line 62, in open serial.serialutil.SerialException: could not open port 'COM3': WindowsError(2, '\x8ew\x92\xe8\x82\xb3\x82\xea\x82\xbd\x83t\x83@\x83C\x83\x8b\x82\xaa\x8c\xa9\x82\xc2\x82\xa9\x82\xe8\x82\xdc\x82\xb9\x82\xf1\x81B') Failed to execute script esptool シリアルポート「Failed to execute script esptool 」が選択されていますが、そのポートは存在しないか、ボードが接続されていません。 |
結論から言うと、USBコネクタにUSB-TTLシリアルコンソールのUSB変換ケーブルを挿しっぱなしで、ドライバをインストールした事が原因でした。なので、「PL2303_64bit_Installer.exe」をインストールされる方は、ケーブルを抜いた状態でインストールしてください。
問題なく変換ケーブルのドライバが認識されていれば、「ツール」→「シリアルポート」→「con*」(*の数値は環境によって変わります)で表示されるはずです。
書き込む時の配線
配線はこのようになっていれば大丈夫です。
ちょっとわかり辛いかも知れませんが、配線図も描いてみました。
書き込み時は、”GND”ピンと”IO0″ピンをジャンパでショートさせます。
書き込みを行う際は、ArduinoIDEの「マイコンボードに書き込む」ボタンをクリックするだけです。
使ってみた
という事で動作させてみようと思います!
動作させるには、先ほど取り付けていたジャンパを外して通常起動状態にする必要があります。また、ESP32-CAMを起動すると、起動中のログをシリアルに流してくれるので、そちらも表示させてみようと思います。
まず、Arduinoの「シリアルモニタ」を表示させます。シリアルモニタは「ツール」→「シリアルモニタ」の順番で表示させることが出来ます。
シリアルモニタが起動したら、右下に表示されるボーレートの値を”115200 bps”に変更します。これを行わないと、シリアル通信の周波数が合わないため、文字化けした状態で表示されてしまいます。
シリアルモニタ上に接続先のローカルIPアドレスが表示されるので、そのIPアドレスをwebブラウザで開いてみようと思います。
今回は”192.168.10.28″だったので、それをwebブラウザのURL入力領域に入力しただけです。
実際にカメラを表示された所はこんな感じです。それっぽく映ってますね!良かった!
ブラウザで表示した左側には、カメラの各種設定ができるボタンの領域があります。これで、カメラの反転やコントラスト、解像度、画質などの細かな設定ができるようです。
全体図はこんな感じです。多分固定IPアドレスにしたりとか色々できると思うのですが、やり方はわかっていません(笑)。あと、Raspberry Pi Zero HWとカメラの組み合わせの時もそうでしたが、カメラ本体が結構熱を持っていました。
動画のレスポンスはVGA(640×480)でも結構早いです。画質はそんなに良くないように見えるかも知れませんが、実用に耐えるくらいに動いてくれます。購入時の金額が1,200円くらい、買う場所によっては500円台だと考えると異常ですw。
やはり残念なのが、手持ちのESP32-CAMが技適マーク無しという事です。今後、技適マーク付きのESP32-CAMが出てくれる事を待つか、似たような技適マークが印刷された別の商品を購入してラジコンとか作ってみたいですねw。
さいごに
という訳で、今回はESP32-CAMの設定についての記事でした!
最近マークⅣの記事を書いている時に、思い出してまとめてみたのですが、思いのほか記事が長くなってしまいました。
多分間違い等があるかも知れませんが、その際はコメント頂けるとありがたいです。
今回はこれで終わりです!また何かあれば記事を更新しようと思います!ではでは~