在宅勤務を始めた2020年頃に仕事部屋の二酸化炭素濃度を測って定期的に換気しようとMH-Z19Bという二酸化炭素センターモジュールをRaspberry Pi Zeroと繋いで二酸化炭素濃度を計測し、Ambientにデータ送信して、ブラウザでチェックするみたいな事をやっていたのですが、たまたま別用途で利用していたRaspberry Pi Zero WをRaspberry Pi 3Bに交換してRaspberry Pi Zero Wが余ってしまったので、Raspberry Pi Zeroと交換しました。
Raspberry Pi Zeroに刺していたMicroSDカードをRaspberry Pi Zero Wに差し替え、ジャンパ線もそっくりそのまま配線し直して、大した苦労もなくRaspberry Pi Zero Wに移行完了と思ったのですが、なぜか二酸化炭素センサーモジュールが二酸化炭素濃度を計測できなくなりました。
配線間違えたのかと何度も確認して刺し直したりしても改善されず、どうしようかと調べていたところ改善できそうな記事を発見。
詳細は下記参考サイトにお任せするとして、まずはやってみることに。
pi@raspberrypi:~ $ ls -l /dev/serial*
lrwxrwxrwx 1 root root 5 Apr 28 17:37 /dev/serial0 -> ttyS0
lrwxrwxrwx 1 root root 7 Apr 28 17:37 /dev/serial1 -> ttyAMA0
この状態だとMH-Z19Bから正しくデータが取得できないようなので、これを入れ替えます。
pi@raspberrypi:~ $ sudo vi /boot/config.txt
↓ 下記2行(1行目はコメント)をファイルに追記
# シリアルコンソールとBluetoothを入れ替える
dtoverlay=pi3-miniuart-bt
保存したらRaspberry Pi Zero Wを再起動して、改めて確認。
pi@raspberrypi:~ $ ls -l /dev/serial*
lrwxrwxrwx 1 root root 7 Apr 28 18:21 /dev/serial0 -> ttyAMA0
lrwxrwxrwx 1 root root 5 Apr 28 18:21 /dev/serial1 -> ttyS0
/dev/serial0 -> ttyS0 だったのが /dev/serial0 -> ttyAMA0
/dev/serial1 -> ttyAMA0 だったのが /dev/serial1 -> ttyS0
と入れ替わりました。
これでMH-Z19Bから二酸化炭素濃度を取得できるようになりました。
参考サイト
https://rcmdnk.com/blog/2021/02/18/computer-iot-raspberrypi/
https://www.usagi1975.com/201907061439/