So-net無料ブログ作成

Edisonに温湿度センサをつないでみる [edison]

Edisonに温湿度センサをつないでみた.
使用したのは,秋月電子で以前購入した,温湿度センサモジュールAM2321だ.
このセンサは,当初は中国語のデータシートしかなかったらしいが,今は英語のデータシートを確認することができる.
また,デジタル 温度・湿度センサー AM2321 を制御 - Neにマニュアルを日本語訳された方の情報があって,とても助かりました.

というわけで,センサの詳細は上記を参照してもらうとして...
このセンサ,買って手元に届いてから気がついたんだけど,ピン間隔が1.27mmになっていて,そのままではブレッドボードに挿せない.なので,ピンをやや曲げて間隔を広げつつ,ピンヘッダに半田付けしてやる.
半田付けがちょっと汚いが,こんな感じ.
AM2321-1.jpg
これでブレッドボードに挿せる.

さて,ではEdisonとの接続だ.
AM2321は通信モードとしてI2Cか1-Wireが選べるんだけど,今回はI2Cを使うことにした.EdisonはIntel Edison Breakout Boardを使っているので,IOは1.8Vだ.なので以前の照度センサをつないでみたときと同様に,秋月のI2Cバス用双方向電圧レベル変換モジュール(PCA9306)を経由して接続してやる.

回路図はこんな感じになる.I2Cのレベル変換モジュールはジャンパカットが必要なので注意.
当初はこんな感じで接続していたが,AE-PCA9306ではVref2側を高電圧側にするべきである.詳細は,ここのコメント欄を参照.
temperature_humidity_sensor_ng.png
なので,こちらの回路図のように接続すべきである.
temperature_humidity_sensor.png

で,接続するとこんな感じ.写真はAE-PCA9306のVref2側を低電圧側にしちゃったままのものだが,接続のイメージはつかめると思う.
AM2321-2.jpg

Arduinoで動作させてみる.スケッチは,いろんなサイトを参考にしつつ作成した.これでシリアルに温度と湿度が5秒おきに送られてくる.
#include <Wire.h>

#define I2C_AM2321_ADDRESS                0x5C
#define REGISTER_ADDRESS_HUMIDITY_HIGH    0x00
#define REGISTER_ADDRESS_HUMIDITY_LOW     0x01
#define REGISTER_ADDRESS_TEMPERATURE_HIGH 0x02
#define REGISTER_ADDRESS_TEMPERATURE_LOW  0x03
#define READ_REGISTER_LENGTH              0x04
#define FUNCTION_CODE_READ_REGISTER       0x03

enum BUFF_INDEX {
    INDEX_FUNCTION_CODE = 0,
    INDEX_RETURN_BYTE,
    INDEX_HUMIDITY_HIGH,
    INDEX_HUMIDITY_LOW,
    INDEX_TEMPERATURE_HIGH,
    INDEX_TEMPERATURE_LOW,
    INDEX_CRC_LOW,
    INDEX_CRC_HIGH,
    INDEX_MAX,
};
    
void wakeupSensor()
{
    Wire.beginTransmission(I2C_AM2321_ADDRESS);
    Wire.write(0x00);
    Wire.endTransmission();
}

void sendReadCommand()
{
    Wire.beginTransmission(I2C_AM2321_ADDRESS);
    Wire.write(FUNCTION_CODE_READ_REGISTER);
    Wire.write(REGISTER_ADDRESS_HUMIDITY_HIGH);
    Wire.write(READ_REGISTER_LENGTH);
    Wire.endTransmission();

    delayMicroseconds(1500);
}

void receiveData(byte (&buff)[INDEX_MAX])
{
    Wire.requestFrom(I2C_AM2321_ADDRESS, INDEX_MAX);
    int index = 0;
    while (Wire.available()) {
        buff[index++] = Wire.read();
    }
}

unsigned short crc16(unsigned char *ptr, int length)
{
    unsigned short crc = 0xFFFF;

    while (length--) {
        crc ^= *ptr++;
        for (int i = 0; i < 8; i++) {
            if (crc & 0x01) {
                crc >>= 1;
                crc ^= 0xA001;
            }
            else {
                crc >>= 1;
            }
        }
    }
    return crc;
}

bool checkCrc(byte (&buff)[INDEX_MAX])
{
    unsigned short crc = 0;
    crc  = buff[INDEX_CRC_LOW];
    crc |= buff[INDEX_CRC_HIGH] << 8;

    return (crc == crc16(buff, 2 + READ_REGISTER_LENGTH));
}

