ラベル Android の投稿を表示しています。 すべての投稿を表示
ラベル Android の投稿を表示しています。 すべての投稿を表示

2016年1月4日

トイレにRESTfulなAPIを実装してみた

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

あけましておめでとうございます。
プライバシーも一緒に流れるトイレから3年経ちましたが、皆様いかがお過ごしでしょうか。

お正月の三が日、昨今のIoTブームに乗るべく、私もIoTで真に豊かになるものは何かと一生懸命考えた結果、3年前と同じ部屋に辿り着いたことをご報告いたします。

前回はウォシュレットの使用状況をTwitterに投稿するというシステムでしたが、今回はウォシュレットにRESTfulなAPIを付与することで様々な機器から操作することを可能にするシステムを制作しました。


使用したのは巷で話題のESP-WROOM-02(ESP8266)と赤外線LED、上記写真のボードはオリジナルのもの。
(赤外線LEDの足がJST-PHコネクタに吸い込まれているように見えますが、良い子はLEDの足にJSTコンタクトピンを圧着したりしないように。)

このデバイスを電源に接続すると...


http://toilet.local にアクセスし、ウォシュレットを操作可能になります。


API

http://toilet.local/washlet に対して、Key cに以下のValueを設定してPOSTすると、それぞれの動作が実行されます。

Value 動作
rear おしり
soft おしりやわらか
bidet ビデ
stop 停止

また、DELETEメソッドでc=bigとすると流す(大)、c=smallとすると流す(小)が実行されます。
(DELETEなのはお察し)

仕組み

まず、3年前の時に取得した赤外線リモコンコードでは正しく動作しなかったので、改めて取り直し、トイレのリモコンがどのような送信を行っているのかを再検証しました。
リモコンコードはArduino UNOに赤外線受信モジュールを接続して、IRremote Arduino Libraryのサンプルを実行して取得。
結果、流す以外の動作は2回に分けてコードを送信していることが判明。
約6ms、2.9msの送信開始リーダ部の後は、1.5msで1, 0.5msで0のデータ部が続いているのは3年前に調べたのと同じ。






あとは、この通りに38kHzで変調して赤外線LEDを発光してあげるようなコードを書いてESP-WROOM-02に焼けばOK.

コードはこちら
GitHub : 9SQ/RESTful-Toilet

上記リモコンコードのデータもリポジトリに放り込んでいますので、TOTO製トイレリモコン赤外線で遊びたい方は参考にしてください。→ washlet_command.csv

これで、トイレ中にスマホが手放せない人でも、スマホからウォシュレットの操作が可能になりました!

番外編

トイレ引き籠もりのプロに、このシステムについて伺ったところ「ライブ中にタスク切り替えしてブラウザを開くのは厳しい」とのご感想を頂いたので、これについてAndroidアプリを制作することで対処しました。


もちろん、通知領域からボタンひとつで操作可能です。


デレステ中も快適なトイレライフが実現できます。



コードはこちら
GitHub : 9SQ/RESTful-Toilet-App

実際の動作

流石にトイレに座っているお見苦しい姿を晒すわけにはいかないので、流す動作だけ...


このシステムの脆弱性として、トイレの外から使用中の人に物理的な攻撃が可能になるという問題が発見されていますが、今後修正の予定が無いことを予めここに記しておきます。

最後に、今年1年が素敵なIoT(Internet of Toilet)の年になりますよう、お祈り申し上げます。

2012年8月31日

HTC EVO WiMAXにCyanogenMod9(Unofficial)をインストールする

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

HTC EVO 3D ISW12HTに機種変更してから、充電と放電をひたすら繰り返すだけのEVO WiMAXがあまりにも可哀想なので、とりあえず常用できそうなCyanogenMod9 Nightlyを入れた時のメモ。

大雑把な手順は、S-OFF→CWM→CM9という感じ。
今回は、全く非公式的な手段をやったことがなく、ファームウェアも最新のEVO WiMAXにインストールする場合(要するに最も手順が多い場合)の手順を書きます。

1. PCにドライバをインストール
32bit、64bitそれぞれ向けのドライバをインストールする。
HTC Syncをインストールすればドライバが自動的に適用されるが、HTC Syncを使わない場合はドライバ単体をインストールした方が良い。
HTC_Driver.zipやHTC_Driver_64.zipで検索すると出てくるはず。

2. ファームウェアのダウングレード
RUUを使って初期まで戻し、2.19.970.1までアップデートする。
(この手法を使えばS-OFFの端末をS-ONさせることも可能。修理に出す際に捗る。)
ここに詳しい手順が載ってるので参照されたし。
本来、表にでるはずのないRUUが何故かダウンロードできたりするところもある。

3. S-OFFからCWM導入まで
Revolutionaryを利用する。
ここに詳しい手順が載ってるので参照されたし。

4. CyanogenMod9を焼く
この辺を読みつつ、ここから新しめのイメージをダウンロードする。
ダウンロードしたzipは解凍しないでEVO WiMAXのSDカード直下に入れる。
ついでにCyanogenMod 9向けのGAppsをここからダウンロードして、同様にSDカード直下に入れる。
EVO WiMAXの電源を切り、ボリュームボタンの下を押しながら電源ON。
BOOTLOADERからRECOVERYを選択するとCWMが起動するので、install zip from sdcardを選択、choose zip from sdcardを選択、ダウンロードしてきたイメージのzipを選択。
画面の表示に従って適当にインストールを進め、同様にGAppsもインストール。

少々時間のかかる再起動を経て、ようこそ画面が表示されるので、言語で日本語(ただしCJKフォント)を選択する。


あとは、画面表示の指示に従って設定していけばOKです。


ここまで来て、何も分からない人がやってるとは思っていませんが一応警告
この状態の端末は、USBつないでadb shellやるとroot権限で弄れたりする。
メインの端末として利用している場合は、くれぐれも置き忘れたり置きっぱなしで席を離れたりしないように。
パターンロックやらパスコードやら設定していても無駄ですので。
あと、できればGMailやらWalletの決済情報やらが詰まったアカウントでやらないことをお勧めする。
分かってる人は分かっているなりにセキュリティ施すと思うので、くれぐれも自己責任で。