headAD
2018/11/08
熱気球 鈴鹿のmapを作る
佐賀大会と同じように、事前に自分用のGARMIN製ハンディGPSのJNXファイル形式の地図を作ります。
マップを切り出すときの経度・緯度を忘れるので、ここに張り付けておきます。備忘録ですね。
詳細は、前回佐賀のこことかもっと前のここをご参考ください。
さて、鈴鹿でのゴールリスト全体を括ると、南東部の海や北西部の山間部まで含めてしまい、メモリ容量的に無駄かなと感じますが、鈴鹿サーキット付近で南北を分割するとよさげですが、ちょっと面倒なんで、今回は全体括りで作成します。
鈴鹿エリアは下の緯度経度で切り出します。
(1)LAT1,LON1:34.715,136.40 LAT2,LON2:34.94,136.64
あとは、前回作成した要領で、じっと待つのみ。
全部のゴール地点を含む地図データは、約364MBでした。
関連記事はこちら
2018/10/14
Balloon Flight Support の紹介
Balloon Flight Support は熱気球の現在位置を把握するアプリです。
熱気球本体(バルーン)側の位置・高度・進行方向が、地上支援(チェイサー)側へリアルタイムに届き、バルーンと一体となった支援活動ができます。
また、バルーンの飛行状況がWebで見えるので、遠く離れたところからでも観察できます。
バルーン・フライト・サポートBFSは10周年の記事(2022/7 追記)
BFSの詳細は、Balloon Flight Support ページへ
特徴はFeaturesを参照ください。
PCだけでなく、iPhoneやandroidなどのスマホやタブレットで使えます。
サンプル画像です。(背景地図は地理院タイルを使用)
..
2018/06/24
Raspberry Pi2 Node.jsからMongoDBへアクセスできなくなった
Raspberry Pi2 のOSを Debian jessie から stretch へアップデートしたところ、 jessie の環境で Node, MongoDB が動いていたが、アップデートしてから Node からMongo へアクセスするとエラーを吐いてきました。
MongoDB のバージョンが古い。 2.6以上が必要と!!!!
たしかに、こちらの環境は、Nodeのバージョンは 5.6、 MongoDBは 2.4.10
Mongoの方は、Raspberry pi で公式に入手できるのはこのバージョンしかない(古すぎるけど)
最初は、MongoDB のバージョンを上げることを考え、ネット上を徘徊したがメジャーバージョンアップだとデータの持ち方も変わるなど、リスクが伴いそうな気がします。
Node, MogoDB それぞれ単独では動作するので、Node の MongoDB ドライバーに問題がありそうだということが解ってきました。
ここまで、半日かかった~~。
そこで、Nodeのドライバーを管理している npm のパッケージインストール状況を確認してみると。
(これより以下を一部加筆修正しました。2019-06-22)
$npm list
mongoose@5.1.6 <-- ここ
mogoose のバージョンが stretch のアップデートに引っ張られて 5.1.6 が入っているのが原因のようです。
MongoDB Server Version Compatibility では
MongoDB Server 2.4.x: mongoose ^3.8
or4.x
MongoDB Server 2.6.x: mongoose ^3.8.8
or4.x
MongoDB Server 3.0.x: mongoose ^3.8.22
,4.x
, or5.x
MongoDB2.4 では、mongoose は 4.x でした。
ここまでくれば、ドライバーバージョンを下げてやればいい。
package.json ファイルの mongoose を元に戻し、頭に^キャロットを付けメジャーバージョンが一致するものに固定します。
"dependencies": {
"mongoose": "^4.4.17",
再度、 $npm install として npm を更新してみると。
$npm install
mongoose@4.13.41
これで、Node がエラーを吐かなくなりました。
本来は、MongoDB のバージョンを 3 に上げたいが、色々と制約がありそうなので、今後の課題とします。
.end
2018/04/04
Raspberry Pi UPSをWebでモニタリングする
今回は、Webモニタリングの設定をして、ローカル(UPSへ接続しているラズパイ)以外のPCからモニタ出来るようにします。
ただし、このラズパイは既に apache2.4 Webサーバーとして機能している前提で、ここではNUTに関する設定箇所を示します。
[nut cgi のインストール]
sudo apt-get update
sudo apt-get install nut-cgi
/etc/nut/hosts.conf へ MONITOR を記述します。
cyberups は ups.conf に設定した名前、"Local UPS"は UPS を指す適当な名前です。
MONITOR cyberups@localhost "Local UPS"
cgi 関連ファイルのパーミッションを設定します。
sudo chmod 644 /etc/nut/hosts.conf
sudo chmod 644 /etc/nut/*.html
sudo chmod 644 /usr/share/nut/www/*.*
sudo chmod 755 /usr/lib/cgi-bin/nut/*.cgi
/nut へのアクセスを限定的にしたければ、 /usr/share/nut/www/ に下の内容を記述した .htaccess ファイルを一緒に入れます。
order deny,allow
deny from all
allow from 192.168.1.0/24
apache のドキュメントルートを記述している hoge-ssl.conf に /nut として alias を設定します。
/etc/apache2/sites-available/hoge-ssl.conf
Alias /nut /usr/share/nut/www
<Directory /usr/share/nut/www/>
SSLOptions +StdEnvVars
Options FollowSymLinks
AllowOverride all
Require all granted
</Directory>
同様に cgi ルートも 本来の cgi-bin と区別するために /cgi-nut として alias を設定します。
これは、モニタ出来るipをローカル内(192.168.1.*)に制限するため、以下を書き加えます。
/etc/apache2/conf-available/hoge-cgi-bin.conf
~
ScriptAlias /cgi-nut/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI
Require ip 192.168.1
</Directory>
~
/etc/nut/upsset.conf
###
I_HAVE_SECURED_MY_CGI_DIRECTORY
###
こちらの該当する箇所も /cgi-nut へ変更
/usr/share/nut/www/header.html
26 <a href=/cgi-nut/nut/upsstats.cgi target= ~
30 <a href=/cgi-nut/nut/upsset.cgi target= ~
apache の設定ファイルを再読み込みします。
sudo apachectl reload
https://[あなたのドメインもしくはipアドレス]/nut とすることでアクセスできるようになります。
ここで、気づきましたが、Battery Voltage が9.1Vを示していますが、本体バッテリーは12Vタイプで正常ですから、なにかしらUPSからのデータ取得に問題があるのかもしれません。
UPS本体の動作は正常なので、原因が判るまではこのままにしておきます。
raspi の Debian os を jessie から stretch へアップデートしたところ、一緒にnut 関連もバージョンが上がり 2.7.4 になりました。
(※ jessieからstretchへアップデートすると /usr/share/nut/www/header.html が書き換わるので再書き換えする)
Battery Voltage も13.7Vと正常表示となりました。 (2018-06-23 画像と文章update)
以下を追加しました。(2021-1-11)
end
2018/03/22
Raspberry PiへNUTインストールの補足
CyberPower製UPSの国内向け CPJ500 を購入したわけですが、接続するとコンパチブルの CP1500AVR と認識され usbhid-ups と標準のドライバーがセットアップされました。
Debian jessie のためか NUTインストールバージョンは2.7.2(2014/4 リリース)でした。
Debianの最新版stretchなら2.7.4(2016/5 リリース)がインストールされたかもしれません。(この時点で試していません)
この古いバージョンが不具合に影響しているかもしれません。今後確かめてみることにしますが、現状でも対策は可能です。
**********
当初、設定例を元に標準状態でセットアップ後、半日ほど様子見ると upsc コマンドによるupsデータが見えなくなっています。
/ver/log/sys.log を見ると、 data stale がいっぱい溢れていました。
Poll UPS [cyberups@localhost] failed - Data stale
CyberPower 製UPSとの組み合わせで同様な事例が散見され、私の場合は’data stale’でしたが、他に ‘Driver not connected’ などがログで見られるようです。
これらの対策として、試行錯誤の例が幾つかありましたが、次の3点を織り込むことで正常に稼働しています。
この対策は、前回の設定の中に記載しているので、改めて設定する必要はありません。
/etc/nut/ups.conf
pollinterval = 15
/etc/nut/upsd.users
MAXAGE = 25
/etc/nut/upsmon.conf
DEADTIME = 25
これでもダメなら、syslog を監視して ‘data stale’ があったら、 service を再起動するスクリプトも用意しましたが、今は必要ないようです。
次回は、WebでUPSをモニタ出来るようにします。
end
2018/03/17
Raspberry Pi にNUTをセットアップする
今回は、UPSのモニターを行うNUT(Network UPS Tools)をセットアップする記事です。
Web上で電源の状態を確認できるほか、UPSのバッテリーが不足(電源喪失)した時にはシャットダウンコマンドを発行します。
[環境]
Raspberry Pi 2B(ラズパイ)、OSはRaspbian jessieです。以下設定の内容はjessie版での記述で、他のディストリビューションやバージョンでは設定が異なる場合があるので注意してください。
ラズパイは、Webサーバーとして稼働中でルーターと接続している以外のモニタ類は接続していません。通常は別のPCからリモートでモニタリングしているのでUPSもNUTインストールしてモニタリングしようというわけです。
[ドライバーセットアップ]
UPSとラズパイをUSBケーブルで接続し、lsusbコマンドで確認します。
CP1500AVR UPSとして認識されています。
Bus 001 Device 004: ID 0764:0501 Cyber Power System, Inc. CP1500 AVR UPS
次に、NUTをインストールし、その後で一連のファイルを設定します。
sudo apt-get update
sudo apt-get install nut nut-client nut-server
ここでは、NUTのドライバーテータベースから CP1500PFCLCD が標準で設定されるので続けます。
/etc/nut/ups.conf の最終行に追加します。cyberups の名前は好きに変えてください。
desc はups機器の説明を書きます。 (2018-3-24修正)
[cyberups]
driver = usbhid-ups
port = auto
desc = "CyberPower CPJ500"
pollinterval = 15
次に、ドライバサービスをスタートします。その後、ステータスを確認し active や Startup 出来ているかを見ます。
sudo systemctl start nut-driver
sudo systemctl status nut-driver
● nut-driver.service - Network UPS Tools - power device driver controller
Loaded: loaded (/lib/systemd/system/nut-driver.service; static)
Active: active (running) since 木 2018-03-15 07:40:59 JST; 14h ago
・・・省略・・・
3月 15 07:40:57 raspi1 upsdrvctl[9641]: Using subdriver: CyberPower HID 0.3
3月 15 07:40:57 raspi1 upsdrvctl[9641]: Network UPS Tools - Generic HID driver 0.38 (2.7.2)
3月 15 07:40:57 raspi1 upsdrvctl[9641]: USB communication driver 0.32
3月 15 07:40:59 raspi1 usbhid-ups[9643]: Startup successful
3月 15 07:40:59 raspi1 upsdrvctl[9641]: Network UPS Tools - UPS driver controller 2.7.2
3月 15 07:40:59 raspi1 systemd[1]: Started Network UPS Tools - power device driver controller.
[サーバーセットアップ]
まず、 /etc/nut/upsd.conf の中で localhost の LISTEN が # でコメントアウトされているので、# を取り除きます。ポートの3493のそのままです。
LISTEN 127.0.0.1 3493
同じファイルの中で MAXAGE を変更します。
MAXAGE = 25
次に、アカウントを設定します。 /etc/nut/upsd.users の最下行に下の内容を追記します。
ここでは、adminとmasterのユーザーを設定しています。
[admin]
password = admin123
actions = SET
instcmds = ALL
[upsmon_local]
password = local123
upsmon master
次に、サーバーの動作モードを設定します。UPSでバックアップされるPCは1台なので standalone を /etc/nut/nut.conf にセットします。
MODE=standalone
サーバーサービスをスタートし、そしてステータスを確認します。
sudo systemctl start nut-server
sudo systemctl status nut-server
では localhost から接続できるかテストしてみましょう。 cyberups とはドライバーセットアップで設定した名前です。
sudo upsc cyberups@localhost
Init SSL without certificate databaseUPSからの情報がちゃんと取れていて、device.model: CPJ500 と製品が認識されています。
battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 20
battery.mfr.date: CPS
battery.runtime: 10200
battery.runtime.low: 300
battery.type: PbAcid
battery.voltage: 9.1
battery.voltage.nominal: 12
device.mfr: CPS
device.model: CPJ500
device.type: ups
driver.name: usbhid-ups
・・・省略・・・
[クライアントセットアップ]
システムをモニタする mastert ユーザーを /etc/nut/upsmon.conf へ追加します。
MONITOR cyberups@localhost 1 upsmon_local local123 master
同じファイルの中で DEADTIME を変更します。DEADTIME = 25
idやパスワードを記録しているので、他から見られないようにパーミッションを設定します。
sudo chown root:nut /etc/nut/*
sudo chmod 640 /etc/nut/*
クライアントをスタートして、ステータスを確認します。
sudo systemctl start nut-monitor
sudo systemctl status nut-monitor
もう一度、localhost から情報が取れるかテストします。
sudo upsc cyberups@localhost
以上で、NUTシステムが構成されました。
このままでもいいのですが、次はWebでモニタリングする設定をしてみます。
長くなったので次の記事にします。
次の記事は予定変更して、この記事の補足を書きました。
(参考にした記事)
Network UPS Tools
Raspberry Pi UPS monitor (with Nginx web monitoring)
UPS Server on Raspberry Pi
NUT & CyberPower UPS
end.
2018/03/04
UPSを設置してみました
そこで、ルーターとRasPiをUPS(無停電電源装置)で電源バックアップすることにして、常時稼働の信頼性をUPさせます。
用意したのは、CyberPower CPJ500(国内向けCRシリーズ)で、300W正弦波出力タイプです。容量の割にはお値ごろで液晶表示、USB接続で電源管理ができます。
RasPiとルーターをバックアップするには容量が大きすぎで、1時間以上は十分持ったので、100W程度でもよいでしょう。
設置は簡単で、UPSの後部に6個のコンセントがあるので、ここから電源を取ります。
あと、UPSとRasPiを付属のUSBケーブルで接続して、RasPiにはNetwork UPS Tools(NUT)をセッティングし、リモートでUPSの電源監視ができるようにします。
次回はRaspberry PiにNUTの設定するを掲載しました。
.
|