インテリジェント・テルテル坊主システム完成!

日々、我が家のベランダからお天気を見張ってくれています(^^)

日々、我が家のベランダからお天気を見張ってくれています(^^)

SONY α7II + FE 90mm F2.8 MACRO G

昨年12月に紹介して以来、だいぶ時間が空いてしまいましたが、雨降りをお知らせしてくれるiTTBインテリジェントテルテル坊主)が、ほぼ完成しました

メインの機能(雨が降ったら通知)は比較的早くできていたのですが、音声機能や明るさ変化対応など、余計な機能?で時間がかかってしまっていましたが、なかなか便利で、珍しく家族にも好評です。

実運用開始から2カ月ほど経ちましたので、経過報告です。



そもそもiTTBって?

在宅勤務中に雨が降ってきたけど気が付かず、洗濯物を外に出したままでツマに怒られたのが開発のきっかけ。

ベランダなどの屋外に設置したセンサーで雨を検出し、屋内の親機に無線で通知し、仕事に没頭している(or 寝ている)自分に気が付かせてくれる、素晴らしいシステムです。

ベランダに付けたセンサーで雨を検出し、無線送信します。

ベランダに付けたセンサーで雨を検出し、無線送信します。

SONY DSC-RX100m3 + Carl Zeiss Vario Sonnar T* 10-37mm F1.8-4.9

子機(センサー)は防水や省電力あたりで苦労しましたが、12月には無事に完成していました。

親機も、基本的な通信機能は早くてできていたのですが、それを人間にどう通知するか、で時間がかかっていました。

iTTBの機能

個別機能の詳細は後にして、まずは動作の状況を紹介しましょう。

普段は外に置いておく子機を室内に持ってきて、水滴を落としてみた時の動作です。

なかなか良くできているでしょう?(^^)

原材料はこんなモノを使い、だいたい5000円くらいかかりました(人件費は10倍くらい、笑)

  • Raspberry Pi Zero WH(マイコン)
  • Twelite(無線通信チップ)
  • AT3011(音声合成IC)
  • Scroll pHAT HD(LEDマトリクス)
  • 水センサ、トランジスタ
  • アンプ、スピーカー、光センサ、UPS、リチウムイオン電池など

以下、各機能の詳細を説明です。

降雨の通知

基本的な機能として、外に置いた子機のセンサーで雨を検知すると、IEEE802.14.4無線によって親機に情報を飛ばします。

性能のほうは意外とよくて、見通しが良ければ1kmくらいまで飛ばすことができます(どんなでかい家やねん)し、コイン電池(CR2032)で半年くらい稼働します。

子機からの降雨情報を受けた親機(室内)は、以下の3方法で騒いで自分に気が付かせます。

  1. LEDマトリクスに雨情報を電光表示
  2. 音声で通知
  3. LINEで通知

1.のLEDマトリクス表示は、17x7個のLEDが並ぶ表示機(pimoroni社のScroll pHAT HD)に、「雨が降ってきたよ~」的な表示を出してくれます。

マトリクスは狭いので、駅などの電光掲示板と同じように、ゆっくりとスクロール表示します。

LEDはPWM制御で明るさ調節できるのですが、雨通知の時はフルパワーで光るようにしてみました(かなり眩しい)。

LEDマトリクス。このままだと眩しいので、スモークアクリルを付けています。

LEDマトリクス。このままだと眩しいので、スモークアクリルを付けています。

SONY α7II + FE 90mm F2.8 MACRO G

2.の音声通知は、音声合成用IC(アクエスト社のAT3011)を搭載して、そいつにしゃべらせます。

このICは面白くて、シリアル通信でローマ字情報を送り付けると、その通りにしゃべってくれるもので、Alexaみたいな本格的なものに比べると、いかにも合成音ですがちゃんと聞き取ることができます。

このレトロな音声が家族にウケて、ご愛顧されています。

左側が音声合成IC、右側がデジタルアンプとスピーカー。

左側が音声合成IC、右側がデジタルアンプとスピーカー。

SONY α7II + FE 90mm F2.8 MACRO G

3.のLINE通知はRaspbery Pi(Python)で実装するのは簡単で、過去にも作っているので説明割愛。事前に設定したLINEアカウントに「雨が降ってきたよ」と通知が飛びます。

常時は時計表示

梅雨時ならいいのですが、そうそう毎日雨が降るわけではないので、今の季節はiTTBの出番はあまりありません。

それではもったいないので、時計表示と時報を作ってみました。

