ラベル ESP32 の投稿を表示しています。 すべての投稿を表示
ラベル ESP32 の投稿を表示しています。 すべての投稿を表示

2023年5月16日火曜日

ESP32のGPIO12

 ESP32-CAMのGPIO12を電池電圧検出に使っていたが、満充電すると

こんなメッセージが出続ける

 
rst:0x10 (RTCWDT_RTC_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
ets Jul 29 2019 12:21:46
 

GPIO12は内蔵FLASHの電圧選択に使用されていてHにしてはいけないらしい。

 なので電池(リチウムイオンを1/2分圧)を満充電にするとギリギリHになって

起動しなかったわけか。

結構GPIO周り(というかPIN)の制約が多く、気をつけないと嵌る。

 

 

2023年5月11日木曜日

ESP32-CAMの外部リセット

 ESP32-CAMをaliで久々に買ってみた。

 頼んでもいないのに書き込み用の基板が付いていた(ラッキー)

 

 

で、ESP32-CAM用に起こした基板に挿してF/Wを書こうとしたが、書き込めない。

ESP32-CAMのリセットを押してもシリアルに何も出てこない。

本来ならBOOT LOADERのメッセージが送信されるはず。

消費電流もほぼ流れない(10mAくらい) 



 

 

 

 

 

 

 

 でもおまけの基板に挿せば書ける。

であれば、ESP32-CAMの不良ではない。

手持ちの ESP32-CAMを基板に挿すと問題なく動作する。

★おまけの書き込み基板では 書ける

★自分で作成した基板では書けない

★でも自分で作成した基板で他のCAMは書ける

 

で、 おまけの書き込み基板を調べたところ回路図ではGNDになっている

はずの端子がESP32のリセットにつながっていました。

 

 

手持ちのESP23-CAMを比べてみると、抵抗の位置が違う

 

 

 

 

 

 

 

 

 

 

 

 

そもそも アートワークが異なる基板もある。

 

 

 

 

 

 

 

 

 

いろんなバージョンがあると言う事ですね。

 抵抗ジャンパを切替えるだけで外部リセットを使える事がわかっただけでも

 良しとしましょう。

 

2019年6月13日木曜日

ESP32-CAM 農業用カメラを作る 15shutter

前回のフラッシュLEDがうっすらと点灯する件、なんとなく判明

回路図を良く見ると、LEDの点灯ポートは


「HS2_DATA1」という信号名(ArduinoではD4)。
で、SDカードの信号を良く見ると、


しっかり「HS2_DATA1」を使っている(笑)。
しかも47Kでプルアップされている。

いやいや、そんな結線ありえんだろ。と、テスタであたってみるも
しっかり導通。

そりゃうっすらと点灯するわなヽ《 ゚Д゚》ノ

GPIOをLにすれば消灯するし、Hにすれば点灯するけど、D4がINPUT設定に
なっていればこのプルアップが効いてくる。

何故Light-Sleep時にうっすら点灯するかは謎だが、どこかの処理で
D4をINPUT設定にしているのかも知れない。

さて、どうするか。
本来の「畑作物監視カメラ」という目的からすると
夜間撮影するわけでもないのでLEDは不要。

SDカードを使わないわけにも行かないし、LEDは
うっすらなら点いていても問題はないので放置でも
良いが、点灯させない方向で改造するか。

2019年6月12日水曜日

ESP32-CAM 農業用カメラを作る 14shutter

ESP32-CAMで
・撮影
・SDに連番で保存
というだけのスケッチを書いたのだが、何かがおかしい。

フラッシュの代わりのLEDがうっすら点灯した状態のままになる



いろいろいじってみると、どうもlight_sleepが影響しているみたい。


void loop() {
    digitalWrite(LED_FLASH, LOW);  //フラッシュLED消灯

    Serial.println("Captuer");
    digitalWrite(LED_FLASH, HIGH);  //フラッシュLED消灯
//撮影処理とりあえずコメントアウト    capture_save_jpeg(cnt++);
    digitalWrite(LED_FLASH, LOW);  //フラッシュLED消灯

    esp_sleep_enable_timer_wakeup(10*1000000); //10 seconds
    int ret = esp_light_sleep_start();

    Serial.println("Exit sleep");
}



上の処理だとうっすら点灯になるが、

void loop() {
    digitalWrite(LED_FLASH, LOW);  //フラッシュLED消灯

    Serial.println("Captuer");
    digitalWrite(LED_FLASH, HIGH);  //フラッシュLED消灯
//撮影処理とりあえずコメントアウト    capture_save_jpeg(cnt++);
    digitalWrite(LED_FLASH, LOW);  //フラッシュLED消灯

    delay(10*1000);
 

    Serial.println("Exit sleep");
}


これだと「点灯」→「消灯」を繰り返す。




LED自体は単純なFETのゲートでドライブされているので
中途半端な状態にはならないはずだが。

調査継続。




2019年6月4日火曜日

ESP32-CAM 農業用カメラを作る 13shutter

いきなりESP32-CAMを動かし始めたが、補足の情報を。

開発環境

開発環境(Arduino)は
https://qiita.com/Nabeshin/items/b195cad1afe99ce29f1e
ここが詳しいので参照願います。



回路図



フラッシュLED

フラッシュLEDの点灯方法
但し、点灯時200mAくらい電流が流れる。

    #define LED_FLASH  4  //FLASH LED

    pinMode(LED_FLASH, OUTPUT);
    digitalWrite(LED_FLASH, LOW);  //フラッシュLED消灯

    digitalWrite(LED_FLASH, HIGH); //フラッシュLED点灯

    digitalWrite(LED_FLASH, LOW);  //フラッシュLED消灯




2019年6月3日月曜日

ESP32-CAM 農業用カメラを作る 12shutter

いよいよESP32-CAMを使って撮影した画像を
SDカードに保存する。

いろいろNETを彷徨っているとこんなサンプルを発見

https://github.com/v12345vtm/CameraWebserver2SD/blob/master/CameraWebserver2SD/CameraWebserver2SD.ino

通常のサンプルはいろいろエラーが出て、動かすのに苦労があるのだが
このサンプルはいきなりOKだった。

WiFiの設定とNTPサーバーを国内のものに変更する

const char* ssid = "XXXXX";
const char* password = "PASS";
const char* ntpServer = "ntp.nict.jp"; //internet time server

RESETすると、シリアルポートに以下のメッセージ


ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x12 (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:1100
load:0x40078000,len:9232
load:0x40080400,len:6400
entry 0x400806a8
[D][esp32-hal-psram.c:47] psramInit(): PSRAM enabled

v12345vtm

[D][WiFiGeneric.cpp:336] _eventCallback(): Event: 0 - WIFI_READY
[D][WiFiGeneric.cpp:336] _eventCallback(): Event: 2 - STA_START
.[D][WiFiGeneric.cpp:336] _eventCallback(): Event: 4 - STA_CONNECTED
[D][WiFiGeneric.cpp:336] _eventCallback(): Event: 7 - STA_GOT_IP
[D][WiFiGeneric.cpp:379] _eventCallback(): STA IP: 192.168.200.109, MASK: 255.255.255.0, GW: 192.168.200.254
.
WiFi connected
Sunday, June 02 2019 16:57:14
 internet time ok

SD_MMC Card Type: SDHC
SD_MMC Card Size: 7600MB
Listing directory: /
  FILE: /.dropbox.device  SIZE: 56
Creating Dir: /mydir
Dir created
Listing directory: /
  DIR : /mydir
  FILE: /.dropbox.device  SIZE: 56
Removing Dir: /mydir
Dir removed
Listing directory: /
  FILE: /.dropbox.device  SIZE: 56
Writing file: /hello.txt
File written
Appending to file: /hello.txt
Message appended
Reading file: /hello.txt
Read from file: Hello World!
Deleting file: /foo.txt
[E][vfs_api.cpp:135] remove(): /foo.txt does not exists or is directory
Delete failed
Renaming file /hello.txt to /foo.txt
File renamed
Reading file: /foo.txt
Read from file: Hello World!
[E][vfs_api.cpp:64] open(): /sdcard/test.txt does not exist
1048576 bytes written for 2274 ms
Total space: 7582MB
Used space: 762MB
Starting web server on port: '80'
Starting stream server on port: '9601'
Camera Ready! Use 'http://192.168.200.109' to connect , de stream zit op een andere poortkanaal 9601
stream Ready! Use 'http://192.168.200.109:9601/stream
image Ready! Use 'http://192.168.200.109/capture


画像が欲しいので、
http://192.168.200.109/capture
にアクセスすると以下のメッセージが表示され、ブラウザに
1600x1200の画像が表示された。

lijn493
lijn496 pixformatjpg for httpd send
fb lengte=
106073
Writing file: /capture.jpg
succes to open file for SDwriting552
Writing file: /info.txt
File written
0
JPG: 106073B 978ms



SDカードの内容はこんな感じ


Textファイルはテスト的に作成されたものの様。

ここまで出来ていると、もう先が見えてきた。
偉大な先人に感謝。

まだスケッチ内容を理解していないが、

  • WiFi関連の削除
  • 定期的にCaptuerを実行
  • 余計なTextファイルを作らない
  • FTPによる画像ファイルの送信

を追加する事になる。


ところでNTP設定は何のために使っているんだろう



2019年5月31日金曜日

ESP32-CAMのWiFiの相性

ESP32-CAMのテストで手持ちのWiFiルーターをAPとして
使おうとしたらつながらない。

通常使っているスマホとかAPには
つながる
  • ZTE MF98N  WiFiルーター × (WPA-PSK)
  • HAUWAI P20 PRO  スマホ ○ (WPA-PSK)
  • BUFFALO AirStationPro AP  ○ (WEP64)

もちろん、ZTEは通常使用出来ている
暗号化とかで微妙に違いがあるのだろうか?

ArduinoベースのESP32ではWiFi関連の細かい設定方法の
情報が少ないなぁ。
(そもそも技適が・・・・・)

継続調査!!

2019年5月20日月曜日

ESP32-CAM 農業用カメラを作る 6shutter

SIM7500JCを用いたファイル転送を考える。
ESP32-CAMによるSDカードへの撮影画像保存が先か?
とも思うがやれる事から。
SIM7500JCはATコマンドを用いて
  • HTTP
  • HTTPS
  • FTP
  • FTPS
  • TCP/IP
の通信を行う事が出来る。
画像データ自体は単なる畑の写真なので、FTP、もしくはFTPSで
サーバーにデータを送信するものとする。

■状態確認のコマンド
ATI ・・・ IMEI表示
AT+CNUM ・・・ SIMの電話番号表示
AT+CSQ  ・・・ 電波状態
AT+CPSI? ・・・ 接続状態

■初期設定
AT+CFOTASWITCH=0,0 ・・・ FOTA OFF(これをやらないとRESET時にメッセージがうざい。)
AT+CGDCONT=6,"IP","" ・・・ これを入れておかないと繋がらない。(嵌った)

■APN設定
AT+CGAUTH=1,3,"userID","PASSWORD"
AT+CGDCONT=1,"IP","APN"

■接続例
AT+CGAUTH? ・・・ 確認
+CGAUTH=1,3,"userID","PASSWORD"
AT+CGDCONT? ・・・ 確認
+CGDCONT: 1,"IP","APN SAMPLE","0.0.0.0",0,0,0,0
+CGDCONT: 2,"IPV6","ims","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0
+CGDCONT: 3,"IPV4V6","","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,1
+CGDCONT: 6,"IP","","0.0.0.0",0,0,0,0

AT+CFUN=1 ・・・ WAN有効化

これ以降FTPの接続、データ送信をすれば良いのだが、
完全に忘れているので又後日。

ところで、SIM7500JCのUARTの信号レベルは1.8V。
なので3.3V系のESP32と接続するにはレベル変換が必要となる。

この辺も整理していこう。

2019年5月16日木曜日

ESP32-CAM 農業用カメラを作る 4shutter

電源 その2


各デバイスの電源は前ページに書いたが、大元の電源をどうするか?
基本的に畑に設置するので、商用電源(100V)はまず使えない。
なので電池を使う事になるが、当然充電可能な2次電池となる。
現実的なところとしては
  • リチウムイオン電池
  • 鉛蓄電池
のどっちか。
且つ、充電方法は太陽電池によるもの意外は現実的ではない。
大容量のものを2個用意して週代わりで入れ替える、という手もあるが
「暑い」「寒い」「雨」「風」を理由に毎週行かない可能性も
高いので、極力自然エネルギーに依存したい。

そもそもどの程度の容量を必要とするのかを定義しないと
種類、サイズを絞れない。

  1. 最低1日1回の撮影と送信をしたい
  2. 将来的にはサーボモーターを使って3方向くらいに振って撮影したい。
  3. 将来的には、WiFiの機能かBLE機能を用いて温度/湿度の採取もしたい。

まず1に絞って考えてみると、ざっくり消費電力を以下の様に仮定する。
  • 撮影  100mA x 5sec
  • 送信 300mA x60sec
  • その他 100mA x 10sec
すると、1回の撮影と送信にかかる消費電流は
100mA*(5/3600)+300mA*(60/3600)+100mA*(10/3600)
=5.41mA/h
但し、DC/DCとかの損失分を加味してざっと2倍(そんなにひどいか?)
を掛けると
10.8mA/h
となる。


365回でも4000mA/h弱なので、モバイルバッテリ1個で
結構いけるんじゃね!?
という気になるが、経験上こんなには持たない事はわかりきってる。

まずはざっくり試作基板を作って実電流を測ってみないとね。


 これでも2年いけちゃうの?
無理だよなぁ。。。



2019年5月15日水曜日

ESP32-CAM 農業用カメラを作る 3shutter

電源 その1


電源は大きく分けて2系統必要。
  • ESP32は2.7V~3.6V
  • SIM7500JCは3.4~4.2V
なんとなく3.5Vとか用意すれば1系統のDC/DCとかで
いけるんじゃね?とおもうが、SIM7500は電源ON時の突入電流が
600mAくらい流れるので、下手なDC/DCやシリーズレギュレータを
使うと電圧効果を起こしてESP32がリセットしてしまう。

これを 防ぐためには
大き目の電解コン(470uF以上?)を付けて突入電流に備えるか
電源系統を別にするしかない。
(3.4~4.2Vという時点でLion直結を想定している気がするが)


2019年5月14日火曜日

ESP32-CAM 農業用カメラを作る 2shutter

LTEモジュール


外部との通信で使用するLTEモジュールとしては
SIMCOM製 SIM7500JCを使用する。


SIM7500シリーズの国内向けには
  • SIM7500JE SoftBank用
  • SIM7500JC NTTDocomo/KDDI用
の2種類が存在する。

何故このモジュールを選択したかと言うと本業で使用した事が
あるからw

LTE-CAT1専用モジュールだが、SIMは通常のLTE用が使用出来る。
なので 、ロケットモバイルとかの\298(税抜き)とかの激安MVNO SIM
が使えるはず。
(LTE-CAT1専用のSIMも存在し、数分の1の金額だが個人での入手は
現時点では難しい)




2019年5月13日月曜日

ESP32-CAM 農業用カメラを作る 1shutter

ESP32-CAMが御手頃価格で買えて、畑を始めたので、
「作物監視カメラ」を作りたくなるのは自然な流れだと思う。

ESP32-CAMが安価なので、極力費用は掛けたくない。
また、現時点で技適は取れていない(すくなくとも手持ちのは)ので
 WiFiは封印する。

とすると、遠隔から画像を確認するには、3G/LTE回線を用いて
外部サーバーに飛ばす、という方法を考え付く
↓こんな感じ


ESP32-CAMにはMicroSDスロットが搭載されているので
これに撮影画像を保存して、一定間隔でLTEモジュール経由で
サーバーに送信する。
ちょっと調べたところ、こんな記事が見つかった。

SDカードに保存


少しずつ進めていこう。



2019年5月11日土曜日

ESP32-CAMにはまる CH2

ESP32-CAMが順調(でもなかったけど)に動いたので、
今度はAliで2台目を購入。10日くらいで到着。
送料込み$8.11だったけど、今見たら更に値下げ。
送料込みで$6くらいになってくれればいいのに。
(実質カメラが無料)

で、アンテナはパターンアンテナになっていました。
 チップコンデンサ(か0Ω抵抗)の付け替えだけなんだけど
型番やLotで違いがあるのか?




2019年5月10日金曜日

ESP32-CAMにはまる CH1

ESP-32に2Mpixlのカメラが付属したモジュールが最近話題なので
買ってみた。



Amaで1200円くらい。
Aliだと送料込みで$9くらい
この値段なら、監視カメラとかでも気軽に使える。

で、いきなりWiFiにつながらない刑に嵌った。
Verposeオプションを付けて詳細情報をDUMPしてみると
APは見えているが信号レベルがやたら低い
(-97dbとか)
原因は何で??みたいな事だったけど、
他にも嵌ってる人がいるかも知れないので
備忘録として残しておく。
 

原因は簡単で、オンボードのパターンアンテナと外部アンテナ用のFLコネクタの切り替えが「外部アンテナ」になっていた。
他の記事とかだとデフォでオンボードアンテナになっている様だが、
こいつは外部アンテナ用にチップ(コンデンサか0Ω抵抗)が
実装されていた。
2.4GHzのWiFiアンテナは手持ちでなかったが、2.1GHzLTE用の
アンテナを付けてみたらすんなりAPにつながった。
(技適的にはアウトなのでゴニョゴニョ・・・)
商品説明には全く記載は無かった。
原因不明でAPに繋がらない人はこのチップを確認してみては。