GPS và Arduino - Phần 2: Lấy dữ liệu từ vệ tinh GPS

Xin chào mọi người! Ở phần trước, mình đã giới thiệu về hệ thống GPS, bạn có thể xem lại tại đây. Và ở phần 2 này, mình sẽ hướng dẫn các bạn lấy dự liệu từ vệ tinh GPS. Ok, tìm hiểu nào.

Lấy dữ liệu bằng cái gì ?

Ta sẽ lấy dữ liệu bằng module thu GPS và module này sẽ giao tiếp với arduino thông qua chuẩn UART TTL (Giao thức Serial). Cụ thể ở đây là con Ublox Neo M8N. Ảnh nó nè:

Nó có tới 6 chân, nhưng ta chỉ cần quan tâm tới 4 chân

  • Vcc: Nguồn 3V3 => 5V
  • GND: Cực âm
  • Tx: Nối Rx
  • Rx: Nối Tx

Thực hành

Chuẩn bị

  • Arduino bất kì, mình dùng Uno thôi.
  • Module GPS

Sơ đồ thì như hình sau:

Bạn sẽ thắc mắc tại sao mình lại mắc 2 chân Tx Rx module vào pin 3 và 2 đúng không. Bởi vì module này giao tiếp qua giao thức Serial, trong khi Uno chỉ có 1 cổng, mà ta lại cần 2 cổng: 1 cổng giao tiếp với module và 1 cổng giao tiếp với máy tính (Để thông báo lên màn hình Serial Monitor ý). Vì vậy ta cần giả lập 1 cổng serial nữa (Ở đây mình giả lập 1 cổng có Tx là pin 2 và Rx là pin 3). Bạn hãy đọc bài viết này nếu chưa biết cách giả lập serial nha.

Lập trình

Để lập trình được, các bạn cần có thư viện TinyGPS, tải về tại đây, sau đó giải nén thư mục trong file nén đó vào thư mục library của arduino.

Ok, đây là code:

Kèm Serial Monitor cho đủ bộ nha :))

Sau khi úp code, module sẽ thu và gửi thông tin cho arduino mỗi giây một lần.

Giải thích

Đây là kết quả lấy dữ liệu:

Chú ý: Mình đã cố gắng tìm hiểu nhưng mình không hiểu hết được các thông số đó, nên mình chỉ giải thích những thông số mà mình biết thôi nha.

  • Sats: Mã vệ tinh cung cấp thông tin
  • Latitude: Vĩ độ của module thu (Đơn vị: Độ)
  • Longitude: Kinh độ của module thu (Đơn vị: Độ)
  • Date: Ngày (Theo múi giờ của nơi bạn sống)
  • Time: Giờ theo đồng hồ nguyên tử (Theo múi giờ của nơi bạn sống)
  • Alt: Độ cao của module so với mực nước biển (Đơn vị: m)
  • Distance Course Card to London: Mình nghĩ đây là khoảng cách từ module tới London. Nhưng mình không hiểu cái giá trị của tham số này. 

Tới đây thì mình bí haha :))).

Ở phần Distance Course Card to London, bạn hoàn toàn có thể thay đổi london thành nơi khác bằng cách:

  • Lấy vĩ độ, kinh độ của nơi bạn cần trỏ đến bằng google map (Cái này hỏi bác Gồ ý :D )
  • Thay vĩ độ và kinh độ vừa lấy lần lượt vào ô 1, 2 mình khoanh:

Kết luận

Như vậy là ta vừa tìm hiểu xong cách lấy dữ liệu từ vệ tinh gps thông qua module thu gps và arduino. Hi vọng nó sẽ giúp ích cho các bạn. Chúc các bạn lập trình và chế tạo vui vẻ. Xin cảm ơn, nhớ Rate note cho mình nha :)))).

lên
38 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Lập trình Arduino không cần viết code - Phần 11: Tạo hàm riêng

Đây là phần 11 của chuỗi bài viết "Lập trình Arduino không cần viết code"

- Xem lại phần 10 tại đây

[UPDATE] Tải phiên bản mới của mBlock tại đây

Hôm nay, chúng ta sẽ cùng tìm hiểu về hàm và cách tạo, gọi hàm trong mBlock và Arduino.

lên
10 thành viên đã đánh giá bài viết này hữu ích.

Tự làm Xe điều khiển từ xa bằng Remote TV - Điều khiển xe bằng Hồng Ngoại khó hay dễ?

Đây là bài viết đầu tiên của mình nên có sai sót gì mong mọi người đóng góp. Vào vấn đề thôi ! Hiện nay, trên cộng đồng của mình đã có bài viết hướng dẫn làm xe điều khiển với cách điều khiển là dùng sóng nrf hoặc sóng bluetooth. Hôm trước mình đọc bình luận của một bạn, bạn ấy nói rằng bạn chỉ có 1 con arduino và cũng không có sờ-mát-phôn(Mình cũng thế :D), nên không thể sử dụng 2 cách điều khiển trên. Vì vậy hôm nay mình xin viết bài viết hướng dẫn làm xe điều khiển bằng remote TV (Nói chính xác hơn là bằng tín hiệu hồng ngoại) nhằm giúp cho các bạn có số phận như mình và bạn ấy.

lên
31 thành viên đã đánh giá bài viết này hữu ích.