ソーラー発電所の監視装置、不具合がもう一つみつかりました
発電所から送って来る発電量と気圧データーを0~5Vに変換しロガーに記録していますが、これが少なめに記録されるようになったのです
原因はaruduino の電源電圧不足でした、使用していた受信側のUSB電源アダプタ5Vが4.75Vと規定値より低いのが原因5Vに対して5%足りない分がアナログ出力にもろに影響していました
電源端子から9VのACアダプタで電源を供給することで誤差がなくなり解決できました
まともな接続図を描いたことがないので書いてみました
左側のarduinoが発電所のインバータボックス内にあります
アナログ入力A0に発電量を電流変換器で検出した0~5V(0~1000W)が入力されますこの電圧をもとに出力端子D7~D8に出力される信号でソリッドステートリレーでソーラーパネルを切り離し発電量が定格の70%を超えないように50m/秒のパルスで制御しています
BMP180は温度と気圧センサーですA4・A5に接続、LM35は温度センサーでインバータの温度A1にアナログ電圧0~5Vで入力、DHT11温度・湿度センサーD8に入力されデーターはパケットアドレスの通りarduinoで処理されます(気圧は実測値から950を差し引いて0-100で伝送します)
BMP180とDHT11のデーター取り込みは、専用のライブラリーで実施されるので気にするところではありません
6個のデーターは5秒間隔でaruduinoに接続された無線ユニットnRF4L01で送信されます、電波はガラス窓越しに10mの場所で同じnRF4L01で受信するとやや不調・・・でした
右の監視側arduinoには外部アンテナの付いたnRF24L01+を使用し受信を安定させてあります、送られて来るデーターはA4・A5に接続されたLCD表示器にインバータ温度・ボックス内温度・ボックス内湿度・発電量・外気温度・気圧の順に表示しています(気圧は950をプラスして実測値に戻します)
LCD表示は12CLCDの専用のライブラリーで動いていますので気にするところではありません
6個のデーターのうちボックス内の湿度・気圧・発電量はアナログデーターに変換して1分間隔で別途ロガーで記録しています
まとめ
今回の、ソーラー発電所の監視装置データーが途切れる不具合01~04で改良したのは室内にある監視用のaruduinoに付属した無線機を外部アンテナの付いたnRF24L01+に交換したことですべての不安が解決しました
また、屋外にあるarduinoは掃除して戻し、付属の無線機nRF24L01は水洗い乾燥してシリカゲルの入ったビニール袋の中で運用しています
温度0~60℃、湿度100%近くで数年運用しても壊れないaruduinoとnRF24L01はおもちゃじゃない!と、感心しております
アナログ出力の誤差は電源電圧不足これはしっかりした9VのACアダプタに交換することで解決しました、PWM方式のアナログ出力255bit?も電源電圧をしっかりすれば十分実用になることが分かりました
aruduino nano を使用した場合も同じように アナログ出力が不足することは分かっていましたが、こちらは結論が出ていません、電源電圧を10%くらい高くして変化を見たいと考えています
追記:arduino nano にも外部電源端子(VIN)があることが分かり 、9Vの外部電源をつないで様子を見ますと5%もあった誤差が0.5%以内に収まりました、これはちょっとした!測定器レベルでしょう
発電所側の図面も不足分を書き込んでおきました