Version 5 (modified by 8 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)
- ArduinoWebAPISequence.svg (38.8 KB ) - added by 8 years ago.
- GR-SAKURA.svg (608.1 KB ) - added by 8 years ago.
- ECNLCtrl1.png (164.9 KB ) - added by 8 years ago.
- ECNLCtrl2.png (165.0 KB ) - added by 8 years ago.
Download all attachments as: .zip