■■USB充電器電力計■■ http://dev.toppers.jp/trac_user/contrib/wiki/UsbWattMeter USB充電器電力計は、ECHONET Lite 通信ミドルウェアTOPPERS/ECNLのサンプル・ アプリケーションです。コンセプト・コードであり、実用的に使用する場合は十分な 試験が必要です。 GR-SAKURAにECHONET Liteの電力計を6つ実装し、アナログPIN0〜5の最大入力を 2.4Aとして計測しています。電圧は5V固定で電力を算出しています。 またHTTPSクライアント機能を持ち、定期的に計測値の履歴をPOSTします。 NCES TRAINING BOARD(http://miconboard.thebase.in/items/409183)を使用した場合、 7セグにアナログPIN0〜7の瞬時値を2秒ごとに切り替えて表示しているのが見えます。 ■ソフトウェアについて■ いくつかのオープンソースを利用していますので、各ソフトウェアのライセンスに 従ってください。 ・TOPPERS/ASP 1.9.2 動的生成版   https://www.toppers.jp/asp-kernel.html   TOPPERSライセンス   RTOS ・TOPPERS/ECNL lwIP対応β版   https://www.toppers.jp/ecnl.html   TOPPERSライセンス   ECHONET Lite通信ミドルウェア ・FatFS R0.10b   http://elm-chan.org/fsw/ff/00index_j.html   BSDライクなライセンス   SDカード用ファイルシステム ・lwIP 1.4.1   http://savannah.nongnu.org/projects/lwip/   BSD-style license   TCP/IPプロトコルスタック、DHCPクライアント、DNSクライアント、   IGMPクライアント、SNTPクライアント ・TLSF 3.0   http://tlsf.baisoku.org/   public domain   メモリアロケーター ・WolfSSL 3.7.0   http://www.wolfssl.jp/wolfsite/   GPLv2 or 商用   SSL/TLSライブラリ ・libcurl 7.47.1   https://curl.haxx.se/libcurl/   MIT/X derivate license   HTTP/HTTPSクライアント ・musl libc   http://www.musl-libc.org/   permissive MIT license   time関数とgmtime関数 ※正確なライセンスは、それぞれの提供サイトで確認してください。 lwIPのASP対応では、「第3回 TOPPERS活用アイデア・アプリケーション開発コンテスト」 の受賞作、松浦光洋さんの「lwIP の移植」をベースにさせていただきました。 それぞれのオープンソース提供者に感謝いたします。 ■ビルド方法■ コンパイル/ビルドには、CubeSuite+が必要です。 サイズ制限のある無償版ではビルドできません。 cspフォルダの下に以下のフォルダがあり、その中にCubeSuite+のプロジェクトがあります。 ・csp/libasp/libasp.mtpj TOPPERS/ASPのライブラリ ・csp/liblwip/liblwip.mtpj lwIPのライブラリ ・csp/libwolfssl/libwolfssl.mtpj WolfSSLのライブラリ ・csp/libcurl/libcurl.mtpj libcurlのライブラリ ・csp/usb_watt_meter/usb_watt_meter.mtpj USB充電器電力計のプログラム 順にビルドして、 usb_watt_meter/DefaultBuild/usb_watt_meter.mot が実行プログラムになります。 ■注意事項■ ・HTTPSのPOSTを試すにはSDカードが必要です。履歴ファイルを直下のlogフォルダの中に  作成し、そのファイルをPOSTします。 ・また、履歴ファイルを受け取るWebサーバーも必要です。 ・JSON形式で書き出していますが、これを処理するサーバーのお手本があるわけでは  ありません。 ・サーバーは仮のURLとして「www.example.com」となっていますので、変更してください。 ・時刻を取得するためにSNTPクライアントが動いていますが、lwIPで提供されているままの  NTPサーバーアドレスですので、変更してください。 ・libcurlのmprintf.cにあるdprintf_formatf関数は、スタックメモリを大量に使用して  いたので、FatFsのサンプルにあるfprintfを利用して代替えを行っています。  通信電文の文字列が正しくフォーマットされない可能性がありますので、注意が必要です。