Mục lục:

Sử dụng Raspberry Pi, đo độ cao, áp suất và nhiệt độ với MPL3115A2: 6 bước
Sử dụng Raspberry Pi, đo độ cao, áp suất và nhiệt độ với MPL3115A2: 6 bước

Video: Sử dụng Raspberry Pi, đo độ cao, áp suất và nhiệt độ với MPL3115A2: 6 bước

Video: Sử dụng Raspberry Pi, đo độ cao, áp suất và nhiệt độ với MPL3115A2: 6 bước
Video: Easy use of BMP280 to measure Pressure, Temperature and Altitude with Arduino + OLED 2024, Tháng mười một
Anonim
Image
Image
Thiết bị không thể thiếu mà chúng ta cần
Thiết bị không thể thiếu mà chúng ta cần

Biết những gì bạn sở hữu, và biết tại sao bạn sở hữu nó

Nó hấp dẫn. Chúng ta đang sống trong thời đại Internet Tự động hóa khi nó lao vào rất nhiều ứng dụng mới. Là những người đam mê máy tính và điện tử, chúng tôi đã học hỏi được rất nhiều điều với Raspberry Pi và quyết định kết hợp sở thích của mình. Dự án này mất khoảng một giờ nếu bạn chưa quen với kết nối I²C và thiết lập Phần mềm. Đây là một cách tuyệt vời để mở rộng khả năng của MPL3115A2 với Raspberry Pi trong Java.

Bước 1: Thiết bị không thể thiếu mà chúng ta cần

Thiết bị không thể thiếu mà chúng ta cần
Thiết bị không thể thiếu mà chúng ta cần
Thiết bị không thể thiếu mà chúng ta cần
Thiết bị không thể thiếu mà chúng ta cần
Thiết bị không thể thiếu mà chúng ta cần
Thiết bị không thể thiếu mà chúng ta cần

1. Raspberry Pi

Bước đầu tiên là lấy một bảng Raspberry Pi. Thiên tài nhỏ bé này được sử dụng bởi những người có sở thích, giáo viên và trong việc tạo ra những môi trường đổi mới.

2. I2C Shield cho Raspberry Pi

INPI2 (bộ điều hợp I2C) cung cấp cho Raspberry Pi 2/3 cổng I²C để sử dụng với nhiều thiết bị I2C. Nó có sẵn trên Dcube Store.

3. Cảm biến đo độ cao, áp suất và nhiệt độ, MPL3115A2

MPL3115A2 là cảm biến áp suất MEMS với giao diện I²C để cung cấp dữ liệu về Áp suất, Độ cao và Nhiệt độ. Cảm biến này sử dụng giao thức I²2 để giao tiếp. Chúng tôi đã mua cảm biến này từ Dcube Store.

4. Cáp kết nối

Chúng tôi đã sử dụng cáp kết nối I²C có sẵn tại Dcube Store.

5. Cáp micro USB

Raspberry Pi được cung cấp bởi nguồn cung cấp micro USB.

6. Tăng cường truy cập Internet - Cáp Ethernet / Mô-đun WiFi

Một trong những điều đầu tiên bạn cần làm là kết nối Raspberry Pi với Internet. Bạn có thể kết nối bằng cáp Ethernet hoặc với bộ điều hợp WiFi Nano USB không dây.

7. Cáp HDMI (Tùy chọn, Lựa chọn của bạn)

Bạn có thể kết nối Raspberry Pi với màn hình bằng cáp HDMI. Ngoài ra, bạn có thể truy cập từ xa Raspberry Pi của mình bằng cách sử dụng SSH / PuTTY.

Bước 2: Kết nối phần cứng để ghép mạch lại với nhau

Kết nối phần cứng để ghép mạch lại với nhau
Kết nối phần cứng để ghép mạch lại với nhau
Kết nối phần cứng để ghép mạch lại với nhau
Kết nối phần cứng để ghép mạch lại với nhau

Làm cho mạch điện như sơ đồ được hiển thị, nhìn chung, các kết nối khá đơn giản. Làm theo hướng dẫn và hình ảnh ở trên, và bạn sẽ không gặp vấn đề gì. Trong khi lập kế hoạch, chúng tôi đã xem xét phần cứng và mã hóa cũng như các khái niệm cơ bản về điện tử. Chúng tôi muốn thiết kế một sơ đồ điện tử đơn giản cho dự án này. Trong sơ đồ, bạn có thể nhận thấy các bộ phận, thành phần nguồn và cảm biến I²C khác nhau tuân theo các giao thức truyền thông I²C. Hy vọng rằng, điều này minh họa cho việc thiết bị điện tử cho dự án này đơn giản như thế nào.

