- Thành phần bắt buộc
- Mô-đun cảm biến áp suất BMP280:
- Sơ đồ mạch giao diện BMP280 với Arduino:
- Chương trình Arduino để giao diện BMP280 với Arduino:
- Hoạt động của dự án giao diện cảm biến áp suất Arduino BMP280
Nếu bạn muốn xây dựng hệ thống giám sát nhiệt độ của riêng mình hoặc để đo độ cao của máy bay không người lái của bạn hoặc chỉ đơn giản là muốn đo áp suất khí quyển trong khu vực của bạn, thì một trong những mô-đun tốt nhất để bạn sử dụng trong dự án của mình là mô-đun cảm biến áp suất BMP280. BMP280 là cảm biến theo dõi áp suất và nhiệt độ tuyệt đối là phiên bản nâng cấp của các cảm biến BMP085, BMP180, BMP183. Tại sao nó được gọi là phiên bản nâng cấp? Nó sẽ được thảo luận trong các phần sau. Chúng tôi đã sử dụng phiên bản cũ hơn BMP180 với Arduino trong một trong các hướng dẫn trước đây của chúng tôi.
Mô-đun cảm biến BMP280 có thể được sử dụng cùng với các bộ vi điều khiển như Arduino, PIC, AVR, v.v. Đối với dự án này, chúng tôi sẽ sử dụng Arduino Uno với BMP280 cùng với mô-đun hiển thị LCD 16x2, để hiển thị các giá trị nhiệt độ và áp suất. Trước khi giao tiếp BMP280 với Arduino, chúng ta cần tải xuống thư viện BMP280 Arduino, được phát triển bởi Adafruit. Nhấp vào liên kết thư viện Adafruit BMP280 này để mở trang Github tương ứng và thêm tệp tiêu đề vào Arduino IDE của bạn.
Thành phần bắt buộc
- Arduino
- BMP280
- Kết nối dây
- Bảng bánh mì
- LCD- 16x2
Mô-đun cảm biến áp suất BMP280:
Mô-đun cảm biến BMP280 hoạt động với điện áp tối thiểu (VDD) là 1,71V, trong khi các mô-đun cảm biến phiên bản trước hoạt động trên 1,8V (VDD). Khi nói đến mức tiêu thụ hiện tại, BMP280 tiêu thụ 2,7uA, trong khi BMP180 tiêu thụ 12uA và BMP183 và BMP085 tiêu thụ 5uA mỗi chiếc. BMP280 cũng hỗ trợ các chế độ lọc mới. Mô-đun cảm biến BMP280 hỗ trợ giao thức I2c và SPI, trong khi cảm biến còn lại hỗ trợ I2c hoặc SPI. Mô-đun cảm biến BMP280 có độ chính xác ± 0,12 hPa, tương đương với độ cao chênh lệch ± 1 m. Do những tính năng chính này, nó chủ yếu được sử dụng trong các ứng dụng khác nhau. Cảm biến BMP bao gồm phần tử cảm biến áp suất, phần tử cảm biến độ ẩm và phần tử cảm biến nhiệt độ được kết nối thêm với phần tử áp suất, giao diện độ ẩm và giao diện nhiệt độ. Các vi mạch phía trước này là các bộ khuếch đại tương tự độ nhạy được sử dụng để khuếch đại các tín hiệu nhỏ. Đầu ra của IC đầu cuối tương tự này được đưa đến ADC như một tín hiệu đầu vào. Trong đó, các giá trị tương tự được chuyển đổi thành điện áp kỹ thuật số và điện áp này được đưa đến các mạch logic để tiếp tục giao tiếp với thế giới bên ngoài.
Mô-đun cảm biến BMP280 bao gồm ba chế độ nguồn là chế độ ngủ, chế độ cưỡng bức và Chế độ bình thường. Ở chế độ nghỉ, không có phép đo nào được thực hiện và mức tiêu thụ điện năng ở mức tối thiểu. Ở chế độ cưỡng bức, một phép đo duy nhất được thực hiện theo các tùy chọn đo lường và bộ lọc đã chọn. Chế độ bình thường liên tục quay vòng giữa thời gian đo và thời gian chờ, và khoảng thời gian của chu kỳ sẽ được xác định bằng Tstandby. Dòng điện ở chế độ chờ cao hơn một chút so với chế độ nghỉ.
Sơ đồ mạch giao diện BMP280 với Arduino:
Sơ đồ mạch kết nối Arduino với cảm biến BMP280 và màn hình LCD được hiển thị bên dưới. Nếu bạn hoàn toàn mới sử dụng Arduino và LCD, thì bạn có thể xem hướng dẫn Arduino LCD này để hiểu cách sử dụng Arduino với màn hình LCD.
Các chân VCC và GND của cảm biến được kết nối với các chân 3v3 và GND của Arduino. Các chân SCL và SDA của cảm biến được kết nối với A5 và A4 của bảng Arduino. Các kết nối LCD như sau
Tên pin LCD |
Pin Arduino |
VSS và RW |
GND |
RS |
D9 |
E |
D8 |
D4, D5, D6, D7 |
D5, D4, D3, D2 |
Chương trình Arduino để giao diện BMP280 với Arduino:
Bạn có thể tìm thấy mã BMP280 Arduino đầy đủ ở cuối trang này, mã này có thể được tải trực tiếp lên bảng Arduino của bạn. Lời giải thích tương tự được đưa ra bên dưới
Các thư viện này được bao gồm để kích hoạt các chức năng đặc biệt. Các tệp tiêu đề #include mà chúng tôi có thể đọc trực tiếp các giá trị đến từ cảm biến. #Include
#include
Tạo trên đối tượng BMP cho Adafruit_BMP280. Một tệp đối tượng được tạo để truy cập các chức năng đặc biệt.
Adafruit_BMP280 bmp; // I2C
Đặt các chân của Arduino để giao tiếp với màn hình LCD. Sử dụng các chân này dữ liệu sẽ được chuyển.
LiquidCrystal LCD (9, 8, 5, 4, 3, 2);
Khởi tạo màn hình LCD và Giao tiếp nối tiếp.
void setup () {lcd.begin (16,2); Serial.begin (9600); Serial.println (F ("Thử nghiệm BMP280")); lcd.print ("Chào mừng đến với"); lcd.setCursor (0,1); lcd.print ("ĐOẠN MẠCH"); chậm trễ (1000); lcd.clear (); if (! bmp.begin ()) {Serial.println (F ("Không thể tìm thấy cảm biến BMP280 hợp lệ, hãy kiểm tra hệ thống dây điện!")); trong khi (1); }
Chức năng này hoạt động khi khởi tạo đối tượng bmp không thành công.
/ * Cài đặt mặc định từ biểu dữ liệu. * / bmp.setSampling (Adafruit_BMP280:: MODE_NORMAL, / * Chế độ vận hành. * / Adafruit_BMP280:: SAMPLING_X2, / * Temp. oversampling * / Adafruit_BMP280:: SAMPLING_X16, / * Lấy mẫu áp suất * / Adafruit_BMP280:: FILTER_X16, / * Lọc * / Adafruit_BMP280:: STANDBY_MS_500); /* Thời gian chờ. * /}
Phần mã này in nhiệt độ trên màn hình nối tiếp và dành cho mục đích gỡ lỗi.
void loop () {Serial.print (F ("Nhiệt độ =")); Serial.print (bmp.readTempeosystem ()); Serial.println ("* C");
Hàm bmp.readPressure và bmp.readTemp Nhiệt được sử dụng để gọi các chức năng đặc biệt và trả về các giá trị nhiệt độ và áp suất.
lcd.print (bmp.readTempe Heat ()); lcd.print (bmp.readPressure ());
Hoạt động của dự án giao diện cảm biến áp suất Arduino BMP280
Các hàm bmp.readTemp Heat () và bmp.readPressure () được sử dụng để trả về các giá trị nhiệt độ và áp suất. Các hàm này là một nhóm các câu lệnh thực hiện một nhiệm vụ đặc biệt, trong trường hợp của chúng ta là trả về các tệp nhiệt độ và áp suất. Các hàm này được gọi bằng các hàm bmp.readTemp Heat () và bmp.readPressure () . Các lcd.setCursor đặt con trỏ của màn hình LCD đến vị trí cần thiết trên màn hình. các lcd.print lệnh in dữ liệu từ vị trí do người lập trình thiết lập. Nếu không có vị trí nào được đặt cho màn hình LCD theo mặc định, nó sẽ lấy (0,0) làm vị trí ban đầu và liên tục in dữ liệu. Dữ liệu tiếp theo sẽ chiếm vị trí của cột tiếp theo và quy trình tiếp tục cho đến khi nó đến cuối hàng và chuyển sang hàng tiếp theo.
BMP280 có thể được sử dụng trong Đồ chơi bay, điện thoại di động, máy tính bảng, PC, thiết bị GPS, thiết bị chăm sóc sức khỏe di động, trạm thời tiết tại nhà, v.v. Bằng cách làm theo quy trình này và sử dụng tệp tiêu đề và một số chức năng đặc biệt, chúng tôi có thể dễ dàng giao diện BMP280 với Arduino. Hoạt động hoàn chỉnh cũng có thể được tìm thấy trong video dưới đây, hy vọng bạn thích hướng dẫn Arduino BMP280 này và học được điều gì đó hữu ích. Nếu bạn có bất kỳ câu hỏi nào, hãy để lại chúng trong phần bình luận bên dưới hoặc sử dụng diễn đàn cho các câu hỏi kỹ thuật khác.