前回のマイコン連携(esp-wroom-02+mbed LPC1114FN28 で、IoT )
の続編で、
初期ファーム活用して、光センサ値を クラウドに送信します。
[概要]
1)クラウドサービスは、Parse.com(無料プラン)を使用させてもらい、
2)ParseのIoT SDKが、このマイコンに対応してないため。
REST APIで、フロント側にプロトコル変換機能を経由してます。
3) 表示アプリは以前作成した、ARDUINO版のHTML5アプリで表示
*) マイコン側のシリアル1組(tx:dp16 ,rx: dp15)を、WIFI側に接続しているため、
通信ログのデバック表示は、現状は不可能です。
# 組立 -結線
WIFI ,電源, マイコン 周辺は
前回(esp-wroom-02+mbed LPC1114FN28 で、IoT)
とほぼ同じで、説明は省略します。
*) 光センサは、2本足の場合です
[センサ周辺]
基盤の3V3 - 光センサ(3V3側)
LPC1114 dp13 - 光センサ(GND側)
光センサ(GND側) - 抵抗
抵抗(GND側) - 基盤のGND
[回路の全体]
==== update 2015-08-20 ==========================
WIFI付近の回路を修正しました、テスト編の回路も参照下さい
=================================================
LPC1114FN28(単体チップ)で
アナログ入力を使う場合、[Analog 3.3V IN: dp7], [Analog 0V: dp8]
の結線が必要になりますので、ご注意下さい。
(左側基盤の左端のベース電源)
# 送信処理 (サンプルコード説明等)
事前に
前回(ESP-WROOM-02の接続テスト)での
子機モード、SSID等の設定が必要です(手動で)。
AT+CWMODE=1
AT+CWJAP="ssid","password"
*) WIFI起動時に、設定が読み込まれて。
電源投入時に毎回設定不要でした。(有効期限は不明)
#code (C++ / mbde webコンパイラ)
[処理の概要]使い方など
main.cpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
string get_message(){ | |
int iSen =0; | |
string ret=""; | |
float fSen = inSen1; | |
//printf("fSen= %f\n" ,fSen); | |
iSen = int(fSen * 1000); | |
char buff[]="0000"; | |
sprintf(buff, "%d", iSen); | |
ret="GET /trans.php?mc_id=1&rkey="+mParseRestKey; | |
ret +="&apkey="+mParseAppKey; | |
ret +="&snum_1="; | |
ret += conv_zeroStr(buff ,4); | |
ret +="&snum_2=0000&snum_3=0000&snum_4=0000 HTTP/1.1\r\n"; | |
ret +="Host: " +mHostName+ "\r\n\r\n"; | |
return ret; | |
} | |
//main | |
int main() { | |
mPc.baud( 115200 ); | |
mSTAT = mSTAT_CONECT; | |
mTimer.start(); | |
while(1) { | |
float sec= mTimer.read(); | |
if(mSTAT == mSTAT_CONECT){ | |
if(sec >= mTmMax){ | |
mTimer.reset(); | |
string msg=get_message(); | |
int len=msg.length(); | |
mPc.printf("AT+CIPSTART=\"TCP\",\"%s\",80\r\n" , mHostName); | |
wait(mWait_Debug); | |
mPc.printf("AT+CIPSEND=%d\r\n" , len); | |
wait(mWait_Debug); | |
mPc.printf("%s",msg); | |
wait(mWait_Debug); | |
mPc.printf("AT+CIPCLOSE\r\n"); | |
wait(1); | |
} | |
} | |
} | |
} |
1) Parse.com のキー情報を設定します。
Application ID ,REST API Key
*) Parse.com -[App選択]-[Setting]などで表示できます。。
string mParseRestKey="your-rest-key";
string mParseAppKey ="your-app-key";
2)送信データの作成処理 -- get_message()
Parse.com のキー情報、センサ値などを設定
main() 内でループ処理、定期間隔の実行
# Parase.com のデータ画面
#表示系の設定
前回のARDUINO版Iot を参考下さい。 ([Setup] 付近)
Parase.comから、指定のデータ範囲を抽出し、リスト、グラフ描画します。
#関連の記事
ESP-WROOM-02の接続テスト
マイコン連携(esp-wroom-02+mbed LPC1114FN28 で、IoT )
水分センサ値などを Parse.com(外部クラウド)に送信 IoT型(ARDUINO)
*) Parse.com (SDK) 表示系アプリなど
# 開発者向けのまとめ記事
0 件のコメント:
コメントを投稿