【RaspberryPi】一酸化炭素濃度の警報装置を作ってみた①

raspberrypi

こんにちは。いよいよ寒くなってきましたね。

北海道はもう初雪が降って、暖房なしでは生きていけないくらいに冷えてきています🥶

冬を温かく過ごすため、思いついたモノを作っていく過程を記事にしていきます。

1. 開発の動機

我が家は石油ストーブで寒い冬を越すのですが、やはり怖いのは一酸化炭素中毒です。

こまめに換気をしなければならないのですが、窓を開けたら寒いし、定期的な換気とか面倒だし・・

そうだ、換気のサインを教えてくれるものがあれば、換気の頻度を最低限に抑えられるのでは?

一酸化炭素濃度を計測できるものや一定以上になったら警報が鳴るような商品はいろいろありますが、テレワークなこともあり、MTG中に警報音がなるのはイヤですよねw

ヤバくなる前に「そろそろ換気しなさい」と通知してくれれば、MTG終了後に余裕をもって窓を開けたりもできるわけです。

そういうワガママに対応した商品は、探してみた感じでは見つかりませんでした。。。

なら仕方ない。自分で作ってみようか。

前々から初めてのラズパイで何か作れないかと思っていたのですが、絶好の機会ですね!

2. ざっくり構成の検討

初めてのラズパイで、何ができるのかすらよく分かってないので、こんな感じのモノを用意できればいいかなという感じです。

  • ハード面
    • ラズパイ
    • COセンサー
    • 閾値以上で外部へ通信(APIを叩ける)できるようにしたい
  • ソフト面
    • ラズパイへのロジック:CO濃度を計測、閾値以上でLINE通知APIを叩く
    • LINE通知の仕組み構築(AWS API Gateway + Lambda)

3. 実際に買ったもの

いろいろググったりChatGPTさんに相談したりして、最終的に下記を購入しました。

知識がなさすぎて合ってるのかはわかりませんが、不要だったら勉強代だと思うことにしますw

  • ラズパイ Pico W
    • Picoはラズパイシリーズで一番小さい
    • WはWifi接続可能。まさしくこれだ!!
  • MQ-7 一酸化炭素検出センサー
    • 一酸化炭素のセンサーは「MQ-7」というものだそうです。
  • ブレッドボード
    • たくさん空いてる穴にピンを刺して、回路をつなげるらしい。
  • ジャンパーワイヤー
    • ラズパイやセンサー等をつなげる回路
    • 色によって種類が違ったりするのだろうか?
      • 単純に分かりやすくするためのようで、色を変えたら動かなくなるとかはないようです。
      • こんなに要らないけど、安いし他にも作りたいものができたとき用ってことで!
  • 7セグメント LED
    • 空気中のCO濃度を表示できると面白そう
  • 抵抗器セット
    • 何かと使うらしいが、こんなに必要なのか??
    • こちらも安いし、他にも作りたいものができるかもだしOK

ラズパイは思ったより安いんですね!Picoでないタイプは1万円は余裕で超えるので、少しためらったりしてました。

4. ラズパイの環境構築

ラズパイの開発環境を構築していきます。

4-1. 公式サイトよりUF2ファームウェアをダウンロード

4-2. BOOTSELボタンを押しながらUSB接続

BOOTSELボタン

4-3. エクスプローラが開くことを確認し、ダウンロードしたファームウェアをコピー

※自分の場合は F:\RPI_PICO_W-20241025-v1.24.0.uf2

PC起動時やソースコードをラズパイに書き込む際は毎度必要な操作です。ファームウェアを毎度ダウンロードするのも手間なので、消さずに残しておきましょう。

4-4. VSCodeにMicroPicoをインストール

左下にいろいろ出てくることを確認。Pico Connectedになってることが大事。

5. ラズパイを動かしてみる

無事接続できることを確認したら、次は実際にラズパイを動かしてみます。

といっても、単体ではほぼ何もできないようなので、とりあえずLEDランプをチカチカさせてみます。

プログラミング言語はC/C++またはMicroPythonとのことです。自分はMicroPythonを選択しました。

MicroPythonとは、低スペック用の最小限で軽量なPythonらしいです。基本的な書き方はサポートされてるはずなので、十分かと思います。

from machine import Pin
import utime as time

led = Pin('LED', Pin.OUT)
while True:
    time.sleep(0.2)
    led.off()
    time.sleep(0.2)
    led.on()

Run!!

おぉ、、点滅した!!

初めてなので、これだけでもテンションが上がりますw

最後に

今回は一酸化炭素の警報装置を作るために購入したモノの紹介と、ラズパイの簡単なサンプルを動かしてみました。

次回はWi-Fiへの接続を試してみます。

参考

Raspberry Pi Pico Wのセットアップ

Raspberry Pi Pico W の LED を VS Code を使って、点滅させてみた。

投稿者プロフィール

KatoShingo
学んだことをアウトプットしていきます!
好きなこと:音楽鑑賞🎵 / ドライブ🚗 / サウナ🧖

最近の記事

  1. raspberrypi

制作実績一覧

  1. Checkeys