今は自宅サーバとしてraspberry-pi4ででアマチュア無線用のaprsサーバとNightscouサーバを、立ち上げているんですが、試しにraspberry-pi3とほぼ同じ性能で、価格は1/3のRaspberry-pi Zero 2WでNightscoutサーバを上げてみました。
Nightscoutは、糖尿病のCGM管理用のサーバでかなり高機能です。以前は無料のクラウドで使えていたみたいですが、今はサブスクで料金が発生します。
それでお金のない私は、自宅でRaspberry-piで立ち上げています。それをRaspberry-pi Zero 2Wで専用で上げてみました。24時間電源を入れるので消費電力も少ないし最適です。
CGM機器としてはリブレ2を使っています。これは500円玉大のパッチを腕に張り付けて、常時血糖値を取得してスマホアプリでその値を表示するというものです。その値をNightscoutサーバにupしてwebサーバ上で管理できます。
Nighscoutは、dockerで動作しますが、果たしてメモリーが512kbしかないZero 2Wでdockerがどの程度動くのか、、、
結論からいうとまったく問題なく動きました。NigscoutサーバとしてもレスポンスもPI4で上げているのとまったく差がありません。
とはいえさすがにメモリー容量が512kbではきびしく、ヘッドレス運用でもawap領域を1G以上取ったほうがいいです。
DOCKERを使うので、OSはPI OS Lite (64Bit)を選択してSDカードにインストールしました。
ヘッドレス運用なんでguiは必要ないです。512KBのメモリーでは、さすがにデスクトップ環境で使うのはきびしいと思います。
またデフォルトのswap容量だと、500Mしかないんで、ssh接続でapt updateなんかすると、接続が不安定になり切断されることがあります。私は
sudo nano /etc/dphys-swapfile
CONF_SWAPSIZE=2048
で2Gに拡張しました。
あとwifiで接続してるんですが、dhcpではなく固定ipに変更します。
64bitのBOOKWORMでは、固定IPに設定は面倒ですが、
sudo nmtui
で簡単に設定できます。
まず前回お世話になったドイツ語のサイトでインストールします。
dockerのインストールは
curl https://get.docker.com/ | sh
このコマンドだけです。少し時間はかかりますが、ものすごく簡単にインストールできます。
dockerにユーザを追加します。
再起動後 dockerのディレクトリとmongodbの入れ物を作ります。
私のdocker-compose.yamlです。
これを保存後 dockerのイメージをダウンロードします。
docker compose pull
5分ぐらいかかります。
Nigscoutサーバを起動します。
docker compose up -d
正常に起動したら、http://ローカルip/:1337で接続できるはずです。
あと mongodb-database-toolsをいれておけばdbのバックアップやリストアが簡単にできるようになるので入れておいてください。
Ubuntu 24.04 ARM 64です。このdebパッケージを
sudo dpkg -i ファイル名
でインストールします。
mongodbのバックアップは
docker ps -a でidを調べます。
バックアップは
docker exec CONTAINER_NAME mongodump --archive > db.dump
圧縮バックアップは
docker exec CONTAINER_NAME mongodump --archive --gzip > db.dump.gz
リストアは
docker exec -i CONTAINER_NAME mongorestore --archive --gzip < db.dump.gz
下記のスクリプトを用意して
これをcrontabで一週間に一度ぐらい実行すると、yymmdd.dumpが作成されます。
家のwifiに接続したスマホ(xdrip)からNightscoutに、uploadした血糖値のCGMの値をリルタイムで表示しています。
流れとしては リブレ2--->リブレview--->スマホ(xdrip)---> Nightscou---->esp32のcherp yerrow displayです。
スマホを除く費用は、zero2wを含めて全部で5000円以内でできます。
aprsはguiが使えなのでaprxを使いました。また別記事で書きます。
Nightscoutは、糖尿病のCGM管理用のサーバでかなり高機能です。以前は無料のクラウドで使えていたみたいですが、今はサブスクで料金が発生します。
それでお金のない私は、自宅でRaspberry-piで立ち上げています。それをRaspberry-pi Zero 2Wで専用で上げてみました。24時間電源を入れるので消費電力も少ないし最適です。
CGM機器としてはリブレ2を使っています。これは500円玉大のパッチを腕に張り付けて、常時血糖値を取得してスマホアプリでその値を表示するというものです。その値をNightscoutサーバにupしてwebサーバ上で管理できます。
Nighscoutは、dockerで動作しますが、果たしてメモリーが512kbしかないZero 2Wでdockerがどの程度動くのか、、、
結論からいうとまったく問題なく動きました。NigscoutサーバとしてもレスポンスもPI4で上げているのとまったく差がありません。
とはいえさすがにメモリー容量が512kbではきびしく、ヘッドレス運用でもawap領域を1G以上取ったほうがいいです。
DOCKERを使うので、OSはPI OS Lite (64Bit)を選択してSDカードにインストールしました。
ヘッドレス運用なんでguiは必要ないです。512KBのメモリーでは、さすがにデスクトップ環境で使うのはきびしいと思います。
またデフォルトのswap容量だと、500Mしかないんで、ssh接続でapt updateなんかすると、接続が不安定になり切断されることがあります。私は
sudo nano /etc/dphys-swapfile
CONF_SWAPSIZE=2048
で2Gに拡張しました。
あとwifiで接続してるんですが、dhcpではなく固定ipに変更します。
64bitのBOOKWORMでは、固定IPに設定は面倒ですが、
sudo nmtui
で簡単に設定できます。
まず前回お世話になったドイツ語のサイトでインストールします。
dockerのインストールは
curl https://get.docker.com/ | sh
このコマンドだけです。少し時間はかかりますが、ものすごく簡単にインストールできます。
dockerにユーザを追加します。
sudo usermod -aG docker $USER &&
sudo reboot
再起動後 dockerのディレクトリとmongodbの入れ物を作ります。
cd /home/$USER/ &&
mkdir nightscout &&
cd nightscout &&
mkdir db
docker-compose.yamlを作成します。
docker-compose.yamlを作成します。
cd /home/$USER/nightscout &&
nano docker-compose.yaml
私のdocker-compose.yamlです。
services:
nightscout:
image: markxoe/nightscout-cgm-remote-monitor-raspberrypi:latest
environment:
TZ: Japan/Tokyo
MONGO_CONNECTION: mongodb://mongo:27017/nightscout
API_SECRET: xxxxxxxxxxxx
BG_HIGH: 250
BG_LOW: 70
BG_TARGET_TOP: 180
BG_TARGET_BOTTOM: 80
INSECURE_USE_HTTP: true
#AUTH_DEFAULT_ROLES: denied
ENABLE: delta direction rawbg iob dbsize careportal
ports:
- 1337:1337
links:
- mongo
restart: always
mongo:
image: mongo:bionic
restart: always
volumes:
- ./db:/data/db
これを保存後 dockerのイメージをダウンロードします。
docker compose pull
5分ぐらいかかります。
Nigscoutサーバを起動します。
docker compose up -d
正常に起動したら、http://ローカルip/:1337で接続できるはずです。
あと mongodb-database-toolsをいれておけばdbのバックアップやリストアが簡単にできるようになるので入れておいてください。
Ubuntu 24.04 ARM 64です。このdebパッケージを
sudo dpkg -i ファイル名
でインストールします。
mongodbのバックアップは
docker ps -a でidを調べます。
バックアップは
docker exec CONTAINER_NAME mongodump --archive > db.dump
圧縮バックアップは
docker exec CONTAINER_NAME mongodump --archive --gzip > db.dump.gz
リストアは
docker exec -i CONTAINER_NAME mongorestore --archive < db.dump
docker exec -i CONTAINER_NAME mongorestore --archive --gzip < db.dump.gz
下記のスクリプトを用意して
#!/bin/sh
docker exec CONTAINER_NAME mongodump --archive > 'date +%y%m%d'.dump
これをcrontabで一週間に一度ぐらい実行すると、yymmdd.dumpが作成されます。
家のwifiに接続したスマホ(xdrip)からNightscoutに、uploadした血糖値のCGMの値をリルタイムで表示しています。
流れとしては リブレ2--->リブレview--->スマホ(xdrip)---> Nightscou---->esp32のcherp yerrow displayです。
スマホを除く費用は、zero2wを含めて全部で5000円以内でできます。
aprsはguiが使えなのでaprxを使いました。また別記事で書きます。
コメント