こんにちは、ENGかぴです。
TWELITEの開発環境であるMWSTAGEでBME280から取得したデータを間欠動作しながら無線通信する自作のアクトを作りソーラーモジュールと組み合わせることで太陽光によるエナジーハーベスト電源によって無線通信を行いました。
無線タグアプリを使って夜間でも日中の太陽光で電気二重層にチャージした電源を使って無線通信した結果を下記記事にまとめています。
自作アプリとソーラーモジュールで無線通信
ソーラー管理モジュールに付属している太陽光パネルはAM-5815(Panasonic)で最大出力電力が6mW(5.2V-1.1mA)となっています。室内光でもアプリを可能な限り省エネにしておくことで無線通信を繰り返し行うことができます。
TWE-EH-Sの動作
TWE-EH-Sの特徴と動作についてはモノワイヤレス社のHPを引用しながら自作アプリと組み合わせた場合の動作について説明します。
≪動作説明≫
モノワイヤレス株式会社:https://mono-wireless.com/jp/products/TWE-EH-SOLAR/EH_manual_v016.pdf
① ソーラーパネルのエネルギーは、内蔵のコンデンサーC1(220uF)へ充電されます。
② C1の電圧(VC1)が約2.9V(VON)になると、TWE_VCCがGNDと接続され、TWELITEが動作 を開始します。
③ TWELITEは起動直後、すみやかにDO1(VBOOT)をLowにします。
④ TWELITEは無線送信します。
⑤ 無線送信後、TWELITEはスリープ状態になります。
④’⑤’スリープ復帰後に無線送信をして、再びスリープする動作を繰り返します。
⑥ エネルギーの供給不足により電圧が約2.0V(VOFF)を下回ると、TWELITEは動作を停止し ます。DO1(VBOOT)のLow状態が解除され、状態①へ戻ります。

内蔵のコンデンサC1(220uF)のみでは TWE_VCCがGNDと接続された瞬間にアプリの初期化処理によって電圧が低下しますが電圧低下が大きくなり過ぎるとVBOOTが安定する前に TWE-EH-SがリセットをかけてしまいTWE_VCCとGNDが切り離されてしまいます。
この状態になると太陽光パネルが直射日光などで大きなエネルギーを持ったない限り安定した動作が期待できなくなります。
②の2.9VでONとありますが誤差もあるのか2.75V程度でONすることもありました。ハードでコントロールしているので周辺温度などの影響による誤差なのかもしれません。
また2.0Vを下回っても直ちにトワイライトが動作を停止することはありませんでした。ぎりぎりで動いている状態であり、この時通信タイミングになると電圧低下して停止してしまいます。
誤差もあると思いますが、1.92V付近までは動いているように感じました。TWE_VCCとTWE_GNDをテスターで当たっていて気付いた点です。
PR:わからないを放置せず、あなたにあったスキルを身に着けるコツを教える テックジム 「書けるが先で、理解が後」を体験しよう!
自作アプリとTWE-EH-Sの全体構成

