Mục lục:

Lập bản đồ đường dẫn: 6 bước
Lập bản đồ đường dẫn: 6 bước

Video: Lập bản đồ đường dẫn: 6 bước

Video: Lập bản đồ đường dẫn: 6 bước
Video: Cách sử dụng Google Maps - Mới Nhất 2023 2024, Tháng mười một
Anonim
Người lập bản đồ đường dẫn
Người lập bản đồ đường dẫn
Người lập bản đồ đường dẫn
Người lập bản đồ đường dẫn
Người lập bản đồ đường dẫn
Người lập bản đồ đường dẫn

Trong dự án IoT này, chúng tôi kết nối một NEO-6M (mô-đun GPS) để cung cấp dữ liệu định vị thông qua Arduino đến một trang tính Excel sẽ được lưu trên máy tính. Sau đó với Tableau Public, chúng tôi tạo hình ảnh dữ liệu trực quan của dữ liệu này để vạch ra con đường chúng tôi đã đi. Mặc dù đây là một cách thu thập và trình bày dữ liệu thời gian thực trong phạm vi dữ liệu tương quan cao, quy trình này cũng có thể được áp dụng cho các dự án theo hướng dữ liệu khác.

Bước 1: Mua vật liệu

Mua vật liệu
Mua vật liệu

Đối với dự án này, bạn sẽ cần những thứ sau:

  • Mô-đun GPS NEO-6M
  • Arduino Uno
  • Dây nhảy nam / nam (bạn sẽ cần 4 dây)
  • Cáp USB 2.0 Loại A đến B
  • Máy tính có các chương trình này: Tableau Public, Arduino IDE (với TinyGPS ++) và Xử lý

Bước 2: Thiết lập thiết bị

Thiết lập thiết bị
Thiết lập thiết bị
Thiết lập thiết bị
Thiết lập thiết bị

Trước tiên, chúng ta cần thiết lập mô-đun GPS với Arduino UNO để Arduino cung cấp cho chúng ta một giao diện để hiển thị dữ liệu. Mỗi dây trong số bốn dây kết nối với NEO-6M tương ứng với các cổng cụ thể. Nếu NEO-6M của bạn không đi kèm với dây, bạn sẽ phải đấu dây trực tiếp với dây nhảy. Trong sơ đồ trên, màu đỏ tương ứng với nguồn (VCC), màu đen để nối đất (GND), màu vàng để truyền dữ liệu (TxD) và màu trắng để nhận dữ liệu (RxD). Chúng tôi kết nối các dây này với dây jumper đực / đực để chúng tôi có thể kết nối chúng với Arduino. Theo sơ đồ trên, chúng tôi kết nối dây nối đất với chân kỹ thuật số GND trên Arduino, dây TxD đến 4, dây RxD đến ~ 3 và dây VCC vào 5V cho điện áp. Trong một bước trong tương lai, chúng ta sẽ cần xác định TxD và RxD với các con số chính xác trong SoftwareSerial.

Khi hai thiết bị được kết nối với nhau, chúng ta cần cung cấp nguồn điện. Kết nối cáp USB 2.0 với máy tính xách tay của bạn và đèn trên NEO-6M sẽ sáng.

Bước 3: Mã hóa Arduino để trích xuất dữ liệu

Mã hóa Arduino để trích xuất dữ liệu
Mã hóa Arduino để trích xuất dữ liệu

Bây giờ chúng tôi đã thiết lập các thiết bị để thu thập dữ liệu GPS từ các vệ tinh, chúng tôi sẽ viết mã để phân tích dữ liệu GPS mà chúng tôi muốn. Giả sử bạn đã bắt được tín hiệu (mô-đun GPS của tôi sẽ nhấp nháy màu xanh lam), NEO-6M theo mặc định sẽ in ra dữ liệu thô trên màn hình nối tiếp dưới dạng thông báo NMEA, trông giống như $ GP, theo sau là nhiều chữ cái hơn và một chuỗi trong số các con số. Hình ảnh trên cung cấp một ý tưởng chung về những gì sẽ được hiển thị trên màn hình nối tiếp của bạn sau khi mã Arduino cơ bản được đưa vào.

Để giải thích mã mà tôi đã đính kèm (hoặc nếu bạn muốn tự mình viết mã), trước tiên bạn cần bao gồm cả thư viện SoftwareSerial và TinyGPS ++ (đối với thư viện Sketch> Bao gồm> Thêm thư viện. ZIP). SoftwareSerial cho phép chúng tôi có kết nối nối tiếp; TinyGPS ++ cung cấp cho chúng ta một công cụ dễ dàng để in ra thông tin được nhắm mục tiêu ở dạng có thể đọc được. Đảm bảo rằng bạn khởi tạo đối tượng SoftwareSerial vào các chân tương ứng trên Arduino. Trong chức năng thiết lập, chúng tôi sử dụng 9600 làm tốc độ truyền.

Với mục đích của hướng dẫn này, chúng tôi sẽ chỉ in ra bảy loại dữ liệu trong hàm vòng lặp: vĩ độ (độ), kinh độ (độ), tốc độ (km), khóa học (độ), độ cao (km), số lượng vệ tinh trong sử dụng và hdop. Bạn có thể tìm kiếm cú pháp để in ra thông tin này trong thư viện Arduiniana. Dạng chung là Serial.print (). Ví dụ để in ra kinh độ, chúng ta sẽ gõ Serial.print (gps.location.lng (), 6). Số 6 đại diện cho bao nhiêu chữ số chúng ta muốn ở bên phải của dấu thập phân.

Mã của tôi có các ký tự phụ được in vì lợi ích của regex được định dạng dễ dàng trong bước tiếp theo. Tuy nhiên, nếu bạn muốn dừng lại ở bước này, hãy định dạng dữ liệu theo cách khác để dễ xem trên màn hình nối tiếp.

Bước 4: Sử dụng Xử lý để Nghe

Sử dụng Xử lý để Nghe
Sử dụng Xử lý để Nghe

Trong khi chúng tôi đã thiết lập mã cho Arduino IDE, chúng tôi gặp sự cố khi lưu dữ liệu này. Hiện tại, chúng tôi chỉ có thể xem dữ liệu trên màn hình nối tiếp khi chúng tôi đang thu thập. Có nhiều cách để ghi dữ liệu này nhưng tôi chọn Xử lý chủ yếu vì giao diện của nó bắt chước Arduino IDE và nó sử dụng Java, một ngôn ngữ mà tôi quen thuộc (lưu ý rằng bạn cũng có thể điều khiển bảng Arduino bằng Xử lý nếu bạn tải xuống Firmata). Quá trình xử lý lắng nghe trên cổng kết nối với Arduino và có khả năng thao tác dữ liệu được đọc trên màn hình nối tiếp. Để tìm tên của cổng này, hãy quay lại tệp Arduino IDE của bạn và kiểm tra trong Công cụ> Cổng.

Tôi đã cung cấp mã Xử lý, nhưng đây là tổng quan nhanh về cách mã hoạt động.

Trước khi thực hiện hàm thiết lập, hãy đảm bảo rằng bạn có các biến cho cổng, bảng kết quả, hàng chúng ta sẽ làm việc và tên của tệp. Sau đó, trong chức năng thiết lập, có các tham số để đặt kích thước của cửa sổ Run của bạn nhưng những con số đó không ảnh hưởng đến chức năng của chúng tôi (ví dụ: đặt chúng thành (500, 500)). Khi bạn đang khởi tạo cổng, hãy sử dụng tên của cổng ở dạng Chuỗi và tốc độ truyền là 9600. Cuối cùng, tạo chín cột (cho bảy danh mục GPS, thời gian và ngày) để khởi tạo bảng.

Trong chức năng vẽ, chúng tôi sử dụng các chức năng ngày và giờ tích hợp để theo dõi thời điểm từng bộ dữ liệu GPS được trích xuất. Bây giờ để đọc luồng dữ liệu từ Arduino và đặt nó dưới tiêu đề thích hợp với ngày và giờ chính xác, chúng tôi sử dụng biểu thức chính quy.

