Ajaxでco2センサーのデータ表示

ほぼ一年前に作ったco2測定データロガー、webでも結果が見れるようにしているのですがリフレッシュを自動でしないので、ブラウザで更新しないといけないから多少不便。リロード指定でもできるけれどもスマートさが無い、実行時間などで実際にはこの程度のページならなんら問題ないにしても。

と言うことでAjax使って自動更新するようにしてみた。

実行は、jqueryを使うのがコード量が少なくて良いだろう。

・全体の構成は、DBから計測値取得のphpファイルは複数箇所から呼び出すから別ファイル(data_read.php)にする。

・Apache document rootは/var/www/html/だから、

$ cp index.php /var/www/html/

のようにユーザエリア内のコード修正後はユーザディレクトリからコピーする。

やったことは以下の二点

① DBから定期的に最新の測定値を読み出して、測定値タグのclassに書き込み

② スタイルシートを同時にjsで変更してやる

の二点です。

 

過去のブログはこの辺り、

https://isehara-3lv.sakura.ne.jp/blog/2021/09/20/co2-センサー(ndirとは、non-dispersive-infrared(非分散型赤外))mh-z19bを/

現状のソースコードは、

https://github.com/chateight/co2_sensor/tree/main/co2_sensor

 

P.S. (2022/8/31)

jsのコードがスマートさに欠ける(特にスタイルシート変更部分)ので修正。

 

admin

ステッピングモーター納期遅延

最近Amazonは中華販売サイト化していて、商品出荷も中国から直接が多いのですが、DJIのドローンもそうだったけれども、これも遅延してます。

そう入っても数日の問題だろうから、来月初めには到着するでしょう。

 

admin

volumioプレイヤに蓋作成

ステータス表示が見えるので半裸状態だったvolumioプレイヤ(ラズパイゼロ+allo dac)に蓋を作成。もともとあったはずだけど気に入らないから捨ててしまっていた模様。このケースもともとラズパイをケースに納めようとすると、sdカードを浮かせてsdカードコネクタ破壊するような寸法(納入時点で 既にsdカードコネクタの半田付け浮いててラズパイ一枚廃棄)で追加工必要だった過去があるし。

現物合わせで、fusion360でcad図面を起こして、3dプリンタで造形。

フロントパネルとの羽目合いもピッタリの感じです。

audioジャックのセンターズレはもともと購入時点から。

 

admin

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