動作説明のVBOOTは5ピンのDOによって制御します。BYPはピンのDOによって制御しますが余剰電力のコンデンサC2をバイパスさせる場合にLOWにします
C1は無線タグアプリの場合は220uFで十分ですが自作アプリで処理を追加している分消費電流が増えてしまい電圧降下が大きくなり起動できなくなることがあるため1000uFを追加し初期起動時の電圧降下の対策としています。
C2は余剰電力をチャージできるため容量の大きな電気二重層コンデンサなどを実装すると効果的です。2.2Fの電気二重層コンデンサでも曇り空でわずかに日が差す程度の環境下において1時間程度でフル充電できます。
初期化時にはBYPを使用せず一定電圧以上になったことを確認してバイパスすることが効果的です。
const uint8_t PIN_DO1 = mwx::PIN_DIGITAL::DIO18; //Boot
const uint8_t PIN_DO2 = mwx::PIN_DIGITAL::DIO19; //Byp
void setup(){
pinMode(PIN_DO1, OUTPUT_INIT_LOW); //BOOTをLOW
pinMode(PIN_DO2, OUTPUT_INIT_HIGH); //BYPをHIGH
}
//BYPを使用する例
if( vc2Dosetflg == false){
if( vc2 >= AD_VCC_CHK3 && vc2 != AD_INIT_VALUE){
vc2Dosetflg = true;
pinMode(PIN_DO2, OUTPUT_INIT_LOW); //BYPをLOW
}
}
例ではVC2がAD_VCC_CHK3(2400:2.4V相当)以上かつ初期化時の値でない場合にBYPをLOWにしてバイパスしています。余剰電力の充電状況を確認するためVC2をA1に接続しています。
電気二重層コンデンサによるバックアップ時間
電気二重層コンデンサを挿入して電源をバックアップすることを考えていきます。バックアップ時間の考え方については下記記事を参考にしてください。
電気二重層コンデンサの静電容量によるバックアップ時間の考え方
電気二重層コンデンサの漏れ電流ILについて考えます。Q=CVとQ=Itの関係から上記記事を参考にして電気二重層コンデンサの容量を2.2Fとすると、$$I_L=\frac{2.2×0.8}{24×60×60}=20.37uA$$になります。これは最悪の条件での値になります。
次にトワイライトの間欠動作について消費電流を考えます。通信出力は23.4mAとなっているのでマージンを持たせて25mAとして計算します。
送信時間は0.1秒を目安にすることがモノワイヤレス社のHPに記載されているのでこの値を参照すると間欠動作を10分に設定した時の平均送信電流I1は以下のようになります。$$I_{1} = 25×0.1×\frac{1}{600} = 0.42uA$$となります。この電流にスリープ時の電流である1.5uAを加えたときの消費電流I2は、$$I_2= 0.42+1.5= 1.92uA$$となります。
BME280の消費電流I3も同様に考えると温湿度、気圧の計算は最大で3.6uA/秒であるから間欠動作が10分であれば平均電流はI3は以下のようになります。 $$I_{3} = 0.42×\frac{1}{599} = 0.07uA$$となります。この電流にスリープ時の電流である0.1uAを加えた時の消費電流I4は、 $$I_4= 0.07+0.1= 0.17uA$$となります。
モジュールの消費電流と電気二重層コンデンサの漏れ電流分を合わせたものが失われる電流になるので合計の消費電流は\( I = I_L + I_2 + I_4 = 22.46uA\)となります。Q=Itの関係から$$Q = 22.46uA×s$$となり電気二重層コンデンサの電圧がフル充電の時は3.3Vであったのでトワイライト動作の下限値である2.0Vまでの電位差が1.3VとしてQ=CVの関係から電荷量を求めると$$Q = 2.2 × 1.3$$となることから
$$s = \frac{2.2 × 1.3 }{ 22.46×10^{-6}} = 127337秒 = 2122分 = 35.4時間$$となります。
エナジーハーベスト電源のように微弱な電力であった場合は全体の電荷が不足することが多いため最悪な条件で考えておけば問題ないと考えています。
動作確認
TWE_VCCがGNDと接続されると初期化処理によってC1間の電圧が約0.05V電圧降下しました。追加した1000uFのコンデンサ(C1)によって電圧降下を押さえられています。1000uFを入れていない場合は約0.6V程度電圧低下しリセットと電源ONが繰り返され動作が安定しませんでした。。
余剰電力はBYPを使用していない場合C1の電圧が3.3Vを超えるとハード上の仕組みが働いてC2に電荷が貯まるように構成されています。太陽光パネルの最大出力電圧が5Vであることからトワイライトの上限電圧を超えないようにうまく構成されています。
動作確認の方法
昼間の明るい時間帯に窓際にモジュールを設置しMWSTAGEフォルダー内のtools内のTWELITEプログラマを起動して通信状況を確認します。TWELITEプログラマはターミナルログを保存することができるためターミナルで表示しながらログを保存します。
- 電気二重層コンデンサの容量は2.2F
- 自作アプリを利用し間欠動作の時限を10~15分
- 窓際に設置(就寝時間22:00以降はカーテンで室内光を遮断)
- 余剰電力が一度でもフル充電になっていることを確認
- 就寝前にC2の電圧を測定し、起床時(8:00)に電圧とターミナルを確認
自作アプリではTWE_VCCの値によって間欠動作のタイミングを切り替えているため平均して10分~15分で無線通信となります。

昼間の窓際で明るい場所にソーラーモジュールを設置して無線通信による電源の変化を確認すると1時間ほどでほぼフル充電になりました。曇り空の中で数分間太陽光パネルに直射日光が当たっていたため充電時間が早くなっています。
2.4VでBYPを使用するためC1とC2が並列に接続されるためTWE_VCC(C1)とVC2(C2)の電圧が同じになっています。
動作確認の結果

TWELITEプログラマのターミナル機能を使用して動作確認を行っています。22:00にカーテンを閉めて室内光を遮断してから起床時間である8:00の電源の様子を確認しました。

22:00時点でテスターTWELITE_VCCの電圧を測定すると3.26Vでしたログを確認して電圧をプロットしていくと30000(6:30位)まで電圧低下して3.16Vになっていました。8:00にテスターで電圧を測定すると3.19Vでした。明るくなるにつれて電圧が上昇しフル充電時の電圧に戻っています。

夜間に雨が降っており朝から曇り空であったため湿度が高めに出ています。朝窓を開けて換気したため温度と湿度が上昇しています。気圧については1000hPaからほとんど変化がないため省いています。
ソースコード全体
ソースコードは記事作成時点において動作確認できていますが、使用しているライブラリの更新により動作が保証できなくなる可能性があります。また、ソースコードを使用したことによって生じた不利益などの一切の責任を負いかねます。参考資料としてお使いください。
リンクからZIPファイル形式のファイルをダウンロードし、任意の場所に展開していただくとテキストファイルが生成されます。
TWELITEのソースコードはMWSTAGEの環境でアクトのソースファイルにコピーすると使用できます。
関連リンク
エナジーハーベストはIoT社会実現のために必要な技術であると考えています。電池レスでIoTモジュールが起動できるようになれば応用範囲が広がることが期待できます。エナジーハーベストの検討の一環として検討しているトワイライト(TWELITE)に関する記事をまとめています。興味があればご覧ください。
トワイライト(TWELITE)のソフト開発と無線通信でできること
PR:企業で求められる即戦力技術を身に付ける テックキャンプエンジニア転職
最後まで、読んでいただきありがとうございました。
条件にもよりますが曇り空でも余剰電力をチャージすることができ室内光においても同様であるため理論上部品の寿命が来ない限り動作させることができそうです。