※注意 raspistill で撮った2592×1944ピクセルの超巨大画像(2.6MB)なので、モバイル回線でクリックしないように。
13.6V なので、車のバッテリー60Ahを充電しつつ、30,000mAhモバイルバッテリー充電と、携帯電話充電と、Raspberry Pi Zero 2 W+GPSモジュールが動かせてるな。
この画像はGIMPでシャープネス加工して見やすくしたものだけど、文字が細いから、高解像度にしないと読み取れないのが課題だな。
I know who Iam.
わしはスパムメールが大嫌いだが、社長の命令でスパムメール配信システムを構築した。
で、そいつがせっせとスケジュールに従って、スパムメールを配信するのだが、大量にエラーメールが返ってくる。
スパムメール業者あるあるだと思うが、メール送信先が転送されていて、転送先のメールサーバーからエラーを返される。
指定された送信先はエラーのためお届けできませんでした。
Subject: 今すぐに○○○○○○の☓☓☓☓☓☓☓☓しませんか!?
Date: Mon, 15 Apr 2024 09:06:14 +0900 (JST)
To: xxxxxxxxxxxxxxxxxxxx@softbank.ne.jp
つまり、次のようにエラーメールが返される。
スパムメール配信システム → ??? → 転送先アドレス
転送先メールサーバー→ウチのメールサーバー
メールには配信停止用URLをヘッダと本文に記載しているので、転送先メールサーバーが適切にエラーメールを引用してエラーが返ってきたら、手動で配信停止をすれば、エラーメールは無くなっていくようにはなっている。
だが、ソフトバンクのメールサーバーが腐ってて、こちらの配信停止情報を尽く削除した上で、エラーがあったと通知してくるだけなので、こちらで配信を停止する事ができない。
本来、転送をミスってるのだから、「???」のサーバーにエラーを返すのが筋だと思う。
しかし、メール転送の仕組み上、そっちにエラーを返しても転送設定に従って再び転送してしまうし、大抵、転送設定した本人は転送元のメールを参照する習慣が無くなっている。
無意味なメールを送ってくる MAILER-DAEMON@softbank.ne.jp のメールをReject しちゃうのが一番良いのだが、会社のメールサーバー契約した奴が、メールサーバーを自由に弄れる契約にしなかったので、それもできない。
転送元アカウントが無くなるまで、この無駄なトラフィックは無くならないので、すまんとは思うが、ソフトバンクが問題解決の役に立たない無意味なエラーメール通知をしてくるのが原因の9割なんだよなあ。
RX-7 を監視するプログラムを Raspberry Pi Zero 2 Wで動かしている。
1 2 |
@reboot /home/noizumi/bin/alarm_monitor.sh & */1 * * * * /home/noizumi/bin/ld_monitor.sh >/dev/null 2>&1 |
crontab にこう設定してあって、起動時にモニタプログラムが起動するようになっているのだが、最近、こいつが動いてない事が多い。
幸い、リモート接続は可能なので、ssh で接続して、手動で動かしているのだが、原因を調べると、どうも cron が動いてないっぽい。
systemctl status cron.service で状態を確認しても、running と出てるし、プロセスもちゃんと上がっているので、表面上異常は一切見付けられない。
うーん……
これは、モニタプログラムを /etc/rc.local 起動するしかないかな。
しかし、1分毎に動かしてる転送されていない動画を転送する処理は cron が動いていないと、問題がある。
rc.local で起動したモニタプログラムに、ログを調べて cron のログが無いようだったら、systemctl restart cron.service を実行する機能を付けねばならんか。
しかし、基幹部に欠陥があると、想定していた前提が崩壊してしまうので、こういうのは何とかならんのかのう 🙁
車載のRaspberry Pi Zero 2 W(以降rx7pi)が、家のWiFiに繋がってる時に通信が遅くてしょうがない。
1 2 3 4 5 6 7 8 9 10 |
noizumi@rx7pi:~ $ route -n カーネルIP経路テーブル 受信先サイト ゲートウェイ ネットマスク フラグ Metric Ref 使用数 インタフェース 0.0.0.0 192.168.42.129 0.0.0.0 UG 100 0 0 usb0 0.0.0.0 192.168.11.1 0.0.0.0 UG 600 0 0 wlan0 0.0.0.0 192.168.44.1 0.0.0.0 UG 750 0 0 bnep0 192.168.11.0 0.0.0.0 255.255.255.0 U 600 0 0 wlan0 192.168.40.0 0.0.0.0 255.255.255.0 U 0 0 0 wg0 192.168.42.0 0.0.0.0 255.255.255.0 U 100 0 0 usb0 192.168.44.0 0.0.0.0 255.255.255.0 U 750 0 0 bnep0 |
まあ、原因ははっきりしていて、ssh でログインする時に、WiFiのIPアドレスで繋ぐと応答は速いけど、パッケージ更新とかやると、metric の低い順のネットワークデバイスで通信するので、usb0 = povo 2.0 128kbps 通信となってしまう為だ。
rx7pi は dpcpcd ではなく、NetworkManager で通信を管理してるので、設定状況は次の通り。
1 2 3 4 5 6 7 8 |
noizumi@rx7pi:~ $ nmcli dev status DEVICE TYPE STATE CONNECTION usb0 ethernet 接続済み 有線接続 1 wlan0 wifi 接続済み aterm-f88921-g XX:XX:XX:XX:XX:XX bt 接続済み ASUS_X01BDA ネットワーク wg0 wireguard 接続済み (外部) wg0 p2p-dev-wlan0 wifi-p2p 切断済み -- lo loopback 管理無し -- |
100 usb0
600 wlan0
750 bluetooth
という順で優先されるけど、usb0 と wlan0 を入れ替えたいので、ちょこっと検索。
ネットワーク設定nmcli コマンドでルーティングメトリックを設定します。ルーティングメトリックは値が小さいほど優先順位が高いため、主回線の soracom を 500、副回線の ntt を 700 に設定します。次のコマンドを実行してください。ターミナル
sudo nmcli c m soracom ipv4.route-metric 500
sudo nmcli c m ntt ipv4.route-metric 700sudo nmcli c down soracom
sudo nmcli c down nttsudo nmcli c up soracomsudo nmcli c up ntt
情報源: ラズパイ1個で2個の4GPiを同時使用する際の、LTE回線自動切換え #RaspberryPi – Qiita
パラメータが省略してあるので、分かり辛いが、 c = connection、m = modify か。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
noizumi@rx7pi:~ $ sudo nmcli c m "有線接続 1" ipv4.route-metric 600 noizumi@rx7pi:~ $ sudo nmcli c m "aterm-f88921-g" ipv4.route-metric 100 noizumi@rx7pi:~ $ sudo nmcli c down "有線接続 1"; sudo nmcli c up "有線接続 1" noizumi@rx7pi:~ $ sudo nmcli c down "aterm-f88921-g"; sudo nmcli c up "aterm-f88921-g" noizumi@rx7pi:~ $ route -n カーネルIP経路テーブル 受信先サイト ゲートウェイ ネットマスク フラグ Metric Ref 使用数 インタフェース 0.0.0.0 192.168.11.1 0.0.0.0 UG 100 0 0 wlan0 0.0.0.0 192.168.42.129 0.0.0.0 UG 600 0 0 usb0 0.0.0.0 192.168.44.1 0.0.0.0 UG 750 0 0 bnep0 192.168.11.0 0.0.0.0 255.255.255.0 U 100 0 0 wlan0 192.168.40.0 0.0.0.0 255.255.255.0 U 0 0 0 wg0 192.168.42.0 0.0.0.0 255.255.255.0 U 600 0 0 usb0 192.168.44.0 0.0.0.0 255.255.255.0 U 750 0 0 bnep0 |
よし、イケた。
後は、WiFi接続時に VPN のwireguard を再接続するように設定する。
1 2 3 4 5 |
#!/bin/bash if [ "$1" = "wlan0" ]; then systemctl restart wg-quick@wg0.service fi |
$2に up とか down が入ってくるようだが、どの道VPNを再起動して良い状況なので、判別せず。
実行属性つけておくのを忘れずに。
1 |
noizumi@rx7pi:/etc/NetworkManager/dispatcher.d $ sudo chmod +x wg-restart |
車に50Wのソーラーパネルをバッテリー直結にしたが、過充電が心配で、何とか電圧監視する仕組みを導入できないか考えていた。
過充電が心配なら、ソーラーチャージコントローラーを噛ませばいいじゃないかという話だが、如何せんソーラーパネルのパワーが低いので、充電するよりもソーラーチャージコントローラーの待機電力の方が大きければ、太陽光発電をしない方がマシというのは本末転倒だ。
正攻法なら、INA226のセンサーで車のバッテリー電圧を計って、ネットワークで確認して、14.4Vを越えていなければOKという判断もできるが、待てよ……
家にソーラーパネル100W買った時におまけでついてきたチャージコントローラーがあるので、とりあえず待機電力には目を瞑って、それを噛ませて過充電の心配を無くす。
そして、車載のRaspberry Pi Zero 2 Wは車内監視カメラがあるので、ソーラーチャージコントローラーには電圧表示があるから、それを写せばいいんじゃね?
車内の動画だと、128kbps の通信速度で送れるように低解像度にしてあるから、電圧が読み取れません><
そうだ raspistill ならフル解像度で撮影できるなと気付き、カメラデバイスを専有している motion 停めて撮影してみた。
さすがに 2560×1920ピクセルともなると、ちゃんと、12.5V って読めるな。
ちょっと手間掛かるけど、これで日中に駐車場でどんな充電状況なのかが一応分かるな。
将来的には、低消費電力の電菱のSolar Amp B に替えたいな。
携帯電話のbluetooth テザリングにより車載のRaspberry Pi Zero 2 W(以下rx7pi)の通信を賄っていて、カメラの動態検知やGPS測定による位置移動、警報装置発報をメール通知するようにしている。
しかし、時折、一切の通信不能になる時があって、恐らく、bluetooth のチップがハングアップして通信機能が失われているのだろう。
で、以前、携帯電話のUSBテザリングを使用していて、これはRF回路を使わないから、電力喰わないので良いのだが、携帯電話のロックを解除しないと接続してくれないので、時折ロック解除を忘れて、まる一日通信不能の事があった。
ふと、設定で画面ロックを使わないようにしたらどーなんの?とやってみた所、rx7pi が起動したら、即携帯電話にUSB接続した。これで bluetooth がハングアップしようが通信に問題が無くなったな 🙂
楽天にRチャンネルというのがあるけど、中身はCSの番組の再配信みたいなやつで、これを楽天IDでログインして視聴すると、1時間に1ポイント貰える。
そして、2ヶ月連続視聴すると、貰えるポイントが倍になって、12月は10月分のポイント 1,176ポイント貰った。
ブラウザで開きっぱなしにしておけば、ポイントを山ほど稼げるんじゃね? と思いきや、3時間操作が無いと以後ポイント加算されない事になっていて、そう甘くはない。
わしの場合は、PC起動したらRチャンネルのページが開くので、以後、気付いた時にチャンネルを替えて、この制限を逃れている。
ただ、寝ている間はどうしようもないので、それを何とかできないかと考えた。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
<!DOCTYPE html> <!-- Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license Click nbfs://nbhost/SystemFileSystem/Templates/Other/html.html to edit this template --> <html> <head> <title>定期リロード</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script> <script> var wrch = null; var ct = 0; var id = 0; function int_proc(){ // ウインドウIDがあれば初回以外の呼び出し if(wrch != null){ wrch.close(); } // ウインドウオープン wrch = window.open($('[name="url"]').val(),'rch','popup'); // 時刻文字列生成と表示 let nowTime = new Date(); // 現在日時を得る let nowHour = ('00'+nowTime.getHours()).slice(-2); // 時間を抜き出す let nowMin = ('00'+nowTime.getMinutes()).slice(-2); // 分数を抜き出す let nowSec = ('00'+nowTime.getSeconds()).slice(-2); // 秒数を抜き出す let msg = "前回起動時刻:" + nowHour + ":" + nowMin + ":" + nowSec; $('#disp-time').text(msg); // インターバルIDが設定されていた場合、キャンセルして、新たなインターバルを登録 if(id != 0){ clearInterval(id); id = setInterval(int_proc, $('[name="int_time"]').val()); } } $(function(){ int_proc(); id = setInterval(int_proc, $('[name="int_time"]').val()); }) </script> </head> <body style="line-height:2em;"> <div>指定ページを定期的にリロードするよ</div> <div id="disp-time"></div> <input type="url" name="url" value="https://channel.rakuten.co.jp/" style="width:330px;"><br /> 再起動間隔マイクロ秒数:<input type="number" name="int_time" value="10800000"> <button type="button" onclick="int_proc();">再起動</button> </body> </html> |
そこで、3時間毎にリロードするプログラムを書いた。
最近のブラウザは、裏タブにすると、動きを止めてメモリ解放してしまうので、このソースのウインドウとRチャンネルのウインドウは裏へ回らないようにしておかないと、継続動作しない可能性があるので要注意。
これで寝てる間もポイント稼いでくれたらいいけど、単にウインドウを開き直すだけで、チャンネルは変更しないので、もしかすると、ダメかもしれん。
Raspberry Pi Zero 2 W+GPS+Zenfone Max Pro[m2] を繋いでテスト。
DE-C41-30000BKを満充電の後、26時間連続稼働で残りゲージ2つ(50%以下)くらいなので、48時間くらいイケそうだな。
最近、RX-7のバッテリがよく低電圧に陥り、カーポートソーラーに2日ほど接続していたが、夕方エンジン掛けようとするも掛からず、ジャンプスタータで始動した。
RX-7のバッテリがもうそろそろダメなのかもしれん。
|
車載Raspberry Pi Zero 2 W(以下rx7pi)を稼働させるのに、バッテリが低電圧になるのを解決すべく、ポータブルバッテリをこうにう。
エレコムは 自社、Amazon、楽天市場のショップで同一価格なので、ポイント4倍の楽天で買うのが一番お得。
リチウムイオン電池じゃなく、ハイブリットカーのバッテリにも使用されているリン酸鉄リチウムイオン電池なので、高温になりがちな車載でも安心。
以前、ガラケーをFOMA 補助充電アダプタ03に繋ぎ、それに4.5Wソーラーパネルに接続して電力を賄っていたが、スマートフォン+GPS+rx7pi を車のバッテリに繋ぐと電圧低下で、エンジン始動できなくなる。
そこで、以前みたいに、今回買ったDE-C41-30000BKへ rx7pi 一式を接続して、入力に18Wソーラーパネルを接続して、車の電力系から独立させてみようと思った。
ソーラーパワーのみで賄えるようになったらうれしいな 🙂
まあ、できなくても、週末のみモバイルバッテリー充電すればOKの体制にはしたいなあ。