Raspberry Pi で動作するもだねちゃんの二酸化炭素濃度計です🌸
C 言語と Linux の練習で制作しました。
- 周辺の CO2 濃度を 10 分毎に取得し、グラフとして表示します。
- グラフは 20 時間前まで、10 時間前まで、3 時間前まで の 3 つの表示を切り替えられます。
- 取得した CO2 濃度は
/logs/co2_conces.csv
へログとして蓄積されます。- このログファイルは約 30 日分の記録を保存し、制限に達したらログファイルをローテートします。
- ログファイルは最大 12 ファイル分を保持します。
- 現在の日時や天気を一定間隔毎に表示します。
- 天気を取得する場所は環境変数で指定できます。
- もだねちゃんの表情がコロコロ変わります。
- シェルのウィンドウ幅に応じてレスポンシブに描画します。
- Raspberry Pi 4 Model B
- MH-Z19B
- ELECROW RC050S
- Raspberry Pi OS (64-bit)
- C
- Python
- 画像は Raspberry Pi の LXTerminal 上で実行しています。
- 等幅フォントでの表示が必要です。画像のフォントは HackGenNerd Console を使用しています。
※ プログラムのダウンロード・実行は自己責任でお願いします。
先に 7.1.3. CO2 濃度の測定 を参考に、MH-Z19B センサーのセットアップを行っておきます。
下記のコマンドを順に実行します。
# apt パッケージリストの取得・既存パッケージの更新
$ sudo apt update && sudo apt upgrade -y
# curses ライブラリのインストール
$ sudo apt install -y libncurses5-dev
# pip3 のインストール
$ sudo apt install -y python3-pip
# mh_z19 モジュールのインストール
$ sudo pip3 install mh_z19
# 天気表示用のロケール設定 ※値は半角 159 文字以下で設定してください
$ export WTTR_LOCALE="Tokyo"
# リポジトリのクローン
$ git clone https://github.com/kenkenpa198/modane-co2-watcher.git
# リポジトリへ移動
$ cd modane-co2-watcher
# コンパイル
$ gcc ModaneCO2Watcher.c -lncursesw -o ModaneCO2Watcher.out
# 実行
$ ./ModaneCO2Watcher.out
WTTR_LOCALE
環境変数は .bashrc
などに記述して永続化しておくとよいです。
お好みでシェルのフォントサイズの調整や autostart 等の設定も。
-
Announcing ncurses 6.3
Copyright © 1996-2021,2022 by Thomas E. Dickey
License : https://invisible-island.net/ncurses/ncurses-license.html -
UedaTakeyuki/mh-z19
Copyright (c) 2018 Dr. Takeyuki Ueda
License : https://github.com/UedaTakeyuki/mh-z19/blob/master/LICENSE -
chubin/wttr.in
License : https://github.com/chubin/wttr.in/blob/master/LICENSE
- ラズパイで遊ぼう! - YouTube
- Raspberry Pi4で使えるタッチパネル付き5インチディスプレイを買ってみた! – すいラボ
- 【ラズパイ】Raspberry Piをディスプレイなしでセットアップする - 車輪日記
- ラズベリーパイでフォントを簡単に追加削除する | けいきゅん ヽ(^◇^*)/♪ でおじゃる
- ラズパイを起動したら、ターミナル開いてシェルを実行する方法 - Qiita
- 電源入れたらRaspberryPiのターミナルがGUIで全画面表示されるようにする - 知見(・・)!
- vim :: readonly のファイルを sudo で強制的に保存する [Tipsというかメモ]
- Raspberry Piの起動時にターミナルが立ち上がり、「Hello world」と表示される機能を実装しようと思いましたが上手くいきません.
- RasiPiでブラウザを自動起動してキオスク端末にする方法 | 映像とその周辺
- Raspberry Pi 4とMH-Z19Bで二酸化炭素濃度を計測してみた | DevelopersIO
- 【Python】Raspberry Pi + mh-z19でCO2濃度取得してみた - BFT名古屋 TECH BLOG
- curses による端末制御
- cursesライブラリの超てきとー解説
- [linux] cursesライブラリのインストール --- undefined reference 'initscr'|Debugging as Usual
- C言語でシンプルすぎるブロック崩しを書いた - Qiita
- 文字列の長さの取得(C言語) - 超初心者向けプログラミング入門
- 【C言語】文字列を連結・結合する【strcatの危険性とsnprintfの安全性】 | MaryCore
- 【C言語】sprintf 関数と snprintf 関数(お手軽に文字列を生成する関数) | だえうホームページ
- 【C言語】malloc関数(メモリの動的確保)について分かりやすく解説 | だえうホームページ
- 配列を自由自在に作る - 苦しんで覚えるC言語
- C言語の引数に多次元配列を渡す - Qiita
- 配列の要素数を求める | Programming Place Plus C言語編 逆引き