Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

Raspberry Pi Zero WとAzureで、Webから操作できるIoTクリスマスツリーを作ってみよう

Raspberry Pi Zeroではじめよう! おうちで楽しむIoTレシピ 第4回

2017/12/22 14:00

 この連載では、約650円で買えるマイコンボードRaspberry Pi Zeroを使って、ITエンジニアがIoTを学べたり、家族で楽しんだりできるIoTレシピをご紹介していきます。今回はIoTでクリスマスツリーを光らせてみます。スマホ・PCのブラウザーからWebアプリにアクセスし、「点灯・点滅・消灯」のボタンを押すことで、Raspberry Piから配線したLEDを制御することができます。スマホのボタン操作でクリスマスツリーのLEDを制御することができるので、小さなお子さまも気軽に試すことができます。このIoTクリスマスツリーで、身近なIoTを体験してみましょう。

目次

IoTクリスマスツリーの仕組み

 IoTクリスマスツリーを制御する仕組みについて、大まかには以下の流れになります。

  1. ブラウザ上でWebアプリのボタンを押す【点灯/点滅/消灯】(MQTT Publisher)
  2. MQTT Brokerでメッセージを受け取る
  3. Raspberry Pi Zero Wでメッセージを受け取り(MQTT Subscriber)、LEDの制御をする(GPIO)

 まずは、クリスマスツリー用のLEDを準備し、Raspberry Pi Zero Wに繋げます。そして、AzureのPaaSのサービスである「Azure App Service」でPHPをインストールし、PHPで動作するWebアプリを準備します。

 Webアプリのボタンを押すことにより、メッセージ(データ)が送信されます。そのとき、MQTT(Message Queue Telemetry Transport)という通信プロトコルを使用し、メッセージはMQTT Brokerに送信されます。その後、Raspberry Pi Zero WでMQTT Brokerのメッセージを受け取り、LEDを【点灯/点滅/消灯】させます。

 Azure App Serviceの詳細については、マイクロソフトの公式ドキュメントをご覧下さい

用意するもの

  • Raspberry Pi Zero W
  • ミニブレッドボード
  • ジャンパワイヤ(オス~ワニクリップ)
  • ジャンパワイヤ(オス~メス)
  • LEDライト(4.5V 1m/20個)
  • トランジスタ 1本
  • 抵抗 1本
  • クリスマスツリー

 LEDライトについては、今回は電池ボックス付きのものを切断し、改造して使用する例を紹介します。

クリスマスツリーの飾り付け

 まずはクリスマスツリーを飾り付けます。ぜひ、ご家族で楽しく飾り付けてみましょう。

LEDの下準備

 LEDライトについては、「アキバLEDピカリ館)で購入したものを使用しています。

 電池ボックス付きですが、電池は使用しないのでニッパーで切断します。

 次の手順の配線でLEDのアノードとカソードを間違えないようにするため、アノード側にマジック等で目印を付けることをおすすめします。

配線

 以下の図の通りに配線します。実際に使用するLEDライトは、並列接続のLED20球になります。

 LEDをブレッドボードに配線するときは、ジャンパワイヤ(オス~ワニ口クリップ)を使用しました。

 今回は2.5Ωの制限抵抗が必要でしたが、それだと明るすぎたのでLEDの4.7Ωにしています。

注意

 制限抵抗を入れないとLEDが焦げて故障する恐れがありますので十分ご注意下さい。図解の制限抵抗4.7ΩはLEDが20本並列の場合を想定しています。LED1本のみで試したい場合の制限抵抗は300Ωにします。

 なお、ブレッドボードのトランジスタの図解は2SC1815、2SC2120などのECB(エミッタ、コレクタ、ベース)のピン配置を想定しています。なお、トランジスタには、エミッタ(Emitter)、コレクタ(Collector)、ベース(Base)といった3つの電極があります。

点灯テスト

 Raspberry Piの配線が問題無くできているか、以下のコマンドを実行してみましょう。LEDが点灯していたら成功です。

echo 17 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio17/direction
echo 1 > /sys/class/gpio/gpio17/value

 点灯テストが終わったら、以下のコマンドでLEDを消灯させ、GPIO17番を無効化します。

echo 0 > /sys/class/gpio/gpio17/value
echo 17 > /sys/class/gpio/unexport

著者プロフィール

  • 平 愛美(タイラ マナミ)

     熊本県出身のITエンジニア。エクストリームデザイン株式会社所属。2児の母で、趣味は写真とグルメ。最近はRaspberry Pi、Arduinoを使った家庭内IoTについて日々研究するIT系母ちゃんとして活躍中。主な著書は、『改訂3版 Linuxエンジニア養成読本』(寄稿、技術評論社 刊)、『Lin...

バックナンバー

連載:Raspberry Pi Zeroではじめよう! おうちで楽しむIoTレシピ
All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5