Mục lục:

Công cụ theo dõi GPS LTE Arduino + Bảng điều khiển IoT (Phần 1): 6 bước (có hình ảnh)
Công cụ theo dõi GPS LTE Arduino + Bảng điều khiển IoT (Phần 1): 6 bước (có hình ảnh)

Video: Công cụ theo dõi GPS LTE Arduino + Bảng điều khiển IoT (Phần 1): 6 bước (có hình ảnh)

Video: Công cụ theo dõi GPS LTE Arduino + Bảng điều khiển IoT (Phần 1): 6 bước (có hình ảnh)
Video: [Lập Trình AVR] Bài 28: GPS 2024, Tháng bảy
Anonim
Công cụ theo dõi GPS LTE Arduino + Bảng điều khiển IoT (Phần 1)
Công cụ theo dõi GPS LTE Arduino + Bảng điều khiển IoT (Phần 1)
Công cụ theo dõi GPS LTE Arduino + Bảng điều khiển IoT (Phần 1)
Công cụ theo dõi GPS LTE Arduino + Bảng điều khiển IoT (Phần 1)
Công cụ theo dõi GPS LTE Arduino + Bảng điều khiển IoT (Phần 1)
Công cụ theo dõi GPS LTE Arduino + Bảng điều khiển IoT (Phần 1)

Giới thiệu

Có chuyện gì thế anh chàng! Có thể hướng dẫn này là phần tiếp theo của Tài liệu hướng dẫn đầu tiên của tôi về cách sử dụng lá chắn Botletics LTE / NB-IoT cho Arduino, vì vậy nếu bạn chưa có, hãy đọc nó để có cái nhìn tổng quan về cách sử dụng lá chắn và tất cả về nó. Trong hướng dẫn này, tôi sẽ tập trung vào ghi dữ liệu IoT và cụ thể là theo dõi GPS và nhiệt độ, đồng thời cung cấp cho bạn tất cả mã và hướng dẫn bạn sẽ cần để lên đường và kiểm tra nó!

Có thể hướng dẫn này chủ yếu tập trung vào lá chắn LTE do cá nhân tôi thiết kế và xây dựng, nhưng mọi thứ ở đây (bao gồm cả thư viện Github Arduino) sẽ hoạt động trên các mô-đun 2G và 3G của SIMCom như SIM800 / 808/900/5320 vì nó chỉ là bản cập nhật phiên bản của thư viện Adafruit FONA. Bất kể phần cứng, khái niệm hoàn toàn giống nhau và bạn có thể làm rất nhiều điều thú vị với điều này, bao gồm ghi dữ liệu cảm biến, giám sát thời tiết từ xa, theo dõi hành vi trộm cắp tự động theo dõi GPS, v.v. vì vậy hãy đọc tiếp!

Bước 1: Thu thập các bộ phận

Thu thập các bộ phận
Thu thập các bộ phận
Thu thập các bộ phận
Thu thập các bộ phận
Thu thập các bộ phận
Thu thập các bộ phận

Danh sách này giống như trong hướng dẫn đầu tiên của tôi và thực sự đơn giản!

  • Arduino Uno, Mega hoặc Leonardo. Ngoài ra, bạn có thể sử dụng bất kỳ bộ vi điều khiển 3.3V hoặc 5V nào khác nhưng bạn sẽ phải nối các chân bên ngoài.
  • Botletics SIM7000 Shield Kit (đi kèm với tấm chắn, ăng ten uFL LTE / GPS kép và các tiêu đề nữ xếp chồng lên nhau). Hãy chắc chắn rằng bạn xem qua hướng dẫn này để chọn một phiên bản thích hợp!
  • Thẻ SIM ba chiều. Thẻ SIM đầu tiên (được gọi là thẻ SIM "nhà phát triển") hoàn toàn miễn phí và đi kèm với 1MB dữ liệu mỗi tháng! Ở Hoa Kỳ, bạn rất có thể sẽ sử dụng mạng Verizon nếu bạn sử dụng thẻ SIM Hologram. Bạn cũng có thể nhặt nó cùng với lá chắn Botletics nếu điều đó thuận tiện hơn.
  • Pin LiPo 3.7V (khuyến nghị dung lượng 1000mAH hoặc lớn hơn).
  • Cáp USB để lập trình Arduino của bạn hoặc để cấp nguồn cho nó.

Đối với bài kiểm tra theo dõi GPS!

  • Bạn có thể sử dụng bộ chuyển đổi USB trên ô tô để cấp nguồn cho Arduino của mình trong khi kiểm tra tấm chắn trên đường.
  • Ngoài ra, bạn có thể sử dụng bộ pin (7-12V) để cấp nguồn cho Arduino qua các chân VIN và GND.

Bước 2: Lắp ráp vật lý

Hội vật lý
Hội vật lý
Hội vật lý
Hội vật lý
Hội vật lý
Hội vật lý

Bây giờ bạn đã có tất cả các bộ phận của mình, đây là bản tóm tắt nhanh những gì bạn cần làm để thiết lập phần cứng của mình:

  • Hàn các tiêu đề nữ xếp chồng lên tấm chắn. Xem hướng dẫn này về cách làm điều đó.
  • Cắm tấm chắn vào Arduino, đảm bảo thẳng hàng với tất cả các chốt để không làm hỏng chúng!
  • Lắp thẻ SIM như trong hình. Các điểm tiếp xúc bằng kim loại hướng xuống dưới và ghi lại vị trí của rãnh ở góc.
  • Cắm pin LiPo vào đầu nối JST trên tấm chắn
  • Cắm Arduino của bạn vào máy tính bằng cáp USB. Bạn có thể nhận thấy rằng đèn LED nguồn màu xanh lá cây của tấm chắn không sáng. Điều đó hoàn toàn bình thường vì chân PWRKEY của tấm chắn cần phải được đặt xung ở mức thấp một chút để bật nó lên. Ví dụ về bản phác thảo Arduino trong phần sau sẽ giải quyết điều đó cho bạn!
  • Gắn ăng-ten LTE / GPS kép vào các đầu nối uFL ở cạnh phải của tấm chắn. Lưu ý rằng các dây sẽ đan chéo nhau nên bạn đừng cắm nhầm nhé!
  • Bạn đã sẵn sàng cho phần mềm!

Bước 3: Thiết lập Arduino & Kiểm tra thiết bị

Thiết lập Arduino & Kiểm tra thiết bị
Thiết lập Arduino & Kiểm tra thiết bị

Thiết lập Arduino IDE

Nếu bạn chưa có, vui lòng xem các bước "Thiết lập Arduino IDE" và "Ví dụ Arduino" trong sản phẩm chính Có thể hướng dẫn để đảm bảo bo mạch của bạn đang hoạt động bình thường. Trong các hướng dẫn đó, bạn sẽ cần tải xuống thư viện trên trang Github và mở mã mẫu "LTE_Demo". Sau khi làm theo các hướng dẫn đó, bạn nên kiểm tra kết nối mạng, GPS và đăng dữ liệu lên dweet.io.

Bản phác thảo ví dụ về IoT

Bây giờ bạn đã kiểm tra các tính năng cốt lõi của lá chắn của mình, hãy tải bản phác thảo "IoT_Example" trong Arduino IDE. Bạn cũng có thể tìm thấy nó ở đây trên Github. Tải mã này lên Arduino của bạn và mở màn hình nối tiếp và bạn sẽ thấy Arduino tìm thấy mô-đun SIM7000, kết nối với mạng di động, bật GPS và tiếp tục thử cho đến khi nó có được bản sửa lỗi về vị trí và đăng dữ liệu lên dweet.io. Tất cả điều này sẽ chạy mà không thay đổi bất kỳ dòng nào của mã, giả sử bạn đang sử dụng lá chắn LTE và thẻ SIM Hologram.

Theo mặc định, bạn sẽ thấy dòng sau xác định tỷ lệ lấy mẫu (tốt, thực tế là độ trễ giữa các bài đăng).

#define samplingRate 30 // Thời gian giữa các bài đăng, tính bằng giây

Nếu dòng này không được chú thích, Arduino sẽ đăng dữ liệu, trì hoãn 30 giây, đăng dữ liệu lại, lặp lại, v.v. Trong khoảng thời gian trễ 30 giây, bạn có thể làm những việc như đặt Arduino ở chế độ năng lượng thấp và những thứ tương tự như vậy, nhưng phải giữ mọi thứ đơn giản, tôi sẽ chỉ sử dụng hàm delay () để tạm dừng hoạt động. Nếu bạn nhận xét dòng này, Arduino sẽ đăng dữ liệu sau đó chuyển thẳng đến chế độ ngủ năng lượng thấp vô thời hạn cho đến khi bạn nhấn nút đặt lại trên Arduino của mình. Điều này rất hữu ích nếu bạn đang thử nghiệm thứ gì đó và không muốn ghi dữ liệu miễn phí quý giá của mình (mặc dù trung thực mỗi bài đăng thực tế không sử dụng gì) hoặc có thể bạn có mạch bên ngoài để đặt lại Arduino (bộ hẹn giờ 555? Ngắt RTC? Ngắt gia tốc kế? Cảm biến nhiệt độ làm gián đoạn? Hãy suy nghĩ bên ngoài hộp!). Trên thực tế, trong hướng dẫn Burgalert 7000, tôi chỉ cách bạn có thể sử dụng bộ dò chuyển động PIR để đánh thức bộ vi điều khiển.

Dòng tiếp theo đặt liệu lá chắn sẽ tắt sau khi đăng dữ liệu hay vẫn bật. Bạn có thể chọn lựa chọn trước đây bằng cách bỏ ghi chú dòng nếu bạn chỉ lấy mẫu một lần trong một thời gian, nhưng nếu bạn có tỷ lệ lấy mẫu tương đối cao, bạn sẽ muốn để dòng nhận xét để tấm chắn vẫn bật và không có để khởi tạo lại, kích hoạt lại GPRS và GPS, v.v. Khi tấm chắn được để trên, nó có thể đăng cực kỳ nhanh chóng!

// # xác định turnOffShield // Tắt khiên sau khi đăng dữ liệu

Cũng nên nhớ rằng ví dụ này tự động tìm nạp số IMEI dành riêng cho mô-đun và số IMEI duy nhất trên toàn cầu của SIM7000 và sử dụng nó làm ID thiết bị (hoặc "tên" nếu bạn muốn) để nhận dạng thiết bị khi đăng dữ liệu lên dweet.io. Bạn có thể thay đổi điều này nếu bạn muốn, vì vậy tôi nghĩ rằng tôi sẽ chỉ cho bạn biết:)

Để kiểm tra xem dữ liệu của bạn có thực sự được gửi đến dweet.io hay không, chỉ cần điền thông tin thích hợp và sao chép / dán URL vào bất kỳ trình duyệt nào:

dweet.io/get/latest/dweet/for/{deviceID}

trong đó {deviceID} sẽ được thay thế bằng số IMEI được in ra trong màn hình nối tiếp ở phần đầu, ngay sau khi Arduino tìm thấy nó. Sau khi nhập URL đó vào trình duyệt của mình, bạn sẽ thấy phản hồi JSON như sau:

Nhìn vào "nội dung", bạn sẽ thấy vĩ độ, kinh độ của vị trí của bạn, tốc độ của bạn (tính bằng km trên giờ), hướng hướng (độ, với 0 độ là Bắc), độ cao (mét), nhiệt độ (* C, nhưng hãy cảm nhận miễn phí để chuyển đổi trong mã), và điện áp cung cấp tính bằng mili-Volts (là VBAT, điện áp của pin). Để biết thêm thông tin về chuỗi dữ liệu NMEA, bạn có thể xem trang 149 của sách hướng dẫn sử dụng SIM7000 AT.

Sau khi bạn xác minh rằng thiết lập của bạn đang gửi thành công dữ liệu đến dweet, hãy thiết lập trang tổng quan để xem tất cả dữ liệu của chúng tôi trên một giao diện đẹp!

Bước 4: Thiết lập Freeboard.io

Thiết lập Freeboard.io
Thiết lập Freeboard.io
Thiết lập Freeboard.io
Thiết lập Freeboard.io
Thiết lập Freeboard.io
Thiết lập Freeboard.io

Đối với hướng dẫn này, chúng tôi sẽ sử dụng freeboard.io, một bảng điều khiển IoT thực sự thú vị có thể kết nối với nhiều nền tảng đám mây như PubNub và dweet, cũng như các tính năng khác như JSON và MQTT. Như bạn có thể đã đoán, chúng tôi cũng sẽ sử dụng dweet.io được sử dụng trong mã ví dụ từ phần trước. Một lưu ý quan trọng là kéo các ngăn trong freeboard.io dường như không hoạt động trong Chrome, vì vậy hãy sử dụng Firebox hoặc Microsoft Edge để thay thế. Nếu bạn không, nó có thể là một "ngăn" thực sự để sắp xếp lại các mục trên màn hình của bạn!

