- 2022.11.01
- 新規作成
ESP32とTakserの組み合わせで、スマートフォンの充電量が指定できるQi充電器を作ってみました。
スマートフォンってどのぐらいの期間で買い替えていますか。 酷使する人だと、2年が電池の限界って人もいるんじゃないでしょうか。
最近は、電池充電の最適化機能もいろいろ実装されて、寿命が伸びてきたといわれていますが、 最大限に伸ばすには、どうしても細かい充電制御が必要です。
たとえば、100%充電を避けるのはよく言われています。 そのほかにも、NMC,黒鉛のリチウムイオン電池が劣化しやすくなる条件はいろいろあります。
- 充電率が100%近い充電は劣化しやすい(電解液の電気化学的安定性)
- 充電率の高い領域(60~70%)および低い領域(10~20%)をまたぐと劣化しやすい(負極のステージ構造変化)
- 放電深度を広くとるほど電池容量が減少しやすい
- Cレートの影響あり。たとえば6.5Cの場合、2C充電以下より劣化が速い
- 高温で劣化しやすい。たとえば35→45℃でも影響あり
(参考): リチウムイオン電池の劣化挙動調査(国立研究開発法人科学技術振興機構)
どうやら「充電量45~55%」にすると電池容量減少の程度が小さいようです。 しかし、そんな充電制御できる充電器(スマートフォン)ってなかなかないですよね?
ないなら、作ってしまいましょう。
- スマートフォン制御ソフト:充電量に応じて、WEB I/FにHTTP REQを送ります
- 充電ユニット:ESP32でWEBサーバーを立てています。HTTP REQに応じてChargerの電源制御を行います。
- Micro SW:充電ユニットの電源を制御します。主に、ESP32の状態リセット用です。
充電ユニットの回路を紹介します。
fig.2:信号増幅器・回路図(クリックで全体表示)- Q1,Q2:Qi充電器の電源制御用スイッチ
- U1,Q3:ESP32の電源制御用スイッチおよびLDO
- SW1A:スマートフォンの設置感知用マイクロスイッチ
回路設計の詳細は後述します。
内部配線はこんな感じです。ちょっと荒っぽいけど、蓋すれば見えないからOK!
使用したパーツ:
- Qi充電器:Anker PowerWave II Stand
- 無線通信モジュール:ESP32-WROOM-32E-N16
- 低損失定電圧レギュレータ(LDO):TA48033S
- Pch パワーMOSFET:2SJ681 * 2
- Nch MOSFET:BSS138
- ユニバーサル基板:秋月のCタイプ
- ケース:無印良品ポリプロピレンウェットシートケース
- その他、抵抗、ショットキーバリアダイオードなど
回路は、すべて秋月電子通商で揃えました。
SimpleWiFiServer(GitHub)
変更点はこれだけです。ほとんどコード書いてません。
- 固定IP化、ID,PW挿入
- ループ中に1ms delay挿入(暗電流低減)
こんな風に、Taskerから HTTP リクエストを送信すると、ESP32のP5が制御できます。 P5はQi充電器の電源スイッチにつながっていますから、 スマートフォンから充電器のON、OFF制御が簡単に実現できます。
スマートフォン側の設定例です
充電台にスマートフォンを乗せると、マイクロスイッチがONになって、ESP 32がONになり、プログラムからQi 充電器がONになります。
充電開始のプロファイルはこんな感じ。バッテリーの充電量と各種状態を見てQiをONにします
充電量は範囲指定しています。この場合、39%以下になったら条件成立です
充電量だけだと誤動作するので、いくつかの条件を追加しています。充電量設定の一致、現在充電中かどうか(ほかの条件で変数を変化させています)、現在家にいるかどうか(特定のWiFiとの接続を見ています)
条件が成立したら、直ちにQiをONにするために、HTTPリクエストを送信します。
条件が成立次第、充電開始されました
同様に充電量上限も設定すれば、一定範囲の充電量%に保つことができます。
1.Qi充電台とスマートフォンのコイルの結合率
Qiの充電は、充電開始後は大電流を流すので、ある程度コイル間距離が離れても充電されるのですが、 開始時はスマートフォンと充電器の間でネゴシエーションするようで、 距離が長すぎると充電開始してくれません。
このため、ケースのうち蓋を切り取って、コイル間距離が最短になるようにしました。
コイル間距離を話せば、強制的に低速充電になるかと思ったのですが、そんなに甘くなかったです。
低速充電のQi自体、入手はできるんですが、USB充電器から電源をもらうため、3.3Vが作りにくくいため、あきらめました。
2.暗電流低減3.3Vの生成に12Vからリニアレギュレータを使っているので、少々無駄が多いです。 せめて、電流自体減らそうと考えていたところ見つけたのが、下記の情報です
SAVING POWER ON AN ESP8266 WEB SERVER USING DELAYSどうやら、Webサーバの待ち受けループにdelayを挟むことで省エネ化できるみたいです。 とりあえず1msのdelayを入れて様子を見ていますが、動作に問題はないようです。
簡易的なテスターだと電流実効値はわからないのですが、若干電流は下がっているようでした
また、未使用時の電源OFFと、状態リセットを兼ねて、マイクロスイッチもつけました。
3.ケース無印良品のウェットティッシュのケースが余っていたので使ったのですが、マットレスの高さにぴったりでした。やったね!
7.次に向けて
今回はAndroid端末のみの対応だったので、iPhoneも同様に制御してみたいのと、 充電台組み込みではなく、独立したケースにいれて、ほかの制御に応用してみたいです。
[ DIYに戻る ]