time~派生開発、組み込み開発周りのこと。他ファイルのimport参考サイトおわりにやりたいこと家の鍵を閉めたかどうか不安になって、家にもどることってありませんか?私はあります。そんな時いつも「外出先から鍵が閉まっってるかわかればなぁ」と思っていました。外出先から閉まってる?って聞いたら教えてくれるシステムを構築しました。ドアチェッカー!システム構成ドアチェッカーの構成ドアの鍵(サムターン)部分に取り付けたセンサーがラズパイへ加速度値を送信する。ラズパイが加速度を受信し、ドアの施錠状態を検知する。ラズパイがslackへドアの施錠状態を通知する。ユーザがslackへ「閉まってる?」と問い合わせたら実行されます。2525Aドアの鍵に接着させ、ラズパイへ加速度値を無線で送信する子機端末。2525Aのデータを受信する親機端末。ラズパイへUSBで装着する。2,878円ラズパイ環境ユーザによるslackへの投稿検知。MONOSTICKが受信したデータの処理。2525Aをドア鍵に接着させる。2525Aをドア鍵に接着させる。3.5.3ドア施錠状態を確認するインターフェースとしてslackを利用します。ユーザがslackbotへ問いかけたら、ラズパイ上のslackbotが反応するようにします。slackbotの構築はこちらの記事を参考にしました。ソースコードgithub.comgithubにリポジトリを作成しました。(plugins/DoorChecker.py)センサーから受信した加速度センサのZ軸で鍵が開いているか閉まっているかを判断します。加速度センサと言いつつ、厳密には力センサのため静止していても値がとれます。力センサはこちら記事が参考になります。省電力のために30秒に1回子機(TWE-Lite-2525A)がラズパイへセンサ値を通知するように子機の設定を変更しています。(plugins/my_mention.py)「閉まっている?」とメンションをもらったら、処理を開始します。ユーザが問い合わせたら、検知機能を実行するしくみのため、最大30秒待たないと応答が返ってこない仕様です。別タスクで検知機能を動かしておいて、問い合わせがきたら直近の状態を返すようにしたほうが良いですね。参考ソースコードの都合で、検知はpython2、通知はpython3でそれぞれ実装しました。これらを結合するときに、python3に合わせようとしたときに、バージョン違いによって文字列の扱い方法が異なり、対応に時間を要しました。他ファイルのimportこれまでライブラリimportと自作1ファイルのみの実装をしていました。今回は、自作ファイルが複数あり、自作ファイルのimportがうまくできず時間を要しました。importおわりにそれなりに使える機能が構築できたかなと思い、2019年1月6日より運用開始しています。課題も発生しており試行錯誤中です。目指せおうちハックハウス!なお、本記事は1月1日に作成したものを1月12日に再作成したものになります。*3*1:私は古い型のMONOSTICK-Cを利用しています。*2:通称バリバリ*3:自分で誤って削除してしまいました。構成を思い出せないし、簡素になってしまっています。送料...2019-03-10腹筋ローラーメーターを作ろうと思います。月別アーカイブ検索スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。