Raspberrry PiはRTC(時計機能)を持っていないのですが、WiFiさえつながっていればNTP(ネットで時刻合わせするプロトコル)で時刻を得ることができるので、それで時計表示しています。

普段はこんな風に時計になっています。意外と便利!

普段はこんな風に時計になっています。意外と便利!

SONY α7II + FE 90mm F2.8 MACRO G

また、せっかく音声合成ICを搭載しているので、毎正時には「10時ですよ」みたいに、時報を読み上げてくれるようにしました。

会社なら人の動きもあって分かるのですが、ひとりで在宅勤務していると時間を感じにくくなっているので、これは意外なほど便利で気に入っています。

光センサーを追加搭載

降雨情報はもちろん、常時表示の時計や時報が、寝ているときに作動するとたまりません。

当初は固定時刻でスリープモード(表示を暗く、音声はやめる)にしていたのですが、就寝時刻はいつも異なるので、明るさセンサーを追加搭載して判定するようにしました。

明るさを正確に計測する必要はないので、一番安いCdS(秋月で10円)を付け、これを抵抗で分圧してRaspberry Piの端子に直接つないで、明るい・暗いを2値情報として入力しています。

真ん中に見えるナミナミがCdS素子。明るさと抵抗値の関係を実験中。

真ん中に見えるナミナミがCdS素子。明るさと抵抗値の関係を実験中。

SONY α7II + FE 90mm F2.8 MACRO G

完成後に追加したので、変な位置に後付けしています(^^;

完成後に追加したので、変な位置に後付けしています(^^;

SONY α7II + FE 90mm F2.8 MACRO G

これにより、就寝時に照明を消せば自動的にスリープモードに入るようにプログラムできました。

さらに、明るさの変化に応じて、「お休みなさい」や「おはようございます」「もうX時だぞ。早く寝ろ!」などAI的な音声?も出せるようになりました。

毎晩、照明を消すたびに何をしゃべるか、笑って聞いています。

停電への備えも

営業開始から3か月ほど、無事に運用していたのですが、1回だけ、電気使い過ぎでブレーカーが飛んで停電したことがありました。

Raspberry PiはLinux OSで動いていて、OS本体はSDカードに収納されているのですが、突然の電源喪失でカードが破損し、普及にはだいぶ手間がかかってしまいました。

雨と雷はセットでもあるので、突然の電源喪失に備えてUPS機能を付けてみました。

短時間の停電に耐えられればいいので、最小限の40mAhのミニリチウムイオンを搭載です。たぶん、10分くらいは動けます。

下段に見える銀色の物体がリチウムイオン電池。超少量用なので15分くらいかな?

下段に見える銀色の物体がリチウムイオン電池。超少量用なので15分くらいかな?

SONY α7II + FE 90mm F2.8 MACRO G

書いていて気が付きましたが、もっと大きなリチウムイオンに取り替えて(家に無数にある・・・)、停電検出と同時にLEDを最大光量にして照らしたほうが、防災の観点でもいいかもですね。

早速直そう!(^^)

まとめ

今は花粉症の季節で洗濯物も部屋干しが多いのですが、それでも2回ほど助かっています。

肝心な降雨通知機能より、しょぼい音声合成機能がカワイイと家族内でバカ受けなのでもう1台製造中です。

第2世代は、なぜかMac風にしています。かわい~

第2世代は、なぜかMac風にしています。かわい~

SONY α7II + FE 90mm F2.8 MACRO G

同じものを作っても芸がないので、いつもの3Dプリンタでボディを設計し直し、なぜかマック(Macintosh Plus、覚えてるかな~?)形状で作っております。

たぶん2カ月くらいかかりますが、完成したらご報告します~

おわり。

【おまけ1】

まったく自転車と関係ないものばかり作っていますが(サーモカメラぐらいか・・・)、次はこのシステムを応用して、自転車盗難防止器を作ってみようかな?と考えています・・。

【おまけ2】

いつものことですが、このシステムを作るだけで手書きの図(boox noteですが)を40枚ほど書いています。

作るのも楽しいのですが、実は描くのも楽しい(^^)

(以下はそのうちの8ページほど)

書いた設計図(?)もどきたち。

書いた設計図(?)もどきたち。

にほんブログ村 自転車ブログ ロードバイクへ
 
記事下用336×280
記事下用336×280
  • このエントリーをはてなブックマークに追加

パーツ紹介記事(一覧比較)

おかいもの情報


コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


Warning: file_get_contents(index.php): failed to open stream: No such file or directory in /home/garneau/www/wp/wp-includes/plugin.php on line 423