Sensirion»‰·Ž¼“xƒZƒ“ƒT[‚ÌŽ¼“x‚ª100“‚É‚È‚éH
2016-05-09


øâ[‰æ‘œ]

Œ»Û

Weatherduino‚Æ‚¢‚¤»•i‚̃Tƒ“ƒvƒ‹ƒ‰ƒCƒuƒ‰ƒŠ‚ðƒx[ƒX‚ɃZƒ“ƒVƒŠƒIƒ“»‚ÌSHT-11‚Æ‚¢‚¤‰·Ž¼“xƒZƒ“ƒT[‚©‚ç‚̃f[ƒ^Žæ“¾‚ðs‚Á‚Ä‚¨‚è‚Ü‚µ‚½B

ƒ\[ƒXƒR[ƒh‚ð‰½“xŠm”F‚µ‚Ä‚àƒf[ƒ^ƒV[ƒg’Ê‚è‚̉‰ŽZ‚̂悤‚ÉŒ©‚¦‚é‚Ì‚ÉAŠÏ‘ªŒ‹‰Ê‚ÌŽ¼“x‚ª‚¢‚Æ‚àŠÈ’P‚É•p”É‚É100“‚É’B‚µ‚Ä‚µ‚Ü‚¤‚Ì‚Å‚·B

Weatherduino—p‚̃‰ƒCƒuƒ‰ƒŠ‚Í‚±‚¿‚ç‚©‚ç“üŽè‰Â”\‚Å‚·B

‚±‚̃Zƒ“ƒT[‚Ì“üŽè‚̓XƒgƒƒxƒŠ[ƒŠƒiƒbƒNƒX‚ª”äŠr“IˆÀ‚­‚Ä—Ç‚¢‚Å‚µ‚傤B

Weatherduino‚̃Tƒ“ƒvƒ‹ƒvƒƒOƒ‰ƒ€‚̃oƒO

‚³‚ÄA–{‘è‚Å‚·B ã‹L‚Ì›H–[‚̃Tƒ“ƒvƒ‹ƒ‰ƒCƒuƒ‰ƒŠG7Weather3.cpp‚ÌSHT-11‚̈—‚ł͈ȉº‚̉‰ŽZ•”•ª‚ª‚ ‚è‚Ü‚·B

// SHT11 ‰·“xiŽjEŽ¼“xi“jŽæ“¾
void G7Weather::get_sht11 (float *temp, float *humi) {
       unsigned short sot, sorh;
       float t, rhl, rht;
@
       // ‰·“x“Çž‚Ý
       sht_tsseq();
       sht_write(0x03);
       SHT_SDA_H;
       while (SHT_SDA); // •ÏŠ·I—¹‘Ò‹@
       sot = (unsigned short)sht_read(1) << 8;
       sot |= sht_read(1);
       sht_read(0);

       // Ž¼“x“Çž‚Ý
       sht_tsseq();
       sht_write(0x05);
       SHT_SDA_H;
       while (SHT_SDA); // •ÏŠ·I—¹‘Ò‹@
       sorh = (unsigned short)sht_read(1) << 8;
       sorh |= sht_read(1);
       sht_read(0);

       // ‰·“x•â³ 14bit (3.3V)
       sot &= 0x3fff;
       t = -39.66 + 0.01 * (float)sot;
       *temp = t;

       // Ž¼“x•â³ 12bit
       sorh &= 0x0fff;
       // rhl = -4.0 + 0.0405 * sorh + (-2.8 * 0.000001) * (sorh * sorh); // Ver.3
       rhl = -2.0468 + 0.0367 * (float)sorh + (-1.5955 / 1000000.0) * (float)(sorh * sorh); // Ver.4
       rht = (t - 25.0) * (0.01 + 0.00008 * (float)sorh) + rhl;
       if (rht > 99.0) rht = 100.0;
       *humi = rht;
}

‚±‚̈—‚Ì’†‚ł̃oƒO‚͈ȉº‚Å‚·B

(float)(sorh * sorh)

‚±‚Ì•”•ª‚¾‚¯‚Å‚·‚ËB–â‘肪‚ ‚é‚Ì‚ÍB sorh‚Æ‚¢‚¤•Ï”‚Íunsigned short‚Å—LŒø‚ȃf[ƒ^‚Í12ƒrƒbƒg•ª‚Å‚·B’P“Æ‚ÅŽg‚¤ê‡‚Í16ƒrƒbƒg‚Å\•ª‚Å‚·‚ª2æ‚·‚é‚Ɖ‰ŽZŒ‹‰Ê‚Í16ƒrƒbƒg‚Å‚Í‘«‚è‚È‚­‚È‚è‚Ü‚·B

ƒoƒOC³

‚È‚Ì‚ÅAˆÈ‰º‚̂悤‚ÉC³‚Ì•K—v‚ª‚ ‚è‚Ü‚·B

(float)((long)sorh * (long)sorh)

ŠÏ‘ªƒf[ƒ^‚Í12ƒrƒbƒg‚È‚Ì‚ÅÅ‘å’l‚Í4095‚Æ‚È‚è‚Ü‚·B ‚»‚ê‚ð2æ‚·‚é‚Æ16769025‚Æ‚È‚è16ƒrƒbƒg‚ÌÅ‘å’l‚Å‚ ‚é65535‚ð ’´‚¦‚Ä‚µ‚Ü‚Á‚Ä‚¢‚½‚킯‚Å‚·B

ˆê•ûA•„†•t‚Ìlong‚̳‚ÌÅ‘å’l‚Í2147483647‚Å‚·‚Ì‚Å\•ª‚ÉŠi”[‰Â”\‚É‚È‚è‚Ü‚·B ‚±‚ÌC³‚É‚æ‚èAŽ¼“x‚ªŠÈ’P‚É100“‚É‚È‚é–â‘è‚͉ðÁ‚µ‚Ü‚µ‚½B Œ´ˆö‰ð–¾‚É3”N‚©‚©‚è‚Ü‚µ‚½B

‚¿‚È‚Ý‚ÉAŽÊ^‚̊ÍWeatherduino‚Å‚Í‚È‚­Ž©ì•i‚Å‚·B ArduinoUno‚Æ‚Ì‘g‚݇‚킹‚ÅŽg‚Á‚Ä‚¢‚Ü‚·B

ùô[ƒn[ƒhƒEƒFƒAŠJ”­]
ùô[‘gž‚Ý]
ùô[Arduino]

øêºÒÝÄ(‘S0Œ)
ù¾ºÒÝÄ‚ð‚·‚é


ù¾‹LŽ–‚ð‘‚­
ùœ powered by ASAHIȯÄ