
{"id":5291,"date":"2016-11-17T18:31:58","date_gmt":"2016-11-17T09:31:58","guid":{"rendered":"https:\/\/okiraku-camera.tokyo\/blog\/?p=5291"},"modified":"2018-04-09T17:20:05","modified_gmt":"2018-04-09T08:20:05","slug":"%e6%b8%a9%e5%ba%a6%e3%83%bb%e6%b0%97%e5%9c%a7%e3%82%bb%e3%83%b3%e3%82%b5%e3%83%bcbmp280%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b","status":"publish","type":"post","link":"https:\/\/okiraku-camera.tokyo\/blog\/?p=5291","title":{"rendered":"\u6e29\u5ea6\u30fb\u6c17\u5727\u30bb\u30f3\u30b5\u30fcBMP280\u3092\u4f7f\u3063\u3066\u307f\u308b"},"content":{"rendered":"<h2>\u6982\u8981<\/h2>\n<p>BOSCH\u793e\u88fd\u306e\u6e29\u5ea6\u30fb\u6c17\u5727\u30bb\u30f3\u30b5\u30fc BMP280 \u3092\u7528\u3044\u305f\u3001GY-BMP280\u3068\u3044\u3046\u88fd\u54c1\u3092ESP-WROOM-02\u306b\u63a5\u7d9a\u3057\u3066\u4f7f\u3063\u3066\u307f\u305f\u3002\u30a2\u30de\u30be\u30f3\u3067230\u5186 (\u4e2d\u56fd\u5e83\u6771\u7701\u304b\u3089\u306e\u9001\u6599\u8fbc)\u3002<\/p>\n<p>\uff11\u30ab\u6708\u307b\u3069\u524d\u304b\u3089\u3001BME280\u3068\u3044\u3046\u30bb\u30f3\u30b5\u30fc\u30e2\u30b8\u30e5\u30fc\u30eb (\u3053\u3061\u3089\u306f\u6e7f\u5ea6\u3082\u6e2c\u308c\u308b) \u3092\u7528\u3044\u305f<a href=\"http:\/\/akizukidenshi.com\/catalog\/g\/gK-09421\/\">\u79cb\u6708\u96fb\u5b50\u306e\u88fd\u54c1(AE-BME280) <\/a>\u3092\u4f7f\u3063\u3066\u5ba4\u5185\u30c7\u30fc\u30bf\u306e\u6e2c\u5b9a\u3082\u884c\u3063\u3066\u3044\u308b\u304c\u3001\u4eca\u56de\u306f\u5225\u306e\u30d6\u30ec\u30c3\u30c9\u30dc\u30fc\u30c9\u306b\u56de\u8def\u3092\u7d44\u3093\u3067\u3001\u30c7\u30fc\u30bf\u3092\u3057\u3070\u3089\u304f\u6bd4\u8f03\u3057\u3066\u307f\u305f\u3002<\/p>\n<p>\u3053\u306e\u5b89\u4fa1\u306a\u30bb\u30f3\u30b5\u30fc\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u8f09\u3063\u3066\u3044\u308bBMP280\u3068\u3001\u6e7f\u5ea6\u3082\u6e2c\u308c\u308bBME280\u304a\u3088\u3073HDC1000\u3092\u4f7f\u3046\u305f\u3081\u306e\u30b9\u30b1\u30c3\u30c1\u306a\u3069\u3092\u63b2\u8f09\u3002<\/p>\n<h3>GY-BMP280<\/h3>\n<p>6\u672c\u8db3\u306e\u30d4\u30f3\u30dd\u30b9\u30c8\u3092\u30cf\u30f3\u30c0\u4ed8\u3051\u3057\u3066\u30d6\u30ec\u30c3\u30c9\u30dc\u30fc\u30c9\u306b\u3055\u3057\u3066\u307f\u305f\u3002\u4e2d\u592e\u4e0a\u3088\u308a\u306e\u9280\u8272\u306e\u56db\u89d2\u3044\u30c7\u30d0\u30a4\u30b9\u304cBMP280\u3067\u3001\u5c0f\u3055\u306a\u7a74\u304c\u958b\u3044\u3066\u3044\u308b\u306e\u304c\u5206\u304b\u308b\u3002\u3053\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u3064\u3044\u3066\u306e\u8cc7\u6599\u304c\u306a\u304b\u306a\u304b\u898b\u3064\u304b\u3089\u306a\u304b\u3063\u305f\u306e\u3067\u3001\u7b49\u4fa1\u3068\u601d\u308f\u308c\u308b\u56de\u8def\u56f3\u3082\u8d77\u3053\u3057\u3066\u307f\u305f\u3002<\/p>\n<figure id=\"attachment_5263\" aria-describedby=\"caption-attachment-5263\" style=\"width: 552px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/okiraku-camera.tokyo\/blog\/wp-content\/uploads\/2016\/11\/4e4daa79be0c0a447fbdb9027813cc67.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-5263 size-large\" src=\"https:\/\/okiraku-camera.tokyo\/blog\/wp-content\/uploads\/2016\/11\/4e4daa79be0c0a447fbdb9027813cc67-552x414.jpg\" alt=\"GY-BMP280 \u8868\u5074\" width=\"552\" height=\"414\" \/><\/a><figcaption id=\"caption-attachment-5263\" class=\"wp-caption-text\">GY-BMP280 \u8868\u5074 (\u5de6\u7aef\u306e\u30d4\u30f3\u304c#1)<\/figcaption><\/figure>\n<figure id=\"attachment_5262\" aria-describedby=\"caption-attachment-5262\" style=\"width: 552px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/okiraku-camera.tokyo\/blog\/wp-content\/uploads\/2016\/11\/c37ccab4a81147bd31408663573f14ef.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-5262 size-large\" src=\"https:\/\/okiraku-camera.tokyo\/blog\/wp-content\/uploads\/2016\/11\/c37ccab4a81147bd31408663573f14ef-552x414.jpg\" alt=\"GY-BMP280 \u88cf\u5074\" width=\"552\" height=\"414\" \/><\/a><figcaption id=\"caption-attachment-5262\" class=\"wp-caption-text\">GY-BMP280 \u88cf\u5074\u3002&#8221;P&#8221;\u5074\u304c\u30de\u30fc\u30af\u3055\u308c\u3066\u3044\u308b\u3002<\/figcaption><\/figure>\n<p>\u5b9f\u306f\u3001\u6e7f\u5ea6\u3082\u6e2c\u308c\u308bBME280\u304c\u8f09\u3063\u305f\u30e2\u30b8\u30e5\u30fc\u30eb\u3068\u52d8\u9055\u3044\u3057\u3066\u30dd\u30c1\u3063\u3068\u3057\u3066\u3057\u307e\u3063\u305f\u306e\u3060\u3051\u3069\u3001I2C\u3092\u4f7f\u3063\u305fArduino\u3084WROOM-02\u3078\u306e\u63a5\u7d9a\u3084\u6e2c\u5b9a\u306e\u305f\u3081\u306e\u30b9\u30b1\u30c3\u30c1\u306fBME\u3082BMP\u3082<strong>\u307b\u3068\u3093\u3069<\/strong>\u540c\u3058\u3060\u3063\u305f\u3002<\/p>\n<p><a href=\"https:\/\/okiraku-camera.tokyo\/blog\/wp-content\/uploads\/2016\/10\/78a36c1a778dd3988849ed8c24c5c98a.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-5101\" src=\"https:\/\/okiraku-camera.tokyo\/blog\/wp-content\/uploads\/2016\/10\/78a36c1a778dd3988849ed8c24c5c98a-552x414.jpg\" alt=\"ae-bme-280\" width=\"552\" height=\"414\" \/><\/a><\/p>\n<p>\u79cb\u6708\u96fb\u5b50\u306eAE-BME280 (\u4e0a\u56f3) \u306b\u306f\u3001SPI\u3068I2C\u306e\u3069\u3061\u3089\u3092\u4f7f\u3046\u306e\u304b\u3092\u9078\u629e\u3057\u305f\u308a\u3001I2C\u4f7f\u7528\u6642\u306e\u30a2\u30c9\u30ec\u30b9\u3092\u8a2d\u5b9a\u3059\u308b\u305f\u3081\u306e\u30b8\u30e3\u30f3\u30d1\u30a8\u30ea\u30a2\u304c\u3042\u3063\u305f\u306e\u3060\u3051\u3069\u3001GY-BMP280\u306b\u306f\u305d\u3093\u306a\u6c17\u306e\u5229\u3044\u305f\u3082\u306e\u306f\u306a\u304f\u3001BMP280\u81ea\u4f53\u306e\u30d4\u30f3\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u7d50\u7dda\u3055\u308c\u3066\u3044\u308b\u3088\u3046\u3060\u3002<\/p>\n<p><a href=\"https:\/\/okiraku-camera.tokyo\/blog\/wp-content\/uploads\/2016\/11\/GY-BMP280-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-5293\" src=\"https:\/\/okiraku-camera.tokyo\/blog\/wp-content\/uploads\/2016\/11\/GY-BMP280-1-552x345.png\" alt=\"gy-bmp280\u7b49\u4fa1\u56de\u8def\" width=\"552\" height=\"345\" \/><\/a><\/p>\n<ul>\n<li>SDO : 10k\u03a9\u3067\u30d7\u30eb\u30c0\u30a6\u30f3 (I2C\u30a2\u30c9\u30ec\u30b9 0x76\u306b\u56fa\u5b9a)<\/li>\n<li>CSB :\u00a010k\u03a9\u3067\u30d7\u30eb\u30a2\u30c3\u30d7\u3000(I2C\u63a5\u7d9a\u30e2\u30fc\u30c9\u3092\u6307\u5b9a\u3002I2C\u6642\u306f\u901a\u4fe1\u306b\u306f\u4f7f\u308f\u306a\u3044)<\/li>\n<li>SDI :\u00a010k\u03a9\u3067\u30d7\u30eb\u30a2\u30c3\u30d7 (I2C\u306eSDA\u30e9\u30a4\u30f3)<\/li>\n<li>SCK :\u00a010k\u03a9\u3067\u30d7\u30eb\u30a2\u30c3\u30d7 (I2C\u306eSCL\u30e9\u30a4\u30f3)<\/li>\n<li>VIO (VDDIO)\u306f\u30c7\u30b8\u30bf\u30eb\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u5c02\u7528\u306e\u96fb\u6e90\u3001VDD\u306f\u305d\u308c\u4ee5\u5916\u306e\u30a2\u30ca\u30ed\u30b0\u90e8\u5206\u3082\u4f7f\u3046\u96fb\u6e90\u3068\u306e\u3053\u3068\u3067\u3001\u30b7\u30d3\u30a2\u306a\u6e2c\u5b9a\u306b\u4f7f\u3046\u7528\u9014\u3067\u306f\u5206\u3051\u3066\u4e0e\u3048\u308b\u306e\u3060\u308d\u3046\u3002<\/li>\n<\/ul>\n<p>\u203b BMP280\u306e\u30c7\u30fc\u30bf\u30b7\u30fc\u30c8\u306b\u3088\u308c\u3070\u3001I2C\u63a5\u7d9a\u3092\u7528\u3044\u308b\u3068\u304d\u306b\u306fCSB\u306f\u30d7\u30eb\u30a2\u30c3\u30d7\u3067\u306f\u306a\u304f\u3001VDDIO\u306b\u76f4\u7d50\u3059\u3079\u304d\u3068\u306e\u3053\u3068\u3002\u305d\u3046\u3057\u306a\u3044\u3068\u3001\u8d77\u52d5\u6642\u306bSPI\u306b\u306a\u3063\u3066\u3057\u307e\u3046\u304b\u3082\u306d\u3001\u3068\u66f8\u3044\u3066\u3042\u308b\u3002\u305f\u3057\u304b\u306b\u3001AE-BME280\u3067\u306f\u30d7\u30eb\u30a2\u30c3\u30d7\u62b5\u6297\u306f\u5165\u3063\u3066\u3044\u306a\u304b\u3063\u305f\u3002<\/p>\n<h3>ESP-WROOM02\u3068\u306e\u63a5\u7d9a<\/h3>\n<p>\u7279\u7b46\u3059\u3079\u304d\u3053\u3068\u306f\u306a\u304f\u3066\u3001GY-BMP280\u306eVDD\u306b+3.3V\u3092\u4e0e\u3048\u3001SDA\u3092WROOM-02\u306eIO4\u306b\u3001SCL\u3092IO5\u306b\u63a5\u7d9a\u3059\u308b\u3053\u3068\u3067\u3001Wire\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u3063\u305fI2C\u901a\u4fe1\u304c\u53ef\u80fd\u306b\u306a\u308b\u3002<\/p>\n<p>AE-BME280\u3068AE-HDC1000\u3092\u8f09\u305b\u3066\u3044\u308b\u65b9\u306e\u30dc\u30fc\u30c9\u306b\u3064\u3044\u3066\u306f\u3001<a href=\"https:\/\/okiraku-camera.tokyo\/blog\/?p=5032\">\u3053\u3061\u3089\u3092\u53c2\u7167<\/a>\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u4eca\u56deBMP280\u3092\u8f09\u305b\u305f\u30dc\u30fc\u30c9\u3082\u3001\u307b\u3068\u3093\u3069\u540c\u3058\u306b\u306a\u3063\u3066\u3044\u308b\uff08\u305f\u3060\u3057\u3001\u96fb\u6c60\u99c6\u52d5\u3067\u306f\u306a\u3044\uff09\u3002<\/p>\n<h2>\u30b9\u30b1\u30c3\u30c1<\/h2>\n<p>\u30bb\u30f3\u30b5\u30fc\u3092\u4f7f\u3063\u305f\u6e2c\u5b9a\u3092\u884c\u3046\u90e8\u5206\u306b\u3064\u3044\u3066\u306f\u3001I2C\u63a5\u7d9a\u5c02\u7528\u3060\u304cBME280\u3068BMP280\u3067\u5171\u901a\u306b\u4f7f\u3048\u308bC++\u306e\u30af\u30e9\u30b9\u3068\u3057\u3066\u5b9f\u88c5\u3057\u305f\u3002\u3064\u3044\u3067\u306bHDC1000\u3092\u4f7f\u3063\u305f\u6e29\u5ea6\uff0f\u6e7f\u5ea6\u306e\u6e2c\u5b9a\u3092\u884c\u3046\u90e8\u5206\u3082\u542b\u3093\u3067\u3044\u308b\u3002\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30e1\u30a4\u30f3\u306e\u30b9\u30b1\u30c3\u30c1\u3067 #include \u3057\u3001\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4f5c\u3063\u3066\u3084\u308b\u3053\u3068\u3067\u3001\u521d\u671f\u5316\u3068\u6e2c\u5b9a\u306e\uff12\u3064\u306e\u30e1\u30bd\u30c3\u30c9\u3060\u3051\u3092\u610f\u8b58\u3059\u308c\u3070\u3088\u304f\u306a\u308b\u3002<\/p>\n<p>\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u306f\u30013\u3064\u306e\u30af\u30e9\u30b9\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u3002\u30bb\u30f3\u30b5\u30fc\u3092\u4f7f\u3044\u305f\u3044\u30b9\u30b1\u30c3\u30c1\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u7f6e\u3044\u3066\u304a\u3051\u3070\u3001Arduino IDE\u306b\u7de8\u96c6\u30d5\u30a1\u30a4\u30eb\u306e\u30bf\u30d6\u3082\u8ffd\u52a0\u3055\u308c\u308b\u306e\u3067\u3001\u624b\u76f4\u3057\u3082\u7c21\u5358\u3002BMP(E)280\u306e\u30c7\u30fc\u30bf\u30b7\u30fc\u30c8\u306b\u542b\u307e\u308c\u3066\u3044\u308b\u88dc\u6b63\u7528\u306e\u95a2\u6570\u3092\u542b\u3093\u3067\u3044\u308b\u305f\u3081\u3001\u3057\u3087\u3046\u3057\u3087\u3046\u9577\u304f\u306a\u3063\u305f\u3002<\/p>\n<pre class=\"lang:c++ decode:true\" title=\"hdc1000_bme280.h\">#include &lt;stdint.h&gt;\r\n#include \"Wire.h\"\r\nclass i2c_support\r\n{\r\nprivate:\r\n  byte i2c_address;\r\npublic:\r\n  i2c_support(byte address) {\r\n    i2c_address = address;\r\n    Wire.begin();\r\n  }\r\n\/\/ read 8bit data from pointer.\r\n  uint8_t i2c_read8(byte pointer) {\r\n    Wire.beginTransmission(i2c_address);\r\n    Wire.write(pointer);\r\n    Wire.endTransmission();\r\n    Wire.requestFrom(i2c_address,  (byte)1);\r\n    return (uint8_t)Wire.read();\r\n  }\r\n\/\/ read 16bit data from addr\/pointer. 1st MSB, 2nd LSB.\r\n  uint16_t i2c_read16(byte pointer) {\r\n    Wire.beginTransmission(i2c_address);\r\n    Wire.write(pointer);\r\n    Wire.endTransmission();\r\n    Wire.requestFrom(i2c_address,  (byte)2);\r\n    unsigned short data = Wire.read();\r\n    data &lt;&lt;= 8;\r\n    data |= Wire.read();\r\n    return data;\r\n  }\r\n\/\/ read 16bit data from addr\/pointer. 1st LSB, 2ns MSB.\r\n  uint16_t i2c_read16_swab(byte pointer) {\r\n    Wire.beginTransmission(i2c_address);\r\n    Wire.write(pointer);\r\n    Wire.endTransmission();\r\n    Wire.requestFrom(i2c_address,  (byte)2);\r\n    uint16_t lsb = (uint16_t)Wire.read();\r\n    uint16_t msb = (uint16_t)(Wire.read() &lt;&lt; 8);\r\n    return msb | lsb;\r\n  }\r\n\r\n\/\/ for HDC1000\r\n  uint32_t i2c_read32(byte pointer, int delay_ms = 0) {\r\n    Wire.beginTransmission(i2c_address);\r\n    Wire.write(pointer);  \/\/ \u3053\u306e\u30bf\u30a4\u30df\u30f3\u30b0\u3067A\/D\u5909\u63db\u304c\u958b\u59cb\u3059\u308b\u3002\r\n    Wire.endTransmission();\r\n    delay(delay_ms);\r\n    Wire.requestFrom(i2c_address,  (byte)4);\r\n    unsigned int data = Wire.read();\r\n    data &lt;&lt;= 8;\r\n    data |= Wire.read();\r\n    data &lt;&lt;= 8;\r\n    data |= Wire.read();\r\n    data &lt;&lt;= 8;\r\n    data |= Wire.read();\r\n    return data;\r\n  }\r\n\r\n  void i2c_read_burst(byte pointer, int byte_count, byte* p) {\r\n    Wire.beginTransmission(i2c_address);\r\n    Wire.write(pointer);\r\n    Wire.endTransmission();\r\n    Wire.requestFrom(i2c_address,  (byte)byte_count);\r\n    while(Wire.available() &amp;&amp; byte_count &gt; 0) {\r\n      *p++ = (byte)Wire.read();\r\n      byte_count--;\r\n    }\r\n  }\r\n\r\n  void i2c_write_reg(byte reg, byte data) {\r\n    Wire.beginTransmission(i2c_address);\r\n    Wire.write(reg);\r\n    Wire.write(data);\r\n    Wire.endTransmission();\r\n  }\r\n};\r\n\r\nclass hdc1000 : public i2c_support\r\n{\r\npublic:\r\n  hdc1000() : i2c_support(0x40) {\r\n    temp = 0.0;\r\n    humi = 0.0;\r\n  }\r\n  enum { reg_measure = 0, reg_config = 2, reg_id = 0xff };\r\n \r\n  bool init() {\r\n    i2c_write_reg(reg_config, 0x90);  \/\/ 10000001B = RESET, 32bit MODE(temp &lt;&lt; 16 + humi)\r\n    return (i2c_read16(reg_id) == 0x1000); \/\/ check device id.\r\n  }\r\n  void measure() {\r\n    uint32_t data = i2c_read32(reg_measure, 15);\r\n    temp = (float)((data &gt;&gt; 16) \/ 65536.0) * 165.0 - 40.0;\r\n    humi = (float)((data &amp; 0xffff) \/ 65536.0) * 100.0;\r\n  }\r\n  float temp;\r\n  float humi;\r\n};\r\n\r\n#ifndef BME280_S32_t\r\n#define BME280_S32_t  int32_t\r\n#endif\r\n#ifndef BME280_U32_t\r\n#define BME280_U32_t  uint32_t\r\n#endif\r\n#ifndef BME280_S64_t\r\n#define BME280_S64_t  int64_t\r\n#endif\r\n\r\nclass bme280 : public i2c_support\r\n{\r\n  bool bme280_flag;  \/\/ true : bme280, false: bmp280\r\npublic:\r\n  bme280(int address) : i2c_support(address) {\r\n    temp = 0.0;\r\n    humi = 0.0;\r\n    press = 0.0;\r\n  }\r\n  \/\/ results.\r\n  float temp;\r\n  float humi;\r\n  float press;\r\n  enum { Tmeasure = 10 };  \/\/ oversamplinkg, x1 x1 x1\r\n\/\/\/ registers.\r\n  enum { reg_id = 0xd0, reg_reset = 0xe0, reg_ctrl_hum = 0xf2, reg_ctrl_meas = 0xf4, reg_config = 0xf5 };\r\n  enum { reg_p_result = 0xf7, reg_t_result = 0xfa, reg_h_result = 0xfd };\r\n\r\n\/\/ IIR Filter disable.\r\n  bool init() {\r\n    uint8_t id = i2c_read8(reg_id); \/\/ check device-id.\r\n    if (id == 0x60)\r\n      bme280_flag = true;\r\n    else if (id == 0x58)\r\n      bme280_flag = false;\r\n    else\r\n       return false;\r\n\r\n    load_bme280_compensation_params();\r\n    i2c_write_reg(reg_config, 0); \/\/  no stand-by, no IIR filter, no SPI.\r\n    return true;\r\n  }\r\n\r\n\/\/  TEMP resolution = 16 + (osrs_t ? 1) bit, HUM resolution = 16 + (osrs_h ? 1) bit,\r\n\/\/  select forced mode.\r\n  void measure()  {\r\n    if (bme280_flag)\r\n      i2c_write_reg(reg_ctrl_hum, 1);   \/\/ humi measurement control register.00000011  (osrs_h = 1);\r\n    i2c_write_reg(reg_ctrl_meas, 0x25); \/\/ measurement control register. 00100101 (osrs_p = 1, osrs_t = 1, Forced mode);\r\n    delay(Tmeasure);\r\n    byte buffer[10];\r\n    memset(buffer, 0, sizeof(buffer));\r\n    i2c_read_burst(reg_p_result, 8, buffer);\r\n    uint32_t raw_press = ((uint32_t)buffer[0] &lt;&lt; 12) | ((uint32_t)buffer[1] &lt;&lt; 4) | (((uint32_t)buffer[2] &gt;&gt; 4) &amp; 0xf);\r\n    uint32_t raw_temp = ((uint32_t)buffer[3] &lt;&lt; 12) | ((uint32_t)buffer[4] &lt;&lt; 4) | (((uint32_t)buffer[5] &gt;&gt; 4) &amp; 0xf);\r\n    uint16_t raw_humi = ((uint16_t)buffer[6] &lt;&lt; 8) | (uint16_t)buffer[7];\r\n    \/\/ uint16_t raw_humi = i2c_read16(reg_h_result);\r\n#if 0\r\n    Serial.print(\"raw_press = \");\r\n    Serial.println(raw_press, HEX);\r\n    Serial.print(\"raw_temp = \");\r\n    Serial.println(raw_temp, HEX);\r\n    Serial.print(\"raw_humi = \");\r\n    Serial.println(raw_humi, HEX);\r\n#endif\r\n    temp = BME280_compensate_T_int32(raw_temp) \/ 100.0;\r\n    press = BME280_compensate_P_int64(raw_press) \/ 25600.0;\r\n    if (bme280_flag)\r\n      humi = bme280_compensate_H_int32(raw_humi) \/ 1024.0;\r\n    \/\/ reset.\r\n  \/\/  i2c_write_reg(reg_reset, 0xb6);\r\n  }\r\n\r\n\/\/ from BST-BME280_DS001-10.pdf Chapter4.2.3 (rev.1.1)\r\nprivate:\r\n  BME280_S32_t t_fine;\r\n\r\n\/\/ Returns temperature in DegC, resolution is 0.01 DegC. Output value of \u201c5123\u201d equals 51.23 DegC.\r\n\/\/ t_fine carries fine temperature as global value\r\n  BME280_S32_t BME280_compensate_T_int32(BME280_S32_t adc_T) {\r\n    BME280_S32_t var1, var2, T;\r\n    var1 = ((((adc_T&gt;&gt;3) - ((BME280_S32_t)dig_T1&lt;&lt;1))) * ((BME280_S32_t)dig_T2)) &gt;&gt; 11;\r\n    var2 = (((((adc_T&gt;&gt;4) - ((BME280_S32_t)dig_T1)) * ((adc_T&gt;&gt;4) - ((BME280_S32_t)dig_T1))) &gt;&gt; 12) * ((BME280_S32_t)dig_T3)) &gt;&gt; 14;\r\n    t_fine = var1 + var2;\r\n    T = (t_fine * 5 + 128) &gt;&gt; 8;\r\n    return T;\r\n  }\r\n\r\n\/\/ Returns pressure in Pa as unsigned 32 bit integer in Q24.8 format (24 integer bits and 8 fractional bits).\r\n\/\/ Output value of \u201c24674867\u201d represents 24674867\/256 = 96386.2 Pa = 963.862 hPa\r\n  BME280_U32_t BME280_compensate_P_int64(BME280_S32_t adc_P)  {\r\n    BME280_S64_t var1, var2, p;\r\n    var1 = ((BME280_S64_t)t_fine) - 128000;\r\n    var2 = var1 * var1 * (BME280_S64_t)dig_P6;\r\n    var2 = var2 + ((var1*(BME280_S64_t)dig_P5)&lt;&lt;17);\r\n    var2 = var2 + (((BME280_S64_t)dig_P4)&lt;&lt;35);\r\n    var1 = ((var1 * var1 * (BME280_S64_t)dig_P3)&gt;&gt;8) + ((var1 * (BME280_S64_t)dig_P2)&lt;&lt;12);\r\n    var1 = (((((BME280_S64_t)1)&lt;&lt;47)+var1))*((BME280_S64_t)dig_P1)&gt;&gt;33;\r\n    if (var1 == 0) {\r\n      return 0; \/\/ avoid exception caused by division by zero\r\n    }\r\n    p = 1048576 - adc_P;\r\n    p = (((p&lt;&lt;31) - var2)*3125) \/ var1;\r\n    var1 = (((BME280_S64_t)dig_P9) * (p&gt;&gt;13) * (p&gt;&gt;13)) &gt;&gt; 25;\r\n    var2 = (((BME280_S64_t)dig_P8) * p) &gt;&gt; 19;\r\n    p = ((p + var1 + var2) &gt;&gt; 8) + (((BME280_S64_t)dig_P7)&lt;&lt;4);\r\n    return (BME280_U32_t)p;\r\n  }\r\n\r\n\/\/ Returns humidity in %RH as unsigned 32 bit integer in Q22.10 format (22 integer and 10 fractional bits).\r\n\/\/ Output value of \u201c47445\u201d represents 47445\/1024 = 46.333 %RH\r\n  BME280_U32_t bme280_compensate_H_int32(BME280_S32_t adc_H)  {\r\n    BME280_S32_t v_x1_u32r;\r\n\r\n    v_x1_u32r = (t_fine - ((BME280_S32_t)76800));\r\n    v_x1_u32r = (((((adc_H &lt;&lt; 14) - (((BME280_S32_t)dig_H4) &lt;&lt; 20) - (((BME280_S32_t)dig_H5) * v_x1_u32r)) +\r\n      ((BME280_S32_t)16384)) &gt;&gt; 15) * (((((((v_x1_u32r * ((BME280_S32_t)dig_H6)) &gt;&gt; 10) * (((v_x1_u32r * \r\n      ((BME280_S32_t)dig_H3)) &gt;&gt; 11) + ((BME280_S32_t)32768))) &gt;&gt; 10) + ((BME280_S32_t)2097152)) * \r\n      ((BME280_S32_t)dig_H2) + 8192) &gt;&gt; 14));\r\n    v_x1_u32r = (v_x1_u32r - (((((v_x1_u32r &gt;&gt; 15) * (v_x1_u32r &gt;&gt; 15)) &gt;&gt; 7) * ((BME280_S32_t)dig_H1)) &gt;&gt; 4));\r\n    v_x1_u32r = (v_x1_u32r &lt; 0 ? 0 : v_x1_u32r);\r\n    v_x1_u32r = (v_x1_u32r &gt; 419430400 ? 419430400 : v_x1_u32r);\r\n    return (BME280_U32_t)(v_x1_u32r&gt;&gt;12);\r\n  }\r\n\r\n\/\/ Chapter4.2.2. Trimming parameters.\r\n  uint16_t  dig_T1;\r\n  int16_t dig_T2;\r\n  int16_t dig_T3;\r\n\r\n  uint16_t  dig_P1;\r\n  int16_t dig_P2;\r\n  int16_t dig_P3;\r\n  int16_t dig_P4;\r\n  int16_t dig_P5;\r\n  int16_t dig_P6;\r\n  int16_t dig_P7;\r\n  int16_t dig_P8;\r\n  int16_t dig_P9;\r\n\r\n  uint8_t dig_H1;\r\n  int16_t dig_H2;\r\n  uint8_t dig_H3;\r\n  int16_t dig_H4;\r\n  int16_t dig_H5;\r\n  uint8_t dig_H6;\r\n\r\n  void load_bme280_compensation_params() {\r\n    dig_T1 = i2c_read16_swab(0x88);\r\n    dig_T2 = (int16_t)i2c_read16_swab( 0x8a);\r\n    dig_T3 = (int16_t)i2c_read16_swab(0x8c);\r\n\r\n    dig_P1 = i2c_read16_swab(0x8e);\r\n    dig_P2 = (int16_t)i2c_read16_swab(0x90);\r\n    dig_P3 = (int16_t)i2c_read16_swab(0x92);\r\n    dig_P4 = (int16_t)i2c_read16_swab(0x94);\r\n    dig_P5 = (int16_t)i2c_read16_swab(0x96);\r\n    dig_P6 = (int16_t)i2c_read16_swab(0x98);\r\n    dig_P7 = (int16_t)i2c_read16_swab(0x9a);\r\n    dig_P8 = (int16_t)i2c_read16_swab(0x9c);\r\n    dig_P9 = (int16_t)i2c_read16_swab(0x9e);\r\n\r\n    if (bme280_flag) {\r\n      dig_H1 = i2c_read8(0xa1);\r\n      dig_H2 = (int16_t)i2c_read16_swab(0xe1);\r\n      dig_H3 = i2c_read8(0xe3);\r\n      uint16_t _e4 = (uint16_t)i2c_read8(0xe4);\r\n      uint16_t _e5 = (uint16_t)i2c_read8(0xe5);\r\n      uint16_t _e6 = (uint16_t)i2c_read8(0xe6);\r\n      dig_H4 = (int16_t)((_e4 &lt;&lt; 4) + (_e5 &amp; 0xf));\r\n      dig_H5 = (int16_t)((_e6 &lt;&lt; 4) + ((_e5 &gt;&gt; 4) &amp; 0xf));\r\n      dig_H6 = (int16_t)i2c_read8(0xe7);\r\n    }\r\n  }\r\n};\r\n<\/pre>\n<h3><em>class i2c_support<\/em><\/h3>\n<p>Wire\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u3063\u3066I2C\u3067\u306e\u30c7\u30fc\u30bf\u901a\u4fe1\u3092\u884c\u3046\u3002I2C\u63a5\u7d9a\u3059\u308b\u30bb\u30f3\u30b5\u30fc\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u4f7f\u3046\u3068\u304d\u306b\u5171\u901a\u3068\u306a\u308b\u90e8\u5206\u3092\u307e\u3068\u3081\u3066\u304a\u308a\u57fa\u672c\u30af\u30e9\u30b9\u3068\u3057\u3066\u7528\u3044\u308b\u3053\u3068\u3092\u610f\u56f3\u3057\u305f\u3002stdint.h \u3092\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u3057\u3001uint8_t\u3084uint16_t \u3068\u3044\u3063\u305f\u30d0\u30a4\u30c8\u6570\u3092\u610f\u8b58\u3057\u305f\u30c7\u30fc\u30bf\u578b\u3092\u4f7f\u3063\u3066\u3044\u308b\u3002<\/p>\n<h3><em>class hdc1000<\/em><\/h3>\n<p>HDC1000\u3068\u306e\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3092\u3068\u308b\u305f\u3081\u306e\u30af\u30e9\u30b9\u3067\u3001<em>i2c_support<\/em> \u306e\u30b5\u30d6\u30af\u30e9\u30b9\u3068\u3057\u3066\u3044\u308b\u3002I2C\u7528\u306e\u30ec\u30b8\u30b9\u30bf\u306e\u69cb\u6210\u3084\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u4f7f\u3044\u65b9\u306b\u3064\u3044\u3066\u306f\u3001<a href=\"http:\/\/akizukidenshi.com\/download\/ds\/akizuki\/AE-HDC1000.pdf\">\u79cb\u6708\u96fb\u5b50\u306e\u53d6\u6271\u8aac\u660e\u66f8<\/a>\u3084TI\u793e\u306e<a href=\"http:\/\/akizukidenshi.com\/download\/ds\/ti\/hdc1000.pdf\">\u30c7\u30fc\u30bf\u30b7\u30fc\u30c8<\/a>\u3092\u53c2\u8003\u306b\u3057\u305f\u3002<\/p>\n<h4><em>init()<\/em><\/h4>\n<p>CONFIG\u30ec\u30b8\u30b9\u30bf\u306b 0x90 \u3092\u66f8\u304d\u8fbc\u3080\u3053\u3068\u3067\u3001<\/p>\n<ul>\n<li>\u30ea\u30bb\u30c3\u30c8<\/li>\n<li>\u6e29\u5ea6\u3001\u6e7f\u5ea6\u3068\u3082\u306b\u6e2c\u5b9a\u5206\u89e3\u80fd14\u30d3\u30c3\u30c8<\/li>\n<li>\u6e29\u5ea6\u3001\u6e7f\u5ea6\u4e00\u62ec\u6e2c\u5b9a\u3001\u4e00\u62ec\u53d7\u4fe1 (mode = 1)\u3092\u6307\u5b9a<\/li>\n<li>\u30c7\u30d0\u30a4\u30b9ID\u3092\u30c1\u30a7\u30c3\u30af<\/li>\n<\/ul>\n<p>\u3092\u5b9f\u884c\u3002\u610f\u56f3\u901a\u308a\u306e\u30c7\u30d0\u30a4\u30b9ID\u304c\u5f97\u3089\u308c\u308c\u3070 true \u3092\u8fd4\u3059\u3002<\/p>\n<h4><em>measure()<\/em><\/h4>\n<p>\u6e29\u5ea6\u3068\u6e7f\u5ea6\u306e\u6e2c\u5b9a\u3092\u884c\u3044\u3001\u7d50\u679c\u3092\u683c\u7d0d\u3059\u308b\u3002<\/p>\n<p>\u6e2c\u5b9a\u958b\u59cb\u3068\u7d50\u679c\u306e\u8aad\u51fa\u3057\u306f\u3001\u57fa\u672c\u30af\u30e9\u30b9\u306e\u00a0i2c_read32() \u5185\u3067\u884c\u3063\u3066\u3044\u308b\u3002\u6e2c\u5b9a\u306f\u6e29\u5ea6\u30ec\u30b8\u30b9\u30bf\u306e\u6307\u5b9a ( <em>Wire.write(pointer)<\/em>\u00a0) \u3067\u958b\u59cb\u3059\u308b\u304c\u300114\u30d3\u30c3\u30c8\u5206\u89e3\u80fd\u3067\u306e\u6e2c\u5b9a\u306b\u306f\u6e29\u5ea6\u304c6.35msec\u3001\u6e7f\u5ea6\u304c6.5msec\u304b\u304b\u308b\u3002\u306a\u306e\u3067\u7d50\u679c\u306e\u8aad\u51fa\u3057 ( <em>Wire.read()<\/em>\u00a0) \u307e\u3067\u306b15msec\u306e\u00a0<em>delay()<\/em>\u00a0\u3092\u7f6e\u3044\u3066\u3044\u308b\u3002delay() \u306e\u5f8c\u30014\u30d0\u30a4\u30c8\u3092\u7acb\u3066\u7d9a\u3051\u306b\u8aad\u307f\u51fa\u3057\u306632\u30d3\u30c3\u30c8\u306e uint32_t \u306e\u5024\u306b\u7d44\u307f\u7acb\u3066\u3066\u304b\u3089\u30ea\u30bf\u30fc\u30f3\u3057\u3066\u3044\u308b\u3002<\/p>\n<p>\u5f97\u3089\u308c\u305f32\u30d3\u30c3\u30c8\u5024\u306e\u4e0a\u4f4d16\u30d3\u30c3\u30c8\u5206\u304c\u6e29\u5ea6\u3001\u4e0b\u4f4d16\u30d3\u30c3\u30c8\u5206\u304c\u6e7f\u5ea6\u306b\u306a\u308b\u306e\u3067\u3001\u304a\u306e\u304a\u306e\u3092\u30c7\u30fc\u30bf\u30b7\u30fc\u30c8\u6307\u5b9a\u306e\u65b9\u6cd5\u3067\u5909\u63db\u3057\u305f\u306e\u3061\u306b\u5909\u6570\u306b\u683c\u7d0d\u3057\u3066\u3044\u308b\u3002<\/p>\n<p>HDC1000\u306e\u96fb\u6e90\u6295\u5165\u6642\u306e\u30b9\u30bf\u30fc\u30c8\u30a2\u30c3\u30d7\u6642\u9593\u306f\u6700\u592715msec\u3068\u306a\u3063\u3066\u3044\u308b\u3002\u30e1\u30a4\u30f3\u306e\u30b9\u30b1\u30c3\u30c1\u306e setup(); \u306e\u6700\u521d\u306b\u9069\u5b9c delay() \u3092\u5165\u308c\u3066\u304a\u3051\u3070\u3088\u3044\u3060\u308d\u3046\u3002\u307e\u305f\u3001HDC1000\u306f\u96fb\u6e90\u6295\u5165\u6642\u304b\u3089\u30b9\u30ea\u30fc\u30d7\u30e2\u30fc\u30c9\u306b\u5165\u308a\u3001\u6e2c\u5b9a\u4e2d\u306e\u307f\u6e2c\u5b9a\u30e2\u30fc\u30c9\u3068\u306a\u308b\u3002\u305d\u3057\u3066\u6e2c\u5b9a\u304c\u7d42\u4e86\u3057\u3066\u7d50\u679c\u3092\u30ec\u30b8\u30b9\u30bf\u306b\u683c\u7d0d\u3059\u308b\u3068\u3001\u3075\u305f\u305f\u3073\u30b9\u30ea\u30fc\u30d7\u30e2\u30fc\u30c9\u306b\u623b\u308b\u3002\u30b9\u30ea\u30fc\u30d7\u30e2\u30fc\u30c9\u4e2d\u3082\u3001I2C\u3092\u4ecb\u3057\u305f\u30ec\u30b8\u30b9\u30bf\u306e\u8aad\u51fa\u3057\u3084\u66f8\u8fbc\u307f\u306f\u53ef\u80fd\u3068\u306e\u3053\u3068\u3002<\/p>\n<p>HDC1000\u306e\u6e2c\u5b9a\u7cbe\u5ea6\u306f\u3001\u6e29\u5ea6\u304c\u00b10.3\u2103\u3001\u76f8\u5bfe\u6e7f\u5ea6\u304c\u00b13%\u3067\u3042\u308b\u3002<\/p>\n<h3><em>class bme280<\/em><\/h3>\n<p>BME(P)280\u3068\u306e\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3092\u3068\u308b\u305f\u3081\u306e\u30af\u30e9\u30b9\u3067\u3001\u3084\u306f\u308a\u00a0<em>i2c_support<\/em> \u306e\u30b5\u30d6\u30af\u30e9\u30b9\u3068\u3057\u3066\u3044\u308b\u3002\u3055\u307e\u3056\u307e\u306a\u9805\u76ee\u306b\u3064\u3044\u3066\u00a0<strong>Bosch Sensortec<\/strong>\u793e\u306e\u00a0<a href=\"http:\/\/akizukidenshi.com\/download\/ds\/ti\/hdc1000.pdf\"><strong><em>BME280<br \/>\nCombined humidity and pressure sensor (rev1.1, BST-BME280-DS001-10)<\/em><\/strong><\/a>\u00a0 \u304a\u3088\u3073\u00a0<em><strong>BMP280<\/strong><\/em><br \/>\n<em><strong>Digital Pressure Sensor (rev1.15, BST-BMP280-DS001-12)<\/strong> <\/em>\u00a0\u3092\u53c2\u8003\u306b\u3057\u305f\u3002<\/p>\n<p>\u3053\u308c\u3089\u306e\u30bb\u30f3\u30b5\u30fc\u30e2\u30b8\u30e5\u30fc\u30eb\u3067\u306f\u3001I2C\u3092\u4ecb\u3057\u3066\u5f97\u3089\u308c\u308b\u751f\u30c7\u30fc\u30bf\u3092\u3001\u30c7\u30fc\u30bf\u30b7\u30fc\u30c8\u306b\u8a18\u8f09\u3055\u308c\u3066\u3044\u308b\u3084\u3084\u3053\u3057\u3044\u88dc\u6b63\u95a2\u6570\u306b\u304b\u3051\u3066\u6e2c\u5b9a\u7d50\u679c\u3092\u5f97\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<em>init()<\/em> \u306b\u304a\u3044\u3066\u88dc\u6b63\u95a2\u6570\u306e\u5b9f\u884c\u306e\u305f\u3081\u306b\u5fc5\u8981\u306a\u5b9a\u6570\u7fa4\u3092\u00a0<em>load_bme280_compensation_params()<\/em>\u00a0\u306e\u547c\u51fa\u3057\u306b\u3088\u308a\u8aad\u307f\u51fa\u3057\u3066\u3044\u308b\u3002\u88dc\u6b63\u95a2\u6570\u306b\u3064\u3044\u3066\u306f\u3001BME280\u306e\u30c7\u30fc\u30bf\u30b7\u30fc\u30c8\u306e\u00a0<strong><em>Chapter\u00a04.2.3 Compensation formulas<\/em><\/strong> \u306b\u8a18\u8f09\u3055\u308c\u3066\u3044\u308b64\u30d3\u30c3\u30c8\u6574\u6570\u3092\u4f7f\u3063\u305f\u56fa\u5b9a\u5c0f\u6570\u70b9\u30d0\u30fc\u30b8\u30e7\u30f3\u3092<span style=\"text-decoration: underline;\">\u305d\u306e\u307e\u307e\uff08\u30b3\u30d4\u30da\u3067\uff09\u5229\u7528\u3059\u308b<\/span>\u3053\u3068\u3068\u3057\u3001\u305d\u306e\u4e2d\u3067\u4f7f\u308f\u308c\u3066\u3044\u308b\u30c7\u30fc\u30bf\u578b\u306b\u3064\u3044\u3066\u3082\u30de\u30af\u30ed (#define) \u3067\u5b9a\u7fa9\u3057\u305f\u3002<\/p>\n<p>BMP280\u306e\u30c7\u30fc\u30bf\u30b7\u30fc\u30c8\u3068\u898b\u6bd4\u3079\u305f\u9650\u308a\u3067\u306f\u3001BMP\u5074\u306b\u6e7f\u5ea6\u95a2\u9023\u306e\u9805\u76ee\u304c\u306a\u3044\u4ee5\u5916\u306e\u76f8\u9055\u304c\u898b\u3089\u308c\u306a\u304b\u3063\u305f\u306e\u3067\u3001BME280\u306e\u30c7\u30fc\u30bf\u30b7\u30fc\u30c8\u306b\u57fa\u3065\u3044\u3066\u4f5c\u6210\u3057\u305f\u3002\u898b\u843d\u3068\u3057\u304c\u3042\u308b\u304b\u3082\u3057\u308c\u306a\u3044\u304c\u3002<\/p>\n<h4><em>\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf \u00a0bme280( int address )<\/em><\/h4>\n<p>I2C\u30a2\u30c9\u30ec\u30b9\u3092\u5909\u66f4\u53ef\u80fd\u306a\u306e\u3067\u5f15\u6570\u3068\u3057\u3066\u30a2\u30c9\u30ec\u30b9\u3092\u3068\u308b\u3088\u3046\u306b\u3057\u305f\u3002<\/p>\n<h4><em>init()<\/em><\/h4>\n<p>BME(P)280\u306e\u30b9\u30bf\u30fc\u30c8\u30a2\u30c3\u30d7\u6642\u9593\u306f2msec\u306a\u306e\u3067\u3001\u5fc5\u8981\u306a\u3089\u3070setup() \u306e\u6700\u521d\u306bdelay() \u3092\u7f6e\u304f\u3053\u3068\u306b\u306a\u308b\u304c\u3001HDC1000\u306b\u6bd4\u3079\u308b\u3068\u5341\u5206\u306b\u77ed\u3044\u3002<\/p>\n<p>\u307e\u305a\u306f\u30c7\u30d0\u30a4\u30b9\u304c\u8fd4\u3059ID\u5024\u3092\u8aad\u307f\u53d6\u308a\u3001BMP\u3068BME\u306e\u5207\u308a\u5206\u3051\u3092\u884c\u3063\u3066\u3044\u308b\u3002\u3044\u305a\u308c\u3067\u3082\u306a\u3051\u308c\u3070\u914d\u7dda\u30df\u30b9\u304b\u3001\u30c7\u30d0\u30a4\u30b9\u304c\u306a\u3044\u3068\u3044\u3046\u3053\u3068\u3067\u3001false\u3092\u30ea\u30bf\u30fc\u30f3\u3059\u308b\u3002<\/p>\n<p>\u6b21\u306b\u3001\u6e29\u5ea6\u3001\u6c17\u5727\u3001\u6e7f\u5ea6\u3092\u88dc\u6b63\u3059\u308b\u305f\u3081\u306e\u5b9a\u6570\u3092\u30c7\u30d0\u30a4\u30b9\u304b\u3089\u8aad\u307f\u51fa\u3057\u3066\u3044\u308b\u3002\u30c7\u30d0\u30a4\u30b9ID\u304a\u3088\u3073\u88dc\u6b63\u7528\u5b9a\u6570\u306e\u8aad\u51fa\u3057\u306f\u3001\u30c7\u30d0\u30a4\u30b9\u304c\u30b9\u30ea\u30fc\u30d7\u30e2\u30fc\u30c9\uff08\u30d1\u30ef\u30fc\u30aa\u30f3\u5f8c\u306e\u30b9\u30bf\u30fc\u30c8\u30a2\u30c3\u30d7\u6642\u9593\u7d4c\u904e\u5f8c\uff09\u3067\u3042\u3063\u3066\u3082\u53ef\u80fd\u3068\u306e\u3053\u3068\u3002<\/p>\n<p>\u305d\u3057\u3066\u3001CONFIG\u30ec\u30b8\u30b9\u30bf(0xf5) \u306b0\u3092\u66f8\u304f\u3053\u3068\u3067\u3001\u6e2c\u5b9a\u9593\u306e\u30b9\u30bf\u30f3\u30d0\u30a4\u7121\u3057\uff08\u5358\u767a\u30e2\u30fc\u30c9\uff09\u3001IIR\u30d5\u30a3\u30eb\u30bf\u30fc\u3082\u7121\u3057\u3068\u3057\u3066\u3044\u308b\u3002\u3053\u306e\u6642\u70b9\u3067\u306f\u3001\u307e\u3060\u6e2c\u5b9a\u306f\u958b\u59cb\u3057\u3066\u3044\u306a\u3044\u3002<\/p>\n<h4><em>measure()<\/em><\/h4>\n<p>\u6e29\u5ea6\u3001\u6c17\u5727\u3068\u6e7f\u5ea6(BME\u306e\u307f)\u306e\u6e2c\u5b9a\u3092\u884c\u3044\u3001\u7d50\u679c\u3092\u683c\u7d0d\u3059\u308b\u3002\u307e\u305a\u306f\u6e2c\u5b9a\u5185\u5bb9\u3092\u8a2d\u5b9a\u3059\u308b\u305f\u3081\u306b\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u3053\u3068\u3092\u3084\u3063\u3066\u3044\u308b\u3002<\/p>\n<ul>\n<li>BME\u306a\u3089\u3070\u3001\u6e7f\u5ea6\u6e2c\u5b9a\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30ec\u30b8\u30b9\u30bf (0xf2 ) \u306b1\u3092\u66f8\u304f\u3053\u3068\u3067\u3001\u6e7f\u5ea6\u6e2c\u5b9a\u6642\u306e\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0\u56de\u6570\u30921\u56de\u306b\u3002<\/li>\n<li>\u6e2c\u5b9a\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30ec\u30b8\u30b9\u30bf\uff080xf4 ) \u306b0x25 ( 00100101B) \u3092\u66f8\u304f\u3053\u3068\u3067\u3001\u6e29\u5ea6\u3068\u6c17\u5727\u306e\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0\u56de\u6570\u3092\u54041\u56de\u3068\u3057\u3001\u6e2c\u5b9a\u30e2\u30fc\u30c9\u3092\u5358\u767a\u306e forced mode\u306b\u3002\u3053\u306e\u66f8\u8fbc\u307f\u306b\u3088\u308a\u3001\u6e2c\u5b9a\uff08\u30b5\u30f3\u30d7\u30eb\u3068A\/D\u5909\u63db\uff09\u304c\u958b\u59cb\u3059\u308b\u3002<\/li>\n<\/ul>\n<p>\u30c7\u30d0\u30a4\u30b9\u306f\u3001\u5185\u90e8\u3067A\/D\u5909\u63db\u304c\u7d42\u4e86\u3059\u308b\u3068\u7d50\u679c\u3092\u30c7\u30fc\u30bf\u30ec\u30b8\u30b9\u30bf\u306b\u683c\u7d0d\u3057\u30b9\u30ea\u30fc\u30d7\u72b6\u614b\u306b\u623b\u308b\uff08\u30c7\u30fc\u30bf\u306e\u8aad\u51fa\u3057\u306f\u53ef\u80fd\uff09\u3002\u3053\u306e\u30e1\u30bd\u30c3\u30c9\u5185\u3067\u306f\u3001\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0\u56de\u6570\u306b\u57fa\u3065\u3044\u3066\u5f97\u3089\u308c\u308b\u6e2c\u5b9a\u6642\u9593 (<em>Tmeasure )\u00a0<\/em>\u3060\u3051 <em>delay()<\/em>\u00a0\u3092\u304a\u3044\u3066\u3044\u308b\u3002<\/p>\n<p><em>Tmeasure(max) = 1.25 + [2.3 \u00d7T_oversampling] + [2.3\u00d7P_oversampling + 0.575] +\u00a0[2.3\u00d7H_oversampling + 0.575]<\/em><\/p>\n<p>3\u7a2e\u985e\u306e\u6e2c\u5b9a\u5bfe\u8c61\u306e\u30aa\u30fc\u30d0\u30fc\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0\u5024\u3068\u3057\u3066001B(1)\u3092\u8a2d\u5b9a\u3057\u3066\u3044\u308b\u304b\u3089\u3001\u00a0<em>1.25 \u00a0+ (2.3 \u00d7 1) + (2.3 \u00d7 1 + 0.575) +\u00a0(2.3 \u00d7 1 + 0.575)\u00a0<\/em><em>= \u00a09.3msec (max)<\/em>\u00a0 \u3068\u306a\u308b(BME280\u306e\u5834\u5408\uff09\u3002BMP280\u3067\u306f\u3001\u6e29\u5ea6\u3068\u6c17\u5727\u3092\u6e2c\u5b9a\u3057\u3066\u6700\u59276.4msec\u3068\u660e\u8a18\u3055\u308c\u3066\u304a\u308a\u3001\u4e0a\u5f0f\u306e\u6e7f\u5ea6\u306e\u9805\u3092\u7121\u3057\u306b\u3057\u305f\u306e\u3068\u540c\u3058\u3002<\/p>\n<p>delay()\u306e\u5f8c\u306b<em>i2c_read_burst()<\/em> \u3092\u4f7f\u3063\u3066\u7d50\u679c\u3092\u8aad\u307f\u51fa\u3059\u3002\u5727\u529b(20\u30d3\u30c3\u30c8)\u3001\u6e29\u5ea6(20\u30d3\u30c3\u30c8)\u3001\u6e7f\u5ea6(16\u30d3\u30c3\u30c8)\u306e\u5404\u5909\u63db\u7d50\u679c\u306f\u3001\u00a00xf7\u3067\u793a\u3055\u308c\u308b\u30ec\u30b8\u30b9\u30bf\u304b\u30898\u30d0\u30a4\u30c8\u9023\u7d9a\u3057\u3066\u683c\u7d0d\u3055\u308c\u3066\u3044\u308b\u306e\u3067\u3001\u4e00\u5ea6\u306b\u8aad\u307f\u51fa\u3057\u3066\u304b\u3089\u5909\u6570\u306b\u5206\u3051\u3001\u88dc\u6b63\u7528\u306e\u95a2\u6570\u306b\u304b\u3051\u3066\u6e2c\u5b9a\u7d50\u679c\u3068\u3057\u3066\u5909\u6570\u306b\u683c\u7d0d\u3057\u3066\u3044\u308b\u3002<\/p>\n<h4>\u88dc\u6b63\u7528\u306e\u95a2\u6570<\/h4>\n<ul>\n<li><em>BME280_compensate_T_int32()<\/em><\/li>\n<li><em>BME280_compensate_P_int64()<\/em><\/li>\n<li><em>bme280_compensate_H_int32()<\/em><\/li>\n<\/ul>\n<p>\u3053\u308c\u3089\u306b\u306b\u3064\u3044\u3066\u306f\u3001\u30c7\u30fc\u30bf\u30b7\u30fc\u30c8\u306b\u8a18\u8f09\u3055\u308c\u3066\u3044\u308b\u5185\u5bb9\u3092\u305d\u306e\u307e\u307e\u30b3\u30d4\u30da\u3057\u3066\u4f7f\u3063\u3066\u3044\u308b\u3002\u305f\u3076\u3093\u3046\u307e\u304f\u52d5\u3044\u3066\u3044\u308b\u306e\u3060\u308d\u3046\u3002\u305f\u3060\u6700\u521d\u306b\u6e29\u5ea6\u306e\u88dc\u6b63\u3092\u884c\u308f\u306a\u3044\u3068\u3001\u6c17\u5727\u304a\u3088\u3073\u6e7f\u5ea6\u306e\u88dc\u6b63\u3067\u4f7f\u3063\u3066\u3044\u308b\u00a0<em>t_fine<\/em>\u00a0\u304c\u4e0d\u5b9a\u3068\u306a\u308b\u3053\u3068\u306b\u6ce8\u610f\u3002<\/p>\n<p>\u306a\u304a\u3001\u5404\u6e2c\u5b9a\u7cbe\u5ea6\u306f\u3001<\/p>\n<ul>\n<li>\u6e29\u5ea6 :\u00a0\u00b11.0\u2103<\/li>\n<li>\u6c17\u5727 :\u00a0\u00b11.0hPA<\/li>\n<li>\u6e7f\u5ea6 :\u00a0\u00b13% (BME280)<\/li>\n<\/ul>\n<p>\u3068\u306e\u3053\u3068\u3002<\/p>\n<h3>\u30e1\u30a4\u30f3\u5074\u306e\u30b9\u30b1\u30c3\u30c1<\/h3>\n<p>\u4ee5\u524d\u3001<a href=\"https:\/\/okiraku-camera.tokyo\/blog\/?p=4738\">HDC1000\u3092\u4f7f\u3063\u305f\u3068\u304d\u306e\u30b3\u30fc\u30c9<\/a>\u3068\u307b\u3068\u3093\u3069\u540c\u3058\u306a\u306e\u3067\u3001\u6982\u8981\u306e\u307f\u3092\u793a\u3059\u3002<\/p>\n<pre class=\"lang:default decode:true\" title=\"ESP_BMP280\">#include &lt;ESP8266WiFi.h&gt;\r\n#include \"hdc1000_bme280.h\"\r\nextern \"C\" {\r\n  #include \"user_interface.h\"\r\n}\r\n#define START_MSG \"\\n\" + String(__FILE__) + \" start.\"\r\n#define LED1 15\r\n#define MEASURE_INTERVAL_SECONDS  300\r\n\r\nbme280 bmp280(0x76);\r\n\r\n\/\/ wifi\r\nconst char* ssid = \"ssid\";\r\nconst char* password = \"password\";\r\nconst char* remote_host = \"192.168.1.1\";\r\n\r\nvoid die(int msec, const char* cp) {\r\n\/\/ LED\u3092\u70b9\u6ec5\u3055\u305b\u308b\u7121\u9650\u30eb\u30fc\u30d7\r\n}\r\n\r\nvoid deep_sleep(int seconds) {\r\n  ESP.deepSleep(seconds * 1000 * 1000, WAKE_RF_DEFAULT);\r\n  delay(10);\r\n}\r\nbool ap_connect() {\r\n  WiFi.mode(WIFI_STA);\r\n  WiFi.begin(ssid, password); \r\n\/\/\r\n\/\/ \u30b9\u30c6\u30fc\u30bf\u30b9\u3092\u898b\u3066\u63a5\u7d9a\u3059\u308b\u307e\u3067\u5f85\u3064\u304b\u3001\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u3057\u305f\u3089false\u3092\u8fd4\u3059\u3002\r\n\/\/\r\n  return true;\r\n}\r\n\r\nvoid ap_disconnect() {\r\n  WiFi.disconnect();\r\n}\r\n\r\n\/\/ http\u30ea\u30af\u30a8\u30b9\u30c8(GET)\u3067\u6e2c\u5b9a\u30c7\u30fc\u30bf\u3092\u6295\u3052\u308b\u3002\r\nbool wifi_send_data(float temp, float humi, float bpress) {\r\n  WiFiClient client;\r\n  if (!client.connect(remote_host, 80))\r\n    return false;\r\n  String request = \"\/data\/store_room_data.php?point_id=\" + WiFi.macAddress() + \"&amp;T=\" + String(temp) + \"&amp;H=\" + String(humi) + \r\n      \"&amp;P=\" + String(bpress);\r\n  String req_line = \"GET \" + request + \" HTTP\/1.1\\r\\nHost: \" + String(remote_host) + \"\\r\\nConnection: close\\r\\n\\r\\n\";\r\n  client.print(req_line);\r\n\/\/ \u3053\u3053\u3067\u3001\u30ea\u30e2\u30fc\u30c8\u30db\u30b9\u30c8\u304b\u3089\u306e\u5fdc\u7b54\u3092\u5f85\u3064\u3002\r\n  return true;  \r\n}\r\n\r\nvoid setup() {\r\n  delay(50);\r\n  Serial.begin(115200);\r\n  Serial.println(START_MSG);\r\n  \r\n  pinMode(LED1, OUTPUT);\r\n  digitalWrite(LED1, 1);\r\n  if (!bmp280.init())\r\n    die(500, \"FATAL: BMP280 init failed.\");\r\n}\r\n\r\nvoid loop() {\r\n  if (!ap_connect()) {\r\n      deep_sleep(30);  \/\/ restart after a  while.\r\n      return;\r\n  }\r\n  bmp280.measure();\r\n  Serial.println(\"\\nPa = \" + String(bmp280.press) + \", Temp = \" + String(bmp280.temp) );\r\n  wifi_send_data(bmp280.temp, 0, bmp280.press);\r\n  ap_disconnect();\r\n  deep_sleep(MEASURE_INTERVAL_SECONDS);\r\n  delay(5000);\r\n}\r\n<\/pre>\n<h4>\u51e6\u7406\u306e\u6d41\u308c<\/h4>\n<ul>\n<li>ESP-WROOM-02\u306b\u96fb\u6e90\u304c\u4e0e\u3048\u3089\u308c\u308b\u304b\u30ea\u30bb\u30c3\u30c8\u304c\u30a2\u30b5\u30fc\u30c8\u3055\u308c\u308b\u304b\u3057\u3066\u30d7\u30ed\u30b0\u30e9\u30e0\u304c\u958b\u59cb\u3059\u308b\u3068\u3001\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u751f\u6210\uff5esetup()\u304c\u884c\u308f\u308c\u3001\u3059\u3050\u306b\u6e2c\u5b9a\u304c\u5b9f\u65bd\u3055\u308c\u308b\u3002<\/li>\n<li>\u6e2c\u5b9a\u30c7\u30fc\u30bf\u3092WEB\u30b5\u30fc\u30d0\u30fc\u306b\u6295\u3052\u305f\u3089\u3001\u3059\u3050\u306b\u30c7\u30a3\u30fc\u30d7\u30b9\u30ea\u30fc\u30d7\u3092\u958b\u59cb\u3059\u308b\u3002<\/li>\n<li>\u30c7\u30a3\u30fc\u30d7\u30b9\u30ea\u30fc\u30d7\u30bf\u30a4\u30de\u30fc\u306b\u3088\u308a\u3001\u6307\u5b9a\u6642\u523b\u5f8c\u306b\u30ea\u30bb\u30c3\u30c8\u304c\u304b\u304b\u308a\u3001\u6700\u521d\u306b\u623b\u308b\u3002\u73fe\u5728\u306e\u3068\u3053\u308d\u30015\u5206\u9593\u304a\u304d\u306b\u6e2c\u5b9a\u3057\u3066\u3044\u308b\u3002<\/li>\n<\/ul>\n<h4>bme280 bmp280(0x76);<\/h4>\n<p>I2C\u30a2\u30c9\u30ec\u30b9\u3092\u6307\u5b9a\u3057\u3001bmp280\u3068\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3059\u308b\u305f\u3081\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u751f\u6210\u3059\u308b\u3002<\/p>\n<h4>wifi_send_data()<\/h4>\n<p>\u6e29\u5ea6\u3001\u6e7f\u5ea6\u3001\u6c17\u5727\u306e\u5404\u6e2c\u5b9a\u5024\u3092\u3001GET\u30ea\u30af\u30a8\u30b9\u30c8\u3067\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u4e0a\u306eWEB\u30b5\u30fc\u30d0\u30fc\u306b\u6295\u3052\u308b\u3002\u30b5\u30fc\u30d0\u30fc\u5074\u3067\u306fPHP\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u53d7\u3051\u53d6\u308a\u3001MySQL\u306b\u683c\u7d0d\u3057\u3066\u3044\u308b\u3002MySQL\u306bINSERT\u3092\u884c\u3046\u3068\u304d\u3001\u6e2c\u5b9a\u30c7\u30fc\u30bf\u3068\u5171\u306b\u30b5\u30fc\u30d0\u30fc\u6642\u523b\u3092\u8a18\u9332\u3057\u3066\u3044\u308b\u3002<\/p>\n<h2>BMP280\u3068BME280\u306e\u30c7\u30fc\u30bf\u306e\u6bd4\u8f03<\/h2>\n<p>\u307b\u307c\u540c\u3058\u5834\u6240\u306b\u3001\u4ee5\u524d\u4f5c\u3063\u305fBME280\u3092\u4f7f\u3063\u305f\u30dc\u30fc\u30c9\u3068\u3001\u4eca\u56de\u306eBMP280\u306e\u30dc\u30fc\u30c9\u3092\u4e26\u3079\u3001\u6570\u65e5\u9593\u306e\u6e2c\u5b9a\u7d50\u679c\u3092\u84c4\u7a4d\u3057\u305f\u3002\u305d\u308c\u305e\u308c\u304c\u7d045\u5206\u9593\u9694\u3067\u30c7\u30fc\u30bf\u306e\u8a08\u6e2c\u3068\u9001\u4fe1\u3092\u884c\u3046\u304c\u3001\u5fc5\u305a\u3057\u3082\u4e00\u81f4\u3057\u305f\u30bf\u30a4\u30df\u30f3\u30b0\u306b\u306f\u306a\u3089\u306a\u3044\u306e\u3067\u3001SQL\u6587\u3092\u5de5\u592b\u3057\u3066\u3060\u3044\u305f\u3044\u540c\u3058\u6642\u7cfb\u5217\u306e\u30c7\u30fc\u30bf\u304c\u4e26\u3076\u3088\u3046\u306b\u3057\u305f\u3002ESP8266EX\u306e\u30c7\u30a3\u30fc\u30d7\u30b9\u30ea\u30fc\u30d7\u30bf\u30a4\u30de\u30fc\u306f\u3001\u5b9f\u6642\u9593\u3088\u308a\u308f\u305a\u304b\u306b\u65e9\u3044\u3088\u3046\u306a\u611f\u3058\u3067\u3001\u500b\u4f53\u306b\u3088\u308b\u30d0\u30e9\u3064\u304d\u3082\u3042\u308b\u3088\u3046\u306a\u5370\u8c61\u3002<\/p>\n<p>\u4ee5\u4e0b\u306b3\u65e5\u9593\u307b\u3069\u306e\u6e2c\u5b9a\u30c7\u30fc\u30bf\u3092\u30b0\u30e9\u30d5\u5316\u3057\u305f\u3082\u306e\u3092\u793a\u3059\u304c\u3001\u3044\u305a\u308c\u3082\u30b5\u30fc\u30d0\u30fc\u304b\u3089json\u30c7\u30fc\u30bf\u3092\u53d6\u308a\u51fa\u3057\u3066google charts \u3092\u4f7f\u3063\u3066\u63cf\u753b\u3057\u3066\u3044\u308b\u3002<a href=\"https:\/\/okiraku-camera.tokyo\/blog\/?p=4790\">\u305d\u306e\u3042\u305f\u308a\u306e\u8a71\u3082\u4ee5\u524d\u306b\u66f8\u3044\u305f<\/a>\u306e\u3067\u7701\u7565\u3002<\/p>\n<h3>\u6e29\u5ea6\u30c7\u30fc\u30bf<\/h3>\n<p><a href=\"https:\/\/okiraku-camera.tokyo\/blog\/wp-content\/uploads\/2016\/11\/chart_t.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-5300\" src=\"https:\/\/okiraku-camera.tokyo\/blog\/wp-content\/uploads\/2016\/11\/chart_t-552x266.png\" alt=\"chart_t\" width=\"552\" height=\"266\" \/><\/a><\/p>\n<p>\u6e29\u5ea6\u30c7\u30fc\u30bf\u306f\u3001BME280\u3001HDC1000 \uff08\u3053\u306e2\u3064\u304c\u540c\u3058\u30dc\u30fc\u30c9\u4e0a\uff09\u3001BMP280\u306e3\u3064\u306e\u30bb\u30f3\u30b5\u30fc\u3067\u5f97\u3066\u3044\u308b\u3002\u9752\u304cBME\u3001\u30aa\u30ec\u30f3\u30b8\u304cHDC\u3001\u8d64\u304cBMP\u3067\u3042\u308b\u3002\u540c\u3058\u3088\u3046\u306a\u50be\u5411\u3067\u306e\u6e29\u5ea6\u5909\u5316\u3092\u793a\u3057\u3066\u3044\u308b\u304c\u3001\u5225\u306e\u30dc\u30fc\u30c9\u306b\u8f09\u3063\u3066\u3044\u308b\u305b\u3044\u304b\u3001BMP\u306e\u30c7\u30fc\u30bf\u306f\u5e73\u6ed1\u5316\u3055\u308c\u3066\u3044\u308b\u304b\u306e\u3088\u3046\u306b\u898b\u3048\u308b\u3002\u3053\u308c\u306f\u3001\u30bb\u30f3\u30b5\u30fc\u30c7\u30d0\u30a4\u30b9\u306e\u4e0a\u9762\u304c\u30d6\u30ec\u30c3\u30c9\u30dc\u30fc\u30c9\u306b\u5bfe\u3057\u3066\u5782\u76f4\u306aAE-BME280\u3068\u3001\u6c34\u5e73\u306aGY-BMP280\u306e\u5f62\u72b6\u306e\u9055\u3044\u306b\u3088\u308b\u3082\u306e\u304b\u3082\u3057\u308c\u306a\u3044\u3002\u7a7a\u6c17\u306e\u52d5\u304d\u306b\u5bfe\u3059\u308b\u654f\u611f\u3055\u3068\u304b\uff1f<\/p>\n<p>BME\u3068HDC\u306e\u793a\u3059\u6e29\u5ea6\u5dee\u306e\u5e73\u5747\u306f\u7d040.47\u2103\u306a\u306e\u306b\u5bfe\u3057\u3001BME\u3068BMP\u306e\u6e29\u5ea6\u5dee\u306f\u5e73\u5747\u30670.75\u2103\u3068\u5927\u304d\u3044\u3002\u3082\u3063\u3068\u3082\u3001BME\/BMP280\u306e\u6e29\u5ea6\u6e2c\u5b9a\u7cbe\u5ea6\u306f\u00b11\u2103\u306a\u306e\u3067\u3001\u8aa4\u5dee\u306e\u7bc4\u56f2\u5185\u306b\u601d\u3048\u308b\u3002\u3053\u3046\u3044\u3046\u66f2\u7dda\u3092\u898b\u305b\u3089\u308c\u308b\u3068\u3001\u306a\u3093\u3068\u306a\u304fHDC1000\u306b\u4e00\u7968\u5165\u308c\u305f\u304f\u306a\u3063\u3066\u3057\u307e\u3046\u304c\u3002<\/p>\n<h3>\u6c17\u5727\u30c7\u30fc\u30bf<\/h3>\n<p><a href=\"https:\/\/okiraku-camera.tokyo\/blog\/wp-content\/uploads\/2016\/11\/chart_p.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-5301\" src=\"https:\/\/okiraku-camera.tokyo\/blog\/wp-content\/uploads\/2016\/11\/chart_p-552x266.png\" alt=\"chart_p\" width=\"552\" height=\"266\" \/><\/a><\/p>\n<p>\u6c17\u5727\u30c7\u30fc\u30bf\u306fBME280\uff08\u9752\uff09\u304a\u3088\u3073BMP280\uff08\u8d64\uff09\u304b\u3089\u5f97\u305f\u3082\u306e\u3002\u6e29\u5ea6\u3088\u308a\u306f\u3088\u304f\u4e00\u81f4\u3057\u3066\u3044\u308b\u3088\u3046\u898b\u3048\u308b\u3057\u3001\u30c7\u30fc\u30bf\u306e\u76f8\u9055\u306e\u5e73\u5747\u5024\u306f0.40hPa\u3067\u3001\u3084\u306f\u308a\u6e2c\u5b9a\u8aa4\u5dee\u306e\u7bc4\u56f2\u5185\u306b\u53ce\u307e\u3063\u3066\u3044\u308b\u3002\u5404\u30bb\u30f3\u30b5\u30fc\u304c\u8a08\u6e2c\u3057\u3066\u3044\u308b\u6e29\u5ea6\u304c\u7570\u306a\u308b\u3053\u3068\u3067\u751f\u3058\u3066\u3044\u308b\u9055\u3044\u3082\u3042\u308b\u3060\u308d\u3046\u3002<\/p>\n<p>\u6c17\u5727\u30c7\u30fc\u30bf\u3092\u898b\u308b\u3046\u3048\u3067\u6ce8\u610f\u3059\u3079\u304d\u3053\u3068\u306f\u3001\u6e2c\u5b9a\u5834\u6240\u306e\u6a19\u9ad8\u3084\u6e29\u5ea6\u306b\u3088\u308a\u3001\u6c17\u8c61\u5e81\u306e\u30a2\u30e1\u30c0\u30b9\u306a\u3093\u304b\u3067\u53c2\u7167\u3067\u304d\u308b\u6c17\u5727\u3068\u3001\u601d\u3044\u306e\u307b\u304b\u305a\u308c\u3066\u3057\u307e\u3046\u3053\u3068\u3060\u308d\u3046\u3002\u305f\u3068\u3048\u3070\u3001\u30a2\u30e1\u30c0\u30b9\u306b\u306f\u6771\u4eac\u306e\u6c17\u5727\u306f1020hPa\u3068\u66f8\u3044\u3066\u3042\u308b\u306e\u306b\u3001\u30bb\u30f3\u30b5\u30fc\u306e\u51fa\u529b\u306f1013hPa\u3060\u3063\u305f\u308a\u3057\u3066\u3001\u3042\u308c\uff1f\u3068\u304b\u601d\u3063\u3066\u3057\u307e\u3063\u305f\u3002<\/p>\n<p>\u30a2\u30e1\u30c0\u30b9\u306e\u6c17\u5727\u30c7\u30fc\u30bf\u306b\u306f\u3001\u3054\u304f\u4e00\u90e8\u3092\u9664\u3044\u3066\u6d77\u9762\u6c17\u5727(\u6a19\u9ad80m) \u306b\u63db\u7b97\u3057\u305f\u5024\u304c\u63b2\u793a\u3055\u308c\u3066\u304a\u308a\u3001\u4eca\u56de\u306e\u6e2c\u5b9a\u3092\u884c\u3063\u305f\u5730\u70b9\u306e\u6a19\u9ad8\u304c\u7d0460m\u7a0b\u5ea6\u3060\u3063\u305f\u3053\u3068\u3092\u601d\u3044\u51fa\u3057\u3066\u8151\u306b\u843d\u3061\u305f\u3002\u6d77\u9762\u6c17\u5727\u30c7\u30fc\u30bf\u3068\u6a19\u9ad8\u3001\u6c17\u6e29\u304b\u3089\u73fe\u5728\u5730\u306e\u6c17\u5727\u3092\u6c42\u3081\u308b\u969b\u306b\u306f\u3001<a href=\"http:\/\/keisan.casio.jp\/exec\/system\/1203469826\">\u30ab\u30b7\u30aa\u8a08\u7b97\u6a5f\u306e\u8a08\u7b97\u30b5\u30a4\u30c8<\/a>\u304c\u4fbf\u5229\u3002<\/p>\n<h2>\u304d\u3087\u3046\u306e\u307e\u3068\u3081<\/h2>\n<ul>\n<li>\u5c45\u9593\u306e\u30a8\u30a2\u30b3\u30f3\u3092ESP-WROOM-02\u3068IrLED\u3067\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u306e\u3060\u3051\u3069\u3001\u6e29\u5ea6\u30bb\u30f3\u30b5\u30fc\u3068\u3057\u3066\u4f7f\u3046\u4e88\u5b9a\u306eGY-BMP280\u3092\u3057\u3070\u3089\u304f\u8a66\u3057\u3066\u3044\u305f\u3002\u4eca\u56de\u306f\u3001\u305d\u306e\u307e\u3068\u3081\u7684\u306a\u5185\u5bb9\u306b\u306a\u3063\u305f\u3002<\/li>\n<li>\u5e83\u6771\u7701\u304b\u3089\u306e\u304a\u53d6\u308a\u5bc4\u305b\u3067230\u5186 (\u9001\u6599\u8fbc) \u3068\u3044\u3046\u306e\u306f\u30d3\u30c3\u30af\u30ea\u3067\u3042\u308b\u3002\u5b89\u3044\u304b\u3089\u3068\u3044\u3063\u3066\u305f\u304f\u3055\u3093\u8cb7\u3046\u3088\u3046\u306a\u3082\u3093\u3058\u3083\u306a\u3044\u3057\u3001\u88fd\u54c1\u3084\u8ca9\u793e\u306b\u5bfe\u3059\u308b\u4fe1\u983c\u5ea6\u3092\u91cd\u8996\u3059\u308b\u306a\u3089\u3070\u56fd\u5185\u306e\u304a\u5e97\u3092\u9078\u3073\u305f\u3044\u3068\u601d\u3063\u3066\u3044\u308b\u304c\u3001\u5b89\u3055\u306b\u8ca0\u3051\u308b\u3053\u3068\u3082\u3042\u308b\u3060\u308d\u3046\u3002<\/li>\n<li>\u4eca\u56de\u8f09\u305b\u305f\u30bb\u30f3\u30b5\u30fc\u7528\u306e\u30af\u30e9\u30b9\u306f\u300110\u6708\u306e\u521d\u3081\u306b\u4f5c\u3063\u305fHDC1000\u3068BME280\u3092\u8f09\u305b\u305f\u30dc\u30fc\u30c9\u3067\u4f7f\u3063\u3066\u3044\u308b\u3082\u306e\u3092BMP280\u3067\u3082\u4f7f\u3048\u308b\u3088\u3046\u306b\u624b\u76f4\u3057\u3057\u305f\u3082\u306e\u3002\u3067\u304d\u308c\u3070\u3001\u4ee5\u524d\u306e\u30dc\u30fc\u30c9\u306e\u30b9\u30b1\u30c3\u30c1\u3082\u5165\u308c\u66ff\u3048\u305f\u3044\u306e\u3060\u3051\u3069\u3001\u96fb\u6c60\u304c\u3042\u304c\u3063\u3066\u52d5\u304b\u306a\u304f\u306a\u308b\u307e\u3067\u306f\u89e6\u3089\u306a\u3044\u3053\u3068\u306b\u3057\u305f\u3002<\/li>\n<\/ul>\n<h2>\u8ffd\u8a18<\/h2>\n<p>ESP-WROOM-02\u3068BME280\u3092\u7d44\u5408\u305b\u305f\u6e29\u5ea6\u3001\u76f8\u5bfe\u6e7f\u5ea6\u7b49\u306e\u6e2c\u5b9a\u306b\u3064\u3044\u3066\u3001\u3053\u306e\u6295\u7a3f\u3092\u8e0f\u307e\u3048\u305f\u6539\u8a02\u7248 (<a href=\"https:\/\/okiraku-camera.tokyo\/blog\/?p=6958\">WROOM-02\u3068BME280 \u96fb\u6c60\u99c6\u52d5\u3067\u6e29\u5ea6\u6e2c\u5b9a\u306e\u6539\u8a02\u7248<\/a>\u00a0 ) \u3092\u63b2\u8f09\u3057\u307e\u3057\u305f\u3002\u304a\u3082\u306b\u3001\u96fb\u6c60\u306e\u30e2\u30c1\u3092\u6539\u5584\u3059\u308b\u65b9\u6cd5\u306a\u3069\u304c\u4e2d\u5fc3\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6982\u8981 BOSCH\u793e\u88fd\u306e\u6e29\u5ea6\u30fb\u6c17\u5727\u30bb\u30f3\u30b5\u30fc BMP280 \u3092\u7528\u3044\u305f\u3001GY-BMP280\u3068\u3044\u3046\u88fd\u54c1\u3092ESP-WROOM-02\u306b\u63a5\u7d9a\u3057\u3066\u4f7f\u3063\u3066\u307f\u305f\u3002\u30a2\u30de\u30be\u30f3\u3067230\u5186 (\u4e2d\u56fd\u5e83\u6771\u7701\u304b\u3089\u306e\u9001\u6599\u8fbc)\u3002 \uff11\u30ab\u6708\u307b\u3069\u524d\u304b\u3089\u3001BME28 &hellip; <a href=\"https:\/\/okiraku-camera.tokyo\/blog\/?p=5291\" class=\"more-link\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"screen-reader-text\">\u6e29\u5ea6\u30fb\u6c17\u5727\u30bb\u30f3\u30b5\u30fcBMP280\u3092\u4f7f\u3063\u3066\u307f\u308b<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[69],"tags":[65,70],"class_list":["post-5291","post","type-post","status-publish","format-standard","hentry","category-programming","tag-arduino","tag-esp8266"],"_links":{"self":[{"href":"https:\/\/okiraku-camera.tokyo\/blog\/index.php?rest_route=\/wp\/v2\/posts\/5291","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/okiraku-camera.tokyo\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/okiraku-camera.tokyo\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/okiraku-camera.tokyo\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/okiraku-camera.tokyo\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5291"}],"version-history":[{"count":0,"href":"https:\/\/okiraku-camera.tokyo\/blog\/index.php?rest_route=\/wp\/v2\/posts\/5291\/revisions"}],"wp:attachment":[{"href":"https:\/\/okiraku-camera.tokyo\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5291"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/okiraku-camera.tokyo\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5291"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/okiraku-camera.tokyo\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5291"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}