Nefry REST API一覧まとめ

NefryをもっとWeb系のエンジニアでも触れるように、REST APIでハードウエアをいじれるようにしてみました！

今回はそのRESTAPIで叩ける機能をまとめてみましたのでご覧ください。
**こちらはNefry library version 2.2.2以上の場合使用できます。**

# Nefryとは
USBに直接繋げられたり、Webページ上でWiFiの設定やESP8266の端末設定ができるようになっていたりとIoTをより簡単に扱えるものになっています。
**[dotstudio](https://dotstud.io/projects/nefry-connect-internet/)さんにて販売中です！！**

![](https://qiita-image-store.s3.amazonaws.com/0/97208/95705e6e-e8e8-9f9d-6778-7de63860a01e.jpeg)


詳しくはLigブログで記事をいくつか載せていますのでご覧ください。

[自作したオリジナルIoTデバイス「Nefry」とインターネットを繋いでみた](http://liginc.co.jp/236620)

[Webサービス同士を連携できる「IFTTT」と自作IoTデバイスを繋いで生活を便利にしてみた](http://liginc.co.jp/263899)

#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に含まれて返答されます。

###入力

シリアル通信で入力された内容を返答します。コマンドを受けて１秒以内に受信したコマンドを返り値で返答します。

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"}
バージョン情報が返答されます。