Raspberry Piとサーボーモーターを使って遠隔(外出先)でスイッチをON・OFFしてみた


IoTと言うからには、センシングしたデータを外部環境から閲覧するだけではちょっと物足りない。そう思って、遠隔から何かをコントロールする事に挑戦しました。

遠隔と言っても、私が目指すのは、社内や自宅内では無くて、外出先からの操作になります。

社内や自宅内での操作は、無線LAN内なので、比較的簡単にできます。逆にLANより外だと、一気に通信(セキュリティ)の壁が立ちふさがります。

 

外出先(社外や自宅外)からの遠隔操作の方法

私はあまりセキュリティやネットワークに関しては詳しくないのですが、「ルータのポートを開放して」と言った事をすれば、外部から自宅のラズパイにアクセスする事も可能です。

ただ、セキュリティの事を考えると、いろいろ対策を考えなければ行けなかったりと大変です。

そこで、外部のサービスを利用する事で、遠隔操作の問題を解決しようと言う方向になりました。

 

BaaSを利用した遠隔操作

外部のサービスとして、BaaS(backend as a service)があります。

BaaSとは、主に「バックエンド」機能を提供する事で、ユーザーにはフロントエンドの開発に注力でき、開発コストの抑制や開発スピードを向上させることが目的のようなサービスです。

私が知っているBaaSは、「Milkcocoa」や「Firebase」などがあります。下記の記事では、「Firebase」を使った実験を行っています。

Raspberry Piでセンシングした温度を、firebaseとchart.jsを使ってリアルタイムグラフにしてみる

このサービスを使うと、セキュアにラズパイと通信が出来て、遠隔操作が出来る様になります。(その詳細は割愛します。)

 

外部サービスのWeb APIを使った遠隔操作

Web APIの詳細は割愛しますが、要は、Webサービスとの連携を簡単にする為に用意されているインターフェースの事です。

現在は、いろんな外部サービスが独自のWeb APIを用意しています。その中でも、「Twiiter」は、豊富なWeb APIがあり、多くの方に利用されている為、いろんな情報がネット上にある為、比較的開発がし易い特徴があります。

これらの事を考慮して、今回は、TwitterのWeb APIを使った遠隔操作で、サーボモータを動かしたいと思います。

 

Raspberry Piを使った実験の準備

このお遊びで使った物

Raspberry Piからサーボモータを操作キット(LAN用/Twitter連携)

Raspberry Pi 3 Model B

 

「Raspberry Piからサーボモータを操作」キットを配線する

下記の配線図の様に、サーボモータをRaspberry Piを繋ぎます。(※raspberry Piの電源をサーボモータに直接使っておりますが、理想はサーボモータ用の電源を別で確保する方が良いと思います。ただ、ラズパイを安定して起動させる電流より大きな電流を送れるACアダプターでしたら大丈夫だと思います。)

servo-camaera

 

サーボモータをスイッチに設置してみる

実はここが一番厄介な作業になります。

サーボモータをスイッチにしっかり固定しないと、上手く「ON」「OFF」してくれません。テープなどだと、サーボモータが動いてしまいますので、しっかり固定したい場合は、「ねじ」などが良いのです。

ただ、賃貸・アパートなどでは、壁に穴をあけたり、テープを張って、壁紙に跡が付くのがダメな場合があるので、難しいですね。

 

Twitterのタイムラインに任意のワードを入力して動かしてみる

下記の様に、ツイッターの管理画面から「任意の文字列」を含めてツイートしてみます。

無事サーボモータが動いてくれたら、実験成功です。

これで、遠隔地でも、スイッチをON・OFFすることが出来る様になりました。

一応Twitterのアカウントは、プライベートアカウントにして、誰にも公開されない様にすると共に、IDやPASSの管理もしっかりした方が良いでしょう。

そうしないと、アカウントを乗っ取られて、かってにON・OFFされてしまいますから。

 

以上「Raspberry Piとサーボーモーターで遠隔(外出先)でスイッチをON・OFFしてみた」のご紹介でした。