= USB充電器電力計 = USB充電器電力計は、ECHONET Lite 通信ミドルウェアTOPPERS/ECNLのサンプル・アプリケーションです。コンセプト・コードであり、実用的に使用する場合は十分な試験が必要です。[[BR]] GR-SAKURAにECHONET Liteの電力計を6つ実装し、アナログPIN0~5の最大入力を2.4Aとして計測しています。電圧は5V固定で電力を算出しています。[[BR]] またHTTPSクライアント機能を持ち、定期的に計測値の履歴をPOSTします。[[BR]] [[http://miconboard.thebase.in/items/409183|NCES TRAINING BOARD]]を使用した場合、7セグにアナログPIN0~7の瞬時値を2秒ごとに切り替えて表示しているのが見えます。[[BR]] = ダウンロード = ソースコードは[http://dev.toppers.jp/trac/contrib/browser/UsbWattMeter こちら]にあります。trunkの行の「Size」列にある↓をクリックすると、zipファイルでダウンロードできます。[[BR]] = ソフトウェアについて = いくつかのオープンソースを利用していますので、各ソフトウェアのライセンスに従ってください。 ||ソフトウェア||URL||ライセンス[#come1 ※]||備考|| ||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関数|| [=#come1 ※]正確なライセンスは、それぞれの提供サイトで確認してください。[[br]] lwIPのASP対応では、[[https://www.toppers.jp/contest.html|「第3回 TOPPERS活用アイデア・アプリケーション開発コンテスト」]]の受賞作、松浦光洋さんの「lwIP の移植」をベースにさせていただきました。[[br]] それぞれのオープンソース提供者に感謝いたします。 = ビルド方法 = コンパイル/ビルドには、!CubeSuite+が必要です。サイズ制限のある無償版ではビルドできません。[[br]] 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します。[[br]] また、履歴ファイルを受け取るWebサーバーも必要です。JSON形式で書き出していますが、これを処理するサーバーのお手本があるわけではありません。[[br]] サーバーは仮のURLとして「www.example.com」となっていますので、変更してください。[[br]] 時刻を取得するためにSNTPクライアントが動いていますが、lwIPで提供されているままのNTPサーバーアドレスですので、変更してください。[[br]] libcurlのmprintf.cにあるdprintf_formatf関数は、スタックメモリを大量に使用していたので、FatFsのサンプルにあるfprintfを利用して代替えを行っています。通信電文の文字列が正しくフォーマットされない可能性がありますので、注意が必要です。[[br]]