Upload
dangthuy
View
215
Download
0
Embed Size (px)
Citation preview
Twitterによる”SMART HOME”の実現
12 班 深見 開
1.はじめに
現在”スマートロック”というシステムが普及され
つつある.これはドアに設置するだけで,スマートフ
ォンとそのアプリが鍵となり鍵のシェアやオートロ
ックなどの操作ができるようになるというものであ
る 1).このように現在の社会ではスマートフォンを用
いた機能やその拡張が普及されてきており,それら
と家や家にある家電が結ばれてきていることがわか
る.しかし,同様の遠隔操作で別の家電と結びつける
ということを考えた時、鍵の開け閉めのような重要
性が無ければアプリの需要は無く,実際に現在その
ような商品は無い.またこれらの機能をつけるには
費用も多くかかる. そこで,今回私は,スマートフォンを用いた遠隔操
作ではあるがアプリを用いずに手軽に操作ができて,かつ費用がかからないシステムの開発を目指した.具体的には,アプリの代用として現在社会でも多く
利用されているTwitterを利用し,家にあるエアコン
を遠隔操作するということを目標とした.今回の研
究ではエアコンの代用品として小型 LED キャンド
ルライトを使用した. 2.システム及びプログラム作成
2.1システム 今回”手軽な操作”を 1 つのテーマと
しており,意識的ではなくふとしたきっかけで遠隔
操作を行いたいということから,Twitter のタイムラ
インに部屋に設置しておく温度センサで感知した温
度を自動ツイートし,そのツイートに対して命令を
返信すると遠隔操作が行われるというシステムを考
案した. 今回プログラムを書き込むマイコンとしては
Arduino を用いることが計画段階から決まっていた
ので使用したが,その Arduino と Twitter サーバや
インターネットを結びつける必要性があった.そこ
で Arduino と Twitter を結びつけるものとし
て,StewGate U というシステムを導入した.これは
ネット上に公開されているウェブサービス
で,Twitterの公開しているWebAPIを使えばプログ
ラムからタイムライン上のツイートの取得やタイム
ライン上へのツイートの発信を行うことが可能にな
るというものである.StewGate Uにアカウントの情
報を書き込むと「トークン」という Twitter のアク
セスキーと対応するものが得られるので、そのトー
クンをあらかじめプログラムに書き込んでおけば
Arduino と Twitter を結ぶことが可能になる. 次に Arduino とインターネットを結びつけるも
のとしては、Ethernet Shield 2 という装置を用いた.これは Arduino をインターネットに繋ぐためのシ
ールドであり市販されているものである.これら 2つに加え、Arduino に温度センサと赤外線送信用
LED をつけることで Twitter と Arduino の双方向
通信が可能となる.
図 1:システム簡略図
2.2温度検知及びタイムラインへのツイートプログ
ラム(twitter_temp_send();)温度センサとして
は,[LM61CIZ]を利用した.[LM61CIZ]は-30 度から
100 度までの温度を比較的正確に測定できる温度セ
ンサである.Arduino とブレッドボードを用いて回
路を組めば温度センサから値を得ることができるが,
この値はセンサ値であるので以下のプログラムを用
いてセンサから電圧値,電圧値から摂氏温度への変
換が必要となる.
tv=map(ans,0,1023,0,5000); (1)
temp=map(tv,300,1600,-30,100);(2)
(1)式はセンサ値から電圧値の変換,(2)式は電圧値
から摂氏温度への変換に用いる.(1)式では,センサ
は Arduinoの A0と接続しているので,analogRead関
数では取得できる値が 0-1024 の間の値になってい
ることから,map 関数を用いて 0-1023 のセンサ値
を 0mV–5000mV に対応させ変換していることを意
味している.(2)式はこの LM61CIZ センサが-30℃-
100℃を 300mV–1600mV の範囲で出力するという
��Y%\����
\�4¨,!�����
759O4¦±"ª}����
n¥%¦±ª}����
Twitter4����
mTv"759O%u~� s"75
9O��h� « $\�
���!�1�
Twitter#Arduino&R¤��
i®|g� P� ¯�]��Q�
¨c4+!759OON°'OFF4 )-��
:F�
¨c§Z )-�{¬
759O4ª}"�1�
A6Cjz�¨c4A6C�
�m��q�
b^�d[#'w�������"759O4aV%ª}�1�#'�*��$�&"��m�LED8LODN4f���ON#OFF�LightKD#CandleKD&�0¡�4Twitter�/ª}"�1.�%����2'g£MK9O#W�k�"U��,��m�MK9O"ª}�1sx��$/���r4l3��o"�1#��/21�*��x¢�����22(Arduino'G>9O$�"h}�1�,�ey%s©"9O=OC#N?%�p�2(d[`0�f�1�#�"�1�
ArduinoUNO�…C++�&Arduinot�#I69O�XT_HC4���;<BJ��
ArduinoUNO�
EthernetShield2�…Arduino#6O?E@C4²��,&;ND�Arduino&S%�+S�!�f�1�
EthernetShield2�
��
ArduinoUNO�
意味である.これらの変換式を用いて実際に摂氏温
度としての数値を取得し,Twitter のタイムライン
にツイートを行う.しかし Twitter サーバは,同じ内
容のツイートが連続するとスパムツイートと判定し
そのアカウントを凍結する場合があるので,millis
コマンドを用いて Arduino が起動してからの時間を,
温度ツイートの前につけることでスパムツイートと
判別されることを回避した.これにより,3 項の図 3
のようにタイムラインには温度が自動的にツイート
される仕組みを構築した.
2.3 つ ぶ や き の 取 得 及 び 判 別 プ ロ グ ラ ム
(twitter_get();) つぶやきを取得し命令を判断す
る と い う 流 れ の こ の プ ロ グ ラ ム
は ,twitter_get();,check_msg(),check_command();,そして命令文 4 種の 4 階構造になっている. 2.3.1twitter.get();このプログラムでは,まず
Arduino が Twitter に接続し 新のツイートを取得
する.取得後,check_msg();部分へ移動する.
2.3.2 check_msg(); こ の プ ロ グ ラ ム で
は,twitter_get()で取得した情報の解析を行う.取
得 し た ツ イ ー ト が 新 規 の も の で あ れ ば
check_command();へ,新規のものでなければプログ
ラムが始めに戻る.
2.3.3check_command(); ここでは新規のものと判
断されたツイートが何番目の命令を指示するものな
のかを判別する.取得されるツイートは,”light
on”,”lightoff”,”candle”である.それぞれに
対応する命令は send_signal (明かりをつけ
る ) ,send_signal_off ( 明 か り を 消
す),send_candle_mode(明かりをキャンドルモード
に切り替える)である.
2.4赤外線送信プログラム まず赤外線受信センサ
を用いて以下のような赤外線信号値をリモコンから
得る.
{898,448,52,58,59,53…(後略) (3)
この信号値を命令ごとに読み取りプログラムに書き
込む.この 1 つ 1 つの数値は 10×10-6秒単位で ON ま
た は OFF の 時 間 を 交 互 に 記 録 し て い る の
で,delayMicroseconds 関数を用いてそれらの数値
を 38kHz(赤外線リモコンの規格)の信号に変換する.
これにより,Twitterから取得した上記の4種類の命
令にそれぞれ対応した赤外線信号が Arduino に接続
された赤外線LEDから送信されることにより,LEDラ
ンプの遠隔操作を可能にしている.
3.完成システム概要図 2 に装置完成図を示す.図
2 右側の Arduino はブレッドボード(白板)と接続さ
れており,ブレッドボードには赤外線 LED 及び温度
センサが接続されている.図 3 に実際のタイムライ
ンを示したが,温度ツイートに対し命令を返信する
と図 4 のように LED ランプが変化する.
図 2:装置完成図 図 3:実際のタイムライン
図 4:図 3 での命令後の LED ランプの変化
4.考察今回の研究では,エアコンの代用として赤
外線 LED ランプを用いることにより ,電灯の
ON,OFF,及び光り方のパターン 2種の計 4つの命令
を ,Twitter から指示することに成功した .また
Twitter の手軽さに着目し,タイムラインに自動ツイ
ートされる部屋の室温に対し,送りたい命令を「返信」
という形で指示するというシステムを構築すること
ができた.さらに室温のツイートに millis コマンド
をつけることで,Twitter サーバによる規制を避ける
ことにも成功した .赤外線送信プログラムの一部
を,LED ランプのリモコンの赤外線信号値から,自宅
のエアコンのリモコンの赤外線信号値に書き換えれ
ば,自宅でも同様にTwitterからの遠隔操作が可能に
なると考えられる.しかし,今回の研究ではLEDラン
プと Arduino に接続した赤外線送信用 LED の距離
は非常に近く,LED ランプがどの程度の距離まで赤
外線送信を届かせることができるのか,という検討
をしていないので,本装置を用いる場合,本装置の設
置場所はできるだけ目的の機器の近くにしておく必
要があると考えられる. 参考文献
1) Akerun スマートロック https://akerun.com( 終閲覧日 2015/12/16)