Mục lục:

Công cụ theo dõi GPS thời gian thực tự chế (SIM800L, Ublox NEO-6M, Arduino): 8 bước
Công cụ theo dõi GPS thời gian thực tự chế (SIM800L, Ublox NEO-6M, Arduino): 8 bước

Video: Công cụ theo dõi GPS thời gian thực tự chế (SIM800L, Ublox NEO-6M, Arduino): 8 bước

Video: Công cụ theo dõi GPS thời gian thực tự chế (SIM800L, Ublox NEO-6M, Arduino): 8 bước
Video: Lập trình vi điều khiển - Phần 268 - Mạch gọi điện gửi vị trí gps về điện thoại 2024, Tháng mười một
Anonim
Công cụ theo dõi GPS thời gian thực tự chế (SIM800L, Ublox NEO-6M, Arduino)
Công cụ theo dõi GPS thời gian thực tự chế (SIM800L, Ublox NEO-6M, Arduino)

Vì vậy, bạn đã có một mô-đun GSM nằm xung quanh như tôi? Cũng là một máy theo dõi GPS?

Chung tôi cung nghỉ vậy!

Trong tài liệu hướng dẫn này, tôi sẽ cố gắng hướng dẫn bạn cách hoàn thành mục tiêu của mình từ quan điểm của một người mới.

Vì tôi không có kiến thức kỹ thuật điện trước đây (thành thật mà nói, dự án không cần nhiều như vậy, nhưng không), và không có manh mối làm thế nào để tạo ra một thiết bị bơm dữ liệu thời gian thực lên máy chủ web, tôi đã gặp phải rất nhiều vấn đề. Tuy nhiên, cuối cùng tôi đã xoay sở để mọi việc diễn ra tốt đẹp.

Vì vậy, trong hướng dẫn này, tôi muốn nhấn mạnh những sai lầm mà người khởi nghiệp có thể mắc phải và xây dựng dự án cho phù hợp.

Hãy nhớ: Luôn cẩn thận trong khi làm việc với điện!

LƯU Ý: Tôi không chuyên nghiệp. Mã có thể không đủ phức tạp cho tất cả các nhu cầu của bạn. Dự án được dự định là một "dự án sở thích", nhưng! nó đã làm việc cho tôi. Và nếu nó hiệu quả với tôi, nó cũng sẽ hiệu quả với bạn!

Bước 1: Điều kiện tiên quyết

Điều kiện tiên quyết
Điều kiện tiên quyết
Điều kiện tiên quyết
Điều kiện tiên quyết
Điều kiện tiên quyết
Điều kiện tiên quyết

MODULE GSM - SIM800L

  • Khá nhỏ, dễ sử dụng
  • Có khả năng sử dụng Internet di động (GPRS)
  • Rẻ

MÔ ĐUN GPS - Ublox NEO6M

  • Cũng nhỏ
  • Xử lý công việc của nó rất tốt

Một bộ vi điều khiển - có thể là bất cứ thứ gì - bạn có thể sử dụng Arduino Uno nổi tiếng hoặc Nano để giải phóng một số dung lượng

Pin - Tôi sử dụng một tế bào 18650 làm nguồn điện chính và duy nhất (3,7V danh nghĩa)

Giá đỡ pin - tại sao? - bởi vì hàn pin 18650 khá lỏng lẻo vì nhiệt.

Bộ chuyển đổi DC-DC Boost Step Up Module 5V - Phải có, vì Arduino tôi đã sử dụng cần 5V

Các công cụ, những thứ cơ bản có thể hữu ích:

Dây điện, mỏ hàn, bảng mạch để thử nghiệm

Bước 2: Khái niệm chính

Khái niệm chính
Khái niệm chính

Khái niệm chính của hệ thống là như sau:

Nó bao gồm 3 phần:

  1. Một thiết bị - có Tọa độ GPS thích hợp và có thể kết nối với máy chủ từ xa và gửi dữ liệu đến đó
  2. Máy chủ web - có thể nhận dữ liệu đến - lưu trữ - và phục vụ các máy khách khác
  3. Nền tảng - nơi chúng tôi có thể xem tọa độ - Lý tưởng nhất là bây giờ nó phải là một ứng dụng di động hoặc một trang web

Bước 3: Mô-đun SIM800L

Mô-đun SIM800L
Mô-đun SIM800L
Mô-đun SIM800L
Mô-đun SIM800L

Tôi đã có thời gian khó khăn với mô-đun.

Tôi muốn bắt đầu với một số đặc điểm và tài liệu tham khảo.

Theo biểu dữ liệu:

  • Nó hoạt động giữa 3,4V - 4,4V
  • Nó có thể gửi SMS, thực hiện cuộc gọi thoại đến các điện thoại khác và thậm chí kết nối với Internet!
  • Chúng ta có thể giao tiếp với nó thông qua lệnh AT!
  • Nó có thể sử dụng lên đến 2A vào thời gian cao điểm! Lưu ý: có thể bạn sẽ không đo được bằng đồng hồ vạn năng - vì tỷ lệ lấy mẫu thấp

Kinh nghiệm của tôi là SIM800L dưới 3.8V không thực sự hoạt động.

Để biết thêm thông tin, hãy truy cập: datasheet

Vì vậy, công việc của bạn là cung cấp ít nhất 3,8V cho mô-đun (lý tưởng là 4V), nguồn điện có đầu ra ít nhất là 2A.

Trước khi sử dụng mô-đun trong thiết bị cuối cùng, tôi khuyên bạn nên thiết lập giao tiếp với SIM800L và máy tính của mình để đảm bảo thiết bị của bạn hoạt động bình thường.

Đầu tiên, hãy cắm thẻ SIM vào như trong hình trên.

Để kết nối nó với PC, bạn có thể sử dụng bộ chuyển đổi USB sang TTL hoặc Arduino.

Bây giờ, tôi đi với Arduino.

Kết nối SIM800L VCC và GND với các đầu nối nguồn điện của bạn.

Kết nối TX với chân kỹ thuật số thứ 10 của Arduino, RX với chân kỹ thuật số thứ 11 của arduino.

Tải xuống mã, tôi đã liên kết ở bước này.

Với mã, bạn có thể gửi lệnh và lấy lại chúng trên Màn hình nối tiếp của bạn.

Một số lệnh đơn giản:

AT Trả về OK, nếu kết nối OK.

ATD + 123456789; Gọi một số điện thoại nhất định. Lưu ý: Đừng quên kết thúc nó bằng dấu chấm phẩy.

AT + CPIN? Trả về trạng thái Thẻ SIM (bị khóa hay không)

Nếu bạn muốn gửi SMS, bạn cần kết thúc đầu vào của mình bằng một ký tự đặc biệt, có thể thực hiện bằng ký hiệu '$'.

Đối với các lệnh thú vị hơn, tôi khuyên bạn nên đọc phần này.

Có nhiều lệnh khác nhau, hãy làm quen với chúng, chúng thực sự hữu ích.

Có một đèn LED trạng thái màu đỏ cho bạn biết SIM800L đang hoạt động gì.

64 MS ON - 800MS OFF - SIM800L chưa được đăng ký với mạng.

64 MS ON - 3000MS OFF - SIM800L đã được đăng ký với mạng.

64 MS BẬT - 300MS TẮT - SIM800l đang ở chế độ GPRS

Nếu SIM800L tiếp tục khởi động lại sau khoảng 8 - 10 lần nhấp nháy, thì có thể do thiếu nguồn điện hiệu quả.

Nếu bạn không thấy OK sau khi AT, hãy kiểm tra hệ thống dây điện! Nếu bạn có đồng hồ vạn năng, hãy kiểm tra tính liên tục của các dây.

Kiểm tra các kết nối của dây và mối hàn! Mô-đun sẽ chỉ hoạt động khi nhấp nháy.

Bước 4: Ublox Neo 6m

Ublox Neo 6m
Ublox Neo 6m
Ublox Neo 6m
Ublox Neo 6m

Một số đặc điểm

  • Điện áp tối đa: 3.6V - Tôi đã cấp nguồn cho nó bằng chân 3.3V của Arduino
  • Dòng rút tối đa là 67mA - vì vậy bạn có thể cấp nguồn cho nó từ arduino
  • Phạm vi nhiệt độ:: -40-85 độ C (Tôi đoán nó sẽ phù hợp với bạn)

Thiết bị tôi đặt hàng đi kèm với một ăng-ten như trên hình, tôi chỉ cần cắm ăng-ten đó vào khe tương ứng.

Thiết bị khi có tín hiệu, đèn LED màu xanh sẽ nhấp nháy.

Trước tiên, hãy kiểm tra cách hoạt động của GPS ở đây, nếu bạn chưa biết.

Khi thiết bị được bật và tìm thấy 3 vệ tinh, nó sẽ gửi rất nhiều giá trị được phân tách bằng dấu phẩy tới Arduino như trên.

Để giúp ích cho công việc của chúng tôi, chúng tôi có thể sử dụng một số ký tự bên ngoài để phân tích cú pháp dữ liệu này để con người dễ đọc hơn.

Bạn có thể sử dụng thư viện TinyGps hoặc thư viện NeoGPS. Tôi đã sử dụng cái thứ 2 vì nó nhẹ hơn.

Để kiểm tra, bạn phải kết nối chân nguồn với arduino 3.3V và GND.

Tải xuống mã này và sử dụng nó với GPS của bạn. RX Chân kỹ thuật số 10, TX Chân kỹ thuật số 11

Lưu ý: Đừng quên sử dụng mô-đun ở ngoài trời, tốt nhất là khi không có mây.

Sau nửa phút, thiết bị sẽ nhấp nháy và xuất ra tọa độ GPS của bạn!:)

Khi bạn biết rằng mô-đun SIM800L và GPS của mình đang hoạt động bình thường, bạn có thể chuyển sang bước tiếp theo.

Bước 5: Mạch điện

Mạch điện
Mạch điện

Mạch như trên hình.

Vì vậy, pin 3.4V - 4.2V 18650 là nguồn điện chính. Sim800L lấy năng lượng trực tiếp từ nó. Có một tụ điện giữa chúng trong paralell để cải thiện độ ổn định của mạch.

Khi bạn chọn một tụ điện, bạn nên chọn một công suất ESR thấp.

Một bộ chuyển đổi bước lên 5V tăng điện áp của pin lên 5V (cần thiết vì Arduino hoạt động với 5V).

Đường ray nguồn 5V được kết nối với Nano tại đây. Sim800L và Neo6m được kết nối Nano như trên hình. (Sim Tx-D10, SimRx-D11; NeoTX-D3, NeoRX-D4)

D12 được kết nối với RST, vì vậy chúng tôi có thể khởi động lại hệ thống theo chương trình (ngoại trừ SIM800L). LƯU Ý: Việc khởi động lại methode này có thể không phải là phương pháp hay nhất)

Và cuối cùng, hai LEDS được kết nối với NANO, vì vậy chúng tôi có thể cho người dùng biết, nếu có bất kỳ lỗi nào xảy ra.

Bước 6: Mã

Mã này được đính kèm với Các tài liệu hướng dẫn hoặc xem github.

Bạn có thể sửa đổi nó để hoạt động phù hợp với nhu cầu của mình hoặc bạn có thể sử dụng mã của người khác nếu bạn muốn.

waitUntilResponse (); chức năng trợ giúp đã được lấy từ mã của anh ấy. Kiểm tra công việc của anh ấy, và cả mã nữa!

Tóm lại, trong chức năng thiết lập, chúng ta cần bật kết nối GPRS của mô-đun SIM800L của chúng ta. Chúng tôi biết liệu nó có thành công hay không nếu đèn LED nhấp nháy nhanh. (setupGPRSConnection ())

Trong hàm vòng lặp - cứ sau 15 giây thì hàm sendData () được gọi - có yêu cầu

Tôi đã sử dụng chuỗi truy vấn để đẩy dữ liệu đến máy chủ web ở định dạng sau:

ip adress / file.php? key = value & key = value, ví dụ:

Nếu có bất kỳ lỗi nào xảy ra, đèn LED tương ứng sẽ sáng. (SIM, GPS)

Bước 7: Máy chủ trang web

Máy chủ web
Máy chủ web

Đối với việc sử dụng của chúng tôi, một máy chủ web nhẹ đơn giản là đủ.

Có một số tùy chọn bạn có thể chọn:

  1. Bạn có thể sử dụng một máy chủ từ xa của một công ty, mà bạn có thể cần phải trả tiền thường xuyên.
  2. Bạn có thể sử dụng máy tính của riêng bạn. Tôi chỉ đề xuất nó để thử nghiệm, nó không thực sự hiệu quả để chạy nó 24/7, vì lãng phí năng lượng, các vấn đề an toàn.
  3. Bạn có thể sử dụng một máy tính nhỏ, như Raspberry PI. Nhẹ, rẻ, không tiêu tốn nhiều điện năng.

Tôi đã thử tùy chọn thứ 2 và thứ 3, chúng hoạt động tốt. Chà, mục tiêu chính không phải là máy chủ của các hướng dẫn này, nhưng tôi gợi ý cho bạn một số lời khuyên.

Nếu bạn sử dụng PC, bạn có thể sử dụng Windows. Nếu tôi là bạn, tôi sẽ cài đặt một máy chủ Apache hoặc XAMPP vào đó.

XAMPP đã có PHP, bên cạnh đó nó cũng đi kèm với HTML, Perl và Hệ thống quản lý cơ sở dữ liệu. Với PHP, bạn có thể tạo một máy chủ động. Nếu bạn muốn sử dụng máy chủ cục bộ mà bạn vừa tạo từ bất kỳ đâu trên thế giới, bạn cần gán IP tĩnh cho PC của mình và thực hiện một số chuyển tiếp. Hướng dẫn hữu ích cho IP tĩnh:

Và toàn bộ điều chuyển tiếp:

Nếu bạn có Raspberry, bạn nên sử dụng nó. Bạn có thể làm quen với các lệnh Linux và chạy máy chủ của riêng bạn 24/7.

Hệ điều hành là Raspbian Jessie với thiết lập không cần đầu (không có bàn phím, màn hình) - Tôi điều khiển nó bằng máy tính của mình có kết nối SSH.

Tôi đã sử dụng Putty để đăng nhập vào Raspberry của mình. Đừng quên thay đổi mật khẩu tài khoản của bạn để người khác không thể đăng nhập vào bạn Pi. Mặc định là: pi, passw: raspberry.

Tôi đã cài đặt một máy chủ web lighttpd với sqlite3. Hướng dẫn tốt được tìm thấy ở đây:

Tôi đã sử dụng chủ yếu PHP trong mã máy chủ. Với PHP, bạn có thể nhận dữ liệu, đọc / ghi cơ sở dữ liệu - mã hóa một truy vấn thành định dạng json, vv… Bài hướng dẫn này sẽ giúp ích cho bạn rất nhiều, cách quản lý cơ sở dữ liệu bằng PHP.

Bạn cũng có thể xem mã của tôi trên github, trong thư mục server_files.

Và tất nhiên, bạn phải bật chuyển tiếp đến Pi trên bộ định tuyến của mình, nếu bạn muốn truy cập từ xa.

Bước 8: Kết thúc / Rút kinh nghiệm

Một bao vây vẫn chưa được thực hiện.

Kinh nghiệm của tôi là, hệ thống hoạt động không quá tệ. Nhưng có những cải tiến về độ ổn định đang chờ đợi.

Nếu trình theo dõi không hoạt động với mã tôi đã đính kèm, đừng lo lắng. Cố gắng đảm bảo SIM800L và NEO 6M đang hoạt động bình thường. Bạn có thể tự do sửa đổi mã của tôi hoặc tìm kiếm mã tốt hơn. Tôi chỉ hy vọng rằng tôi có thể chỉ cho bạn một ví dụ, cách bạn có thể hoàn thành dự án này.

Tôi chấp nhận mọi lời khuyên, sự sửa chữa từ các bình luận. Mạnh dạn hỏi.

Đề xuất: