Mục lục:

Dự án Arduino: Mô-đun LoRa phạm vi thử nghiệm RF1276 cho Giải pháp theo dõi GPS: 9 bước (có Hình ảnh)
Dự án Arduino: Mô-đun LoRa phạm vi thử nghiệm RF1276 cho Giải pháp theo dõi GPS: 9 bước (có Hình ảnh)

Video: Dự án Arduino: Mô-đun LoRa phạm vi thử nghiệm RF1276 cho Giải pháp theo dõi GPS: 9 bước (có Hình ảnh)

Video: Dự án Arduino: Mô-đun LoRa phạm vi thử nghiệm RF1276 cho Giải pháp theo dõi GPS: 9 bước (có Hình ảnh)
Video: Hướng dẫn sử dụng mô đun Lora E32 433Mhz SX1278 2024, Tháng mười một
Anonim
Dự án Arduino: Mô-đun LoRa phạm vi thử nghiệm RF1276 cho Giải pháp theo dõi GPS
Dự án Arduino: Mô-đun LoRa phạm vi thử nghiệm RF1276 cho Giải pháp theo dõi GPS

Kết nối: USB - Serial

Cần: Trình duyệt Chrome

Cần: 1 X Arduino Mega

Cần: 1 X GPS

Cần: 1 X thẻ SD

Cần: 2 X LoRa Modem RF1276

Chức năng: Arduino Gửi giá trị GPS đến cơ sở chính - Cơ sở chính lưu trữ dữ liệu trong Dataino Server Lora Mô-đun: RF1276 tầm xa từ APPCONWIRELESS LoRa là một kỹ thuật điều chế trải phổ mới, riêng tư và cho phép gửi dữ liệu với tốc độ dữ liệu cực thấp đến cực kỳ dãy dài. Tốc độ dữ liệu thấp (xuống đến vài byte mỗi giây) và điều chế LoRa dẫn đến độ nhạy của máy thu rất thấp, có nghĩa là trong thử nghiệm này có nghĩa là hơn 10km.

Bước 1: Xây dựng Trạm cơ sở

Xây dựng Trạm cơ sở
Xây dựng Trạm cơ sở
Xây dựng Trạm cơ sở
Xây dựng Trạm cơ sở

Kết nối internet chiều rộng máy tính và một modem LoRa được kết nối vào cổng USB.

Bộ dụng cụ ô tô Arduino ·

Hộp số liệu

Anduino Mega kết nối với nối tiếp 2 với bộ thu GPS và nối tiếp 1 với modem LoRa. Thẻ SD được sử dụng để lưu trữ dữ liệu.

Bước 2: Thử nghiệm đầu tiên

Thử nghiệm đầu tiên
Thử nghiệm đầu tiên

· 10,6 km trên con đường đi qua các trung tâm đô thị, phòng trưng bày và dọc theo bờ biển được làm bằng đường vòng

Tỷ lệ thu / truyền là 321 / 500TX điểm

Điểm RX

Bước 3: Tạo giao diện

Tạo giao diện
Tạo giao diện
Tạo giao diện
Tạo giao diện

1 - Thiết lập một dự án mới LoRa

Nhấn biểu tượng bánh răng để mở cấu hình dự án

Bước 4: Thêm Gauge

Thêm đồng hồ đo
Thêm đồng hồ đo

2) Mở thanh trượt của máy đo.

· 3) Di chuyển đến GPS.

· 4) Thêm một cái vào bàn làm việc.

Bước 5: Kéo Gauge GPS và thêm OpenStreetMap

Kéo Gauge GPS và thêm OpenStreetMap
Kéo Gauge GPS và thêm OpenStreetMap
Kéo Gauge GPS và thêm OpenStreetMap
Kéo Gauge GPS và thêm OpenStreetMap

· 5) Thêm bản đồ OpenStreetMap vào bàn làm việc

Kéo GPS thành phần trên bản đồ biểu tượng, bản đồ OpenStreet được tạo ra.

Tạo giao diện

· 6) Thay đổi làm mới bản đồ

Thay đổi thời gian làm mới bản đồ từ 5000 thành 10000

Bước 6: Kéo GPS Gauge và Thêm Nhật ký Bảng

Kéo GPS Gauge và Thêm Nhật ký Bảng
Kéo GPS Gauge và Thêm Nhật ký Bảng

· 7) Thêm thước đo Nhật ký bảng.

Bằng cách kéo thước đo phía trên bảng biểu tượng GPS được tạo ra nhật ký bảng đo

· 8) Thay đổi làm mới nhật ký bảng. Thay đổi thời gian làm mới bản đồ từ 5000 thành 10000

Điều chỉnh vị trí của đồng hồ đo

· 9) Kéo đồng hồ đo điều chỉnh vị trí của đồng hồ đo bằng cách kéo chúng trên màn hình.

· 10) Lưu dự án

Bước 7: Nhận mã

Nhận được mã
Nhận được mã

10) Kích hoạt vùng chứa mã

Nút trên cùng bên phải, chọn tất cả và sao chép mã cơ sở.

Bước 8: Arduino IDE

Arduino IDE
Arduino IDE

· 11) Dán mã trên Arduino IDE

· 12) Chỉnh sửa mã Thêm dòng này vào định nghĩa

Bước 9: Chi tiết mã hóa

Thêm dòng này vào định nghĩa

//*************************************************************************

//** THƯ VIỆN ** //***************************************** ********************************

#include // ++ Thư viện GPS

#include // ++ Thư viện SPI #include

// ++ Thư viện SD //

*************************************************************************

// ** SD ** // ***************************************** ********************************

// * Thẻ SD gắn vào bus SPI như sau:

// ** UNO: MOSI - pin 11, MISO - pin 12, CLK - pin 13, CS - pin 4

// (chân CS có thể thay đổi) và chân # 10 (SS) phải là đầu ra

// ** Mega: MOSI - pin 51, MISO - pin 50, CLK - pin 52, CS - pin 53

// (chân CS có thể thay đổi) và chân # 52 (SS) phải là đầu ra

// ** Leonardo: Kết nối với SPI phần cứng thông qua tiêu đề ICSP

// Chân 4 được sử dụng ở đây để nhất quán với các ví dụ Arduino khác const int chipSelect = 53;

// ++ Bộ chọn chân SD

//*************************************************************************

// ** GPS ** // ***************************************** ********************************

TinyGPS gps; // ++ GPS trên Serial2

void gpsdump (TinyGPS & gps); // ++

bool newdataGPS = false; // ++

Thêm dòng này vào thiết lập ()

//***********************************************************************

// ** Thiết lập nối tiếp GPS ** // *************************************** ********************************

Serial2.begin (9600); // ++

chậm trễ (1000); // ++

//***********************************************************************

// ** Khởi tạo SD ** // **************************************** *******************************

// đảm bảo rằng chân chọn chip mặc định được đặt thành // ++

// đầu ra, ngay cả khi bạn không sử dụng nó: // ++

pinMode (SS, OUTPUT); // ++

Serial.println (F ("Đang khởi chạy thẻ SD…")); // ++

// xem thẻ có hiện diện hay không và có thể được khởi tạo không: // ++

if (! SD.begin (chipSelect)) {// ++

Serial.println (F ("Thẻ bị lỗi, hoặc không có")); // ++

// không làm gì nữa: // ++

trở lại; // ++

} else {// ++

Serial.println (F ("Thẻ SD OK")); // ++

} // ++

Thêm dòng này vào loop () void

serialEvent2 (); // ++ gọi sự kiện nối tiếp GPS

Thêm mã SeriaEvent2

//*************************************************************************

// ** GPS serialEvent ** // **************************************** *********************************

void serialEvent2 () {// ++

while (Serial2.available ()) {// ++

char c = Serial2.read (); // ++

//Serial.print(c); // bỏ ghi chú để xem dữ liệu GPS thô // ++

if (gps.encode (c)) {// ++

newdataGPS = true; // ++

nghỉ; // bỏ ghi chú để in dữ liệu mới ngay lập tức! // ++

} // ++

} // ++

} // ++

Thêm voud kết xuất GPS

//*************************************************************************

// ** gps dump ** // **************************************** *********************************

// ** Phạm vi vĩ độ hợp lệ theo độ là -90 và +90. **

// ** Kinh độ nằm trong phạm vi -180 và +180 **

// ** xác định vị trí đông tây **

//** "123456789 1234567890" **

//** "000.00000;0000.00000" ** //*************************************************************************

void gpsdump (TinyGPS & gps) // ++

{ // ++

int năm; // ++

byte tháng, ngày, giờ, phút, giây, phần trăm; // ++

tuổi dài không dấu; // ++

gps.f_get_position (& LATGP00, & LONGP00, & age); // ++

gps.crack_datetime (& năm, & tháng, & ngày, & giờ, // ++

& phút, & giây, & phần trăm, & tuổi); // ++

long lat, lon to; // ++

gps.get_position (& lat, & lon, & age); // ++

// *********************************************************************

// ** tạo một chuỗi để tập hợp dữ liệu vào nhật ký: **

// *********************************************************************

Chuỗi dataString = ""; // ++

dataString + = (vĩ độ / 100000); // ++

dataString + = "."; // ++

dataString + = lat - (lat / 100000) * 100000; // ++

dataString + = ";"; // ++

dataString + = (lon / 100000); // ++

dataString + = "."; // ++

dataString + = lon - (lon / 100000) * 100000; // ++

dataString + = ";"; // ++

dataString + = String (static_cast (day)); // ++

dataString + = "/"; // ++

dataString + = String (static_cast (tháng)); // ++

dataString + = "/"; // ++

dataString + = String (năm); // ++

dataString + = ";"; // ++

dataString + = String (static_cast (giờ)); // ++

dataString + = ":"; // ++

dataString + = String (static_cast (phút)); // ++

dataString + = ":"; // ++

dataString + = String (static_cast (giây)); // ++ // ******************************************** *****************************

// ** LƯU VÀO SD ** // *************************************** **********************************

// Mở tập tin. lưu ý rằng mỗi lần chỉ có thể mở một tệp, **

// vì vậy bạn phải đóng cái này trước khi mở cái khác. ** // ********************************************** ***************************

File dataFile = SD.open ("gps00.txt", FILE_WRITE); // ++

// ***********************************************************************

// ** nếu tệp có sẵn, hãy ghi vào tệp đó: **

// ***********************************************************************

if (dataFile) {// ++

dataFile.println (dataString); // ++

dataFile.close (); // ++

} else {// ++

Serial.println (F ("LỖI SD Ghi")); // ++

} // ++

}

Nếu bạn muốn tải xuống mã, vui lòng truy cập trang này.

Đề xuất: