NefryをもっとWeb系のエンジニアでも触れるように、REST APIでハードウエアをいじれるようにしてみました!
今回はそのRESTAPIで叩ける機能をまとめてみましたのでご覧ください。
こちらはNefry library version 2.2.2以上の場合使用できます。
Nefryとは
USBに直接繋げられたり、Webページ上でWiFiの設定やESP8266の端末設定ができるようになっていたりとIoTをより簡単に扱えるものになっています。
dotstudioさんにて販売中です!!
詳しくはLigブログで記事をいくつか載せていますのでご覧ください。
自作したオリジナルIoTデバイス「Nefry」とインターネットを繋いでみた
Webサービス同士を連携できる「IFTTT」と自作IoTデバイスを繋いで生活を便利にしてみた
#API一覧
NefryRESTAPIは基本的にjsonのパケットで値を返します。
今後の実装次第でバージョンが上がっていきます。
Passwordをつけるもできます。(パスワードの入れ方は別の記事で紹介します。)
##GPIO(入出力ピン)
Nefryについている入出力ピンを制御することができます。
###入力
Nefryの入出力ピンがどうなっているか取得できます。
####デジタル
NefryのD0-D5の入力を取得できます。
URL : /api/1.0/digitalRead
引数 : pin(範囲:D0-D5)
具体例 : /api/1.0/digitalRead?pin=D1
返り値 : {"mode":"digitalRead","pin":"D1","value":0}
pin名と状態がvalueに含まれて返答されます。valueの範囲は0(low)-1(high)となります。
####アナログ
NefryのA0の入力を取得できます。
URL : /api/1.0/analogRead
引数 : なし
具体例 : /api/1.0/analogRead
返り値 : {"mode":"analogRead",""value":0}
状態がvalueに含まれて返答されます。valueの範囲は0-255となります。
###出力
####デジタル
NefryのD0-D5ピンの出力を制御できます。HIGH(3.3v)かLOW(0v)のどちらかを出力します。
URL : /api/1.0/digitalWrite
引数 : pin(範囲:D0-D5) state(範囲:HIGH(1)-LOW(0))
具体例 : /api/1.0/digitalWrite?pin=D1&state=HIGH
返り値 : {"mode":"digitalWrite","pin":"D1","value":1}
pin名と状態がvalueに含まれて返答されます。
####アナログ(PWM)
NefryのD0-D5ピンの出力を制御できます。1023(3.3v)から0(0v)の指定された出力します。
URL : /api/1.0/analogWrite
引数 : pin(範囲:D0-D5) state(範囲:0-1023)
具体例 : /api/1.0/analogWrite?pin=D1&state=500
返り値 : {"mode":"analogWrite","pin":"D1","value":500}
pin名と状態がvalueに含まれて返答されます。
##シリアル通信
シリアル通信の設定ができます。
###設定
シリアル通信のバンドレートを設定できます。設定しないときは115200bpsのシリアル通信を行っています。
URL : /api/1.0/Serialbegin
引数 : band(バンドレートの指定を行います。デフォルト:115200bps)
具体例 : /api/1.0/Serialbegin?band=115200
返り値 : {"mode":"Serialbegin","band":115200}
状態がbandに含まれて返答されます。
###入力
シリアル通信で入力された内容を返答します。コマンドを受けて1秒以内に受信したコマンドを返り値で返答します。
URL : /api/1.0/Serialread
引数 : なし
具体例 : /api/1.0/Serialread
返り値 : {"mode":"Serialread","message":"hello!"}
取得した内容がmessageに含まれて返答されます。
###出力
シリアル通信で引数の内容を出力します。こちらは改行なし。
URL : /api/1.0/Serialprint
引数 : message(送信したいメッセージ)
具体例 : /api/1.0/Serialprint?message=hello
返り値 : {"mode":"Serialprint","message":"hello"}
送信した内容がmessageに含まれて返答されます。
シリアル通信で引数の内容を出力します。こちらは改行あり。
URL : /api/1.0/Serialprintln
引数 : message(送信したいメッセージ)
具体例 : /api/1.0/Serialprintln?message=hello
返り値 : {"mode":"Serialprintln","message":"hello"}
送信した内容がmessageに含まれて返答されます。
##Nefry関数
###Nefry Console
####入力
Nefry Consoleで入力された内容を返答します。
URL : /api/1.0/Nefryread
引数 : なし
具体例 : /api/1.0/Nefryread
返り値 : {"mode":"Nefryread","message":"hello!"}
取得した内容がmessageに含まれて返答されます。
####出力
NefryConsole+シリアル通信で引数の内容を出力します。こちらは改行なし。
URL : /api/1.0/Nefryprint
引数 : message(送信したいメッセージ)
具体例 : /api/1.0/Nefryprint?message=hello
返り値 : {"mode":"Nefryprint","message":"hello"}
送信した内容がmessageに含まれて返答されます。
NefryConsole+シリアル通信で引数の内容を出力します。こちらは改行あり。
URL : /api/1.0/Nefryprintln
引数 : message(送信したいメッセージ)
具体例 : /api/1.0/Nefryprintln?message=hello
返り値 : {"mode":"Nefryprintln","message":"hello"}
送信した内容がmessageに含まれて返答されます。
###Nefry LED
NefryについているLEDの色を変更することができます。
URL : /api/1.0/NefrysetLed
引数 : r (範囲:0-255) g (範囲:0-255) b (範囲:0-255)
具体例 : /api/1.0/NefrysetLed?r=255&g=0&b=0
返り値 : {"mode":"NefrysetLed","r":255,"g":0,"b":0}
設定した値が返答されます。
##I2C
###準備段階
####準備
I2C通信ができるように準備をします。
URL : /api/1.0/Wirebegin
引数 : なし
具体例 : /api/1.0/Wirebegin
返り値 : {"mode":"Wirebegin"}
Modeが返答されます。
###アドレス指定
通信先のアドレスを指定し、通信の準備をします。
URL : /api/1.0/WirebeginTransmission
引数 : address(I2Cデバイスアドレス)
具体例 : /api/1.0/WirebeginTransmission?address=120
返り値 : {"mode":"WirebeginTransmission","address":120}
指定した内容が返り値に含まれて返答されます。
###送信
####送信
デバイスに対する送信を完了します。
URL : /api/1.0/Wirewrite
引数 : data(送信したいデータ)
具体例 : /api/1.0/Wirewrite?data=1
返り値 : {"mode":"Wirewrite","data":1}
送信した内容が返答されます。
####デバイスへ送信完了の信号
デバイスに対する送信を完了します。
URL : /api/1.0/WireendTransmission
引数 : なし
具体例 : /api/1.0/WireendTransmission
返り値 : {"mode":"WireendTransmission","result":"success"}
送信した内容が成功したかどうかresultに含まれて返答されます。失敗の時も原因が挿入されます。
###受信
####デバイスへデータ要求処理
デバイスにデータを要求するのに使われる。データは、その後Wirereadを使って取得する。
URL : /api/1.0/WirerequestFrom
引数 : address(I2Cデバイスアドレス),count(要求するデータ数)
具体例 : /api/1.0/WirerequestFrom?address=105&count=1
返り値 : {"mode":"WirerequestFrom","address":255,"count":1}
設定した値が返答されます。
####受信
データを読み取るときに使用します。
URL : /api/1.0/Wireread
引数 : なし
具体例 : /api/1.0/Wireread
返り値 : {"mode":"Wireread","data":""}
受信したデータが返答されます。
##その他
###version情報
NefryについているLEDの色を変更することができます。
URL : /api/version
引数 : なし
具体例 : /api/version
返り値 : {"mode":"version","version":"1.0"}
バージョン情報が返答されます。