Thiết lập Tài khoản & Thiết bị

  • Điều đầu tiên bạn cần làm là tạo một tài khoản bằng cách nhấp vào nút "BẮT ĐẦU NGAY" màu đỏ trên trang chủ freeboard.io, nhập thông tin đăng nhập và nhấp vào "Tạo Tài khoản của Tôi". Sau đó, bạn sẽ nhận được một thông báo qua email xác nhận tài khoản mới của mình.
  • Bây giờ hãy nhấp vào "Đăng nhập" ở trên cùng bên phải của trang chủ và sau khi đăng nhập, bạn sẽ thấy "bảng miễn phí" của mình, đây chỉ là những bảng điều khiển mà bạn thiết lập cho các dự án của mình. Rõ ràng nếu tài khoản mới, bạn sẽ không thấy gì ở đây vì vậy chỉ cần nhập tên dự án mới và nhấp vào "Tạo mới" ở gần trên cùng bên phải. Sau đó, điều này sẽ đưa bạn đến một trang tổng quan trống, nơi bạn có thể thiết lập giao diện theo cách bạn thích. Trong freeboard, bạn có thể thiết lập các "ngăn" khác nhau và mỗi ngăn có thể có một hoặc nhiều "tiện ích" là những thứ như biểu đồ, bản đồ, đồng hồ đo, v.v. hiển thị dữ liệu của bạn theo một cách nào đó.
  • Điều đầu tiên chúng ta cần làm bây giờ là thiết lập nguồn dữ liệu thực tế, đó là lá chắn Arduino + LTE của bạn. Để làm điều đó, hãy nhấp vào "THÊM" ở trên cùng bên phải trong "Nguồn dữ liệu". Tiếp theo, chọn "Dweet.io" và nhập bất kỳ tên nào bạn muốn trong trường "Tên". Tuy nhiên, hãy đảm bảo rằng trong trường "Tên thứ", bạn nhập số IMEI của lá chắn thay vì bất kỳ tên tùy ý nào, vì đó là thứ mà freeboard sẽ sử dụng để lấy dữ liệu từ dweet.
  • Sau khi nhấp vào "Lưu", bạn sẽ thấy thiết bị của mình xuất hiện trong "Nguồn dữ liệu" cũng như lần cuối cùng thiết bị gửi dữ liệu đến dweet. Bạn cũng có thể nhấp vào nút refresh để kiểm tra các giá trị mới nhất, nhưng freeboard sẽ tự cập nhật nên bạn thường không cần phải sử dụng nút đó.

Thiết lập trang tổng quan

Bây giờ chúng ta hãy xem cách thiết lập chuông và còi thực tế mà bạn muốn thấy trên màn hình của mình!

  • Để thêm một ngăn, hãy nhấp vào nút "THÊM PANE" ở trên cùng bên trái và bạn sẽ thấy nó thêm một cửa sổ nhỏ trên màn hình của bạn. Tuy nhiên, vẫn chưa có gì ở đây vì chúng tôi chưa thêm bất kỳ tiện ích nào!
  • Để thêm tiện ích, hãy nhấp vào nút "+" nhỏ trên ngăn. Thao tác này sẽ hiển thị menu thả xuống với các tùy chọn tiện ích con khác nhau. Vì chúng tôi sẽ thực hiện một số theo dõi GPS, hãy chọn tiện ích con "Bản đồ Google". Sau đó, bạn sẽ thấy hai trường, vĩ độ và kinh độ. Để điền đúng cách, thiết bị của bạn cần phải được đăng lên dweet. Giả sử có, bạn có thể nhấp vào "+ Nguồn dữ liệu", nhấp vào nguồn dữ liệu ("SIM7000 GPS Tracker"), sau đó nhấp vào "lat", là tên biến mà lá chắn sử dụng khi đăng lên dweet. Lặp lại quy trình cho trường kinh độ và nhấp vào thanh trượt ở dưới cùng nếu bạn muốn bản đồ vẽ các đường giữa các điểm dữ liệu để đánh dấu nơi bạn đã đến.
  • Bây giờ bạn sẽ thấy một bản đồ nhỏ về vị trí gần đúng của mình! Để kiểm tra xem bản đồ có hoạt động hay không, hãy thử thay đổi kinh độ / vĩ độ GPS hiện tại của bạn thành một thứ gì đó hơi khác bằng cách thay đổi, ví dụ: chữ số đầu tiên sau dấu thập phân của các giá trị vĩ độ / dài trong URL trang được in trong màn hình nối tiếp trong Arduino IDE khi lá chắn đăng dữ liệu. Sau khi tinh chỉnh chúng, hãy sao chép và dán URL và thực thi nó trong trình duyệt của bạn.

dweet.io/dweet/for/112233445566778?lat=11.223344&long=-55.667788&speed=0&head=10&alt=324.8&temp=22.88&batt=3629

Bây giờ chuyển trở lại freeboard và bạn sẽ thấy rằng nó đã vẽ biểu đồ vị trí đã chỉnh sửa của bạn và vẽ một đường màu cam giữa các điểm! Những thứ tuyệt vời phải không? Vì vậy, tôi nghĩ rằng bạn sẽ có được hình ảnh mà trình theo dõi GPS của chúng tôi sẽ gửi dữ liệu vị trí đến dweet để bạn xem nó trên bo mạch chủ trong thời gian thực hoặc sau khi cuộc phiêu lưu của bạn kết thúc

Bổ sung

Vì trình theo dõi GPS nhỏ của chúng tôi không chỉ gửi dữ liệu vĩ độ / độ dài mà còn cả độ cao, tốc độ, hướng đi và nhiệt độ, chúng ta hãy bổ sung thêm một số tiện ích để làm cho bảng điều khiển của chúng tôi nhiều màu sắc hơn!

  • Hãy bắt đầu bằng cách thêm một khung mới, sau đó để thêm một đơn vị đo trong khung mới, hãy nhấp vào nút "+" trong khung và chọn "Gauge". Giống như trước đây, hãy sử dụng nguồn dữ liệu và chọn "tốc độ" làm dữ liệu mà chúng tôi muốn tìm nạp cho thước đo này. Sau đó, bạn sẽ thấy một thước đo đẹp trên trang tổng quan của mình!
  • Lặp lại điều này cho các giá trị độ cao và nhiệt độ.
  • Bây giờ đối với tiêu đề, hãy thêm một "Con trỏ" thay thế. Về cơ bản, đây là một la bàn vì nó bắt đầu hướng lên (Bắc) ở 0 độ và quay theo chiều kim đồng hồ cho các tiêu đề tích cực.. Perfecto!
  • Để thay đổi kích thước của ngăn, hãy di chuột qua ngăn chứa bản đồ và bạn sẽ thấy biểu tượng cờ lê nhỏ ở trên cùng bên phải. Nhấp vào đó và nhập tiêu đề cho ngăn và nhập "2" dưới "Cột" để tăng chiều rộng của ngăn.
  • Để thay đổi vị trí của các ngăn chỉ cần kéo chúng xung quanh! Bạn cũng có thể thử nghiệm thêm "Đường gấp khúc" về cơ bản chỉ là một biểu đồ đường để bạn có thể xem không chỉ dữ liệu mới nhất mà còn cả dữ liệu lịch sử.

Hãy vui vẻ và thiết lập tất cả theo cách bạn thích vì chúng tôi đã sẵn sàng để đi thực tế!

Bước 5: Kiểm tra

Image
Image
Thử nghiệm
Thử nghiệm

Để kiểm tra thiết lập của bạn, tôi khuyên bạn nên đặt thời gian lấy mẫu thành giá trị thấp hơn, chẳng hạn như 10-20 giây để bạn có thể ghi lại hành trình của mình với độ phân giải cao hơn. Tôi cũng sẽ để biến "turnOffShield" được nhận xét để lá chắn không chuyển sang trạng thái ngủ. Điều này cho phép nó đăng dữ liệu liên tiếp nhanh chóng.