bool checkReceiveData(byte (&buff)[INDEX_MAX])
{
    return ( (buff[INDEX_FUNCTION_CODE] == FUNCTION_CODE_READ_REGISTER)
          && (buff[INDEX_RETURN_BYTE]   == READ_REGISTER_LENGTH) );
}

bool readAm2321(byte (&buff)[INDEX_MAX])
{
    wakeupSensor();
    sendReadCommand();
    receiveData(buff);
    if (!checkCrc(buff)) {
        return false;
    }
    return checkReceiveData(buff);
}

signed int convertHumidity(byte high, byte low)
{
    return high * 256 + low;
}

signed int convertTemperature(byte high, byte low)
{
    signed int temperature = (high & 0x7F) * 256 + low;
    temperature *= (high & 0x80) ? -1 : 1;
    return temperature;
}

void displayHumidityAndTemperature(signed int humidity, signed int temperature)
{
    Serial.print(temperature / 10);
    Serial.print(".");
    Serial.print(temperature % 10);
    Serial.print("C");
    Serial.print(", ");

    Serial.print(humidity / 10);
    Serial.print(".");
    Serial.print(humidity % 10);
    Serial.print("%");
    Serial.println();
}

void setup()
{
    Serial.begin(9600);
    Wire.begin();
}

void loop()
{
    byte buff[INDEX_MAX] = {0};
    bool result = readAm2321(buff);

    if (result == true) {
        signed int humidity = convertHumidity(buff[INDEX_HUMIDITY_HIGH],
                                              buff[INDEX_HUMIDITY_LOW]);
        signed int temperature = convertTemperature(buff[INDEX_TEMPERATURE_HIGH],
                                                    buff[INDEX_TEMPERATURE_LOW]);

        displayHumidityAndTemperature(humidity, temperature);
    }

    delay(5000);
}


このセンサはI2Cの通信シーケンスに癖があって,WakeUpが必要だったり,アドレス送信後にWaitが必要だったりする.なお、上のスケッチでは,アドレス送信後のWaitはArduinoのWireライブラリではできない(できるかもしれないがやり方が分からない)ので対応してない.

あと,ときどき,受信データByte数が0で返ってくることがある.エラーは返ってこないしCRCチェックも正常なのだが.なので,Arduino側で4Byte受信したかどうかのエラーチェックもやっている.

それから,ときどき湿度値が3%ぐらい落ち込むことがある.

センサーの湿度の値が: さとうしゅうの 日々平安 2.37
で書かれてる現象と同じっぽい.I2C通信するとき,AM2321仕様にある通信シーケンス(Wait等)を守っていないからなのかなとも思ったが,

Arduino/みんな試作機/温湿度計 - 講義のページ - MyDNS.JP
に書かれてる「動作確認-2-」の測定例を見ても湿度値が落ち込んでいるところがある.こちらはI2Cではなく1-Wireで通信した結果のようなので,通信シーケンスに問題があるのではなさそうだ.

AM2321側が何か問題があるのではないかと思うのだが,詳細はよくわからない.
まぁあまり気にしないことにする.

というわけで若干動作が怪しいところがある気がするが,お手軽に使えるのでお試しあれ.

あーでも,秋月にHDC1000使用 温湿度センサーモジュールってのがあって,こっちも試してみたい.AM2321を購入したときにはなかったんだよなぁ.こっちはピン間隔が2.54mmピッチだし,TI製だし.機会があれば試してみたいが,そんなにいくつも温湿度センサっていらないよなぁ...
nice!(2)  コメント(60)  トラックバック(0) 
共通テーマ:日記・雑感

nice! 2

コメント 60

CrbnuttefsGF

bad credit loans for military payday loans for mil - http://personalnerloan.org/ instant loans bad credit <a href=http://personalnerloan.org/>bad credit personal loans</a> ’
by CrbnuttefsGF (2017-09-21 00:54) 

BvbnfloanoNT

bad credit debt consolidation internet payday loan
<a href="http://paydayhhkl.org/">payday cash loan</a>
open online bank account
<a href=http://paydayhhkl.org/>same day payday loan</a> ’
by BvbnfloanoNT (2017-09-22 01:10) 

HhhjJidilsXR

no credit check payday loans
<a href="http://personalacrb.org/">personal loans bad credit</a>
personal loans
<a href=http://personalacrb.org/>apply personal loan</a> ’
by HhhjJidilsXR (2017-09-22 01:10) 

お名前(必須)

instant cash
<a href="http://paydaydvtb.com/">payday loans online</a>
can a payday loan garnish my wages
<a href=http://paydaydvtb.com/>same day payday loans</a> ’
by お名前(必須) (2017-09-22 06:27) 

お名前(必須)

cialis sale
<a href="http://cialisofkl.com/">online cialis</a>
cialis doses
<a href=http://cialisofkl.com/>cialis buy</a> ’
by お名前(必須) (2017-09-23 08:38) 

お名前(必須)

cialis testimonials
<a href="http://cialisovnas.com/">cialis generic</a>
cialis from canada
<a href=http://cialisovnas.com/>cialis generic</a> ’
by お名前(必須) (2017-09-23 18:07) 

お名前(必須)

does cialis work for women
<a href="http://retcialis.com/">cialis online</a>
buy brand cialis
<a href="http://retcialis.com/">buy cialis</a> ’
by お名前(必須) (2017-09-24 17:14) 

VqvqKeyncEA

cheap cialis
<a href="http://gawcialis.com/">cialis online</a>
2.5mg cialis
<a href=http://gawcialis.com/>cialis online</a> ’
by VqvqKeyncEA (2017-09-24 17:16) 

FfvgUsepleIM

free cialis
<a href="http://veucialis.com/">cialis online</a>
buy cialis uk
<a href=http://veucialis.com/>buy cialis</a> ’
by FfvgUsepleIM (2017-09-24 17:16) 

お名前(必須)

order generic cialis
<a href="http://cialiseimah.com/">buy cialis</a>
cialis 5mg reviews
<a href=http://cialiseimah.com/>generic cialis</a> ’
by お名前(必須) (2017-09-25 20:01) 

お名前(必須)

cialis reviews
<a href="http://cialisoakdm.com/">cheap cialis</a>
order cialis
<a href=http://cialisoakdm.com/>cheap cialis</a> ’
by お名前(必須) (2017-09-25 20:26) 

お名前(必須)

cialis pill looks like
<a href="http://cialisjrncd.com/">cheap cialis</a>
cialis over the counter in canada
<a href=http://cialisjrncd.com/>cheap cialis</a> ’
by お名前(必須) (2017-09-25 20:27) 

お名前(必須)

buy generic cialis in canada
<a href="http://cialiseiand.com/">cialis</a>
20 mg cialis
<a href=http://cialiseiand.com/>generic cialis</a> ’
by お名前(必須) (2017-09-26 04:11) 

VtnoFeeRSY

cialis usa - https://jrucialis.com
low dose cialis daily <a href=https://jrucialis.com>buy cialis</a> ’
by VtnoFeeRSY (2017-09-26 22:06) 

KrtpbarcomDE

discount cialis - http://haycialis.com/
cialis 20mg tablets <a href=http://haycialis.com/>cialis</a>
by KrtpbarcomDE (2017-09-26 22:06) 

お名前(必須)

cost of cialis - http://cialisivndh.com/
does generic cialis work <a href=http://cialisivndh.com/>buy cialis</a> ’
by お名前(必須) (2017-09-27 00:24) 

お名前(必須)

cialis soft tabs online - https://cialisonlin.com
cialis buy <a href=https://cialisonlin.com>buy cialis</a> ’
by お名前(必須) (2017-09-27 07:54) 

お名前(必須)

cialis without a prescription - http://cialiskanr.com
buy cialis canada <a href=http://cialiskanr.com>cialis online</a> ’
by お名前(必須) (2017-09-27 08:01) 

お名前(必須)

cialis professional uk
<a href="http://cialiseimah.com/">cialis online</a>
how cialis works
<a href=http://cialiseimah.com/>buy cialis</a> ’
by お名前(必須) (2017-09-27 15:19) 

お名前(必須)

biggest cash payday loan
<a href="https://cashrvyn.com/">cash advance america</a>
bad credit loans andnot payday loan
<a href="https://cashrvyn.com/">payday advances</a> ’
by お名前(必須) (2017-09-28 22:13) 

お名前(必須)

cash advance payday loans online
<a href="https://paydayrvjlo.com/">bad credit payday loans</a>
credit card consolidation loans
<a href=https://paydayrvjlo.com/>payday cash loan</a> ’
by お名前(必須) (2017-09-28 22:13) 

お名前(必須)

online loans
<a href="https://personalvrdcg.org/">best personal loans</a>
payday loan installment
<a href=https://personalvrdcg.org/>personal loans online</a> ’
by お名前(必須) (2017-09-29 00:28) 

お名前(必須)

bad credit payday loans uk
<a href="https://paydaytbukl.org/">cash advance loans</a>
3 month payday loans
<a href=https://paydaytbukl.org/>cash advance online</a> ’
by お名前(必須) (2017-09-29 00:41) 

LmazJidilsOU

loans online
<a href="https://paydayrvyaf.com/">cash advance lenders</a>
card consolidate credit debt
<a href=https://paydayrvyaf.com/>cash advance online</a> ’
by LmazJidilsOU (2017-09-29 06:21) 

PamefloanoYJ

credit debt management
<a href="https://installmentsvfacr.com/">get installment loan</a>
emergency personal loan
<a href=https://installmentsvfacr.com/>installments loans</a> ’
by PamefloanoYJ (2017-09-29 06:57) 

お名前(必須)

get loan bad credit
<a href="https://cashshybn.com/">cash advance lenders</a>
no credit check payday loans
<a href=https://cashshybn.com/>cash advance loan</a> ’
by お名前(必須) (2017-09-29 18:09) 

お名前(必須)

payday cash loan
<a href="https://paydaykmae.com">payday loan</a>
1 hour payday loans no faxing
<a href="https://paydaykmae.com">payday loan</a> ’
by お名前(必須) (2017-09-30 18:16) 

お名前(必須)

no credit check payday loans
<a href="https://loansonlinevaec.org">online payday loan</a>
need payday loan today
<a href=https://loansonlinevaec.org>payday loans bad credit</a> ’
by お名前(必須) (2017-09-30 18:16) 

お名前(必須)

apply credit card bad credit
<a href="https://paydayvrvi.org">cash advance loans</a>
between payday loans inc
<a href=https://paydayvrvi.org>payday loans online</a> ’
by お名前(必須) (2017-09-30 20:58) 

お名前(必須)

fast payday loans online
<a href="https://cashadvanceamericavatn.org">cash advance america</a>
bc payday loan
<a href=https://cashadvanceamericavatn.org>cash advance loans</a> ’
by お名前(必須) (2017-10-01 14:19) 

お名前(必須)

1000 no fax payday loan
<a href="https://badcreditnyrc.org">pay day loans</a>
online payday loans direct lender
<a href=https://badcreditnyrc.org>loans online</a> ’
by お名前(必須) (2017-10-01 17:09) 

お名前(必須)

how much is cialis - http://cialisivndh.com
cialis professional vs regular <a href=http://cialisivndh.com>buy cialis</a> ’
by お名前(必須) (2017-10-02 06:08) 

お名前(必須)

cialis australia - http://cialisovnnc.com/
cialis canada <a href=http://cialisovnnc.com/>cialis</a>
by お名前(必須) (2017-10-02 06:15) 

お名前(必須)

canadian payday loan companies
<a href="https://paydayllae.com/">instant payday loans</a>
are internet payday loans legal
<a href=https://paydayllae.com/>pay day loan</a> ’
by お名前(必須) (2017-10-03 21:14) 

お名前(必須)

bar none payday loans
<a href="https://cashadmme.com/">payday loan lenders</a>
cash advance loans
<a href=https://cashadmme.com/>fast payday loan</a> ’
by お名前(必須) (2017-10-03 23:56) 

お名前(必須)

between payday loans inc
<a href="https://paydayloanswwe.com/">fast payday loan</a>
apply loan bad credit
<a href=https://paydayloanswwe.com/>payday loan</a> ’
by お名前(必須) (2017-10-04 03:15) 

JtnbJidilsRF

a payday loan
<a href="https://paydayloamec.com/">payday loans online</a>
same day payday loan
<a href=https://paydayloamec.com/>cash advance online</a> ’
by JtnbJidilsRF (2017-10-04 05:30) 

お名前(必須)

best payday loan site - https://paydayllae.com/
tax debt <a href=https://paydayllae.com/>online payday loans direct lenders</a> ’
by お名前(必須) (2017-10-05 05:06) 

お名前(必須)

$1500 payday loans - https://cashadmme.com/
loans for poor credit <a href=https://cashadmme.com/>instant payday loans</a> ’
by お名前(必須) (2017-10-05 07:40) 

お名前(必須)

a payday loan - https://paydayloanswwe.com/
payday loan <a href=https://paydayloanswwe.com/>payday loan</a> ’
by お名前(必須) (2017-10-05 11:14) 

お名前(必須)

credit counseling services - https://cashecbya.com/
auto payday loans <a href=https://cashecbya.com/>payday cash loan</a> ’
by お名前(必須) (2017-10-07 03:27) 