Kết nối giữa Raspberry Pi và I2C Shield

Đối với điều này, Raspberry Pi và đặt I²C Shield trên đó. Nhấn nhẹ Tấm chắn (Xem hình).

Kết nối của Cảm biến và Raspberry Pi

Lấy cảm biến và kết nối cáp I²C với nó. Đảm bảo rằng Đầu ra I²C LUÔN LUÔN kết nối với Đầu vào I²C. Tiếp theo là Raspberry Pi với tấm chắn I²C được gắn trên nó. Không có thêm chân và vấn đề dây điện và do đó, sự nhầm lẫn không còn nữa. Thật là nhẹ nhõm khi bạn chỉ cần tưởng tượng mình trong mạng lưới dây điện và tham gia vào điều đó. Đơn giản như thế này!

Lưu ý: Dây màu nâu phải luôn đi theo kết nối Nối đất (GND) giữa đầu ra của một thiết bị và đầu vào của thiết bị khác

Kết nối Internet là tối quan trọng

Để làm cho dự án của chúng tôi thành công, chúng tôi cần có kết nối Internet cho Raspberry Pi của mình. Trong phần này, bạn có các tùy chọn như kết nối cáp Ethernet (LAN). Ngoài ra, như một cách thay thế nhưng ấn tượng để sử dụng bộ điều hợp WiFi.

Cấp nguồn cho mạch

Cắm cáp Micro USB vào giắc cắm nguồn của Raspberry Pi. Bật nó lên và thì đấy, chúng tôi rất tốt để đi!

Kết nối với màn hình

Chúng tôi có thể kết nối cáp HDMI với màn hình hoặc chúng tôi có thể sáng tạo một chút để tạo ra Pi không đầu (sử dụng -SSH / PuTTY), giúp cắt giảm thêm chi phí vì chúng tôi là những người có sở thích về mặt nào đó.

Khi một thói quen bắt đầu tiêu tốn tiền bạc, nó được gọi là một sở thích

Bước 3: Lập trình Raspberry Pi trong Java

Lập trình Raspberry Pi trong Java
Lập trình Raspberry Pi trong Java

Mã Java cho cảm biến Raspberry Pi và MPL3115A2. Nó có sẵn trong kho Github của chúng tôi.

Trước khi tiếp tục mã, hãy đảm bảo rằng bạn đã đọc các hướng dẫn được cung cấp trong tệp Readme và thiết lập Raspberry Pi của bạn theo nó. Sẽ chỉ mất một chút thời gian để làm như vậy. Độ cao được tính từ áp suất bằng công thức dưới đây:

h = 44330,77 {1 - (p / p0) ^ 0,1902632} + OFF_H (Giá trị đăng ký)

trong đó p0 = áp suất mực nước biển (101326 Pa) và h tính bằng mét. MPL3115A2 sử dụng giá trị này vì thanh ghi bù được định nghĩa là 2 Pascal trên mỗi LSB. Mã rõ ràng đang ở trước mặt bạn và nó ở dạng đơn giản nhất mà bạn có thể tưởng tượng và bạn sẽ không gặp vấn đề gì.

Bạn cũng có thể sao chép mã Java đang hoạt động cho cảm biến này từ đây.

// Được phân phối với giấy phép tự do.// Sử dụng nó theo bất kỳ cách nào bạn muốn, lợi nhuận hoặc miễn phí, miễn là nó phù hợp với giấy phép của các tác phẩm liên quan. // MPL3115A2 // Mã này được thiết kế để hoạt động với Mô-đun Mini MPL3115A2_I2CS I2C có sẵn từ ControlEverything.com. //

nhập com.pi4j.io.i2c. I2CBus;

nhập com.pi4j.io.i2c. I2CDevice; nhập com.pi4j.io.i2c. I2CFactory; nhập java.io. IOException;

lớp công khai MPL3115A2

