連載
» 2016年07月28日 07時00分 UPDATE

MQTTで始めるIoTデバイスづくり(6):MQTTで始めるIoTデバイスの作り方 第6回:スマホからのデバイス制御 (1/4)

今回は「MQTTを利用して、スマホからの操作でデバイスを制御する」というテーマで、Arduinoに接続されたLEDの無線ON/OFF操作を行います。QoSやセキュリティを考慮しない簡易的なものですが、「MQTTを使ったIoTデバイス製作」の端緒となる内容です。

[今岡通博,MONOist]

 いよいよ今回でこの連載「MQTTで始めるIoTデバイスづくり」も最終回です。今回はマイコンのArduinoとWi-FiモジュールのESP8266をサブスクライバーとすることで、「スマホからの操作でデバイスを制御する(Arduinoに接続されたLEDをON/OFFする)」というテーマに取り組んで締めくくりたいと思います。

実験環境

 次の図は今回の実験環境を示したシステム構成図です。

実験システム構成図 「Arduinoに接続された発光ダイオードを、スマホからMQTTを使ってON/OFFする」実験システムの構成図

 今回もWindows PCがMQTTのブローカー(仲介者)になります。連載第4回(ArduinoをMQTTブローカーに接続)と同様、MQTTブローカーソフトウェアのmosquittoが動作しています。ポート番号は1883です。Arduino+ESP8266がMQTTのサブスクライバー(購読者)として動作します。

 今回はAndroidスマートフォンが、ブローカーにメッセージを送信するパブリッシャー(出版者)の役割をします。スマートフォンにはIoT MQTT Dashboardがインストールされています。

 これらの3つのノードはWi-Fiでルーターに接続されており、ステーションモードとして動作します。また各ノードのIPアドレスは無線ルーターのDHCPサーバにより図のように付与されたものとします。

組み立て

 次の図がESP8266とArduino、そして今回ON/OFFさせる発光ダイオードを組み合わせた配線図です。

配線図 配線図

 今回初めて登場するのが発光ダイオード(LED)です。それ以外の配線は前回までと変わりません。連載第4回ないし第5回の記事を参考にしてください。

 発光ダイオードは電流を流すと光る半導体デバイスです。発光ダイオードに2本のリード線があり、それらには極性があります。リード線の長い方を「アノード」、もう一方の短い方を「カソード」と呼びます。

 アノードからカソードに電流は流れますが、カソードからアノードには電流は流れません。発光ダイオードを光らせるためにはアノードからカソードに電流を流す必要があります。しかし発光ダイオードに電流を流しすぎると中が焼き切れてしまいますので、適切な電流に調整する必要があります。

 その電流を調整する機能を持つのが抵抗です。抵抗はオーム(Ω)という単位で値を表します。抵抗値が大きいほど電流の流れは抑制され少なくなります。また抵抗値が小さいと電流はたくさん流れます。ですから発光ダイオードを点灯させる場合、大きな値の抵抗をつけると暗くしか光りませんし、値の小さな抵抗をつけると明るく輝きます。この値は発光ダイオードが許容する電流の量と供給できる電流の量を考慮し、適切な値を決める必要があります。

 このあたりの話になると、オームの法則と発光ダイオードのデーターシートとのにらめっこになりますので、その議論は割愛して大体220Ω〜1KΩの間で抵抗値を選んで頂ければ問題ないでしょう。

 抵抗の一端は発光ダイオードのアノードに接続し、もう一端はArduinoのD2に接続します。また発光ダイオードのカソードはGNDに接続します。ArduinoのD2をプログラムから「1」にすればD2の出力電圧は5Vになり、抵抗を介して発光ダイオードのアノードからカソードに電流が流れ、発光ダイオードは点灯します。

 次の画像がこれらの回路をブレッドボードに実装した例です。

ブレッドボードへの実装例 ブレッドボードへの実装例

 ESP8266のブレークアウトボードに隠れたところの配線もありますが、過去の記事を参考にしてください。

       1|2|3|4 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.