丼's tech blog

2012/11/28~2023/12/21 間で運営していた「例のブログ」の後釜です。記事を抜粋してコッチに移植します。

Arduinoで他人の尻をハッキング!?ウンコジャマーの作り方その2

  前回(Arduinoで他人の尻をハッキング!?ウンコジャマーの作り方その1 - 丼's tech blog),ウンコジャマーの大まかな原理の説明を行いましたが,本記事では実際にArduinoを使ってウォシュレットのリモコンから信号をコピーするところまで行います(Fig.1)。

f:id:teppodone:20180425014816p:plain:w600
Fig.1 今日やること:Arduinoを使ってウォシュレットの信号をコピーする

 

 

対象年齢

  Arduinoでdelay() や digitalWrite() を使ったLチカのプログラムを理解出来て,Serial.println() でシリアル通信が出来る程度の知識を必要とします。

 

必要なもの

パーツリスト

  • Arduino,ノートパソコン,ブレッドボード,ジャンパーワイヤなどなど
  • 赤外線リモコン受信モジュール(Fig.2)
  • 赤外線LED(次回の記事で使用)(Fig.2)
  • 10[kΩ]抵抗(次回の記事で使用)
f:id:teppodone:20180523215142j:plain
Fig.2 赤外線受信モジュールと赤外線LED。どちらも秋月で100円程度で売られている。

 

赤外線リモコン受信モジュール(Fig.2)

   ウォシュレットの信号を解析するために必要なパーツです。僕は秋月で売られてる赤外線リモコン受信モジュール PL-IRM2161-XD1を使用しました。が,今はもうコレ売ってないみたいです。

  調べてみると,どうも同シリーズの 赤外線リモコン受信モジュール PL-IRM2121 も同様にArduinoで使えるみたい*1なのでコレで代用できると思います*2
http://akizukidenshi.com/catalog/g/gI-01570/akizukidenshi.com*3

 

その他

  Arduinoは今回は Arduino UNO を使用しました。
  また,トイレの個室の中でパソコンを広げるのでノートパソコン必須です。うっかり見るからに怪しいデスクトップパソコンとディスプレイをトイレに持ち込んで,通報されないようにしましょう。

 

解析の手順

1. ライブラリ「IRremote」のインストール

   「IRremote」は赤外線リモコンの受信,解析,送信などなど,Arduinoを使って赤外線リモコンをハックしたい時に大変便利なライブラリです。端的にいうとサンプルプログラムを実行するだけで,赤外線リモコンから出る信号を解析してくれたり,逆に解析した信号を元に同じ信号を送信してくれたりします。僕もこの IRremote を使ってウンコジャマーを作りました。

  で,肝心の IRremote のインストール手順ですが,デバプラさんのページに詳しく書いてあるのでそちらを参考にインストールを進めてください(丸投げ)。

deviceplus.jp*4

 

2. ウォシュレット信号の解析

  さて無事に(?)IRremote のインストールを終えたところで,いよいよ赤外線信号を解析していきます。

2.1. 回路図

  赤外線信号を解析するための回路を組みます.データシート曰く,「受信モジュールの表側(もっこりしてる側)から見て,左から信号線(Vout),マイナス(GND),プラス(Vcc)」とのことなので,図のような回路を組みました(Fig.3)。
  信号線(Vout)は,Arduino の digital 11番ピン に繋ぎます。

f:id:teppodone:20180523215150p:plain

f:id:teppodone:20180523215155j:plain
Fig.3 回路図と実際の回路

 

2.2 プログラム(スケッチ)

  赤外線信号を解析してシリアルモニタに結果を表示してくれるサンプルプログラム「IRrecvDumpV2」を使いました。
   [ファイル] -> [スケッチ例] -> [IRremote] -> [IRrecvDumpV2] を開き,これをそのままArduinoに書き込み,準備完了です(Fig.4)。

f:id:teppodone:20180523215148p:plain
Fig.4 サンプルスケッチ「IRrecvDumpV2」



2.3. 試しにテレビのリモコンを解析してみる

  では早速試しにテレビの赤外線リモコンを解析してみます。

  解析の手順は下記の通りです。

  1. パソコンとArduinoを接続し,シリアルモニタを開く
  2. 赤外線受信モジュールに向かって,解析したいリモコンのボタンを押す(Fig.5)
  3. シリアルモニタにベロベロと解析結果が出てくる
f:id:teppodone:20180523215152j:plain
Fig.5 解析の様子。受信モジュールにリモコンを向けてボタンを押すだけ。

  解析が成功すると,シリアルモニタにこの様な解析結果が出てきます。ここでは試しにLGのテレビリモコンの「音量+」のボタンを解析しました。

Encoding  : NEC
Code      : 20DF40BF (32 bits)
Timing[67]: 
     +8800, -4400     + 550, - 550     + 550, - 550     + 550, -1650
     + 550, - 550     + 550, - 500     + 550, - 550     + 550, - 550
     + 550, - 550     + 550, -1650     + 550, -1650     + 550, - 550
     + 550, -1650     + 550, -1650     + 550, -1650     + 550, -1650
     + 550, -1650     + 550, - 550     + 550, -1650     + 550, - 500
     + 600, - 500     + 550, - 550     + 550, - 550     + 550, - 550
     + 550, - 500     + 550, -1650     + 600, - 500     + 550, -1650
     + 550, -1650     + 550, -1650     + 600, -1600     + 600, -1650
     + 550, -1650     + 550
unsigned int  rawData[67] = {8800,4400, 550,550, 550,550, 550,1650, 550,550, 550,500, 550,550, 550,550, 550,550, 550,1650, 550,1650, 550,550, 550,1650, 550,1650, 550,1650, 550,1650, 550,1650, 550,550, 550,1650, 550,500, 600,500, 550,550, 550,550, 550,550, 550,500, 550,1650, 600,500, 550,1650, 550,1650, 550,1650, 600,1600, 600,1650, 550,1650, 550};  // NEC 20DF40BF
unsigned int  data = 0x20DF40BF;

↑LGのリモコンの「音量+」の解析結果

  この結果の中でも特に"unsigned int rawData[67] = {8800,4400,…"の部分が重要です。メモ帳なり何なりにまるまるコピペして保存しておいてください。この解析結果がリモコンの何のボタンと対応しているのかが分かるように,「音量プラス.txt」みたいにファイル名は押したボタンの名前を入れとくといいでしょう。

 

2.4. いよいよウォシュレットの信号を解析する

  やることは,上記のテレビリモコンの解析と全く同じです。トイレの個室の中でパソコンとArduinoとブレッドボードを広げて,ウォシュレットのリモコンの赤外線送信部(リモコンの角の黒い部分)に,ブレッドボードに刺さってる赤外線受信モジュールを近づけ,ウォシュレットの「おしり」を押します(Fig.6)。

f:id:teppodone:20180523220009j:plain
Fig.6 ウォシュレットの信号を解析してる様子。絵面が最高にアホい。

  テレビリモコン同様,成功するとシリアルモニタに解析結果が出てくるので,コレをメモ帳か何かにコピペして,「おしりの信号.txt」として保存しましょう。

 

   LIXIL(旧INAX)のトイレ CW-E61A の「おしり」の信号はこうなりました。なおLIXILのリモコン式ウォシュレットは信号が共通で使えるみたいです。したがってハックしたいトイレがLIXILのリモコン式ウォシュレットだったら,下記の信号がそのまま使える可能性が高いです。

Encoding : JVC
Code : 5C89 (16 bits)
Timing[51]:
     +8950, -4450 + 550, - 550 + 550, -1700 + 550, - 550
     + 550, -1650 + 600, -1650 + 600, -1600 + 600, - 550
     + 550, - 550 + 600, -1650 + 600, - 500 + 600, - 550
     + 550, - 500 + 650, -1600 + 550, - 600 + 550, - 550
     + 550, -1700 + 500, - 600 + 600, -1600 + 600, -1650
     + 600, -1600 + 600, - 550 + 550, -1650 + 600, -1650
     + 550, - 600 + 550
unsigned int rawData[51] = {8950,4450, 550,550, 550,1700,550,550, 550,1650, 600,1650, 600,1600, 600,550, 550,550, 600,1650, 600,500, 600,550, 550,500, 650,1600, 550,600, 550,550, 550,1700, 500,600, 600,1600, 600,1650, 600,1600, 600,550, 550,1650, 600,1650, 550,600, 550}; // JVC 5C89
unsigned int data = 0x5C89;

※私が今までに集めた信号は,後日まとめて全て公開する予定です。それまでしばしお待ち下さい。

 

  同じ手順で,「ビデ」「止める」「水勢+」「水勢-」「水温+」…などなど,ハックしたい信号を片っ端から記録します.

 

今回はココまで。
  そしていよいよ次回,今回得た解析結果を使ってトイレをハッキングします!!



  ウンコジャマー解説シリーズ,どれも気合入った記事になってて1本書くだけで非常に疲れますが,一人でもウンコハッカーが増えることを願ってめげずにがんばって書きます。

 

  ※くれぐれも怪しげな基板とパソコン持ってトイレに入るところをうっかり監視カメラに見られて,隠しカメラや盗聴器設置マンの容疑で警察のお世話になるとかいうオチにならないように,基板とノートパソコンはバッグに入れてからトイレに行きましょう.*5




↓続きの記事

teppodone.hateblo.jp






 

日記   ジムカーナ練習会に行ってきました。自分で言うのもアレやけどこれメッチャかっこよくない??????

 

 

*1:Arduinoで赤外線リモコンの信号を解析する,2018-05-23閲覧

*2:筆者の方では未検証

*3:2018-05-23閲覧

*4:2018-05-23閲覧

*5:本記事を含め,当ブロクに書いてある事を真似して発生した損害については,筆者は一切の責任を負いません.