wiki:uKadecot

TOPPERS/μKadecot

TOPPERS/μKadecotは、ECHONET Lite 通信ミドルウェアTOPPERS/ECNLのサンプル アプリケーションです。
GR-SAKURAにECHONET Lite コントローラをWebアプリケーションとして実装しています。
source:/uKadecot/wiki/uKadecot.svg Webアプリケーションは、WebサーバとWebブラウザの間で通信が必要になりますが、KadecotのWebAPIと互換性を持たせているので、Kadecotアプリが使用できます。
また、GR-SAKURAのGPIOを操作するWebAPIも追加し、WebアプリケーションからGPIOを操作できるようになっています。

ダウンロード

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

使い方

使い方についての動画があります。下記を参照してください。
1.書き込みツールインストール編
2.μKadecot書き込み編
3.ECHONET Lite機器操作編
4.Arduino互換ピン編
5.シリアルコンソール編

ソフトウェアについて

一般公開している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の時に点灯します。

初期状態では、Pin0とPin1はシリアル通信ポートとなっています。 起動時に以下のような表示が出ます。

TOPPERS/SSP Kernel 1.3.0  for GR-SAKURA (Jun 14 2015 , 21:26:53)
Copyright (C) 2010 by Meika Sugimoto
Copyright (C) 2010 by Naoki Saito
            Nagoya Municipal Industrial Research Institute, JAPAN
Copyright (C) 2010 by Witz Corporation, JAPAN
Copyright (C) 2011 by Meika Sugimoto
Copyright (C) 2013 by Mitsuhiro Matsuura

mac_addr 12:34:56:78:9A:B8 default
ip_addr xx.xx.xx.xx, netmask xx.xx.xx.xx, gateway xx.xx.xx.xx

DHCPから取得したIPアドレスが表示されますので、そのIPアドレスにポート41314を指定して、Webブラウザに入力するとコントローラ画面が表示されます。

http://xx.xx.xx.xx:41314/


※上の画像ではhttp://localhost:41314/となっていますが、http://xx.xx.xx.xx:41314/となります。

コントローラ画面の「Kadecot App list」を押すと、Kadecotアプリのリストが表示され「Hexflick」や「Kadeckly」が使用できます。

source:/uKadecot/wiki/KadecotApps.svg
KadecotアプリはインターネットからダウンロードされWebブラウザ上で実行されます。KadecotアプリはWebSocketでμKadecotと接続し、ECHONET Lite機器をWebブラウザーで操作することができるようになります。

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:
{}

source:/uKadecot/wiki/GR-SAKURA.svg

シーケンス

source:/uKadecot/wiki/ArduinoWebAPISequence.svg


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

Last modified 23 months ago Last modified on 09/12/15 08:12:09

Attachments (4)

Download all attachments as: .zip