Sau khi tải mã lên Arduino của bạn, hãy lấy một bộ pin (7-12V) để cấp nguồn cho Arduino hoặc chỉ cần cắm Arduino vào bằng bộ chuyển đổi USB trên ô tô. Bạn cũng sẽ cần một pin LiPo 3.7V được cắm vào tấm chắn như đã đề cập trước đó; Tấm chắn hiển thị trong hình trên là một phiên bản cũ và không có hỗ trợ pin LiPo nhưng nó hiện cần thiết trên tất cả các phiên bản mới hơn.

Tiếp theo, mở freeboard ở đâu đó để khi quay lại, bạn có thể xem kết quả! Sau khi bạn cắm Arduino, bạn đã sẵn sàng! Bắt đầu lái xe xung quanh, uống một chút cà phê, trở về nhà và bạn sẽ thấy dữ liệu được vẽ trên bảng miễn phí. Nếu bạn thực sự muốn (tôi không khuyên bạn nên làm điều này khi đang lái xe…), bạn có thể xem dữ liệu bảng trống trên điện thoại của mình trong thời gian thực khi bạn của bạn điều khiển phương tiện. Công cụ thú vị!

Bước 6: Kết quả

Kết quả
Kết quả

Đối với bài kiểm tra này, bố tôi và tôi đã đi mua một số đùi gà tại Trader Joe's (omnomnom…) và chúng tôi đã thu thập một số dữ liệu khá chính xác. Tôi đã yêu cầu thiết bị gửi dữ liệu cứ sau 10 giây và tốc độ tối đa từ chuyến đi là khoảng 92khm (khoảng 57mph), khá chính xác vì chúng tôi luôn theo dõi đồng hồ tốc độ. Lá chắn LTE chắc chắn làm khá tốt công việc của nó và gửi dữ liệu lên đám mây rất nhanh. Càng xa càng tốt!

Tuy nhiên, có lẽ tin không vui là tiện ích bản đồ trên freeboard không tuyệt vời như tôi nghĩ ban đầu. Nó không cho phép bạn di chuyển vị trí của chuột và nó nằm ở giữa vị trí cuối cùng, vì vậy nó rất tuyệt vời cho những thứ như thiết bị theo dõi GPS trên ô tô nhưng không phải nếu bạn muốn phân tích một chuyến đi đã hoàn thành với tất cả các điểm dữ liệu, đặc biệt nếu nó là một cuộc hành trình dài.

Trong hướng dẫn này, chúng tôi đã học cách sử dụng lá chắn LTE làm công cụ theo dõi GPS và ghi dữ liệu cũng như cách xem nhanh dữ liệu trên freeboard.io. Bây giờ hãy sử dụng trí tưởng tượng của bạn và áp dụng nó trong dự án của riêng bạn. Bạn thậm chí có thể thêm nhiều lá chắn hơn và biến thứ này thành một thiết bị ghi dữ liệu năng lượng mặt trời công suất thấp! (Tôi thực sự có thể đang lên kế hoạch thực hiện một hướng dẫn về điều đó trong tương lai!). Do những hạn chế của bản đồ rảnh rỗi, tôi cũng đang có kế hoạch tạo một hướng dẫn hoàn toàn mới về cách tạo ứng dụng Android của riêng bạn, tìm nạp dữ liệu từ dweet và sẽ cho phép bạn vẽ biểu đồ vị trí của trình theo dõi trên Google Maps ngay từ đầu, tạm dừng và dừng các tính năng cho chuyến đi của bạn! Giữ nguyên!

  • Nếu bạn thích dự án này, xin vui lòng cho nó một trái tim!
  • Nếu bạn có bất kỳ câu hỏi, nhận xét, đề xuất nào về hướng dẫn mới hoặc tự mình thử dự án này, hãy bình luận bên dưới!
  • Theo dõi tôi tại đây trên Bảng hướng dẫn, đăng ký kênh YouTube của tôi hoặc theo dõi tôi trên Twitter để cập nhật các dự án Arduino mới nhất của tôi! Tôi là một kỹ sư trẻ với niềm đam mê chia sẻ những gì tôi đã học được, vì vậy chắc chắn sẽ có thêm một số hướng dẫn sớm!
  • Nếu bạn muốn hỗ trợ những gì tôi làm trong việc chia sẻ phần cứng mã nguồn mở và ghi lại chúng kỹ lưỡng cho mục đích giáo dục, hãy cân nhắc mua tấm chắn của riêng bạn trên Amazon.com để chơi cùng!

Đề xuất: