6章:I2Cのアクセス(温湿度センサモジュールAM2321)

    作成2014.08.06

     温湿度センサモジュールAM2321へのI2Cのアクセス検討を行います。

  1. 温湿度センサモジュールAM2321評価回路図
     温湿度センサモジュールAM2321評価回路図を図6-1に示します。


     電源電圧を一定にするため、低損失CMOS三端子レギュレータ 3.3V150mA XC6202P332TBを使用します。
     また、電流計測用として47Ωの抵抗をいれました。(これにより供給電圧は若干低下します。)
     高精度IC温度センサLM61BIZを使用します。
     温湿度センサモジュールAM2321使用します。
     無線マイコンTWE-Lite DIPは子機:連続モードを設定します。
     計測される電流は無線マイコンTWE-Lite DIPと高精度IC温度センサLM61BIZと温湿度センサモジュールAM2321で消費される電流の合計となります。(LEDはOFF)

    品名単価個数小計購入先
    低損失CMOS三端子レギュレータ 3.3V150mA XC6202P332TB 2個入50150秋月電子通商
    高精度IC温度センサLM61BIZ(4個入)50150秋月電子通商
    温湿度センサ モジュール AM23217001700秋月電子通商


  2. 温湿度センサモジュールAM2321評価回路外観
     温湿度センサモジュールAM2321評価回路外観を以下に示します。



  3. oCoStick(トコスティック)用Windowsアプリの修正
     温湿度センサモジュールAM2321はLPS331使用高精度大気圧センサーモジュールとほぼ同じ構成になります。

    (1)記録開始ボタンと記録終了ボタンを追加
    (2)測定結果表示用にラベルLabel_PTを追加します。
    (3)SaveFileDialog1を追加、Filterに「(*.txt)|*.txt」を設定
    (4)timerStateのIntervalに1000を設定


    3.2 Public Class clsDataPresentationAsciiの修正
    (1)Dim _abyInput(1024) As Byte → Public _abyInput(1024) As Byteに変更(他クラスで参照のため)

    3.3 Public Class frmMainグローバル変数
    (1)Declare Function timeGetTime Lib "winmm.dll" Alias "timeGetTime" () As Long 'timeGetTime()使用のため追加
    (2) Dim abyInput(1024) As Byte 'グローバル変数追加
    (3)Public HA As Double 'グローバル変数追加 (4)Public TA As Double 'グローバル変数追加
    (5) Dim PutLPS331A_F As Boolean
    (6)Dim OutText As String = ""
    (7)Dim gpay As clsDataPayloadIO_0x81 = New clsDataPayloadIO_0x81
    (8)Dim daytime As Date

    3.4Private Sub frmMain_Load
    (1)timerState.Stop() '追加


    3.5 Private Sub updateWithComingData(ByRef sDat As ITweDataPresentation)
    (1)abyInput = DirectCast(sDat, TWE_AppToCoStick.clsDataPresentationAscii)._abyInput 'グローバル変数に値を代入のため追加


    3.6 サブルーチンの追加
    (1)Sub PutAM2321() '温湿度センサモジュールAM2321制御 (2)Private Sub Wait(ByVal waittime As Long) '待ち時間設定ルーチン
    (3)Private Sub Button1_Click ’記録開始ボタン
    (4)Private Sub Button2_Click '記録終了ボタン
    (5)Private Sub timerState_Tick ’ターマー処理
    (6)Sub PutText() ’出力処理

     変更済みプログラムは「40-6.zip」ファイルをダウンロードしてください。
    [40-6.zip]をダウンロードする。

    解凍するとフォルダー内にTWE-ToCoStick_気圧フォルダーがあります。TWE-ToCoStick_気圧フォルダー内に
    TWE-ToCoStickフォルダーとApp_ToCoStick.exeがあります。


  4. 操作画面
     実行結果操作画面を以下に示します。

    *記録開始ボタンを押すと記録を開始し、記録終了でファイル保存されます。


  5. 実行結果ファイル
     実行結果ファイルを以下に示します。
    受信日送信元ID個体識別番号電波強度電源電圧[mV]DI1DI2DI3DI4AD1AD2AD3AD4湿度%温度℃
    2014/08/05 20:39:40ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3070[mV]FALSEFALSEFALSEFALSE76865535655356553544.529
    2014/08/05 20:39:41ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 165Volt: 3074[mV]FALSEFALSEFALSEFALSE77265535655356553544.529
    2014/08/05 20:39:42ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3065[mV]FALSEFALSEFALSEFALSE76465535655356553544.629
    2014/08/05 20:39:43ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3070[mV]FALSEFALSEFALSEFALSE76465535655356553544.628.9
    2014/08/05 20:39:44ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 156Volt: 3077[mV]FALSEFALSEFALSEFALSE76865535655356553544.429
    2014/08/05 20:39:45ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3082[mV]FALSEFALSEFALSEFALSE76865535655356553544.229
    2014/08/05 20:39:46ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3070[mV]FALSEFALSEFALSEFALSE76865535655356553543.529
    2014/08/05 20:39:47ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3079[mV]FALSEFALSEFALSEFALSE76865535655356553543.129
    2014/08/05 20:39:48ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3079[mV]FALSEFALSEFALSEFALSE76865535655356553542.929
    2014/08/05 20:39:49ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3070[mV]FALSEFALSEFALSEFALSE76865535655356553542.729
    2014/08/05 20:39:51ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3077[mV]FALSEFALSEFALSEFALSE76465535655356553542.629
    2014/08/05 20:39:52ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3082[mV]FALSEFALSEFALSEFALSE76865535655356553542.629
    2014/08/05 20:39:53ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3073[mV]FALSEFALSEFALSEFALSE77665535655356553542.629
    2014/08/05 20:39:55ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3075[mV]FALSEFALSEFALSEFALSE76865535655356553542.929
    2014/08/05 20:39:56ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3075[mV]FALSEFALSEFALSEFALSE76865535655356553542.929
    2014/08/05 20:39:58ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3071[mV]FALSEFALSEFALSEFALSE76465535655356553542.929
    2014/08/05 20:39:59ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3073[mV]FALSEFALSEFALSEFALSE76465535655356553542.929
    2014/08/05 20:40:00ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3073[mV]FALSEFALSEFALSEFALSE76465535655356553542.829
    2014/08/05 20:40:02ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3081[mV]FALSEFALSEFALSEFALSE76865535655356553542.829
    2014/08/05 20:40:03ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3071[mV]FALSEFALSEFALSEFALSE76865535655356553542.729
    2014/08/05 20:40:04ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3073[mV]FALSEFALSEFALSEFALSE76865535655356553542.729
    2014/08/05 20:40:05ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3075[mV]FALSEFALSEFALSEFALSE76865535655356553542.729
    2014/08/05 20:40:06ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3079[mV]FALSEFALSEFALSEFALSE76865535655356553542.629
    2014/08/05 20:40:07ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3078[mV]FALSEFALSEFALSEFALSE76865535655356553542.629
    2014/08/05 20:40:08ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3081[mV]FALSEFALSEFALSEFALSE76865535655356553542.629
    2014/08/05 20:40:09ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3084[mV]FALSEFALSEFALSEFALSE76465535655356553542.629
    2014/08/05 20:40:10ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3082[mV]FALSEFALSEFALSEFALSE78865535655356553542.829
    2014/08/05 20:40:11ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3075[mV]FALSEFALSEFALSEFALSE76865535655356553542.229
    2014/08/05 20:40:13ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3073[mV]FALSEFALSEFALSEFALSE76865535655356553542.829
    2014/08/05 20:40:14ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3088[mV]FALSEFALSEFALSEFALSE76865535655356553542.729
    2014/08/05 20:40:15ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3083[mV]FALSEFALSEFALSEFALSE76865535655356553542.629
    2014/08/05 20:40:17ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3076[mV]FALSEFALSEFALSEFALSE76865535655356553542.129
    2014/08/05 20:40:18ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3084[mV]FALSEFALSEFALSEFALSE76465535655356553541.929
    2014/08/05 20:40:22ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3074[mV]FALSEFALSEFALSEFALSE76865535655356553541.229.1
    2014/08/05 20:40:23ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3081[mV]FALSEFALSEFALSEFALSE76865535655356553541.129.1
    2014/08/05 20:40:24ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3080[mV]FALSEFALSEFALSEFALSE7646553565535655354129.1
    2014/08/05 20:40:25ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3083[mV]FALSEFALSEFALSEFALSE76465535655356553540.929.1
    2014/08/05 20:40:26ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3088[mV]FALSEFALSEFALSEFALSE76865535655356553540.929.1
    2014/08/05 20:40:27ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3080[mV]FALSEFALSEFALSEFALSE76465535655356553540.929.1
    2014/08/05 20:40:28ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 162Volt: 3086[mV]FALSEFALSEFALSEFALSE76865535655356553540.829
    2014/08/05 20:40:30ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 168Volt: 3084[mV]FALSEFALSEFALSEFALSE76865535655356553540.729
    2014/08/05 20:40:34ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3081[mV]FALSEFALSEFALSEFALSE76465535655356553541.629.1
    2014/08/05 20:40:35ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3082[mV]FALSEFALSEFALSEFALSE76865535655356553541.729.1
    2014/08/05 20:40:36ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3083[mV]FALSEFALSEFALSEFALSE76465535655356553541.829.1
    2014/08/05 20:40:38ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3080[mV]FALSEFALSEFALSEFALSE76465535655356553541.829.1
    2014/08/05 20:40:39ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3082[mV]FALSEFALSEFALSEFALSE76465535655356553541.829.1
    2014/08/05 20:40:40ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 168Volt: 3083[mV]FALSEFALSEFALSEFALSE76465535655356553541.729.1
    2014/08/05 20:40:41ID: 120(0x78)Addr: 0x810040BDLQI(0-255): 159Volt: 3080[mV]FALSEFALSEFALSEFALSE76465535655356553541.429.1


  6. 消費電流の評価
     消費電流の評価結果を図6-4に示します。

    図6-4から
    (1)電流はほぼ一定で時々減少する。
    (2)最大電流1.868mA
    (3)平均電流1.394mA
    等であることが確認できます。

    5.乾電池の寿命予測
    (1)単三アルカリ乾電池の 放電容量2000mAH
    (2)初期電圧は1.5Vで放電終止電圧は0.9V
    (3)単三アルカリ乾電池を4個使用した場合、初期電圧は6Vで放電終止電圧は3.6V
    (4)従って電池寿命は
      電池寿命=2000/1.394=1434.7(h)=59.8(日)
    となり、間欠1sの290日の約1/5となります。


  7. 結果の検討
    (1)温湿度センサモジュールAM2321とLPS331使用高精度大気圧センサーモジュールのプログラムはほぼ類似の構造となります。
    (2)温湿度センサモジュールAM2321とLPS331使用高精度大気圧センサーモジュールのI2C通信仕様は異なるため、I2C通信手順は変更が必要です。
    (3)温湿度センサモジュールAM2321の通信手順はちょっとかわっていて、アドレス00から4バイトのデータ送信を要求するとトータル8バイトデータの返信があり、このうちの4バイトがデータとなります。
    (4)このため、送信要求のバイト数を4バイト、受信バイト数を8バイトに設定する必要があります。(ここでてこずりました!!)
    (5)再送信を繰り返した場合、タイマー周期の関係で時間切れとなる場合があります。
    (8)連続で1s周期I2C通信を行った場合、単三アルカリ乾電池を4個使用の電池寿命=2000/1.394=1434.7(h)=59.8(日)となる。
    (9)欠点としては、測定データの保存はWindowsパソコンで行うため、Windowsパソコンは連続運転が必要となる。(家庭では難しい!!)




7章:ToCoNet(トコネット)のソフトウエア開発環境(SDK) とPingPongに行く。

トップページに戻る。