เซ็นเซอร์ BMP280 เป็นตัวเลือกที่ดีสำหรับงานที่ต้องการความแม่นยำในการวัดความดันและอุณหภูมิ เช่นในโปรเจกต์เกี่ยวกับสภาพอากาศหรือการคำนวณความสูงจากระดับน้ำทะเล
1.ดาวน์โหลด และติดตั้ง Library
ติดตั้ง Library
ArduinoIDE > Sketch > Include Library > Add .ZIP Library > หาไฟล์ที่ดาวน์โหลด
2.ต่ออุปกรณ์
.png?alt=media&token=256ee7f6-6875-4499-8a97-0806562d5e95)
BMP280 > Arduino UNO
VCC>3.3VGND>GNDSCL>PIN A5SDA>PIN A4
3.ลงโปรแกรม
Copy โค้ดด้านล่าง
Arduino
1#include <Wire.h>
2#include <Adafruit_Sensor.h>
3#include <Adafruit_BMP280.h>
4
5// สร้างอ็อบเจ็กต์สำหรับเซ็นเซอร์ BMP280 โดยระบุ address 0x76
6Adafruit_BMP280 bmp; // ใช้ค่าเริ่มต้นเป็น 0x76
7
8void setup() {
9 Serial.begin(9600);
10 Serial.println(F("BMP280 test"));
11
12 // เริ่มการทำงานของ BMP280 ที่ address 0x76
13 if (!bmp.begin(0x76)) {
14 Serial.println(F("Could not find a valid BMP280 sensor, check wiring!"));
15 while (1);
16 }
17
18 // ตั้งค่าความละเอียด (optional)
19 bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */
20 Adafruit_BMP280::SAMPLING_X2, /* Temp. oversampling */
21 Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */
22 Adafruit_BMP280::FILTER_X16, /* Filtering. */
23 Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */
24}
25
26void loop() {
27 // อ่านค่าจากเซ็นเซอร์ BMP280
28 Serial.print(F("Temperature = "));
29 Serial.print(bmp.readTemperature());
30 Serial.println(" *C");
31
32 Serial.print(F("Pressure = "));
33 Serial.print(bmp.readPressure());
34 Serial.println(" Pa");
35
36 // คำนวณระดับความสูงจากค่าความดันที่ได้
37 Serial.print(F("Approx altitude = "));
38 Serial.print(bmp.readAltitude(1013.25)); // ค่าความดันมาตรฐานที่ระดับน้ำทะเล (hPa)
39 Serial.println(" m");
40
41 Serial.println();
42 delay(2000); // รอ 2 วินาที ก่อนอ่านค่าครั้งต่อไป
43}
441#include <Wire.h>
2#include <Adafruit_Sensor.h>
3#include <Adafruit_BMP280.h>
4
5// สร้างอ็อบเจ็กต์สำหรับเซ็นเซอร์ BMP280 โดยระบุ address 0x76
6Adafruit_BMP280 bmp; // ใช้ค่าเริ่มต้นเป็น 0x76
7
8void setup() {
9 Serial.begin(9600);
10 Serial.println(F("BMP280 test"));
11
12 // เริ่มการทำงานของ BMP280 ที่ address 0x76
13 if (!bmp.begin(0x76)) {
14 Serial.println(F("Could not find a valid BMP280 sensor, check wiring!"));
15 while (1);
16 }
17
18 // ตั้งค่าความละเอียด (optional)
19 bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */
20 Adafruit_BMP280::SAMPLING_X2, /* Temp. oversampling */
21 Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */
22 Adafruit_BMP280::FILTER_X16, /* Filtering. */
23 Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */
24}
25
26void loop() {
27 // อ่านค่าจากเซ็นเซอร์ BMP280
28 Serial.print(F("Temperature = "));
29 Serial.print(bmp.readTemperature());
30 Serial.println(" *C");
31
32 Serial.print(F("Pressure = "));
33 Serial.print(bmp.readPressure());
34 Serial.println(" Pa");
35
36 // คำนวณระดับความสูงจากค่าความดันที่ได้
37 Serial.print(F("Approx altitude = "));
38 Serial.print(bmp.readAltitude(1013.25)); // ค่าความดันมาตรฐานที่ระดับน้ำทะเล (hPa)
39 Serial.println(" m");
40
41 Serial.println();
42 delay(2000); // รอ 2 วินาที ก่อนอ่านค่าครั้งต่อไป
43}
44
4.ผลลัพธ์
Serial Monitor จะแสดงค่าอุณหภูมิ ความดัน และระดับความสูง

