この電子工作を開発した 2016 年頃は、デジタル接続の センサはポピュラーではなかったように思います (私が知らなかっただけかもしれません)。 2024 年現在、ラズパイに I2C 接続できる多種多様なセンサが 販売されています。 温度、湿度、照度はデジタル接続のセンサから取得する方が 簡単です。
2024 年版の回路図を以下に示します。温度、湿度、照度を I2C 接続 のセンサから取得します。Arduino は自作していますが、製品版を シリアル、あるいは USB で接続しても、もちろんかまいません。
赤外線信号送信だけを Arduino に任せ、それ以外は 全てラズパイに I2C 接続されたセンサを使って行います。
I2C を使うために以下のものをインストールしてください。
# apt install python3-smbus # apt install i2c-tools
Web サーバとして apache2 を使います。 apache2 は www-data というユーザの権限で動作します。 デフォルトでユーザ pi は I2C にアクセスできますが、 www-data はできません。 www-data から呼ばれたプログラムが I2C にアクセスするには、 www-data をグループ I2C のメンバーとして登録することが 必要です。以下の 2 つの作業が必要です。