2.7V500Fスーパーキャパシタ*2モジュールとESP8266
- とりあえずUSB電源で給電する
- ソーラーパネルで給電するのはすごい時間がかかりそうだが、一旦考えない
- いつものDCDCを使って3.3Vに昇降圧する
- 2VMaxにしてしまったのでちゃんと測定できない・・
- 1:10にした
- ちょっとややこしい
- 0.73という数字の場合・・
- {{calc 0.73/2*11}}V と考える
- 後でファームウェアを変えて11分の1に変更しよう
- 0.73 16:14 {{calc 0.73/2*11}}V
- 0.72 16:18 {{calc 0.72/2*11}}V
- 0.70 16:20 {{calc 0.7/2*11}}V
- 0.59 16:58 {{calc 0.59/2*11}}V
- 0.39 17:57 {{calc 0.39/2*11}}V
- ここで電源断
- 思ったより早かった
- ここまでわりと線形かな
- 0.017V/minくらいかな
- 放電しきるまでどのくらい持つか?
- {{calc (4.5-1.3)/0.017}}min
- 3Hくらい行けそう
- 現状2分毎くらいに起動している
- つまり{{calc 3*60/2}}回測定できる
- 例えば30minごとの測定にすると {{calc 90/(60/30)}}時間持つという計算でOK?
- 自己放電がどのくらいあるかだな
- {{calc (4.5-2.1)/0.017}}min
- 実測で1時間45分くらいだった
https://inline.inajob.tk/img/twitter-5643382/2.7V500F%E3%82%B9%E3%83%BC%E3%83%91%E3%83%BC%E3%82%AD%E3%83%A3%E3%83%91%E3%82%B7%E3%82%BF*2%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%A8ESP8266/d6e04fa2-e7fd-11ed-a923-9a653374a0f8#.png
自然放電(ではなかった、周辺部品の影響)
https://inline.inajob.tk/img/twitter-5643382/2.7V500F%E3%82%B9%E3%83%BC%E3%83%91%E3%83%BC%E3%82%AD%E3%83%A3%E3%83%91%E3%82%B7%E3%82%BF*2%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%A8ESP8266/bc2cb65e-e87d-11ed-a923-9a653374a0f8#.png
- 結構自然放電してしまう・・
- 一晩持たせるのは厳しそう・・
測定用の抵抗の問題かな?
10KΩ
- I={{calc 3/10000*1000}}mA
- もう少し絞ってもよいかも
- 22:20 0.64 {{calc 0.64/2*11}}V
- 4:48 0.21 {{calc 0.21/2*11}}V
再度自然放電実験
- 13:34 5Vまでチャージ
- 何もつながず様子を見る
- そこまで自然放電していないな・・
- 測定用の回路が放電してしまったのか・・
省エネ測定
- 無負荷で様子見たらそこまで放電しないので、回路に問題があるような気がしてきた
- 電流を見ながら試すのがよさそう
- 測定用のADCに吸われているのだと思う
- {{calc 4/1000*1000}}mA
- これかな?
- {{calc 0.004*4*60*60}}Wh
測定時だけトランジスタでスイッチして測定する感じにする?
この図はPNPトランジスタ
これはGPIOがHighの時に電気が流れないのでスリープと相性が悪そう
ADCはDeep Sleepのときにどうなるのだろう?吸い込む?
- 測定してみるのが早そう
以下のようなプログラムで良さそう(30sで復帰)
ESP.deepSleep(30 * 1000 * 1000 , WAKE_RF_DEFAULT);
delay(1000)
https://inline.inajob.tk/img/twitter-5643382/2.7V500F%E3%82%B9%E3%83%BC%E3%83%91%E3%83%BC%E3%82%AD%E3%83%A3%E3%83%91%E3%82%B7%E3%82%BF*2%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%A8ESP8266/30e7bb50-ebd9-11ed-a4a0-a217a3f56e0c#.png
- ひとまずこっちをやってみるのが良さそう?
- DeepSleep時にADCに吸い込まれるかどうかが気になっているが、測定すればわかるだろう
- Blynk に送るところをArduinoで書き直す必要がある - 一応これで組んでみた 30s毎に送るコードが出来た
- この例っぽい
- intervalを別に用意する
- component.updateでセンサーをkickする
- templateの使いどころはよくわからなかった
- 出来るは出来るけどつらくなったでArduinoに移行
省エネ測定で再実験
間欠動作
- 4Vくらいからスーパーキャパシタで駆動させつつWiFiで電圧を送信する実験
- なぜか起動につまづくことが・・
- 何度か電圧をOFF/ONすると動くようになった。接触不良?
- ESPHomeからArduinoに書き直した
- こっちの方が簡単だなぁ・・
- 測定は30s毎というロジックだがWiFi接続などがあるので・・1minくらい
- ESPHomeよりブートが早い
- NTPへの接続とか証明書の検証をやっていないからか?
20:52 -> 23:01まで動いた。 2時間とちょっと
前より30分ほど長く動いたけど、開始電圧も雑だし、後半は間欠動作の間隔が広くなったりしていたので、まぁ同じくらいだろう
自然放電
- 電源はUSBからとって、何も負荷を接続していないスーパーキャパシタの容量を観察する
- トランジスタで必要な時だけスーパーキャパシタとADCが通電するようにする
- ADCはスリープ時にHiZと仮定する
- 9:35 4.33V
- 13:00 4.16V
- 3時間半で0.27V
- 概算で7時間で0.54V、そこまでリークしなそう
- 計算がおかしいのか電圧は少し狂っている
- 値/1024 * (1/(1 + 10)) で合ってると思うが・・
- トランジスタで何か狂うことがある?。でも大きめに出てるんだよな・・
- これならいけそう
https://inline.inajob.tk/img/twitter-5643382/2.7V500F%E3%82%B9%E3%83%BC%E3%83%91%E3%83%BC%E3%82%AD%E3%83%A3%E3%83%91%E3%82%B7%E3%82%BF*2%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%A8ESP8266/719b56d8-ec8c-11ed-a4a0-a217a3f56e0c#.png
計算
- 4Vチャージで2時間程度動いた、1min間欠として、120回
- 30分ごとに測定すると、60時間動かせる?
30分ごとに測定するように修正し、動作時間を計測
- 雑に3.7Vスタート
- 5時間動作した、つまり10回
- 終端電圧2.08V
- 上の皮算用は役に立たないな・・
温度湿度センサーを使うようにする
- IO4ってなんの役割も無いのになぜだ?
- USBシリアル変換モジュールのRSTとショートしているのか?
- それなら問題なしだが・・
- とりあえず1回目は送信完了
- 何度か測定完了している
- 結構電気を食っているように見える
- 30分の間欠動作で0.3~0.4V電圧が下がっている
- 雑に計算すると・・{{calc (4-2)/0.4}}回動作でおしまいかな
- センサーなしのときと比べると半分になっている
回路の見直し
- IO4が結線していると書き込みできない問題
> table
3V3, 電源,,-,GND
EN, プルアップ,,,IO16
IO14,,,電圧測定,TOUT
IO12,,, プルアップ, RST
IO13,,,分圧取り込みスイッチ兼DHT22の電源, IO5
IO15,GNDとショート,,-, GND
IO2,3V3とショート,,, TXD
IO0, 書き込みモード切り替え,,, RXD
GND,,,DHT22のData, IO4
<<
わからん
ソーラーパワーでの充電
- 朝、室内
- ソーラーパネル単品では4.5V程度
- 電流計によると0.26mA流れている
- エネルギー保存則でチャージ時間を計算できそう
{{calc 4.5*0.26/1000}}W
{{calc (4.5-2.5)*(4.5-2.5)*250/2}}W/s
{{calc 500/0.00117/60/60}}H?
- 8:30?朝の時点でスーパーキャパシタの電圧は1.428V
- 11:00 1.482V 微増
- これでは間に合わない
- 12:50 日当たりの良いところに置いた
- 今日は風もなく日差しが強いので実験日和
- 0.7mA流れているように見える
- 電圧を測ると目に見えて上昇していたので期待が持てる
- 13:44 3.1V
- 何故か起動はしていないがDCDCコンバータからは3.3Vが供給出来ている
- 手動でリセットしてみたが、起動するか?
- 懸念
- 配線が外れている?
- WiFiが届かない?
- 届いてなかった・・
- 少し持ち上げたら入ったのでサッシに近いとだめとかかも
- 15:00 普通に満充電されていた
- が、WiFiがつかめていなかった
- ベランダとESP8266の相性が悪い?
- 持ち歩いていれば届くんだけどな・・
- 以降7時間動作した
- 終端電圧が3.43Vなのが気になる・・
- 朝の時点で測定すると1.4Vまで落ちていたので、なにかトラブルがあったように見える
考察
- 30分間欠動作と2分間欠動作の違いに注目したい
- 待機時に電力が漏れているように見える
- しかし、今の電力測定回路単品で調べるとそこまで電力が漏れていない
- DeepSleepのときにスーパーキャパシタ流れる電流を計ってみる?
- DHT22を付けたから?
- しかしこの電源もGPIOで制御している
- 待機時にもある程度電力を消費するのはそう
- カタログスペックで10uA
- プルアップしているピンはどうだろう?
- RSTは気になる
ESP8266のWiFiが届く日当たりの良い場所を探す
- ベランダでスーパーキャパシタの組み合わせで動かない
- ノートPCからの給電なら動く
- 電流が取り出せていない?
- DCDCコンバータに問題がある?
- 電圧を少し上げてみるのはどうだろう?
再実験
- 7H持った(ちょっと足りない)
- ESP8266のWiFiが届く日当たりの良い場所を探す
- どこでやってもだめ
DCDCコンバータの電流問題かどうかを確認する→ビンゴ
- 仕様を見る
- スペック的には行けるが・・
- スーパーキャパシタから3端子レギュレータに入れて様子を見るのはどうか?
- 仮にこれで動いてもよくわからんなーという話になるが・
- 繋がったらLEDが光るようにしたので実験は簡単そう
- どうも電源周りが怪しいが・・
- RSTをGNDに落とすと再起動してくれるが、電源のOFF,ONで再起動しないときがある
- モバイルブースターを電源として実験
- DC-DCを経由 屋外からWiFiにつながらない
- レギュレータを経由 屋外からWiFiにつながる
- 再現したといえる?
- ひとまず3端子レギュレータを使って実験を継続するのはどうか?
- ⭐できた!3端子レギュレーター越しならベランダから通信できた
- さて、これで原因はわかった
- おそらく電圧低下?
- これなら容量の大きなコンデンサを入れればいけそうだが・・
まだ動ける?
- 2.2Vになったが、まだ1時間の間欠動作をしている
- データシートを見ると2.5V~3.6Vが動作範囲となっている
- この範囲で1時間間欠で19時間動作している
- まぁ今回は電圧計、温度、湿度は測定できていないので、もっと消費電力は大きくなりそうだが
- と思ったけど、温度・湿度は取れてそう
暑いとダメか? → ダメ
- 昼過ぎに急に動かなくなった、室内に戻したが熱が原因だろうか?
- ESP8266が直射日光にさらされていた
- 冷やしてもとに戻るなら、ケースを作ることを検討する
- 冷やしてももとに戻らないなら・・どうしよう
- 復活した
日陰で実験
- ⭐日陰だとソーラーパワーが貯まらない
- ソーラーパネルだけ直射日光に晒して、本体は陰に置く必要がある
- 多分そうだと思うけど直射日光下に置いて充電されるか再確認中
- チャージされてなさそう、、厄介な問題が起きてそう
- 電源を抜いてもチャージされない?
- 部品ごとに状況を確認せねば、、
- 大丈夫だった
- やはり直射日光で充電しないと電力が少ない
急に放電
- スーパーキャパシタに溜まった電力が急に抜けてしまう現象が発生
- なにか暴走していた?
- わからないまま
日当たりの良いといころにパネルを設置、本体は日陰に設置
- どうやるのが良いか・・?
曇の日は充電できない?
- 1.58V 8/7 11:19
- 直射日光じゃなくても2.2Vくらいまでは溜まっていた @12:40
- これは横からESP8266が吸ってたからあまり溜まっていないのではないか
放電してしまった後は充電が難しい?
- ちゃんとDeepSleepしなくて溜まったそばから使ってしまっている?
- とりあえず電源ラインを断線させて充電してみる
- 充電されていた
- これが原因ならツェナーダイオードとかを入れればよいのかな?
- そう簡単ではないっぽい UVLO 付きのレギュレータがあれば簡単 - しかし1Aとか流せるものがあまりない
- 1.5Vくらいまで放電した後に、電源を繋いだまま日向において置いて電力が貯まるかを見ればOK
- ダメでした
2.5V以下で起動するとすぐSleepするようにする
- それでも2.5Vを大きく下回るとダメっぽい
そこからの充電
- 3.8Vまで回復していた。DeepSleepから上がってこない雰囲気だったので自分でResetしてしまったが、これは自動復旧を待てばよかったな
- もう一度同じ実験をしたい
- ダメでした、半死から帰ってこないのか?
- リセットICというのが使えそう
- というかこのICでENを制御すれば良いのかな?
- ENを、落とせばレギュレータが電力を消費しないのかはまだわかってない
- 電流計で測定できることがわかってるので実測してみる
- ENをLOWにした時レギュレータに電流が流れ込まなくなる?
- FalseならEN付きのレギュレータにするのが良さそう
- 安全を考えるならいきなりこれを考えても良さそう
ENをLOWにしたときにレギュレータに電流が流れ込むか?
- USB電源とかでも試せる
- 電流計の1Aのレンジで試すと測定できた
- ENをLOWにすると電流がほとんど流れないことを確認
- DeepSleep時もほとんど流れない
- 電圧検知ICが使えそう
電圧検知ICとEN付きのレギュレータ
- 秋月が安い
- これで行けるかな?
- 電圧が閾値を超えるとHighになる
- ESP8266のENならこれで良さそう
- ディスコンだ
- ⭐買った
- これがくるのをまっている
電圧検知ICをつかってみた
- ENの制御は期待通りっぽいけど、ESP8266が動き始めないように見える
- ENをOFF,ONするだけではマイコンがリセットされない?
- 手で試したわけではないので怪しい
- 電源が不安定な時期に起動しようとしておかしくなっているのか?
- とりあえずソーラーパネルにつなげて様子を見てみる
- 前よりは早く電力がたまり、そして起動しない、と予想
- 期待通り
- そしてオーバーヒートで起動しなくなったものと思われる・・
- 冷ます・・
気づき
- スーパーキャパシタ側の電源線をOFF,ONすると起動する
- ESP8266側の電源線をOFF,ONしても起動しない
- 意図しない配線になっている気がする
- ESP8266側の電源線以外の経路で電気が言っている気がする
- 今思いつくのはデカップリング用の100uFの電解コンデンサ
- でもこれなら十分長い時間(といっても数秒)断線すれば電力が抜けると思うのだけど・・
- 電圧検知ですごく省エネモードになるから抜けきらない?
- でもそれはどこを断線しても同じか・・
次の作戦
- 3端子レギュレーターを通すなら3.5V程度までしか使えない
- ソーラーパネルでは5Vまでしか上げられない
- 16Vまで行ける、1Aまで出せる
- 次の構成→まだ試さない
- 16Vスーパーキャパシタ → 思ったより小さかった
- {{calc 100/6}}F
- どんどん大きくなるな・・
- 輸出規制・・
- 今はまだされていないが・・
- リチウムイオンキャパシタはどうだろう?
- 並列になってる物がないかな?
- ソーラーパネル
- 12V, 16V
- 12Vが良さそう
- 10W12Vとかがある
- 買った しめて$23.61
Next Action
- 回路の見直し
- ケースの設計