Isi kandungan:

Penjejakan GPS Masa Nyata: 3 Langkah
Penjejakan GPS Masa Nyata: 3 Langkah

Video: Penjejakan GPS Masa Nyata: 3 Langkah

Video: Penjejakan GPS Masa Nyata: 3 Langkah
Video: Tutorial Lengkap dan Review GPS Mini GF-07 GPS Mini Multifungsi untuk Lacak Lokasi dan Sadap Suara 2024, November
Anonim

Oleh elizabethna Ikuti Lagi oleh pengarang:

Penjejak Labu Pi Trick-or-Treat
Penjejak Labu Pi Trick-or-Treat
Penjejak Labu Pi Trick-or-Treat
Penjejak Labu Pi Trick-or-Treat
Cara Membina Monitor Suhu Raspberry Pi
Cara Membina Monitor Suhu Raspberry Pi
Cara Membina Monitor Suhu Raspberry Pi
Cara Membina Monitor Suhu Raspberry Pi
Alirkan Data Dari Helaian Google ke Papan Pemuka
Alirkan Data Dari Helaian Google ke Papan Pemuka
Alirkan Data Dari Helaian Google ke Papan Pemuka
Alirkan Data Dari Helaian Google ke Papan Pemuka

Dalam tutorial ini, kami akan menunjukkan kepada anda bagaimana melakukan penjejakan lokasi masa nyata menggunakan BerryGPS-GSM, Raspberry Pi Zero, dan Initial State. Kami akan menghantar garis bujur, garis lintang dan kelajuan melalui 3G dengan BerryGPS-GSM ke Negeri Permulaan.

Bekalan

  • Raspberry Pi Zero
  • BerryGPS-GSM
  • Keadaan awal

Langkah 1: Keadaan Awal

Keadaan awal
Keadaan awal

Kami ingin mengalirkan semua data garis bujur, garis lintang, dan kelajuan kami ke perkhidmatan cloud dan meminta perkhidmatan itu mengubah data kami menjadi papan pemuka yang bagus yang dapat kami akses dari komputer riba atau peranti mudah alih kami. Kami akan menggunakan Negeri Permulaan.

Langkah 1: Daftar untuk Akaun Negeri Permulaan

Pergi ke https://iot.app.initialstate.com dan buat akaun baru. Anda mendapat percubaan percuma 14 hari dan sesiapa sahaja yang mempunyai alamat e-mel edu boleh mendaftar untuk rancangan pelajar percuma.

Langkah 2: Pasang ISStreamer

Pasang modul Initial State Python ke Raspberry Pi anda. Pada command prompt, jalankan arahan berikut:

$ cd / rumah / pi /

$ / curl -sSL https://get.initialstate.com/python -o - | sudo bash

Langkah 3: Buat beberapa Automagik

Selepas Langkah 2, anda akan melihat sesuatu yang serupa dengan output berikut ke skrin:

pi @ raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o - | sudo bash Kata Laluan: Memulakan Pemasangan Mudah ISStreamer Python! Ini mungkin memerlukan beberapa minit untuk memasang, ambil kopi:) Tetapi jangan lupa untuk kembali, saya akan mempunyai soalan kemudian! Found easy_install: setuptools 1.1.6 Found pip: pip 1.5.6 from /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) versi utama pip: 1 pip versi kecil: 5 ISStreamer dijumpai, dikemas kini … Keperluan sudah terkini: ISStreamer di Pustaka / Python / 2.7 / pakej laman Pembersihan … Adakah anda mahu mendapatkan skrip contoh secara automatik? [y / N] Di mana anda mahu menyimpan contohnya? [lalai:./is_example.py] Sila pilih aplikasi Status Permulaan yang anda gunakan: 1. app.initialstate.com 2. [BARU!] iot.app.initialstate.com Masukkan pilihan 1 atau 2: Masukkan iot.app nama pengguna.initialstate.com: Masukkan kata laluan iot.app.initialstate.com:

Apabila ditanya adakah anda ingin mendapatkan skrip contoh secara automatik, letakkan "y" untuk ya dan tekan enter untuk menyimpan skrip anda di lokasi lalai. Untuk pertanyaan mengenai aplikasi mana yang anda gunakan, pilih 2 (kecuali anda mendaftar sebelum November 2018) dan masukkan nama pengguna dan kata laluan anda.

Langkah 4: Jalankan Skrip Contoh

Jalankan skrip ujian untuk memastikan kami dapat membuat aliran data ke akaun Negeri Permulaan anda. Tulis arahan berikut:

$ python is_example.py

Langkah 5: Contoh Data

Kembali ke akaun Keadaan Awal anda di penyemak imbas web anda. Baldi data baru yang disebut "Contoh Python Stream" seharusnya muncul di sebelah kiri di rak log anda (anda mungkin perlu memuat semula halaman). Klik pada baldi ini untuk melihat data anda.

Langkah 2: BerryGPS-GSM & Raspberry Pi Zero

BerryGPS-GSM & Raspberry Pi Zero
BerryGPS-GSM & Raspberry Pi Zero

Sekiranya anda menggunakan BerryGPS-GSM, anda boleh mengikuti panduan ini untuk mendapatkan GPS berfungsi dan membuat Pi anda disambungkan melalui 3G menggunakan PPP.

Panduan yang dipautkan juga menunjukkan cara membuat Pi anda menyambung ke rangkaian pembawa secara automatik semasa boot. Anda memerlukannya jika anda merancang untuk melakukan penjejakan jarak jauh.

Pasang Perpustakaan

Anda perlu memasang perpustakaan berikut:

$ sudo apt-get pasang python-pip

$ sudo pip install pynmea2 $ sudo pip install ISStreamer

Skrip Python Utama

Di sini kita akan membuat skrip utama yang akan mengalirkan data GPS ke Status Permulaan. Kod di bawah ini membuat utas terpisah yang digunakan untuk memantau port bersiri. Ini diperlukan kerana kita mempunyai jeda di gelung utama. Jeda ada untuk mengehadkan berapa banyak data yang kami muat naik melalui 3G.

Sekiranya kita melakukan semuanya dalam urutan yang sama semasa jeda, penyangga bersiri akan terisi (itu adalah FIFO) dan apabila kita mendapat nilai seterusnya dari penyangga, itu akan menjadi tua beberapa saat. Ini berlaku setiap gelung dan akhirnya data akan beberapa minit atau jam di belakang.

Untuk membuat skrip python dan membuka editor teks masukkan arahan berikut:

$ nano GPStracker.py

Salin dan tampal kod berikut ke dalam penyunting teks. Anda perlu memasukkan Kunci Akses Keadaan Awal anda pada baris 11 di mana tertera "MASUKKAN KUNCI AKSES ANDA":

#! / usr / bin / pythonfrom import gps * dari import masa * import threading import datetime dari ISStreamer. Streamer import Streamer gpsd = Tiada #Setup pemboleh ubah global #Menyiapkan aliran Negeri Permulaan, masukkan kunci akses anda di bawah streamer = Streamer (bucket_name = "GPS_Tracker ", bucket_key =" GPS_TRACKER ", access_key =" MASUKKAN KUNCI AKSES ANDA ") kelas GPSDcollector (threading. Thread): def _init _ (self, threadID): threading. Thread._ init _ (self) self.threadID = threadID global gpsd #bring dalam skop gpsd = gps (mod = WATCH_ENABLE) #Mulai GPSD self.running = True #Mulai menjalankan thread ini def run (self): global gpsd while gpsdThread.running: gpsd.next () if _name_ == '_main_': gpsdThread = GPSDcollector (1) # buat utas untuk mengumpulkan data cuba: gpsdThread.start () # mulakannya sementara Benar: cetak 'GPS', gpsd.utc, 'CPU time->', datetime.datetime.now ().time (), if (gpsd.fix.longitude0) dan (gpsd.fix.longitude'nan '): streamer.log ("Lokasi", "{lat}, {lon}". format (lat = gpsd.fix.lintang, lon = gpsd.fix.longitu de)) streamer.log ("speed", gpsd.fix.speed) print 'lat', gpsd.fix.latitude, print 'lon', gpsd.fix.longitude, print 'speed', gpsd.fix.speed sleep (5) kecuali (KeyboardInterrupt, SystemExit): # semasa anda menekan ctrl + c cetak "\ nMembunuh Thread …" gpsdThread.running = False gpsdThread.join () # tunggu sehingga utas selesai melakukan apa yang dicetak "Selesai. / NExiting."

Simpan dan keluar dari editor teks saya menekan CTRL + X, Y, masukkan.

Mulakan skrip secara automatik semasa boot

Sekiranya anda melakukan pemantauan jarak jauh, anda mahu skrip dijalankan semasa boot. Untuk melakukan ini, kita akan membuat skrip kecil yang akan memulakan program python utama. Masukkan arahan berikut:

$ nano GPStrackerStart.sh

Salin baris ke dalam editor teks:

#! / bin / bash

tidur 15 python /home/pi/GPStracker.py &

Jeda di atas ada untuk memberi masa Pi untuk boot dan berhubung melalui PPP.

Jadikan skrip boleh dilaksanakan:

$ chmod + x ~ / GPStrackerStart.sh

Kami akan menggunakan cron untuk memulakan skrip setiap kali Pi boot:

$ crontab -e

Tambahkan baris di bawah ke bawah:

@reboot /home/pi/GPStrackerStart.sh &

Langkah 3: Papan Pemuka Lokasi & Kelajuan

Papan Pemuka Lokasi & Kelajuan
Papan Pemuka Lokasi & Kelajuan

Sekarang bahawa projek anda sudah siap dan data yang sedang berjalan seharusnya dihantar ke Status Permulaan. Anda akan mempunyai data GPS dan data kelajuan. Anda dapat menggunakan data GPS dalam peta Ubin untuk mengesan lokasi. Untuk peta Tile, pastikan untuk mencentang kotak Draw Path sehingga pelacakan lokasi anda dipetakan seperti papan pemuka di atas. Anda boleh meletakkan data kelajuan anda dalam grafik garis untuk melihat kelajuan dari masa ke masa.

Disyorkan: