ポストインアラーム

はいさい。シーサーズ・ラボのイェスタデイです。
ども。

さて、AWS熱がまだあります。
今回は、IoTボードを使って、ザ・IoTな感じのことをやってみました。
そもそもの発端は、自宅の郵便受けに荷物が届いたかを知りたかったこと。


ネット通販を割と使いますが、小さな荷物(CDとか書籍とか)を買ったときに、
いつ郵便受けに入れられたか気づかない。
発売日だったらすぐに見たいじゃないですか。
それが、郵便受けに入れられただけだと気づかないんですよね。


ということで、「郵便受けに物が入れられたらスマホに通知が来る」が目的です。

例によってAWSを使っていて、大まかな構成は以下です。



作ったプログラムは二つ。
- IoTボード内の組み込みソフト(Wi-fi接続、接点監視、AWSへのメッセージ送信)
- AWS-IoTからのメッセージを受けて、DB登録とメール通知を行うLambda関数

組み込みの方は、C言語、サーバ側はPythonで書いたので途中で少し混乱しました。

☆組み込み
IoTボードは、巷で話題のESP32開発ボードを使いました。
このボードの情報はArduinoIDEでのものが多く、Cは少し少な目でした。
が、サンプルがかなりわかりやすくて、WPS、Wi-fi、AWS-IoTの例を
つなぎ合わせてることで何とかなりました。

動作の流れは↓
起動
Wi-fiへ接続
 接続できないときWPS待機
 接続できればステータスLED点灯
AWSへ接続
接点監視(ループ)
接点がHIGH⇒LOWの時、AWSへメッセージ送信
メッセージ送信LED点灯(2秒)

☆サーバ
こちらは以前LINEのチャットボットを使ったときのソースを
切り貼りしてすぐにできました。
困った点は、メールで通知をするときに受信メール側のフィルタに掛かって
メールが届かないこと。
メール側のフィルタレベルを避ければいいのですが、
迷惑メール来ても嫌なので、指定メールの受け取り許可にしました。

動作の流れは、↓
IoTボードからのメッセージ受信
登録メールアドレスへメール送信
Dynamodbへ時刻、ボードのシリアルナンバーを保存


現状、ボードの接点をボタンで出してますが、
これを何かのセンサ類に変えて、郵便受けの中に設置すれば実現できるんじゃないか、と思ってます。
本当は、ソースコードとか載せて解説とかも書いてみたいですが、
いかんせん、手探りでやっていて情報が整理できていません。

技術ブログを、はてブロとかQiitaで書きたい気持ちもありますが、
そっちもおいおい勉強して書いてみたいと思います。


…と、ここまで書いて郵便受けが金属でっ出来ていることに気が付きました。
センサだけ郵便受けの中に設置して、本体は、外付けしないとダメかもですね。。。


以上、いかにもなIoTをやってみた、でした。