気象ステーションにwebサーバー機能追加

picoWで作った気象ステーションにwebサーバー機能を追加して、ambientにアクセスしなくても現在値が読めるようにした。

picoは2コアなので別々に動かすのがいいのかと思ったが、難しいようで、uasyncioを使った非同期処理の例があったので、その方法で実装した。webサーバーはmicrodotを使用して、ルートに対して上記のフォーマットでhtmlを返す簡単なものにした。変数をグローバルにしたり、WDTを入れたりして見にくいプログラムになってしまったが、ambientへのアップロードとweb serverを両立して動くようになった。マイコンのプログラムというよりVB.NETのようなプログラムになったので、いっそのことVBで書けるようにしてほしいところです。

オフグリッドの余剰充電システムへの改造

系統連系のトレンドが取れた。

充電時間帯は9時ー16時にしてあり、9時に充電が始まって11時頃に終了している。リチウムは1kWhで、約半分使用しているので、これぐらいで満充電になる。エコキュートは10時からお昼までONになっている。この日は深夜で沸かしていて、昼間は天気が良くなったので手動でONにした。まあ想定通り動いているが、売電(余剰)はまだ大量にあるので、蓄電池容量を増やしたいところである。

ちなみに数日前に久しぶりに30分ほどの停電があり、居間に電気を供給しているこの蓄電システムが活躍してくれた。

オフグリッドの余剰充電システムへの改造

オフグリッドシステムのPVモジュールを外して、商用充電器を取り付け、系統連系システムの売電電力で充電するように改造してみた。

久しぶりにVBに触った。

売電電力は連系システムのロガーのデータをWeb表示できるようにしてあるので、それを利用して取得して、充電器の電力以上(充電器容量300W)売電している場合に充電器をONにする。充電器は電源スイッチに並列にフォトMOSをつないで行っている。自作インバータモニターのLVDSwitch4の余っている接点を使っている。インバータはPV発電が無くなる夕方から朝にかけてONにするようにした。今日は天気が悪く、売電がマイナス(購入)なのでテストにならないが、うまく動くと余剰を少し自家消費に回せると期待している。

ストリングモニターをArduinoUNO R4 WiFiに変更

太陽光発電のストリングモニターをArduinoUNO WiFi2からR4 WiFiに変更した。R4用のライブラリに変更することで大きな変更なくコンバージョンできた。新しいWiFi基板の低消費電力化を期待してのこと。それとWiFi接続の安定性も期待したい。

小さなオフグリッドシステムで動かしているが、WiFi2はバッテリー電圧が低下して電源がシャットダウンしたときにプログラムが消えてしまうことがあるので、それの対策も含んでいる。

気象ステーション計測基板をPicoWに更新2

PicoW+micropythonのシステムだが、結構よく止まる。一つはAmbientへの送信コマンドで、もう一つはWiFiの再接続で止まっている。前者はガベージコレクションを実行することで解決すると書いてあった。後者はWDTで対処することにした。

PicoWでWDTを使用するとSTOPでプログラムを止めても再起動してしまう。そうなるとプログラムの再書き込みもできない。フラッシュクリアを上書きすればWDTも止まるが、そうするとmicropythonの再書き込み、ライブラリの再インストールからやらないといけない。何か良い方法はないでしょうか?

気象ステーション計測基板をPicoWに更新

気象ステーション

下のDavis製ではなく、上の白い方に接続する。風向、風速、雨量、日射センサが付いている。日射センサは小さい太陽光発電セルのシャント電流を測る簡易計測。温湿度、気圧は基板に付けたBME280で計測している。

PicoWを使った気象ステーション計測基板

気象ステーションの計測基板をPicoWを使って再製作した。プログラムはMicroPythonで作り、以前と同様に10分平均をAmbientに送ってグラフ化している。風速入力と雨量入力をヒステリシスに設定しようと思ったが、設定コマンドはMicroPythonには見つからなかったため、1uFのフィルターのみしか付けていない。デフォルトで有効になっていると書いているところもあり、計測値は特にチャタリングは出ていないようだった。WiFi接続ルーチンに問題があるのか、再起動時に繋がらないことがあるので、今後の課題になっている。ESPも同様だが、安定して接続してくれるモジュールが欲しいところだ。

以前の気象ステーション計測基板

これはこれまで使っていたArduino Pro Mini+ESP32の基板。計測はArduino Pro Miniで行って、ESP32はWiFi接続のみを行っていた。

表面実装Trアンプをまた作ってみた

トラ技SPECIAL No.139-4章のアンプを作ってみた。電源が±5Vにできるように定電流源の抵抗を変えて、発振防止をカットアンドトライして、なんとか鳴るようになった。

TrはロームのペアトランジスタIMX1、IMT1、QSX8、QST9を使ってみた。出力バッファ―に抵抗が無いめずらしい回路だが、私の耳には違いは残念ながらわからない。ヘッドフォンアンプということだが、スピーカーで小さい音で聞く分には十分な音量!

MiniWatter2改2とHeadphone Amp3のスピーカー版

MiniWatter2改2
HeadphoneAmp3 for Speaker

ぺるけさんのヘッドフォンアンプ3を秋月で入手可能な部品で作ってみた。ついでにMiniWatter2改の基板間違いを修正して部品を載せ替えた。ヘッドフォンアンプ3のFET差動は2SK2145を使ったのでドライバは表面実装になった。終段はMiniWatter2改と同じ。1回目にDCコネクタの極性を間違えたり、スピーカー端子の穴が小さかったりして時間を食った分、今回は2種類とも一発で動いた。
ヘッドフォンアンプはスピーカー用にパラメータを変える記事を参考にした。小さい音でしか聞かないので全く問題なくスピーカーから音が出る。バイアスは80mAになった。消費電力は約3Wと少ない。どれをBGM用にするか迷うところ。

我が家のオフグリッドシステム

長年使っているオフグッドシステムですが、リチウムとは相性がわるそうです。同じバッテリーを2並列にして使っていましたが、片方だけ容量がなくなってしまいました。3年の短い寿命でした。残った1台に頑張ってもらいたいところです。


鉛はBMSが無いので直並列は要注意ですが、リチウムはBMSがあるので安心していたら、やはりばかちょんとはいかないようです。何らかの理由で片方の容量が低下しても、並列になっていると浅い放電深度ではBMSシャットダウンしないので発見できません。たまには1台にしてチェックする必要がありそうです。
容量がなくなってしまった原因は充電電圧設定を28.4Vとやや低めにしていたことらしいのですが、半分程度の浅い放電深度を維持していても劣化は起こるようで、要注意です。たまには商用充電器で長めにバルク電圧を維持させてBMSに均等化動作をさせないといけないのかもしれません。モニターでは動いて見えていたので油断してしまいました。ショック!!

MiniWatter2改

ぺるけさんのMiniWatter2を少しだけ改造してアンプを作った。バイアス段を調整可能にしたのと、部品を現在秋月で入手可能なものに代えた。

初段:2SA733
2段目:2SD882
終段:TTC015B,TTA008B

だいたい同じような電圧になったので大きな問題はなさそう。
OPアンプを使わなくて、たった5個のトランジスタでちゃんとした音が出るのはすごい。こんどはダイヤモンドバッファのヘッドフォンアンプでスピーカーを鳴らしてみるつもり。