bath monitor 仕様

  1. お風呂に入ったら、自分のボタンを押す
  2. すると、自分のテーマソングが流れる
  3. 二秒長押しで、ボタンを押したことをリセットできる
  4. 一番最後に入った人がボタンを押すと、別の曲が流れる(自分が最後であることを知る)
  5. サーバーにアクセスすると、誰がお風呂に入ったか、また、今お風呂が空いているか分かる
  6. 特定の時刻(朝5時など)に、お風呂に入った記録はリセットされる

部品購入

受動電子部品以外の主なパーツを紹介します

Raspberry pi pico2 W

マイコンボードとして pico2 W を購入します。
Amazon をはじめとしていろいろなところから購入可能です。

MAX98357搭載のオーディオボード

Amazonから以下を購入します
https://amzn.asia/d/03LOCYGp

光センサーモジュール

Amazonから以下を購入します
https://amzn.asia/d/0cnnHDt3

ボタン

Amazonから以下を購入します
https://amzn.asia/d/0672LwwZ

スピーカー

Amazonから以下を購入します(4Ω3W)
https://amzn.asia/d/067CeJxB

NeoPixel(SK6812RGBW)

SK6812RGBWの型番のNeoPixelを5つ購入します

74AHCT1G125

NeoPixelの信号線を5V駆動するためのチップ

基板設計

各センサー、出力とデバイスを繋げます。基板は9cm四方で作ります。

回路設計

pico2 Wに対して、以下のようにGPIOをつなげます。
  • NeoPixel(GP15)
  • 5つのボタン(GP2-6)
  • 光センサーの入力(GP26)
  • 音声出力(GP16-18)

基板設計

回路設計から基板設計を行い、PCB製造に発注します。

基板到着

発注していた基板が届きました

基板製造

基板に必要な電子部品を実装します

表面実装部品のハンダ付け

74AHCT1G125をU1に手ハンダします。
NeoPixelをD1-D5に手ハンダします。

ピンソケットのハンダ付け

Raspberry Pi pico 2Wを挿すためのピンソケットをハンダ付けします。picoのピンヘッダにピンソケットを挿したまま基板へハンダ付けすれば、ピンソケットは正確に固定できます。

受動部品のハンダ付け

0.1μFのコンデンサ、10kΩの抵抗、スイッチをハンダ付けします。コンデンサは基板の裏側に取り付けます。

光センサーとオーディオボードをハンダ付け


3Dプリンタによる筐体製作

10cm四方の筐体を設計・製作します

筐体設計

筐体を全体で3つの部分に分けて設計します。

3つの3Dプリント部品を印刷

設計した筐体部品を3Dプリンタで出力します。
部品は以下の三つです。
  • 裏筐体
  • 表下筐体
  • 表上筐体

全体の組み立て

筐体に電子基板を取り付け、全体を組み上げて完成です。

スピーカーを裏筐体に取り付ける

裏筐体から飛び出しているスピーカー用のネジ穴に、2×10mmのタッピングネジでスピーカーを取り付けます。

基板を裏筐体に取り付ける

  1. 3×8mmのタッピングネジで、製作した基板を裏筐体に取り付けます
  2. ピンソケットに Raspberry pi pico2 Wを差し込みます
  3. スピーカーケーブルをオーディオボード(+,- とあるところ)にハンダ付けします。

光センサーの感度を調整する

光センサーのモジュールはある閾値で、on/off のデジタル信号を出力しますが、その閾値をアナログvol.で調整します。
実際に使う場所、時間で調整しないと、これを設定した場所の明かりが付いているかどうかを判別が出来ません。

表筐体を取り付ける

表上、表下の筐体は、ねじ止め出来るように設計していないので、表の筐体を取り付けたあと、白いテープなどで側面を固定してください。
そのあと、タクトスイッチの突起にボタンを装着してください。

プログラムの書き込みと運用

github にプログラムと関連する資料を置きました。

githubよりリポジトリをcloneする

github URL はこちら
https://github.com/hasebems/bath-monitor/

ファームに書き込む

Raspberry pi pico2 Wを白いボタンを押しながら、PCのUSBに差し込みます。この状態で、Readme.md の説明に従って、ファームウェアの書き込みを行ってください。

サーバーの動作を開始する

サーバーを動かし deploy するには以下の説明に従ってください。
https://github.com/hasebems/bath-monitor/blob/main/docs/deploy.md