2018/04/30

無線LANモジュールESP-WROOM-02と傾斜スイッチでポストへの投函を検知する電池駆動センサを作ってみた

個人でも安く容易に入手できて、かつ技適取得済みで安心の、ESP-WROOM-02(ESP8266)。恥ずかしながらつい先日教えてもらって初めてその存在を知ったので、使い方の勉強がてら動くものを作ってみました。

今回作ったのは、家のポストにモノが投函されたことを検知してIFTTT経由でLINE通知してくれる電池駆動のセンサ。仕上がりはこんな感じ。


我が家のポストは外にあって電源が取れない場所にあるので、ESP-WROOM-02の「deep sleep」機能(超低消費電力でのスリープ動作)を使って、乾電池での長期間駆動を目指します。似たようなことをやっているINTERNET Watchの記事などを参考に、以下の方針で作りました。
  • 普段はESP-WROOM-02はdeep sleepモードで寝かせとく
  • ポストにモノが投函されたことをESP-WROOM-02のリセットピンにつないだ傾斜スイッチで検知、deep sleepから起こす
  • 起きたら、自宅の無線LAN APにつないでIFTTTにWEBHOOK、通信終わったらすぐまたdeep sleepモードで寝かす

傾斜センサの部分は「型想い」と両面テープでポストのフタの内側へ、センサ本体と電池ケースは3Mの面ファスナーで着脱できるようにポストの内側へ、それぞれ固定しました。



ESP-WROOM-02上で動いているコード(Arduinoのコード)は以下に置いておきます。
nikotan/esp8266_PostMonitor.ino - GitHubGist

Arduinoのコードで動かせるってすばらしい。手軽にネットワーク機能を使ったデバイスを試作できて楽しいです。今回作ったものは今のところちゃんと動いていますが、どれくらい長期間駆動できるかはまだ不明。しばらく様子を見てみます。


※今回のハードとソフトを作るにあたっては、以下の記事などを参考にしました。

2018/04/22

Raspberry PiとWEBカメラで洗濯機の動作状況をモニタリングして、洗濯終了をLINEに通知するIoTボットを作ってみた

家の一階にある洗濯機で洗濯が終わったかどうかを、二階のリビングにいても分かるようにしたい!というわけで、タイトルのとおりです。

洗濯終了を判定するための手がかりとしては、洗濯終了時に鳴るビープ音、洗濯機の使用電力(電流)、などがありそうですが、今回は操作パネルの表示を使います。我が家の洗濯機には、操作パネルの中に洗濯終了時にだけ点灯する場所があったので、この場所の点灯状況で洗濯終了が自動判定できちゃいます。


Raspberry PiにつないだWEBカメラで操作パネルの特定位置の点灯状況を判定するだけなんですが、操作パネルをうまく写せるカメラの固定場所があまりない、というのが実は問題です。ちょっと離れた場所から監視せざるを得ないので、向きをざっくり合わせるだけでも使える、とか、カメラが多少動いたりしても使える、とかするための工夫が必要です。


基本的な方針は以下の通りですが、点灯状況を監視したい場所の近くにARマーカーを貼って、これを基準に監視場所の画像を切り出して点灯状況の判定をするようにしました。
  • ARマーカを点灯状況を監視すべき場所の近くに貼付
  • WEBカメラで撮影した画像からARマーカを検出
  • 検出したARマーカを基準に監視場所の画像を切り出して点灯判定
  • 点灯していると判定された場合にはIFTTT経由でLINEに「洗濯が終わっています」を通知
Raspberry Pi用のPythonコードは備忘録がてら以下に置きます。
nikotan/WashingMonitor

誤報対策で苦労しましたが、今は安定して動いてます。結構便利。


ARマーカーの検出のために使ったOpenCVのarucoライブラリや、arucoライブラリを使うためのRaspberry Pi上でのOpenCVのビルドや、IFTTTを使ったプッシュ通知などについては、以下記事を参考にしました。

2016/04/09

LINE BOT APIで翻訳ボットを作ってみた

巷で話題のLINE BOT API、面白そうなので、試しに翻訳ボット(送った文章を、日本語は英語に、日本語以外は日本語に、それぞれ自動翻訳して返すだけのLINEアカウント)を作ってみました。単純だけど反応良く動いてて楽しいです(*^^)v


翻訳のところはMicrosoft Translator Text APIを使って、webscript.ioで動かしてます。諸々、以下の記事などを参考にさせていただきました。

webscript.io上のコードはこちらに備忘録。

2015/09/06

OSX10.10.5にCaffe環境構築

久しぶりの週末プログラミングでDeep Learning触ってみました。
Deep Learningのフレームワークとしては、無難にCaffeを選択。
以下はmacbook airで動かすまでの手順メモです。

homebrewをインストール

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

pyenvをインストール

$ brew install pyenv
.bash_profileeval "$(pyenv init -)"を追加

Xcode command line toolsをインストール

pythonのインストール時に"Missing the OpenSSL lib?"とかエラー出たらインストール。
$ xcode-select --install

Anaconda Pythonをインストール

最新のバージョンを調べてインストール。
Anacondaは機械学習のライブラリ。
$ pyenv install -l
$ pyenv install 3.4.3
$ pyenv install anaconda-2.3.0
$ pyenv rehash
$ pyenv local anaconda-2.3.0
$ pyenv global anaconda-2.3.0
$ pyenv version

Caffeに必要な諸々とCaffeのビルド

Caffeのサイトにある手順通りでOK。
以上で環境構築完了。
Caffeのサイトにあるチュートリアルで動作を確認できます。

2012/05/28

PogoplugをOpenPogo化してOSX LionのTime Machineバックアップ先にして使ってます

Pogoplug(POGO-P25)を自宅で便利に使っていたんですが、ファイルコピーがとにかく遅い。あと、せっかくハードディスクをネットワークにつなげられてるんだから、Time Machineのバックアップ先にもしたい。

そこで、PogoplugをOpenPogo化してカスタマイズ。Netatalkで高速なNASにしたり、Time Machineのバックアップ先にしたり、2台のハードディスクをつないで二重化したりして、もう3ヶ月ほど連続で動かしていますが非常に安定しています。Pogoplugのもともとの機能は全てそのまま生かしたまま、Linuxボックスとして自由にカスタマイズできる、というのは超絶便利です。

というわけで、備忘録として、参考にしたサイトのリストをまとめておきます。