Mục lục:
Video: Raspberry Pi - Cảm biến đo độ cao chính xác MPL3115A2 Hướng dẫn sử dụng Java: 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
MPL3115A2 sử dụng cảm biến áp suất MEMS với giao diện I2C để cung cấp dữ liệu Áp suất / Độ cao và Nhiệt độ chính xác. Các đầu ra cảm biến được số hóa bằng ADC 24-bit có độ phân giải cao. Xử lý nội bộ loại bỏ các nhiệm vụ bồi thường khỏi hệ thống MCU chủ. Nó có khả năng phát hiện sự thay đổi chỉ 0,05 kPa tương đương với sự thay đổi độ cao 0,3m. Đây là phần trình diễn của nó với raspberry pi sử dụng mã java.
Bước 1: Những gì bạn cần.. !
1. Raspberry Pi
2. MPL3115A2
3. Cáp I²C
4. I²C Shield cho Raspberry Pi
5. Cáp Ethernet
Bước 2: Kết nối:
Lấy một tấm chắn I2C cho raspberry pi và nhẹ nhàng đẩy nó qua các chân gpio của raspberry pi.
Sau đó kết nối một đầu của cáp I2C với cảm biến MPL3115A2 và đầu kia với tấm chắn I2C.
Đồng thời kết nối cáp Ethernet với pi hoặc bạn có thể sử dụng mô-đun WiFi.
Các kết nối được hiển thị trong hình trên.
Bước 3: Mã:
Có thể tải xuống mã java cho MPL3115A2 từ kho lưu trữ github - DCUBE Store của chúng tôi.
Đây là liên kết cho cùng một:
github.com/DcubeTechVentures/MPL3115A2/tree/master/Java
Chúng tôi đã sử dụng thư viện pi4j cho mã java, các bước để cài đặt pi4j trên raspberry pi được mô tả ở đây:
pi4j.com/install.html
Bạn cũng có thể sao chép mã từ đây, nó được đưa ra như sau:
// Được phân phối với một 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ừ
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 ) ném Exception
{
// Tạo bus I2C
I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1);
// Lấy thiết bị I2C, MPL3115A2 địa chỉ I2C là 0x60 (96)
Thiết bị I2CDevice = 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 bậ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 = byte mới [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)
// trạng thái, msb1 đặt trước, msb đặt trước, lsb đặt trước
device.read (0x00, dữ liệu, 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: Ứng dụng:
Các ứng dụng khác nhau của MPL3115A2 bao gồm Đ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. Nó cũng có thể được kết hợp trong GPS Dead Reckoning, Tăng cường GPS cho Dịch vụ Khẩn cấp, Hỗ trợ Bản đồ, Điều hướng cũng như Thiết bị Trạm Thời tiết.
Đề xuất:
Đồng hồ đo điện áp chính xác & chính xác Arduino (0-90V DC): 3 bước
Đồng hồ đo điện áp chính xác & chính xác Arduino (0-90V DC): Trong tài liệu hướng dẫn này, tôi đã chế tạo một vôn kế để đo điện áp cao DC (0-90v) với độ chính xác và độ chính xác tương đối bằng cách sử dụng Arduino Nano. Các phép đo thử nghiệm tôi đã thực hiện đủ chính xác, chủ yếu là trong khoảng 0,3v so với điện áp thực được đo bằng
Pingo: Trình phát bóng Ping Pong phát hiện chuyển động và có độ chính xác cao: 8 bước
Pingo: Máy phát bóng Ping Pong phát hiện chuyển động và có độ chính xác cao: Kevin Nitiema, Esteban Poveda, Anthony Mattacchione, Raphael Kay
Xúc xắc điện tử - Arduino Die / xúc xắc 1 đến 6 Xúc xắc + D4, D5, D8, D10, D12, D20, D24 và D30: 6 bước (có Hình ảnh)
Xúc xắc điện tử - Arduino Die / xúc xắc 1 đến 6 Xúc xắc + D4, D5, D8, D10, D12, D20, D24 và D30: Đây là một dự án arduino đơn giản để tạo ra một con xúc xắc điện tử. Có thể chọn cho 1 đến 6 viên xúc xắc hoặc 1 trong 8 viên xúc xắc đặc biệt. Lựa chọn được thực hiện đơn giản bằng cách xoay một bộ mã hóa quay. Đây là các tính năng: 1 xúc xắc: hiển thị các chấm lớn 2-6 xúc xắc: hiển thị các chấm
Bộ điều khiển nhiệt độ chính xác cao: 6 bước (có hình ảnh)
Bộ điều khiển nhiệt độ chính xác cao: Trong khoa học và thế giới kỹ thuật, việc theo dõi nhiệt độ hay còn gọi là (chuyển động của các nguyên tử trong nhiệt động lực học) là một trong những thông số vật lý cơ bản mà người ta nên xem xét ở hầu hết mọi nơi, bắt đầu từ sinh học tế bào cho đến tên lửa nhiên liệu cứng vi
Công suất cao, tầm xa, cung bút cực kỳ chính xác !!!: 6 bước
Cung cấp bút công suất cao, tầm xa, cực kỳ chính xác !!!: Đây là một trong những cung bút nổi tiếng đó !!! =) Tận hưởng! P.S. Những thứ này thuộc loại quyền lực, đừng nhắm vào ai đó. KHUYẾN CÁO: Bạn không thể kiện tôi nếu bạn vi phạm điều này. Bao gồm cả người và động vật. Đây là tài liệu hướng dẫn đầu tiên của tôi vì vậy xin vui lòng