18章:App_TweLiteの温湿度センサー対応化修正

    作成2014.09.02

     App_TweLiteの送信データ数の追加方法について検討します。

  1. App_TweLiteの温湿度センサー対応化評価回路図
      14章:Samp_I2C(温湿度センサー)の動作試験と同一です。

    ZigBeeワイヤレスモジュール TWE−LiteをUSBアダプター TWE−Lite R(トワイ・ライター)に 取付けて評価します。

     デジタル温度・湿度センサーAM2321の詳細仕様は下記アドレスを参照します。
    http://www.ne.jp/asahi/shared/o-family/ElecRoom/AVRMCOM/AM2321/AM2321test.html

    品名単価個数小計購入先
    ZigBeeワイヤレスモジュール TWE−Lite Dip−WA (半完成品セミキット)162011620秋月電子通商
    USBアダプター TWE−Lite R(トワイ・ライター)189011890秋月電子通商
    温湿度センサ モジュール AM23217001700秋月電子通商


  2. App_TweLiteの温湿度センサー対応化外観
     14章:Samp_I2C(温湿度センサー)の動作試験と同一です。



  3. App_TweLiteの温湿度センサー対応化修正プログラムのダウンロード
     完成プログラムは「40-18.zip」ファイルをダウンロードしてください。
    [40-18.zip]をダウンロードする。

     解凍するとフォルダー内にApp_TweLiteフォルダーがあります。
     App_TweLiteフォルダー内に
    \App_TweLite\Master\Build\App_TweLite_Master_JN5164_1_6_5.bin(TWE-Lite Dip用)
    \App_TweLite\Master\Build\App_TweLite_Master_JN5164_TOCOSTICK_1_6_5.bin(ToCoStick用)
    Win-PingPong.exe(10章と同じ)
    があります。


  4. 基本操作方法
    (1)\App_TweLite\Master\Build\App_TweLite_Master_JN5164_1_6_5.binを無線マイコンTWE-Lite DIP (トワイライト・ディップ)に書込みます。
    (2)\App_TweLite\Master\Build\App_TweLite_Master_JN5164_TOCOSTICK_1_6_5.binをToCoStick(トコスティック)に書き込みます。(方法は7章:ToCoNet(トコネット)のソフトウエア開発環境(SDK) とPingPongの実行プログラムの書込みを参照願います。

    (3)TWE-Lite R(トワイ・ライター)に無線マイコンTWE-Lite DIP (トワイライト・ディップ)をセットしてUSBをパソコンに接続します。
    (4)ToCoStick(トコスティック)をパソコンに接続します。
    (5)「Win-PingPong.exe」をダブルクリックで起動します。
    (6)画面の左側を「COM9」にセットして、「Conect」ボタンを押します。
    (7)画面の右側を「CON8」にセットして、「Conect」ボタンを押します。
    (8)TWE-Lite R(トワイ・ライター)のリセットボタンを押します。
    (9)以下の画面から「COM9」がTWE-Lite R(トワイ・ライター)に接続されていることが確認できます。

    (10)ToCoStick(トコスティック)のリセットボタンは押せないにで、うまく動作しない場合はさし直しが必要となります。
    (11)コマンド0x81の状態通知が10s間隔で交互に受信されます。
    (12)ここで、左側の「F1機能」ボタンを押すとTWE-Lite R(トワイ・ライター)の状態通知のみが増加します。
    (13)右側の「F1機能」ボタンを押すとToCoStick(トコスティック)の状態通知のみが増加します。
    (14)左側の「F1機能」ボタンを連続して押すと画面は以下のようになります。

    (15)TWE-Lite DIP (トワイライト・ディップ)側に接続した、温湿度センサーの値が正しくToCoStick (トコスティック)側に送信されていることが確認できます。


  5. App_TweLiteプログラムの変更箇所
    (1)追加関数
    //!!!!****変更3
    void PutAM2321(uint8 *(pu8Dest));
    //***変更3		
    void PutAM2321(uint8 *(pu8Dest))		
    {		
    	uint8 u8Address;	
    	uint8 u8Length=1;	
    	bool_t bOk = TRUE;	
    	uint8 pu8Data[256];	
    	volatile long x;	
    	long TD;	
    	long HD;	
    		
    	bOk &= bSMBusWrite(0x5C, 0, 0, NULL);	
    	for(x = 0; x < 1600; x++){;}	
    		
    	u8Address=0x03;	
    	u8Length=2;	
    	pu8Data[0]=0x00;	
    	pu8Data[1]=0x04;	
    	bOk &= bSMBusWrite(0x5C, u8Address, u8Length, pu8Data);	
    	for(x = 0; x < 1600; x++){;}	
    		
    	u8Length=8;	
    	bOk &= bSMBusSequentialRead(0x5C, u8Length, pu8Dest);	
    		
    	HD=pu8Dest[2]*256+pu8Dest[3];	
    	vfPrintf(&sSerStream, "Humidity(x0.1%%)=%d\r\n",HD);	
    	TD=pu8Dest[4]*256+pu8Dest[5];	
    	vfPrintf(&sSerStream, "Temperature(x0.1Degree)=%d\r\n",TD);	
    }
    

    (2)static int16 i16TransmitIoData(bool_t bQuick, bool_t bRegular)の修正
    //***変更3
    uint8 pu8Dest[256];
    pu8Dest[0]=0xAA;
    PutAM2321(pu8Dest);
    S_OCTET(pu8Dest[2]);
    S_OCTET(pu8Dest[3]);
    S_OCTET(pu8Dest[4]);
    S_OCTET(pu8Dest[5]);
    を追加

    (3)static void vReceiveIoData(tsRxDataApp *pRx) の修正
    //***変更3
    uint8 HH = G_OCTET();
    uint8 HL = G_OCTET();
    uint8 TH = G_OCTET();
    uint8 TL = G_OCTET();

    //***変更3
    long TD;
    long HD;
    HD=HH*256+HL;
    vfPrintf(&sSerStream, "Humidity(x0.1%%)=%d\r\n",HD);
    TD=TH*256+TL;
    vfPrintf(&sSerStream, "Temperature(x0.1Degree)=%d\r\n",TD);
    を追加


  6. 結果の検討
    (1)14章:Samp_I2C(温湿度センサー)の動作試験の内容をApp_TweLiteに移植したものです。
    (2)動作的には6章:I2Cのアクセス(温湿度センサモジュールAM2321)と似ていますが、今回の方がより実用的です。
    (3)今回は割り込み処理に関する変更がなく、App_TweLiteの温湿度センサー対応化修正はすんなりとできました。




19章:App_TweLiteの温湿度センサー+256kbitEPROM対応化修正に行く。

トップページに戻る。