ESP32-CAM
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
&ref(ESP32-CAM.jpg);
* ESP32-CAMにI2Cデバイスを接続する [#pe8fd960]
* 何が問題か? [#o75579ae]
ESP32-CAMはカメラを繋ぐためにESP32-WROOMのGPIOをほぼ使い...
GPIO-0はFirmwareの書き込みモードにするときに使うので使用...
* もう一つの問題 [#j99039b2]
多くのESP32-CAMは技適が取れていません。(日本の電波法規制...
よって、WiFiの電波を吹くと電波法違反になります。~
対策としては2つ。~
1)技適の取れているESP32-WROOM32モジュールに張り替える~
2)実験用として6か月の期限付きで申請して使う(やりかたは...
私は第一級アマチュア無線技士の資格があるので2で対応可能...
* I2Cを使うには [#d899d0d9]
%%U0TXDとU0RXDを流用した。%%~
%%このピンはシリアルコンソールとしてデバッグに使用する以...
%%Firmware書き込み時以外は自由に使えるので、シリアルコン...
%%ESP32はI2Cピンを任意のピンに再アサインできるので、シリ...
SDカードのI/Fをあきらめて、GPIO-14(SCLに)とGPIO-15(SDA)...
* OLED SSD1306を繋ぐ [#jbc8771f]
OLEDのライブラリはこちらを使用した。~
https://github.com/ThingPulse/esp8266-oled-ssd1306
このライブラリは使い勝手が良いが、スクロール機能を持って...
OLEDの焼き付き防止については、一定時間表示したら消すのと...
SDカードを使用しない場合はUARTをデバッグ用に生かしたまま...
※元々SDカードのSPIに使用するピン
** OLEDの接続先 [#l51b1078]
|OLED|ESP32|
|VCC|VCC(3.3V)|
|GND|GND|
|SCL|GPIO-15(CLK)|
|SDA|GPIO-14(CMD)|
** ライブラリの初期化方法 [#c809b704]
#include <Wire.h>
#include <SSD1306Wire.h>
SSD1306Wire display(0x3c, 15, 14, GEOMETRY_128_64);
Wire.begin();
* 静止画撮影時にフラッシュLEDを光らせる [#q6a7a1e6]
app_httpd.cppを編集して、LEDを点灯させるコマンドを追加す...
適当な時間点灯させてから、撮影し、その後消灯させる。~
適当な時間点灯させるのは、カメラのAEを安定させるため。~
これで、静止画撮影時にLEDが光る。
** メインのスケッチにピンの初期化を追加する [#p17620cf]
フラッシュ用LEDは、GPIO-4につながっている。~
void setup() {
:
pinMode(4, OUTPUT);
}
** app_httpd.cppの編集 [#n74f51ca]
このLEDには電流制限抵抗が無いので長時間光らせるのは怖い。~
よって、必要最小限の点灯時間とする。~
ここでは実験の結果250msにしている。
captureハンドラー関数の頭にLED点灯を追加する。
点灯させてから撮影までの待ち時間(ここでは250ms)も追加す...
static esp_err_t capture_handler(httpd_req_t *req){
// LED ON
digitalWrite(4, HIGH);
delay(250);
他、複数あるreturnの直前行にLED消灯を追加
digitalWrite(4, LOW); // LED OFF
return ESP_FAIL;
digitalWrite(4, LOW); // LED OFF
return res;
どんな結果であっても、LEDを消灯させてから抜けるように。
* 環境センサーBME280を接続して、OLEDに表示させる [#r9cc40...
I2Cが使用できるようになったので、BME280(気圧・温度・湿度...
定期的に測定した結果をOLEDに表示させるようにした。~
最終的にはカメラ撮影時のWebサーバから参照したい。
** Arduinoスケッチ [#n29da65c]
こちらのサンプルコードがそのまま使用できた。~
http://trac.switch-science.com/wiki/BME280
メインループ内でOLED表示を白黒反転を繰り返し表示させてい...
測定して結果を整形してIPアドレスと共にOEDに表示させるだけ...
測定結果の数値はdouble型の変数に格納されているので、Strin...
OLEDに送った。
スケッチにFLASHメモリーを67%使用。
* Tips [#n4164b0f]
- ESP32のI/Oは3.3V
- I2C等のペリフェラルはほとんどのGPIOピンに再割り付けでき...
- ESP32-CAMに書き込むには、GPIO-0ピンをGNDにつないでリセ...
- VCCピンはデフォルトで3.3Vが出ている(5VからLDO経由)
*ESP-32CAM PIN Assign [#b3f8f530]
&ref(ESP32-CAM.png);
終了行:
&ref(ESP32-CAM.jpg);
* ESP32-CAMにI2Cデバイスを接続する [#pe8fd960]
* 何が問題か? [#o75579ae]
ESP32-CAMはカメラを繋ぐためにESP32-WROOMのGPIOをほぼ使い...
GPIO-0はFirmwareの書き込みモードにするときに使うので使用...
* もう一つの問題 [#j99039b2]
多くのESP32-CAMは技適が取れていません。(日本の電波法規制...
よって、WiFiの電波を吹くと電波法違反になります。~
対策としては2つ。~
1)技適の取れているESP32-WROOM32モジュールに張り替える~
2)実験用として6か月の期限付きで申請して使う(やりかたは...
私は第一級アマチュア無線技士の資格があるので2で対応可能...
* I2Cを使うには [#d899d0d9]
%%U0TXDとU0RXDを流用した。%%~
%%このピンはシリアルコンソールとしてデバッグに使用する以...
%%Firmware書き込み時以外は自由に使えるので、シリアルコン...
%%ESP32はI2Cピンを任意のピンに再アサインできるので、シリ...
SDカードのI/Fをあきらめて、GPIO-14(SCLに)とGPIO-15(SDA)...
* OLED SSD1306を繋ぐ [#jbc8771f]
OLEDのライブラリはこちらを使用した。~
https://github.com/ThingPulse/esp8266-oled-ssd1306
このライブラリは使い勝手が良いが、スクロール機能を持って...
OLEDの焼き付き防止については、一定時間表示したら消すのと...
SDカードを使用しない場合はUARTをデバッグ用に生かしたまま...
※元々SDカードのSPIに使用するピン
** OLEDの接続先 [#l51b1078]
|OLED|ESP32|
|VCC|VCC(3.3V)|
|GND|GND|
|SCL|GPIO-15(CLK)|
|SDA|GPIO-14(CMD)|
** ライブラリの初期化方法 [#c809b704]
#include <Wire.h>
#include <SSD1306Wire.h>
SSD1306Wire display(0x3c, 15, 14, GEOMETRY_128_64);
Wire.begin();
* 静止画撮影時にフラッシュLEDを光らせる [#q6a7a1e6]
app_httpd.cppを編集して、LEDを点灯させるコマンドを追加す...
適当な時間点灯させてから、撮影し、その後消灯させる。~
適当な時間点灯させるのは、カメラのAEを安定させるため。~
これで、静止画撮影時にLEDが光る。
** メインのスケッチにピンの初期化を追加する [#p17620cf]
フラッシュ用LEDは、GPIO-4につながっている。~
void setup() {
:
pinMode(4, OUTPUT);
}
** app_httpd.cppの編集 [#n74f51ca]
このLEDには電流制限抵抗が無いので長時間光らせるのは怖い。~
よって、必要最小限の点灯時間とする。~
ここでは実験の結果250msにしている。
captureハンドラー関数の頭にLED点灯を追加する。
点灯させてから撮影までの待ち時間(ここでは250ms)も追加す...
static esp_err_t capture_handler(httpd_req_t *req){
// LED ON
digitalWrite(4, HIGH);
delay(250);
他、複数あるreturnの直前行にLED消灯を追加
digitalWrite(4, LOW); // LED OFF
return ESP_FAIL;
digitalWrite(4, LOW); // LED OFF
return res;
どんな結果であっても、LEDを消灯させてから抜けるように。
* 環境センサーBME280を接続して、OLEDに表示させる [#r9cc40...
I2Cが使用できるようになったので、BME280(気圧・温度・湿度...
定期的に測定した結果をOLEDに表示させるようにした。~
最終的にはカメラ撮影時のWebサーバから参照したい。
** Arduinoスケッチ [#n29da65c]
こちらのサンプルコードがそのまま使用できた。~
http://trac.switch-science.com/wiki/BME280
メインループ内でOLED表示を白黒反転を繰り返し表示させてい...
測定して結果を整形してIPアドレスと共にOEDに表示させるだけ...
測定結果の数値はdouble型の変数に格納されているので、Strin...
OLEDに送った。
スケッチにFLASHメモリーを67%使用。
* Tips [#n4164b0f]
- ESP32のI/Oは3.3V
- I2C等のペリフェラルはほとんどのGPIOピンに再割り付けでき...
- ESP32-CAMに書き込むには、GPIO-0ピンをGNDにつないでリセ...
- VCCピンはデフォルトで3.3Vが出ている(5VからLDO経由)
*ESP-32CAM PIN Assign [#b3f8f530]
&ref(ESP32-CAM.png);
ページ名: