【Part1】STM32F103BluePillでPZEM-004Tを使った電力計を作りました! | トドお父さん通信

トドお父さん通信

北部九州在住 高BMI中高年のオタク趣味の活動記録

 

   完成した電力計ロガーです

 

大分前にAliExpressをサーフしていて、PZEM-004Tという電力計をポチっとしていました。

いろんな仕様があるのですが、自分が買ったのは電源を直接ケースにいれて電流検出抵抗で

電流値を検出するタイプです。 電流容量も10Aと低めです。

 

 

最近、円安で政府の補助がなくなったこともあり電気代が高くなったので、これを使って

電力計を作ってみようと思い立ちました。

 

ラッキーなことに、ラジオペンチさんのホームページにSSD1306 OLED表示器を組み合わせて

電力計ロガーを作る記事があったので、早速作ってみることにしました。

 

 

まずは、ブレッドボードで組んでみます。

記事通りまずは、Arduino Nanoを使って作ってみました。

回路図は、こちらのハード製作編から拝借させていただきます。

 

 

回路図です(実態配線図)

 

このとおりにブレッドボードで組んで、USB経由でArduinoのスケッチをダウンロードすると

あっけなく動作しました。 ACケーブルはおすすめのダイソーで買った1m 300円のものです。

 

 ノートPCの消費電力測定中

 

ここで欲がでてきました。『Arduino NanoはAVR 16MHzで能力が低いため、SDカードへの記録等

の対応が難しい。手持ちのSTM32F103C BluePillに移植したらどうだろうか?』ということです。

 

ラジオペンチさんがベンチマーク表を作られているので、転載しますね。(ありがとうございます)

 

これによると、Arduino Nanoに搭載されているATmega168 (16MHz)はマンデンブロ描画に1018mS

STM32F103 (72MHz) は178mSですから、約 5.7倍のパフォーマンスがあるということになります。

 

それでは、STM32F103C8T6を搭載したBluePill基板の紹介です。

AliExpressで200円前後で買えるので、やすいですね。

自分はおもちゃ修理にSTM32を使うアイデアがあるので、勉強用に3枚買いました。

 

その場合は、開発環境はSTM32CubeIDEかKEILというものを使う必要があるのですが、

今回はArduinoベースなので、Arduino STM32Coreというものを使います。

これだと、STM32でArduinoのライブラリが使えるので、非常にラクですね。

 

ArduinoのボードマネージャでSTM32Coreというものを組み込むのですが、この辺の情報は

巷にあふれていますので、割愛します。ただし、Arduinoは最新のVerを使ってくださいね。

 

もうひとつ、BluePillを使うためには、Amazonで中華製のST-LINK/V2というプログラマを

買うことをお勧めします。 自分の場合は、500円くらいで十分使えました。

 

 

ST-LINKが必要なのは、中華製の廉価BluePillはプログラムが書き込まれてないまっさらの状態のためです。 例えばArduinoに接続する場合、BootLoader(USBのCDC)が書き込まれていれば、BOOT1のJumperを”1”に切り替えてUSB経由で書き込みができますが、まっさらではお手上げです。

 

そこでSTLINKで接続すれば、BootLoaderの書き込みをを行うことができるので、Arduinoから書き込み

ができるようになります。

 

ここでも、細かい話はネットの情報で確認下さい。

ST-LINKで接続すると細かい話はおいといて、プログラムの書き込みができるようになりました。

 

さて、Arduino Nanoから、STM32F103C8T6 BluePillに移植したプログラムですが、こちら

おいています。

 

回路図はこちらです。

説明が長くなってきたので、続きは次回にしますね~。

こうご期待 !