Πίνακας περιεχομένων:

Homemade Realtime GPS Tracker (SIM800L, Ublox NEO-6M, Arduino): 8 βήματα
Homemade Realtime GPS Tracker (SIM800L, Ublox NEO-6M, Arduino): 8 βήματα

Βίντεο: Homemade Realtime GPS Tracker (SIM800L, Ublox NEO-6M, Arduino): 8 βήματα

Βίντεο: Homemade Realtime GPS Tracker (SIM800L, Ublox NEO-6M, Arduino): 8 βήματα
Βίντεο: GPS Module with Arduino- Ublox NEO-6M 2024, Ιούλιος
Anonim
Homemade Realtime GPS Tracker (SIM800L, Ublox NEO-6M, Arduino)
Homemade Realtime GPS Tracker (SIM800L, Ublox NEO-6M, Arduino)

Έχετε λοιπόν μια μονάδα GSM που βρίσκεται γύρω μου; Επίσης GPS-tracker;

Το ίδιο νομίζουμε!

Σε αυτό το εκπαιδευτικό εγχειρίδιο, θα προσπαθήσω να σας καθοδηγήσω πώς να επιτύχετε τον στόχο σας από την οπτική του αρχάριου.

Καθώς δεν είχα προηγούμενη γνώση ηλεκτρολόγων μηχανικών (για να είμαι ειλικρινής, το έργο δεν χρειάζεται τόσο πολύ, αλλά όχι) και δεν είχα ιδέα πώς να φτιάξω μια συσκευή που αντλεί δεδομένα σε πραγματικό χρόνο σε έναν διακομιστή ιστού, αντιμετώπισα πολλά προβλήματα. Ωστόσο, τελικά κατάφερα να βάλω τα πράγματα στη δουλειά τους.

Έτσι, σε αυτό το σεμινάριο, θέλω να τονίσω τα λάθη που μπορεί να κάνει ένας εκκινητής και να δημιουργήσω το έργο ανάλογα.

Θυμηθείτε: Να είστε πάντα προσεκτικοί ενώ εργάζεστε με ηλεκτρικό ρεύμα!

ΣΗΜΕΙΩΣΗ: Δεν είμαι επαγγελματίας. Ο κώδικας μπορεί να μην είναι αρκετά εξελιγμένος για όλες τις ανάγκες σας. Το έργο έχει σκοπό να είναι ένα "έργο χόμπι", αλλά! λειτούργησε για μένα. Και αν λειτουργούσε για μένα, θα λειτουργούσε και για εσάς!

Βήμα 1: Προαπαιτούμενα

Προαπαιτούμενα
Προαπαιτούμενα
Προαπαιτούμενα
Προαπαιτούμενα
Προαπαιτούμενα
Προαπαιτούμενα

ΜΟΝΑΔΑ GSM - SIM800L

  • Αρκετά μικροσκοπικό, εύκολο στη χρήση
  • Δυνατότητα χρήσης κινητού διαδικτύου (GPRS)
  • Φτηνός

ΜΟΝΑΔΑ GPS - Ublox NEO6M

  • Επίσης μικρό
  • Αντιμετωπίζει πολύ καλά τη δουλειά του

Ένας μικροελεγκτής - μπορεί να είναι οτιδήποτε - μπορείτε να χρησιμοποιήσετε το περίφημο Arduino Uno ή το Nano για να ελευθερώσετε χώρο

Μπαταρία - Χρησιμοποίησα μια κυψέλη 18650 ως την κύρια και μοναδική πηγή ενέργειας (Ονομαστική 3.7V)

Θήκη μπαταρίας - γιατί; - επειδή η συγκόλληση μιας μπαταρίας 18650 είναι αρκετά επικίνδυνη λόγω της θερμότητας.

DC -DC Boost Converter Step Up Module 5V - Πρέπει να έχει, αφού το Arduino που χρησιμοποίησα χρειάζεται 5V

Εργαλεία, βασικά πράγματα που μπορεί να σας φανούν χρήσιμα:

Σύρματα, κολλητήρι, ψωμί για δοκιμή

Βήμα 2: Κύρια έννοια

Κύρια έννοια
Κύρια έννοια

Η κύρια ιδέα του συστήματος είναι η ακόλουθη:

Αποτελείται από 3 μέρη:

  1. Μια συσκευή - που έχει τις κατάλληλες Συντεταγμένες GPS και μπορεί να συνδεθεί σε διακομιστή από απόσταση και να στείλει δεδομένα σε αυτόν
  2. Ένας διακομιστής ιστού - ο οποίος μπορεί να λαμβάνει εισερχόμενα δεδομένα - να τα αποθηκεύει - και να εξυπηρετεί άλλους πελάτες
  3. Η πλατφόρμα - όπου μπορούμε να δούμε τις συντεταγμένες - Ιδανικά θα πρέπει τώρα να είναι μια εφαρμογή για κινητά ή ένας ιστότοπος

Βήμα 3: Η μονάδα SIM800L

Η μονάδα SIM800L
Η μονάδα SIM800L
Η μονάδα SIM800L
Η μονάδα SIM800L

Πέρασα δύσκολα με τη μονάδα.

Θα ήθελα να ξεκινήσω με ορισμένα χαρακτηριστικά και αναφορές.

Σύμφωνα με το φύλλο δεδομένων:

  • Λειτουργεί μεταξύ 3,4V - 4,4V
  • Μπορεί να στείλει SMS, να κάνει φωνητικές κλήσεις σε άλλα τηλέφωνα, ακόμη και να συνδεθεί στο Διαδίκτυο!
  • Μπορούμε να επικοινωνήσουμε μαζί του μέσω εντολών AT!
  • Μπορεί να χρησιμοποιήσει έως και 2Α σε ώρες αιχμής! Σημείωση: πιθανότατα δεν θα μπορείτε να το μετρήσετε με πολύμετρο - λόγω των χαμηλών ποσοστών δειγματοληψίας

Η εμπειρία μου είναι ότι το SIM800L κάτω από 3.8V δεν λειτουργεί πραγματικά.

Για περισσότερες πληροφορίες επισκεφθείτε: φύλλο δεδομένων

Επομένως, η δουλειά σας είναι να παρέχετε τουλάχιστον 3.8V στη μονάδα (ιδανικά 4V), ένα τροφοδοτικό το οποίο εξάγει τουλάχιστον 2Α.

Πριν χρησιμοποιήσετε τη μονάδα στην τελική συσκευή, σας προτείνω να επικοινωνήσετε με το SIM800L και τον υπολογιστή σας για να βεβαιωθείτε ότι η συσκευή σας λειτουργεί σωστά.

Πρώτα απ 'όλα, συνδέστε την κάρτα SIM όπως στην παραπάνω εικόνα.

Για να το συνδέσετε με τον υπολογιστή σας, μπορείτε να χρησιμοποιήσετε μετατροπέα USB σε TTL ή Arduino.

Τώρα, πηγαίνω με το Arduino.

Συνδέστε τα SIM800L VCC και GND στους ακροδέκτες της πηγής τροφοδοσίας σας.

Συνδέστε το TX στο Arduino 10ο ψηφιακό pin, το RX στο arduino 11ο ψηφιακό pin.

Κατεβάστε τον κώδικα, συνδέθηκα σε αυτό το βήμα.

Με τον κωδικό, μπορείτε να στείλετε εντολές και να τις πάρετε πίσω, στη σειριακή σας οθόνη.

Μερικές απλές εντολές:

Το AT επιστρέφει ΟΚ, εάν η σύνδεση είναι εντάξει.

ATD+123456789; Καλέστε έναν δεδομένο αριθμό τηλεφώνου. Σημείωση: Μην ξεχάσετε να το τελειώσετε με ερωτηματικό.

AT+CPIN; Επιστρέφει την κατάσταση της κάρτας SIM (κλειδωμένη ή όχι)

Εάν θέλετε να στείλετε ένα SMS, πρέπει να τερματίσετε την εισαγωγή σας με έναν ειδικό χαρακτήρα, μπορεί να γίνει με το σύμβολο '$'.

Για περαιτέρω ενδιαφέρουσες εντολές προτείνω να το διαβάσετε.

Υπάρχουν διάφορες εντολές, εξοικειωθείτε με αυτές, είναι πραγματικά χρήσιμες.

Υπάρχει ένα κόκκινο LED κατάστασης που σας λέει σε ποια λειτουργία βρίσκεται το SIM800L.

64 MS ON - 800MS OFF - SIM800L δεν είναι εγγεγραμμένο στο δίκτυο.

64 MS ON - 3000MS OFF - SIM800L είναι εγγεγραμμένο στο δίκτυο.

64 MS ON - 300MS OFF - Το SIM800l βρίσκεται σε λειτουργία GPRS

Εάν το SIM800L συνεχίσει να επανεκκινείται μετά από περίπου 8-10 αναβοσβήματα, μπορεί να οφείλεται σε έλλειψη αποτελεσματικής τροφοδοσίας.

Εάν δεν είστε εντάξει μετά το AT, ελέγξτε την καλωδίωση! Εάν έχετε πολύμετρο, ελέγξτε τη συνέχεια των καλωδίων.

Ελέγξτε τις συνδέσεις των καλωδίων και των αρμών συγκόλλησης! Η μονάδα θα λειτουργεί μόνο όταν αναβοσβήνει.

Βήμα 4: Ublox Neo 6μ

Ublox Neo 6μ
Ublox Neo 6μ
Ublox Neo 6μ
Ublox Neo 6μ

Μερικά χαρακτηριστικά

  • Μέγιστη τάση: 3.6V - Το τροφοδοτούσα με τον ακροδέκτη 3.3V του Arduino
  • Η μέγιστη τρέχουσα κλήρωση είναι 67mA - έτσι μπορείτε να την τροφοδοτήσετε από το arduino
  • Εύρος θερμοκρασίας:: -40-85 Κελσίου (υποθέτω ότι θα σας ταιριάξει)

Η μονάδα που παρήγγειλα ήρθε με μια κεραία που φαίνεται στην εικόνα, απλά την συνδέω στην αντίστοιχη υποδοχή.

Όταν η συσκευή έχει σήματα, αναβοσβήνει με μπλε LED.

Αρχικά, ελέγξτε πώς λειτουργεί ένα GPS εδώ, εάν δεν το γνωρίζετε.

Όταν η συσκευή είναι ενεργοποιημένη και βρίσκει 3 δορυφόρους, στέλνει πολλές τιμές διαχωρισμένες με κόμμα στο Arduino όπως παραπάνω.

Για να βοηθήσουμε τη δουλειά μας, μπορούμε να χρησιμοποιήσουμε κάποιες εξωτερικές βιβλιοθήκες για να αναλύσουμε αυτά τα δεδομένα ώστε να είναι πιο ευανάγνωστα από τον άνθρωπο.

Μπορείτε να χρησιμοποιήσετε τη βιβλιοθήκη TinyGps ή τη βιβλιοθήκη NeoGPS. Χρησιμοποίησα το 2ο γιατί είναι πιο ελαφρύ.

Για δοκιμές, πρέπει να συνδέσετε τους ακροδέκτες τροφοδοσίας στο arduino 3.3V και GND.

Κατεβάστε αυτόν τον κωδικό και χρησιμοποιήστε τον με το GPS σας. Xηφιακή ακίδα RX 10, pinηφιακή ακίδα TX 11

Σημείωση: Μην ξεχάσετε να χρησιμοποιήσετε τη μονάδα σε εξωτερικούς χώρους, κατά προτίμηση όταν δεν υπάρχει σύννεφο.

Μετά από μισό λεπτό, η συσκευή θα αναβοσβήνει και θα εξάγει τις συντεταγμένες GPS σας!:)

Μόλις γνωρίζετε ότι η μονάδα SIM800L και GPS λειτουργούν επαρκώς, μπορείτε να προχωρήσετε στο επόμενο βήμα.

Βήμα 5: Κύκλωμα

Κυκλωμάτων
Κυκλωμάτων

Το κύκλωμα είναι όπως στην εικόνα.

Έτσι, η μπαταρία 3.4V - 4.2V 18650 είναι η κύρια πηγή ενέργειας. Το Sim800L παίρνει την ενέργεια απευθείας από αυτό. Υπάρχει ένας πυκνωτής μεταξύ τους σε paralell προκειμένου να βελτιωθεί η σταθερότητα του κυκλώματος.

Όταν επιλέγετε πυκνωτή, θα πρέπει να επιλέξετε χαμηλό πυκνωτή ESR.

Ένας επιταχυνόμενος μετατροπέας 5V αυξάνει την τάση της μπαταρίας στα 5V (απαιτείται ir επειδή το Arduino λειτουργεί με 5V).

Η ράγα ισχύος 5V συνδέεται εδώ με το Nano. Τα Sim800L και Neo6m συνδέονται με το Nano όπως στην εικόνα. (Sim Tx-D10, SimRx-D11; NeoTX-D3, NeoRX-D4)

Το D12 είναι συνδεδεμένο στο RST, οπότε είμαστε σε θέση να κάνουμε επανεκκίνηση του συστήματος (εκτός από το SIM800L). ΣΗΜΕΙΩΣΗ: Αυτή η μέθοδος επανεκκίνησης μπορεί να μην είναι η καλύτερη πρακτική)

Και τέλος, δύο LEDs είναι συνδεδεμένα στο NANO, ώστε να μπορούμε να πούμε στον χρήστη, εάν συμβαίνει κάποιο σφάλμα.

Βήμα 6: Κωδικός

Ο κώδικας επισυνάπτεται στο Instructables ή ρίξτε μια ματιά στο github.

Μπορείτε να το τροποποιήσετε ώστε να λειτουργεί σωστά για τις ανάγκες σας ή μπορείτε να χρησιμοποιήσετε τον κώδικα άλλων αν θέλετε.

waitUntilResponse (); η λειτουργία βοηθού έχει ληφθεί από τον κώδικά του. Ελέγξτε τη δουλειά του, και κωδικό επίσης!

Εν συντομία, στη λειτουργία ρύθμισης, πρέπει να ενεργοποιήσουμε τη σύνδεση GPRS της μονάδας SIM800L. Γνωρίζουμε εάν είναι επιτυχής εάν η λυχνία LED αναβοσβήνει γρήγορα. (setupGPRSConnection ())

Στη λειτουργία βρόχου - κάθε 15 δευτερόλεπτα καλείται η συνάρτηση sendData () - η οποία έχει το αίτημα

Χρησιμοποίησα συμβολοσειρές ερωτήματος για να προωθήσω δεδομένα στον διακομιστή ιστού σε αυτήν τη μορφή:

ip adress/file.php? key = value & key = value π.χ.

Εάν συμβεί κάποιο σφάλμα, ανάβει η αντίστοιχη λυχνία LED. (SIM, GPS)

Βήμα 7: Διακομιστής ιστοσελίδων

Διακομιστής ιστοσελίδων
Διακομιστής ιστοσελίδων

Για τη χρήση μας, αρκεί ένας απλός ελαφρύς διακομιστής ιστού.

Υπάρχουν μερικές επιλογές από τις οποίες μπορείτε να επιλέξετε:

  1. Θα μπορούσατε να χρησιμοποιήσετε έναν απομακρυσμένο διακομιστή μιας εταιρείας, τον οποίο πιθανότατα πρέπει να πληρώνετε τακτικά.
  2. Θα μπορούσατε να χρησιμοποιήσετε τον δικό σας υπολογιστή. Το προτείνω μόνο για δοκιμή, δεν είναι πραγματικά αποδοτικό να το χρησιμοποιείτε 24/7, λόγω σπατάλης ενέργειας, ζητημάτων ασφάλειας.
  3. Θα μπορούσατε να χρησιμοποιήσετε έναν μικροσκοπικό υπολογιστή, όπως το Raspberry PI. Ελαφρύ, φθηνό, δεν καταναλώνει πολύ ενέργεια.

Δοκίμασα τη δεύτερη και την τρίτη επιλογή, λειτούργησαν καλά. Λοιπόν, ο κύριος στόχος δεν είναι οι διακομιστές αυτών των οδηγιών, αλλά σας συμβουλεύω μερικές συμβουλές.

Εάν χρησιμοποιείτε υπολογιστή, χρησιμοποιείτε πιθανώς Windows. Αν ήμουν στη θέση σας, θα εγκαθιστούσα έναν διακομιστή Apache ή XAMPP σε αυτόν.

Το XAMPP έχει ήδη PHP σε αυτό, εκτός από το ότι έρχεται επίσης με HTML, Perl και σύστημα διαχείρισης βάσεων δεδομένων. Με την PHP, μπορείτε να δημιουργήσετε έναν δυναμικό διακομιστή. Εάν θέλετε να χρησιμοποιήσετε τον τοπικό διακομιστή που μόλις δημιουργήσατε από οπουδήποτε στον κόσμο, πρέπει να εκχωρήσετε στατική IP στον υπολογιστή σας και να κάνετε κάποια μεταφορά port. Ένα χρήσιμο σεμινάριο για στατική IP:

Και όλο το λιμενικό:

Εάν έχετε Βατόμουρο, είναι καλή πρακτική να το χρησιμοποιήσετε. Μπορείτε να εξοικειωθείτε με τις εντολές Linux και να εκτελέσετε τον δικό σας διακομιστή 24/7.

Το λειτουργικό σύστημα ήταν το Raspbian Jessie με ακέφαλη ρύθμιση (χωρίς πληκτρολόγιο, οθόνη) - το έλεγξα με τον υπολογιστή μου με σύνδεση SSH.

Χρησιμοποίησα το Putty για να συνδεθώ στο Raspberry μου. Μην ξεχάσετε να αλλάξετε τον κωδικό πρόσβασης του λογαριασμού σας, έτσι ώστε οι άλλοι να μην μπορούν να συνδεθούν σε εσάς Pi. Η προεπιλογή είναι: pi, passw: βατόμουρο.

Εγκατέστησα έναν διακομιστή ιστού lighttpd με sqlite3. Καλό σεμινάριο βρέθηκε εδώ:

Χρησιμοποίησα κυρίως PHP στον κωδικό διακομιστή. Με την PHP μπορείτε να λαμβάνετε δεδομένα, να διαβάζετε/να γράφετε βάσεις δεδομένων - να κωδικοποιείτε ένα ερώτημα σε μορφή json κ.λπ. … Αυτό το σεμινάριο θα σας βοηθήσει πολύ, πώς να διαχειριστείτε τη βάση δεδομένων σας με PHP.

Μπορείτε να δείτε τον κωδικό μου και στο github, στο φάκελο server_files.

Και φυσικά, πρέπει να ενεργοποιήσετε τη μεταφορά portfor στο Pi σας στο δρομολογητή σας, εάν θέλετε να αποκτήσετε πρόσβαση σε αυτό από απόσταση.

Βήμα 8: Τέλος/Εμπειρία

Δεν έχει ακόμη γίνει περίβλημα.

Η εμπειρία μου είναι ότι, το σύστημα δεν λειτουργεί πολύ άσχημα. Ωστόσο, αναμένονται βελτιώσεις σταθερότητας.

Εάν ο ιχνηλάτης δεν λειτούργησε με τον κωδικό που έβαλα, μην ανησυχείτε. Προσπαθήστε να βεβαιωθείτε ότι τα SIM800L και NEO 6M λειτουργούν όπως πρέπει. Μπορείτε να τροποποιήσετε ελεύθερα τον κωδικό μου ή να αναζητήσετε καλύτερο. Ελπίζω μόνο, ότι θα μπορούσα να σας δείξω ένα παράδειγμα, πώς μπορείτε να ολοκληρώσετε αυτό το έργο.

Δέχομαι κάθε συμβουλή, διόρθωση από σχόλια. Μη διστάσεις να ρωτήσεις.

Συνιστάται: