みなさんこんにちは。 トドお父さんです。
いろいろと苦労しましたが、SDカードとRTC対応のPZEM-004T電力計ロガーの改良版を作ってます。
今回ようやくソフトが完成して、回路変更とケースへの組み込みが完了したので報告しますね。
組み込み完了(SD書き込み中)です
【前振り】
このPZEM-004Tを使った電力計ロガーは1月にBluePill STM32F103Cに移植が完了しました。
【Part2】STM32F103BluePillでPZEM-004Tを使った電力計を作りました!
このときは、内蔵のRTCを動かして、SD Card基板を追加し、FatFsでSDカードに記録する件が宿題と
して残っていました。ケースが小さくてRTC用のバックアップ電池とマイクロSDカードモジュールを
組み込むのがムリゲーそうだったからです。
あれから色々と検討して、BluePillのRTCとSDカードの対応ソフトについてはArduino STM32core
いわゆるSTM32dunoのプログラムを調査して、ブレッドボード上で動作を確認しました。
前回のポストにある通りです。
【Part1】BluePillを使ったPZEM-004T電力計ロガーにRTCとSDカード組込み
ハードについては、小型のAdafruit SD Cardモジュール4682と小型のCR2032電池BOXをマルツから
入手できたので、ムリゲーからなんとか小型のケースに組み込めるメドが出てきました。
そんなわけで、前回はブレッドボードでBluePillのRTCとSDカード書き込みソフトを作成したところ
まで報告しました。
【Part1】BluePillを使ったPZEM-004T電力計ロガーにRTCとSDカード組込み
今回はハードの部分、前の電力計ロガーからの回路図の修正内容と、ケース加工組み込み
それと最終のソフト修正の動作確認までを説明しますね。
【ハード設計】
下記が、今回のSDカード基板とRTC用のバックアップ電池を追加した回路図になります。
前の回路図に対して、修正した部分はAdafruit 4682 SDカード基板の追加とRTC用のバックアップ電池
CR2032ソケットの追加だけです(が、プログラム修正とケース内に納めるのは結構苦労しました)
ネットで調べると一般にバックアップ電池には、逆流防止用のダイオードとか色々ついているんですが、
STM32F103のデータシートを読むと、BAT端子には低電圧になると内部のVccからVBATに切り替える
スイッチがついているので、バッテリを直接つないでも問題ないようです。
内部に切替えスイッチがついているので、通常時はバッテリへVccから逆流する心配はないからです。
リファレンス基板のバッテリCR1220も直接つないでいますね。
海外の記事にCR2032は3.6Vあるのでそのまま接続すると危険、とありましたがCR2032の公称電圧
は3Vですし、VBATの最大電圧は0~3.6Vになっていますので問題ないでしょう。
前に悦明しましたように、今回は小型のmicroSDカード基板Adafruit 4682を使います。
前のレベルシフターIC付きのAdafruit 254と比べるとその大きさが分かると思います。
CR2032電池ホルダも前回 ATTINY202/402導通チェッカで使ったSMDタイプのものを使いました。
CH7410-2032LF/TRAY というタイプです。これも小型で高さが低いのでいいですね。
【ケース組み込み】
回路図ができて部品も選定したので、いよいよケースの追加加工に入ります。
ここまでのケース加工については、前の記事に詳しく書いています。
【Part2】STM32F103BluePillでPZEM-004Tを使った電力計を作りました!
まずはSDカード基板の取り付けです。
事前にケースのフタから、LCDやスイッチ基板を外しておきます。
SDカード基板の取り付け穴に合わせて、2mmビスの取り付け穴を開けて取り付けます。
そうしたら、現物合わせでSDカードが入る穴をフタの前面に開けていきます。
まずは、デザインカッターのホビーのこ歯でケースの縦を切ります。
そうしたらプラカッターで横を切ります。 曲尺とかを当てて曲がらないようにしてください。
ちょっと不格好ですが切れました! 写真ではSDカード基板が上下逆についてますね。
これは基板の部品面が上になるように、あとで修正しました。
BluePillを固定しているユニバーサル基板にボタン電池ホルダを半田付けしたら、VBATとGNDに
接続します。GNDは基板の裏側に配線しています。
SDメモリ基板へも順に配線しました。
1P 3V
2P GND
3P CLK
4P SO/D0
5P SI/CMD
6P CS/D3
7P D1
8P DAT2
9P DET
SELキーを押すとSDカードへの記録が始まり、画面の右上にRECと表示します。
同時にBluePillのPC13 緑LEDが1秒毎に短くブリンクするようになります。
(通常時は1秒点灯、1秒消灯でゆっくりブリンク (点滅) します)
もう一度SELキーを押すとSDカードへのログ記録を停止します。
前回Part1で説明したように、SDに記録されるファイル名は LO030201.csv等の月/日が入った
ファイル名になります。(下2桁は01から記録のたびに新しいファイルで順次増えていきます)
【初期設定】
ENTキーを押して起動(本体にUSBを刺して電源供給)すると設定モードに入ります。
変更したいときは左のSELキーでパラメータを選んでENTキーを押します。
変更が終わったら、起動画面の表示で設定値を確認できます。
SELキーを押して起動(本体にUSBを刺して電源供給)するとRTC設定モードに入ります。
ENTキーを押すと、YYYY(年)、MM(月)、DD (日)、HH(時)、MM(分)、SS(秒)の順に
設定画面がでますので、変更時はSELキーを押して修正後にENTキーを押してください。
RTCの設定が終わると通常の起動画面に戻ります。
なお、現在のRTCの設定値を知りたい場合は、PCの測定ログ画面で確認することができます。
このノートPCのスリープ中の消費電力測定結果を、EXCELでグラフにしたデータを下記に張りますね。
薄い緑の線が積算消費電力で、右側の軸が単位(kWh )です。
11時から1時まで2時間程度使用して、1時から7時半までスリープ(0.93W)
2時間程度の動作と合わせても、0.048kWhですから、大したことはないですね。
【まとめ・最終仕様】
今回のSD対応PZEM-004Tロガーの仕様について、下記に簡単にまとめます。
① 起動時にENTキーを押していたら、パラメータ設定モードに入る
② 起動時にSELキーを押していたら、RTC設定モードに入る
③ PZEM004T測定データ表示中にSELキーを押すと、SDカードにログデータ記録を開始する
(画面右上に小さくRECと表示)
④ PZEM004T測定データ表示中に再度SELキーを押すと、ログデータ記録を停止する
ファイル名は、setting.txtにファイル名を入れていればその名前をBaseとして後ろに
月、日と、01から始まる番号を追加する。ファイル名がなければLO030201.csvになる
一旦記録を停止して、新たに記録を開始した場合、番号を+1したLO030202.csvを作り
そのファイルにログを記録する。(8.3形式ファイル命名規則から、ファイル名は8文字とする)
⓹ ENTキーを3秒以上長押しすると積算電力の値がが0クリアされる
⓺ sleep時間経過後に、焼き付き防止でsleep画面になる機能がある。
sleep中は画面にランダムにドットが表示されて、動作していることを示す。
SELキーまたはENTキーを押すとSleepが解除され通常表示モードに戻る
(キーによる記録開始/停止、積算電力リセットは通常表示中でしか有効にならない)
それでは、皆さん次回をお楽しみに!
関連記事