MySQLのデータをグラフ化(@ラズパイzero)

ヘッドレスなので、イメージファイルに書き出すしか手段はないけど。

matplotlibをインストール

$ python -m pip install matplotlib

numpyとpandasもついでに入れておく。

しかしimport matplotlibできない。エラ〜メッセージの下の方でnumpy関連でエラー吐き出している。

——- メッセージ最初部分——-

>>> import matplotlib

Traceback (most recent call last):

  File “/home/pi/.local/lib/python3.7/site-packages/numpy/core/__init__.py”, line 22, in <module>

〜以下省略

———————————————

ネット検索して、

$ sudo apt-get install libatlas-base-dev

注)Automatically Tuned Linear Algebra Software, generic static : パッケージの役割説明

で解決できるのか? —> 出来た

直近四時間分のデータをグラフ化してみた。コードはco2 sensorの他のコード含めてGitHubに入れてます。

https://github.com/chateight/co2_sensor

グラフは二種類で、① 時間軸 vs 測定値、② 測定値のヒストグラムを作成してます。とりあえずユーザディレクトリにファイル作成してafp://で見れるようにしてみた。スクリプト実行は今はssh経由だから、定期で実行するようにそのうちするつもり。アクセスもブラウザ経由の口を作るんだろう。

<グラフ化サンプル>

大きくディップしている所は再起動してます。

 

admin

wi-fiの追加設定(@raspberry pi)

複数箇所でwi-fiを使う時には、イメージ作成直後にbootに置くwpa_supplicant.conf、あるいはどこかのwi-fiに接続後にsshで/etc/wpa_supplicant/wpa_supplicant.confに、network以降の記述を追加する。

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

update_config=1

country=JP

network={

ssid=”ssid”

psk=”password”

key_mgmt=WPA-PSK

}

自宅wi-fiではkey_mgmtは記述不要でした。

network={

    ssid=”<SSID名>”

    psk=”<パスワード>”

}

公共施設wi-fiの設定もnetwor{}部分をベタで追加してうまくつながりましたが、iPhoneのテザリングでは上手くいかない。とりあえず困ることもないのだけれども。

 

admin

大昔のraspberry pi B+に最新イメージを入れてみた

サーボモーター駆動用のラズパイとして、捨てないで残存してた多分10年ぐらい前のほぼ初代のラズパイを引っ張ってきて、raspberry pi imagerでsdカードにヘッドレスイメージ書き込んでブートして見たらうまく起動。この時代のラズパイはwi-fiも付いてないから今となっては希少な有線LAN接続。その分cpu負荷も少ないだろうから逆に貴重です。写真にはまだDACボードがアタッチされた状態ですが、これは不要になります。

イメージ書き込んだら、直後にsshという名前の空ファイルを書き込んだsdカードのトップディレクトリに入れてsshを有効化します、これやらないとssh接続を拒絶されます。

ssh接続時しようとした時にHost Key違うよメッセージが(Host key verification failed.)出るから以下でキーをリセットする。

$ ssh-keygen -R raspberrypi.local

メモリはラズパイゼロと同じく500MBしかないからデスクトップは厳しい。

スクリーンショット 2021-10-05 10.14.42.png

 

以前使っていたi2s DACはこちら、PCM5102使ってます。

 

admin

サーボモーター駆動

ラズパイのアプリケーションの定番の一つだろうけど、リモコンでサーボモーター駆動をやってみたい。目的はwebカメラの向きのコントロール、音声ビーム機能と組み合わせると、話者の方向に自動的に向けるようにもできるだろうけど、機能としては独立だから、まずはマニュアル操作をやってみることだろう。

 

admin

Apacheの再インストール(@raspberry pi)

1. 依存関係にあるパッケージを検索して削除、

$ dpkg –get-selections | grep apache

apache2 install

apache2-bin install

apache2-data install

apache2-utils install

libapache2-mod-php7.3 install

$ sudo apt-get remove –purge apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php7.3

 

2. Apacheを再インストールします

$ sudo apt install apache2

libapache2-mod-php7.3も再インストールします

$ sudo apt install apache2 libapache2-mod-php7.3

 

admin

(Python) バックグラウンド処理での問題

rc.localに入れたPythonスクリプト(gpio初期化、co2センサーアクセス、gpio(led)制御、mysql書き込み)が正常に実行されない。

・処理の最初(gpio初期化からgpio制御まで)は動作していているから、おそらくmysqlへのアクセスで失敗している。うまくいくこともあるからタイミング問題であろう。多分pythonからアクセスに行ってもmysqlが立ちあがっていないんだろう、例外処理入れてないから推測ですが。

・一番安易に時間待ち(5秒)入れて見て問題ない様子、それほど長くは待つ必要はないだろうから。もともとco2センサーが安定するまでには2~3分必要というから、mysql起動待ちではなくセンサー安定待ちでその程度の時間待ちを入れても良さそう。

 

admin

ヘッドレスは地雷

Raspberry piにwi-fi追加しようとしてconfファイルいじってたら、使えてたwi-fiにもつながらなくなった。

wi-fiつながらないと他に手段なく、① デスクトップ無し、② 外部モニター/キーボード無しなのでアクセス手段が無くなって手出しできなくなります。

imageバックアップしてたからリカバリー出来たけど、もしそれが無かったら再構築するしかなさそう。

Raspberry pi標準のイメージ書き込みツールはカスタムイメージも書き込みできるので、コンソールでddコマンド打つよりも簡単かも知れません。

 

admin

Volumioの最新版

ラズパイで稼働しているvolumioが不調(おそらくsdカードが寿命か)になってきたので、現行最新版を入れてみた。

ビューは結構変更されてて、日本語メニューも選択できるようになっています。

Spotify用のプラグインもあるけど、これは有料アカウントでないと使えないらしいので諦めました。macからairplayでvolumio選択もあるけど、これはつながるだけで音質は望めない。

もともとI2S-DACは音がいいので、ラズパイゼロと組み合わせた音楽サーバーは現状最強だと思います。

 

admin

SDカードイメージのバックアップについて

Raspberry piのイメージバックアップでMacのコンソールから行うやり方。ddコマンドが使えるのでlinuxと同じと言えばそれまでですが。

対象のsdカードを特定して、

$ diskutil list

〜〜部分〜〜

/dev/disk2 (external, physical):

   #:                       TYPE NAME                    SIZE       IDENTIFIER

   0:     FDisk_partition_scheme                        *8.0 GB     disk2

   1:             Windows_FAT_32 ⁨boot⁩                    268.4 MB   disk2s1

   2:                      Linux ⁨⁩                        7.7 GB     disk2s2

アンマウントして、

$ diskutil umountDisk /dev/disk2

ddコマンドでバックアップします

$ sudo dd if=/dev/disk2 of=raspi-backup.img bs=1m

進捗は別の端末をcommand+nで開いて、

$ sudo killall -INFO dd

で、実行中のコンソールに、

1286+0 records in

1286+0 records out

1348468736 bytes transferred in 297.716017 secs (4529379 bytes/sec)

のように表示できます。ddもkillallもmacのパスワード要求されます。

転送速度は4MB/secぐらいだから、sdカードのサイズにもよりますが時間はたっぷりかかります。

進捗はFinderでimgファイルのサイズを見ても想像はつくのですが。

 

admin

co2 センサー(NDIRとは、Non Dispersive InfraRed(非分散型赤外))MH-Z19BをPythonから使う

・センサーの動作確認

$ sudo raspi-config

UARTで使うので初期状態では有効になっていないシリアルインタフェースを有効にする

特に設定なしでそのまま使えるmh-z19をインストール

https://test.pypi.org/project/mh-z19/

$ sudo pip3 install mh-z19

シリアルインターフェースはroot権限ないと動作しません。

$ sudo python -m mh_z19

{“co2”: 934}

キャリブレーション(最低値400ppm付近にするだけみたいです)

$ sudo python -m mh_z19 –zero_point_calibration

Call Calibration with ZERO point.

$ sudo python -m mh_z19

{“co2”: 404}

co2濃度以外の数値も吐き出せるから、このライブラリは値を辞書形式で出力しています、

パラメータに—all指定でco2濃度以外も測定できます

$ sudo python -m mh_z19 –all

{“co2”: 405, “temperature”: 31, “TT”: 71, “SS”: 0, “UhUl”: 0}

Python中ではこういう風に使います

>>> import mh_z19

>>> mh_z19.read()

{‘co2’: 572}

 

admin