Tôi sử dụng regex để phân tích dữ liệu chính xác bằng hàm matchAll để tìm kiếm bất kỳ biểu thức nào giữa dấu bằng và dấu chấm phẩy (các dấu phân cách mà tôi đặt trong mã Arduino của mình). Điều này sau đó đặt tất cả các thẻ phù hợp, dữ liệu số, trong một mảng hai chiều. Sau đó, chúng ta có thể gọi các chỉ số mảng này để đặt chúng dưới tiêu đề của trang tính Excel.

Để lưu tệp.csv mới, chúng tôi sử dụng một phím bấm để đóng cửa sổ Run. Bạn càng đợi lâu để nhấn phím, bạn sẽ thu thập được càng nhiều dữ liệu. Theo cách của một hướng dẫn khác, tôi cũng quyết định lưu tệp vào thư mục dữ liệu với ngày và giờ làm tên tệp.

Bước 5: Hiển thị dữ liệu trên Tableau Public

Hiển thị dữ liệu trên Tableau Public
Hiển thị dữ liệu trên Tableau Public
Hiển thị dữ liệu trên Tableau Public
Hiển thị dữ liệu trên Tableau Public
Hiển thị dữ liệu trên Tableau Public
Hiển thị dữ liệu trên Tableau Public

Bước cuối cùng liên quan đến một số trực quan hóa dữ liệu. Có nhiều chương trình để tạo và hiển thị trực quan hóa dữ liệu, tức là theo cốt truyện, nhưng đối với dự án này, chúng tôi sẽ sử dụng Tableau. Mở Tableau Public và mở tệp Excel đã lưu dưới dạng tệp văn bản. Để tạo trang tính, hãy nhấp vào Trang tính 1 ở phía dưới bên trái.

Vì chúng tôi đang làm việc với dữ liệu GPS, chúng tôi sẽ sử dụng bản đồ để mô tả thông tin của chúng tôi. Trong cột bên trái có ghi Số đo, chúng tôi sẽ kéo Kinh độ thành Cột và Vĩ độ thành Hàng ở trên cùng. Tableau mặc định cả hai thước đo cho AVG, vì vậy hãy nhấp vào menu thả xuống bên cạnh các điều khoản và thay đổi cả hai thành Thứ nguyên. Bây giờ bản đồ sẽ có một con đường được hiển thị bằng cách sử dụng các giá trị kinh độ và vĩ độ được thu thập.

Để xóa dữ liệu của bạn để tránh lỗi (cũng có thể được thực hiện trước khi mở Tableau), bạn có thể chọn loại trừ một số vòng kết nối vị trí bằng cách nhấp vào chúng và chọn tùy chọn. Mô-đun GPS của tôi không chính xác 100%, vì một số phần của con đường của tôi chưa được xác định, nhưng con đường chung đã được ghi lại.

Bước 6: Tinh chỉnh Viz

Tinh chỉnh Viz
Tinh chỉnh Viz

Phần cuối cùng là làm cho dữ liệu này dễ đọc hơn. Nếu bạn muốn bối cảnh đường phố, bạn có thể đi tới Bản đồ> Lớp bản đồ> Đường phố và đường cao tốc. Hãy thử nghiệm với các Mark khác. Tôi kéo Tốc độ qua Màu để hiển thị cường độ của màu tăng như thế nào khi tốc độ tăng. Tôi cũng đã sử dụng Chi tiết thay vì Nhãn cho Khóa học vì Nhãn sẽ hiển thị các số trên bản đồ trong khi tôi chỉ muốn thông tin bật lên khi bạn di chuột qua các chấm vị trí.

Bây giờ bạn đã trải nghiệm toàn bộ quá trình thu thập dữ liệu và hiển thị những gì bạn có trên trực quan hóa dữ liệu, bạn có thể áp dụng điều này cho các dự án khác!

bởi Pingdi Huang, Summer 2018

Đề xuất: