GPIO機能の利用例

最終更新: 2018/4

概要

このチュートリアルではFlashAir IoT HubのGPIO機能について紹介します。

GPIO機能を使うと、FlashAir IoT Hub上からFlashAirのGPIOを通してLEDを点滅させたり、スイッチの値を取得する事などが出来ます。


画面の操作方法

GPIO入力

GPIO入力

画面の「トリガー > GPIO入力」に入力設定されたGPIOの各端子の値が High または Lowで表示されます。出力設定された端子は (Output)と表示されます。

ただし、FlashAirの初期設定ではGPIO機能は無効になっており、値は表示されません。GPIOを使う場合、 CONFIG設定を参考にGPIO機能を有効化してください。

GPIO出力

GPIO出力

画面の「アクション > GPIO出力 」のスイッチにてGPIOの各端子に出力する値を Highまたは Lowで設定することが出来ます。

出力したい値をスイッチで設定した後、実行ボタンをクリックすることでFlashAirにGPIOの値を設定する命令を送信します。

GPIOを設定する命令はジョブとして登録され、FlashAirがジョブを実行するとstatusが「未実行」から「実行済み」に変わります。

ジョブ

Lチカ

FlashAir IoT HubのGPIO機能を使って、Lチカ(LEDの点滅を操作)してみましょう。

FlashAirのGPIO機能を使うため、このチュートリアルではFlashAirのプロトタイピングボードである Airio RPを使います。

Airio RPについては FlashAirプロトタイピングボード「Airio RP」を参照ください。

構成

Airio RPとブレッドボードを使い、以下の様に接続します。

実機の写真
回路図

Airio RPはLED端子にHighを入力すると点灯、Lowを入力すると消灯出来ますので、D0(0x02)とLED端子を繋いで、D0の出力で点滅を制御します。

回路図は回路図作成ソフトの Frizing で作成しております。 開発リソースにて公開しているFrizingのライブラリをお使い頂くとFlashAirやAirio RPなどの回路図を簡単に作成出来ますので、ご活用ください。

入出力設定

Airio RPのピンアサインに合わせ、入出力の設定をします。FlashAir IoT Hubからダウンロードしたサンプルスクリプト bootscript.luaを以下の様に編集し、FlashAirのルートディレクトリに保存して下さい。

なお、本チュートリアルではGPIOに関する処理のみ解説しております。その他の処理については、他のチュートリアルにて解説致します。

bootscript.lua

local iothub = require("iothub")

iothub.startPioUpload(0x01)
-- iothub.stopPioUpload()

local cnt = 0
while(1) do
  iothub.runJob()
  iothub.addMeasurement({10, 20, cnt})
  cnt = cnt + 1
  sleep(10000)
  collectgarbage("collect")
end
  • 3行目

    コメント(--)を外し、 iothub.startPioUpload(ctrl)にてGPIOの入出力設定をします。
    読み込みたい端子に対応するビットに 1を、 書き込みたい端子に対応するビットに 0を指定した16進数の値を設定してください。
    本チュートリアルではFlashAirのCMD(0x01)を読み込み用、それ以外を書き込み用として使いますので、値を 0x01に変更してください。

  • 4行目

    本チュートリアルでは使用しませんが、GPIOの値をFlashAir IoT Hubにアップロードしない場合は、コメントを外し、 iothub.stopPioUpload()を実行して下さい。

  • 8行目

    iothub.runJob()を実行することで、FlashAir IoT Hubと通信し、 入力設定になっているGPIOの値のアップロードと、FlashAir IoT Hubから出されたGPIOの出力命令(ジョブ)のダウンロードを行います。


CONFIG設定

FlashAirのGPIO機能を有効にするため、FlashAirの /SD_WLAN/CONFIGを編集し、 IFMODE=1を追加してください。

FlashAir起動

FlashAirをAirio RPに刺し、電源に繋がっているMicro USBケーブルを挿して起動してください。

起動後、Airio RPのLEDが消灯するのを確認したら、準備完了です。


実行結果

準備が整いましたので、実行してみましょう。

GPIO出力

FlashAir IoT HubのGPIO出力でD0(0x02)を Highに設定し、実行ボタンをクリックしてください。

Lチカ

Airio RPのLEDが点灯するのがご確認頂けるかと思います。

本チュートリアルではAirio RPのLEDを使ってLチカをしましたが、FlashAirを接続すれば、皆さんのお好きなデバイスをFlashAir IoT Hub上から遠隔操作することも出来ます。ぜひお試し下さい。