温湿度・気圧センサーモジュールBME280から温度、湿度、気圧データを取得します。
使用する主なもの
ESP-WROOM-02ピッチ変換済みモジュール《フル版》
BME280使用 温湿度・気圧センサモジュールキット
FT231X USBシリアル変換モジュール
接続
ESP-WROOM-02 ———- 接続先
3V3 ———- 3.3V電源
EN ———- Pull UP
IO14 ———- NC
IO12 ———- NC
IO13 ———- LED+ (LED-は100Ω経由GND)
IO15 ———- Pull DOWN
IO2 ———- NC
IO0 ———- DTR# (FT231X)
GND ———- GND
IO16 ———- NC
TOUT ———- NC
RST ———- 書き込み時 RTS# (FT231X)/実行時 NC
IO5 ———- SCK (BME280)
TXD ———- RXD (FT231X)
RXD ———- TXD (FT231X)
IO4 ———- SDI (BME280)
電源
3端子レギュレーター (NJU723F33 3.3V 500mA)
Pin 1 ———-3.3V出力 (GNDと0.1μFセラミックコンデンサ)
Pin 2 ———-外部電源入力(バッテリーなど) (GNDと0.1μFセラミックコンデンサ)
Pin 3 ———-GND
Arduino IDEの設定
スイッチサイエンスの記事「ESP-WROOM-02開発ボードをArduino IDEで開発する方法」参照
スケッチの書き込みと実行
書き込み時はRSTにRTS# (FT231X)を接続、実行時はRSTはNCで電源OFF-ON
出力例
Temp=28.64
Humidity=55.35
Pressure=989.70
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
#include <BME280_MOD-1022.h> // BME280 MOD-1022 weather multi-sensor Arduino demo // Written originally by Embedded Adventures //www.embeddedadventures.com #include <Wire.h> int LED =13; float temp, humidity, pressure; void setup() { pinMode(LED, OUTPUT); Wire.begin(); Serial.begin(115200); setBME280(); } void loop() { digitalWrite(LED, HIGH); BME280.readMeasurements(); while (BME280.isMeasuring()) { delay(1); } temp=BME280.getTemperature(); humidity=BME280.getHumidity(); pressure=BME280.getPressure(); Serial.print("Temp="); Serial.println(temp); // must get temp first Serial.print("Humidity="); Serial.println(humidity); Serial.print("Pressure="); Serial.println(pressure); digitalWrite(LED, LOW); delay(10000); } void setBME280(){ BME280.readCompensationParams(); BME280.writeFilterCoefficient(fc_off); BME280.writeOversamplingPressure(os1x); // 1x over sampling (ie, just one sample) BME280.writeOversamplingTemperature(os1x); BME280.writeOversamplingHumidity(os1x); BME280.writeStandbyTime(tsb_1000ms); BME280.writeMode(smForced); } |