2
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 のセンサ値 を 0 mV – 5000 mV に対応させ変換していることを意 味している.(2)式はこの LM61CIZ センサが-30 ℃ - 100 ℃を 300 mV – 1600 mV の範囲で出力するという Twitter#Arduino&R ¤ ¨c4+!7 59OON°' OFF4)- :F ¨c§Z )-{¬ 759O4ª }"1 A6Cjz ¨c4A6C mq

Twitter による”SMART HOME”の実現§ArduinoとTwitterを結びつけるものとし て,StewGate Uというシステムを導入した.これは ネット上に公開されているウェブサービス

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)