賃貸に住んでいると意外と困るのが表札の問題です。アパートやマンションなら「XXX号室」と表示されていれば十分ですが、一戸建てでは表札がないと不便に感じることが多いです。以前住んでいた場所では、レーザーカッターで作ったアクリル表札を両面テープで貼っていましたが、見た目がいまひとつでした。
だったら、ソーラーパネルを使ってメンテナンスフリーの「光る表札」を作ろう!
ということで、光る表札を作ることにしました。しかし、ただ光るだけでは面白くないので、いっそIoT化してみようと考え、M5StampS3を使ったプロダクトにすることに決めました。
私の出身地には「国営木曽三川公園」という場所があり、そこにある「ツインアーチ138」というタワーが、夜のライトアップの色で天気予報を知らせています。
(参考:https://www.kisosansenkoen.jp/~tower138/m138twinarch_about.html )
これをヒントに、「表札も天気予報を取得して色を変えるようにしたら便利ではないか?」と考えました。
普段、私は天気予報をあまり見ません。朝、玄関を出るときに外の様子で傘がいるか判断したり、たまに妻が今日の天気を教えてくれるといった生活です。ですが、帰宅時に翌日の天気が分かり、朝には傘が必要かどうかも表示してくれるシステムがあれば、濡れながら帰宅することもなくなるのではないか?と考え、夜の天気だけではなく、朝にもお知らせするシステムを作ることにしました。
夜に自然と翌日の天気がわかるのはとても便利だと感じました。また、朝にはBOCCO emoが天気を伝えてくれるおかげで、妻も「今日は傘がいるのか」を簡単に確認できて便利だと言ってくれています。
約1ヶ月の長期利用を通して、防水設計をとったことで雨が降っても壊れないこと、バッテリーは理論通り昼間充電をすることで全く電源が落ちる事がなく使えることも確認できました。 技術的にも、体験的にも欲しいものが作れて大変満足しています。
このIoT表札は、一般的な表札同様に、表札部に照明をつけ、夜でも表札がしっかり見えるようにしたデバイスです。 また電源を表札プレートの後ろに設置したソーラーパネルと、ニッケル電池を用いることで、毎日太陽光で充電できるようにし、基本バッテリー交換をすることなく長期間利用できるように工夫しています。
しかし夜になったら表札が見えるようにするだけでは面白くない。そこでマイコンにM5StampS3を使い、表札をIoT化。天気予報ができる表札となっています。
このIoT表札の具体的なシステムを以下に説明します。
朝8時ごろに天気予報API(https://weather.tsukumijima.net/) から今日の最寄りの地域の天気予報(私の家だと神奈川県西部)を取得し、今日1日の8時間毎の降水確率を取得します。 各タイムゾーンで降水確率が50%を超えていたら、雨が降る可能性があると判断します。
またYahoo! Open Local Platform で提供されている。気象情報API(https://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/weather.html) を使い、現在地の降水量、またこの後1時間以内の降水量予測結果を取得します。
これらのAPIを基にメッセージを作成。この後傘を持っていく必要があるかという情報を中心にBOCCO emo(https://platform-api.bocco.me/api-docs/#overview) に発話してもらいます。
Sunset and sunrise times API(https://sunrisesunset.io/api/) から現在地の日没時間を取得しておきます。日没時間になったら天気予報APIから明日の天気を取得し、その天気に応じて照明の色を変えて点灯させます。天気は大きく4種類。例えば"晴れ時々曇り"だった場合、最初の晴れがメインの天気となるため、その部分だけで判断する形をとりました。 また現在時刻をM5StampS3が保持しているので、夜の12時になると自動的に消灯するようになっています。
という動きをしています。LEDを使っている間は一番消費電流が大きい白色でも大体30mA/hの消費電流に抑えており、理論上毎日200mAほどしか使わないようになってます。
昼間はDeepSleepしながら太陽光でバッテリーを充電します。 晴れていれば200mA分は余裕で充電ができるような設計としてます。今回充電にあたり、BQ25172(https://www.ti.com/product/ja-jp/BQ25172) というTIのICを使ってみました。電圧が下がったら勝手に再充電してくれるので、基本的に充電に対して何かマイコンから制御をすることはなくバッテリーマネージメントができるようになっています。