wiki:uKadecot

Version 4 (modified by coas-nagasima, 9 years ago) ( diff )

--

TOPPERS/μKadecot

TOPPERS/μKadecotは、ECHONET Lite 通信ミドルウェアTOPPERS/ECNLのサンプル アプリケーションです。
GR-SAKURAにECHONET Lite コントローラをWebアプリケーションとして実装しています。

Webアプリケーションは、WebサーバとWebブラウザの間で通信が必要になりますが、KadecotのWebAPIと互換性を持たせているので、Kadecotアプリが使用できます。
また、GR-SAKURAのGPIOを操作するWebAPIも追加し、WebアプリケーションからGPIOを操作できるようになっています。

ダウンロード

ソースコードはこちらにあります。trunkの行の「Size」列にある↓をクリックすると、zipファイルでダウンロードできます。
書き込みイメージはこちらにある「ukadecot_YYMMDDhhmmss.mod」をダウンロードしてください。

ソフトウェアについて

一般公開しているTOPPERS/ECNLは、TOPPERS/ASPとTINETを使用していますが、このアプリケーションはTOPPERS/SSPとμIPを使用しています。
また、このアプリケーションではDHCPクライアントを実装し、起動時にIPアドレスを取得します。

Kadecot APIはWebSocketを使用しJSONでメッセージをやり取りするWAMPが使われていますので、μIPのサンプルのWebサーバにWebSocketを必要最小限ですが実装しています。
HTTPメッセージヘッダを解釈するためhttp-parserを使用し、WebSocketのヘッダ情報を取得しています。
WebサーバのファイルシステムにFatFSを使用し、GR-SAKURAの1MByteのROMの一部にファイルシステムのデータを持つように実装しています。
WebSocketで通信されるのはJSONフォーマットなので、JSONSLを使用しWAMP形式のメッセージを解釈しています。
WebAPIからの要求はECHONET Lite電文に置き換えられUDPで送信します。また、応答のECHONET Lite電文はKadecot APIで置き換えられWebアプリケーションに応答するようになっています。

GR-SAKURAの4つのLEDは以下のように使用しています。

  • D1:LANのリンク処理時に点灯します。
  • D2:LANで送受信があった時に点灯します。
  • D3:DHCPサーバからIPアドレスを取得している時に点灯します。
  • D4:ECHONET Lite機器としての動作状態プロパティがONの時に点灯します。

Arduino互換ピン向けWebAPI

Arduino関数の一部をWebAPIとして実装しています。

GPIOの入出力設定

Arduino関数:pinMode(pin, mode)
WAMP Procedure名:com.sonycsl.kadecot.arduino.pinMode
引数:
pin:ピン番号(0~13)
mode:INPUT、OUTPUT、INPUT_PULLUP
WAMP ArgumentsKW:
{"pin":13,"mode":"OUTPUT"}
戻り値:
なし
応答 WAMP ArgumentsKW:
{}

GPIO出力

Arduino関数:digitalWrite(pin, value)
WAMP Procedure名:com.sonycsl.kadecot.arduino.digitalWrite
引数:
pin:ピン番号(0~13)
value:HIGH、LOW
WAMP ArgumentsKW:
{"pin":13,"value":"HIGH"}
戻り値:
なし
応答 WAMP ArgumentsKW:
{}

GPIO入力

Arduino関数:digitalRead(pin)
WAMP Procedure名:com.sonycsl.kadecot.arduino.digitalRead
引数:
pin:ピン番号(0~13)
WAMP ArgumentsKW:
{"pin":13}
戻り値:
pin:ピン番号
value:HIGH、LOW
応答 WAMP ArgumentsKW:
{"pin":13,"value":"HIGH"}

アナログ入力

Arduino関数:analogRead(pin)
WAMP Procedure名:com.sonycsl.kadecot.arduino.analogRead
引数:
pin:ピン番号(14~19)
WAMP ArgumentsKW:
{"pin":19}
戻り値:
0から1023までの整数値
応答 WAMP ArgumentsKW:
{"pin":19,"value":1023}

PWM出力

Arduino関数:analogWrite(pin, value)
WAMP Procedure名:com.sonycsl.kadecot.arduino.analogWrite
引数:
pin:ピン番号(0~7)
value:0から255までの整数値
WAMP ArgumentsKW:
{"pin":7,"value":123}
戻り値:
なし
応答 WAMP ArgumentsKW:
{}

シーケンス


「Kadecot」は株式会社ソニーコンピュータサイエンス研究所の商標です。

Attachments (4)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.