お名前(必須)

easy payday loan online
<a href="https://paydayloawdcr.com/">payday loans near me</a>
payday advance usa
<a href="https://paydayloawdcr.com/">best payday loans</a> ’
by お名前(必須) (2017-10-08 04:35) 

???(??)

cialis sales
<a href="https://buybuybuycialis.com/">generic cialis</a>
10mg cialis
[url=https://buybuybuycialis.com/]cialis online[/url] ’
by ???(??) (2017-10-08 07:02) 

お名前(必須)

fast payday loan online
<a href="https://paydayloansrvhj.com/">get payday loan</a>
bad credit loans for military payday loans for military
<a href=https://paydayloansrvhj.com/>same day payday loans</a> ’
by お名前(必須) (2017-10-08 07:10) 

お名前(必須)

same day payday loans direct lenders
<a href="https://cashecbya.com/">best payday loans</a>
free credit check
<a href=https://cashecbya.com/>same day payday loans</a> ’
by お名前(必須) (2017-10-08 10:49) 

お名前(必須)

buy cialis soft tabs - http://buycialis-menedpil.com/
brand name cialis <a href="http://buycialis-menedpil.com/">cialis canada</a> ’
by お名前(必須) (2017-10-11 02:16) 

お名前(必須)

cialis daily cost - http://cialisonline-pricepil.com/
cialis testimonials <a href=http://cialisonline-pricepil.com/>buy cheap cialis</a> ’
by お名前(必須) (2017-10-11 05:07) 

お名前(必須)

buy cialis online canada - http://cialisonline-vipmej.com/
buying cialis <a href=http://cialisonline-vipmej.com/>cialis online without prescription</a> ’
by お名前(必須) (2017-10-11 08:10) 

AqrhdAccurlDI

20mg cialis - http://genericcialis-viaed.com/
cialis online overnight <a href=http://genericcialis-viaed.com/>cheap cialis</a> ’
by AqrhdAccurlDI (2017-10-11 11:49) 

お名前(必須)

cialis order
<a href="http://cialisonline-pricepil.com/">cheap cialis</a>
cialis free trial offer
<a href=http://cialisonline-pricepil.com/>cialis dose</a> ’
by お名前(必須) (2017-10-12 07:36) 

お名前(必須)

1 hour payday loan - https://paydayobns.com/
car title payday loan <a href="https://paydayobns.com/">payday day loans</a> ’
by お名前(必須) (2017-10-17 23:16) 

お名前(必須)

advances payday loans - https://paydayceinf.org/
car title & payday loan <a href=https://paydayceinf.org/>same day payday loan</a> ’
by お名前(必須) (2017-10-17 23:16) 

お名前(必須)

bad credit loans for military payday loans for military - https://loans24rjn.com/
canadian payday loan online <a href=https://loans24rjn.com/>payday loans online direct lenders only</a> ’
by お名前(必須) (2017-10-18 03:53) 

お名前(必須)

bad credit instant loans - https://loans7foal.com/
bad credit instant payday loan <a href=https://loans7foal.com/>payday loans online</a> ’
by お名前(必須) (2017-10-18 04:32) 

お名前(必須)

can payday loans garnish your wages - https://loanenav.net/
3 month payday loans uk <a href=https://loanenav.net/>fast payday loan</a> ’
by お名前(必須) (2017-10-18 08:03) 

KmrcnmoiptDE

debt help - https://paydaycnrs.net/
fast cash personal loans <a href=https://paydaycnrs.net/>same day payday loans</a> ’
by KmrcnmoiptDE (2017-10-18 09:10) 

SecvvelenueZO

payday advance direct lender - https://loansczne.com/
1st payday loan free <a href=https://loansczne.com/>online payday loans</a> ’
by SecvvelenueZO (2017-10-18 10:02) 

お名前(必須)

easy loans - https://loanscerj.com/
military loans <a href=https://loanscerj.com/>same day payday loans</a> ’
by お名前(必須) (2017-10-18 17:24) 

お名前(必須)

bad credit payday loans in
<a href="https://loansnerc.org/">payday loans near me</a>
checkn
<a href=https://loansnerc.org/>payday loans online</a> ’
by お名前(必須) (2017-10-20 10:15) 

お名前(必須)

cialis trial offer - http://pillsme.com/
cialis tablets side effects <a href="http://pillsme.com/">Tadalafil Online</a> ’
by お名前(必須) (2017-10-20 23:12) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。