{public static void main (String args ) throws Exception {// Tạo I2C bus I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1); // Lấy thiết bị I2C, MPL3115A2 địa chỉ I2C là 0x60 (96) I2CDevice device = Bus.getDevice (0x60); // Chọn thanh ghi điều khiển // Chế độ hoạt động, OSR = 128, chế độ đo độ cao device.write (0x26, (byte) 0xB9); // Chọn thanh ghi cấu hình dữ liệu // Sự kiện sẵn sàng dữ liệu được kích hoạt cho độ cao, áp suất, nhiệt độ device.write (0x13, (byte) 0x07); // Chọn thanh ghi điều khiển // Chế độ hoạt động, OSR = 128, chế độ đo độ cao device.write (0x26, (byte) 0xB9); Thread.sleep (1000);

// Đọc 6 byte dữ liệu từ địa chỉ 0x00 (00)

// trạng thái, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb byte data = new byte [6]; device.read (0x00, dữ liệu, 0, 6);

// Chuyển đổi dữ liệu thành 20 bit

int tHeight = ((((dữ liệu [1] & 0xFF) * 65536) + ((dữ liệu [2] & 0xFF) * 256) + (dữ liệu [3] & 0xF0)) / 16); int temp = ((dữ liệu [4] * 256) + (dữ liệu [5] & 0xF0)) / 16; độ cao kép = tHeight / 16,0; double cTemp = (temp / 16.0); double fTemp = cTemp * 1.8 + 32;

// Chọn thanh ghi điều khiển

// Chế độ hoạt động, OSR = 128, chế độ phong vũ biểu device.write (0x26, (byte) 0x39); Thread.sleep (1000); // Đọc 4 byte dữ liệu từ địa chỉ 0x00 (00) // status, pres msb1, pres msb, pres lsb device.read (0x00, data, 0, 4);

// Chuyển đổi dữ liệu thành 20 bit

int pres = (((dữ liệu [1] & 0xFF) * 65536) + ((dữ liệu [2] & 0xFF) * 256) + (dữ liệu [3] & 0xF0)) / 16; áp suất kép = (trước / 4.0) / 1000.0; // Xuất dữ liệu ra màn hình System.out.printf ("Áp suất:%.2f kPa% n", áp suất); System.out.printf ("Độ cao:%.2f m% n", độ cao); System.out.printf ("Nhiệt độ tính bằng C:%.2f C% n", cTemp); System.out.printf ("Nhiệt độ tính bằng F:%.2f F% n", fTemp); }}

Bước 4: Tính thực tiễn của Quy tắc (Hoạt động)

Tính thực tiễn của Quy tắc (Hoạt động)
Tính thực tiễn của Quy tắc (Hoạt động)

Bây giờ, hãy tải xuống (hoặc git pull) mã và mở nó trong Raspberry Pi. Chạy các lệnh để Biên dịch và Tải lên mã trên thiết bị đầu cuối và xem kết quả đầu ra trên Màn hình. Sau vài giây, nó sẽ hiển thị tất cả các thông số. Sau khi đảm bảo rằng mọi thứ hoạt động trơn tru, bạn có thể đưa dự án này thành một dự án lớn hơn.

Bước 5: Ứng dụng và tính năng

Việc sử dụng phổ biến của cảm biến đo độ cao chính xác MPL3115A2 là trong các ứng dụng như Bản đồ (Hỗ trợ bản đồ, Điều hướng), La bàn Từ tính, Hoặc GPS (GPS Dead Reckoning, Tăng cường GPS cho Dịch vụ Khẩn cấp), Đo độ chính xác cao, Điện thoại thông minh / Máy tính bảng, Đo độ cao Điện tử Cá nhân và Vệ tinh (Thiết bị / Dự báo Trạm Thời tiết).

Ví dụ Sử dụng cảm biến này và Rasp Pi, bạn có thể xây dựng Máy đo độ cao hình ảnh kỹ thuật số, phần quan trọng nhất của thiết bị nhảy dù, có thể đo độ cao, áp suất không khí và nhiệt độ. Bạn có thể thêm gạc gió và các cảm biến khác để tạo ra nhiều cảm biến thú vị hơn.

Bước 6: Kết luận

Vì chương trình có thể tùy chỉnh một cách đáng kinh ngạc, nên có nhiều cách thú vị để bạn có thể mở rộng dự án này và làm cho nó tốt hơn nữa. Ví dụ, một máy đo độ cao / giao thoa kế sẽ bao gồm một số máy đo độ cao gắn trên cột buồm sẽ thu được các phép đo đồng thời, do đó cung cấp phạm vi phủ sóng diện rộng liên tục, một hoặc nhiều máy đo độ cao. Chúng tôi có một video hướng dẫn thú vị trên YouTube có thể giúp bạn hiểu rõ hơn về dự án này.

Đề xuất: