Raspberry Piを使用して環境データ(気温、湿度など)を記録・管理するシステムです。物理ボタンによる操作やWebサーバー機能、Zabbix連携を備えています。
- 本体: Raspberry Pi (Zero W, 3B+, 4B等)
- センサー: BME280 (I2C接続)
- ディスプレイ: I2C接続 16x2 LCD
- 入力デバイス: プッシュボタン x 2 (Start / Stop)
本プロジェクトは、クローン後に簡単なセットアップスクリプトを実行するだけで環境構築が完了します。
git clone <新しいリポジトリのURL>
cd <新しいリポジトリ名>
# 実行権限を付与してセットアップスクリプトを実行
chmod +x setup.sh
./setup.sh
※ setup.sh により、以下の作業が自動で行われます。
config.json.exampleからconfig.jsonを作成service/env_logger.service.templateを元にシステム設定ファイルを生成
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# 生成された設定ファイルをシステムに配置
sudo cp service/env_logger.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable envlogging
sudo systemctl start envlogging
config.json を編集することで、センサーの計測間隔やWebサーバーのポート番号などを自由に変更できます。
{
"sensor": {
"bus_number": 1,
"i2c_address": 118,
"interval_sec": 60
},
"lcd": {
"enabled": false,
"bus_number": 1,
"i2c_address": 62
},
"gpio": {
"start": 22,
"stop": 23
},
"web": {
"host": "0.0.0.0",
"port": 5000
}
}
開発環境でロジックを確認する場合は、以下のコマンドを実行してください。
pytest
- 疎結合な設計: ハードウェア制御とWebインターフェースが分離されています。
- 自動化されたデプロイ:
setup.shにより、クローンした環境へ即座に適応可能です。 - 品質保証:
pytestによる自動テストとflake8によるコード品質管理を導入しています。