- Komponen yang Diperlukan:
- Modul GPS dan Cara Kerjanya:
- Mempersiapkan Raspberry Pi untuk berkomunikasi dengan GPS:
- Koneksi untuk modul GPS Raspberry Pi Antarmuka:
- Menguji sebelum Python Script:
Salah satu platform tertanam paling keren seperti Arduino telah memberi pembuat dan DIYer kemampuan untuk mendapatkan data lokasi dengan mudah menggunakan modul GPS dan dengan demikian membangun hal-hal yang bergantung pada lokasi. Dengan jumlah daya yang dikemas oleh Raspberry Pi, tentu akan sangat luar biasa untuk membangun proyek berbasis GPS dengan modul GPS murah yang sama dan itulah fokus dari posting ini. Hari ini dalam proyek ini kita akan menghubungkan modul GPS dengan Raspberry Pi 3.
Tujuan dari proyek ini adalah untuk mengumpulkan data lokasi (bujur dan lintang) melalui UART dari modul GPS dan menampilkannya pada LCD 16x2, jadi jika Anda tidak terbiasa dengan cara kerja LCD 16x2 dengan Raspberry Pi, ini adalah hal lain. kesempatan bagus untuk belajar.
Komponen yang Diperlukan:
- Raspberry Pi 3
- Modul GPS Neo 6m v2
- LCD 16 x 2
- Sumber daya untuk Raspberry Pi
- Kabel LAN untuk menghubungkan pi ke PC Anda dalam mode tanpa kepala
- Kabel papan tempat memotong roti dan Jumper
- Resistor / potensiometer ke LCD
- Kartu memori 8 atau 16Gb menjalankan Raspbian Jessie
Selain itu kita perlu menginstal library GPS Daemon (GPSD), library Adafruit LCD 16x2, yang nantinya akan kita instal di tutorial ini.
Di sini kami menggunakan Raspberry Pi 3 dengan Raspbian Jessie OS. Semua persyaratan Perangkat Keras dan Perangkat Lunak dasar telah dibahas sebelumnya, Anda dapat mencarinya di Pengenalan Raspberry Pi.
Modul GPS dan Cara Kerjanya:
GPS adalah singkatan dari Global Positioning System dan digunakan untuk mendeteksi Lintang dan Bujur dari lokasi mana pun di Bumi, dengan waktu UTC yang tepat (Waktu Universal Terkoordinasi). Modul GPS adalah komponen utama dalam proyek sistem pelacakan kendaraan kami. Perangkat ini menerima koordinat dari satelit untuk setiap detik, dengan waktu dan tanggal.
Modul GPS mengirimkan data yang berhubungan dengan posisi pelacakan secara real time, dan mengirimkan banyak data dalam format NMEA (lihat gambar di bawah). Format NMEA terdiri dari beberapa kalimat, dimana kita hanya membutuhkan satu kalimat. Kalimat ini dimulai dari $ GPGGA dan berisi koordinat, waktu, dan informasi berguna lainnya. Ini GPGGA disebut Global Positioning System Fix data. Ketahui lebih banyak tentang Membaca data GPS dan stringnya di sini.
Kita dapat mengekstrak koordinat dari string $ GPGGA dengan menghitung koma dalam string tersebut. Misalkan Anda menemukan string $ GPGGA dan menyimpannya dalam array, Latitude dapat ditemukan setelah dua koma dan Longitude dapat ditemukan setelah empat koma. Sekarang lintang dan bujur ini bisa diletakkan di array lain.
Di bawah ini adalah String $ GPGGA, beserta deskripsinya:
$ GPGGA, 104534.000,7791.0381, N, 06727.4434, E, 1.08.0.9.510.4, M, 43.9, M`` * 47
$ GPGGA, HHMMSS.SSS, lintang, N, bujur, E, FQ, NOS, HDP, ketinggian, M, tinggi, M,, data checksum
Pengenal |
Deskripsi |
$ GPGGA |
Data perbaikan sistem Global Positioning |
HHMMSS.SSS |
Waktu dalam format jam menit detik dan milidetik. |
Garis Lintang |
Lintang (Koordinat) |
N |
Arah N = Utara, S = Selatan |
Garis bujur |
Bujur (Koordinat) |
E |
Arah E = Timur, W = Barat |
FQ |
Perbaiki Data Kualitas |
NOS |
Jumlah Satelit yang Digunakan |
HPD |
Pengenceran Horizontal Presisi |
Ketinggian |
Ketinggian dari permukaan laut |
M |
Meter |
Tinggi |
Tinggi |
Checksum |
Data Checksum |
Anda dapat memeriksa proyek GPS kami yang lain:
- Vehicle Tracker berbasis Arduino menggunakan GPS dan GSM
- Sistem Peringatan Kecelakaan Kendaraan Berbasis Arduino menggunakan GPS, GSM dan Accelerometer
- Cara Menggunakan GPS dengan Arduino
- Lacak Kendaraan di Google Maps menggunakan Arduino, ESP8266 & GPS
Mempersiapkan Raspberry Pi untuk berkomunikasi dengan GPS:
Oke sekian untuk masuk, agar ini tidak membosankan, saya anggap Anda sudah tahu banyak tentang Raspberry Pi, cukup dengan menginstal OS Anda, dapatkan alamat IP, sambungkan ke perangkat lunak terminal seperti dempul dan hal-hal lain tentang PI. Jika Anda memiliki masalah dalam melakukan salah satu hal yang disebutkan di atas, hubungi saya di bawah bagian komentar dan saya akan dengan senang hati membantu.
Hal pertama yang harus kita lakukan untuk menjalankan proyek ini adalah mempersiapkan Raspberry Pi 3 kita untuk dapat berkomunikasi dengan modul GPS melalui UART, percayalah, ini cukup rumit dan cukup sulit untuk melakukannya dengan benar tetapi jika Anda mengikuti panduan saya dengan hati-hati Anda akan mendapatkannya sekaligus, ini adalah bagian yang paling sulit dari proyek. Di sini kami telah menggunakan Modul GPS Neo 6m v2.
Untuk mendalami, berikut sedikit penjelasan tentang Cara Kerja Raspberry Pi 3 UART.
Raspberry Pi memiliki dua UART bawaan, PL011 dan UART mini. Mereka diimplementasikan menggunakan blok perangkat keras yang berbeda sehingga mereka memiliki karakteristik yang sedikit berbeda. Namun pada raspberry pi 3, modul nirkabel / bluetooth dihubungkan ke PLO11 UART, sedangkan UART mini digunakan untuk ouptut konsol linux. Bergantung pada bagaimana Anda melihatnya, saya akan mendefinisikan PLO11 sebagai yang terbaik dari dua UART karena tingkat implementasinya. Jadi untuk proyek ini kami akan menonaktifkan modul Bluetooth dari PLO11 UART menggunakan overlay yang tersedia di Raspbian Jessie versi terbaru.
Langkah 1: Memperbarui Raspberry Pi:
Hal pertama yang ingin saya lakukan sebelum memulai setiap proyek adalah memperbarui raspberry pi. Jadi mari lakukan yang biasa dan jalankan perintah di bawah ini;
sudo apt-get update sudo apt-get upgrade
kemudian reboot sistem dengan;
sudo reboot
Langkah 2: Menyiapkan UART di Raspberry Pi:
Hal pertama yang akan kita lakukan di bawah ini adalah mengedit file /boot/config.txt . Untuk melakukan ini, jalankan perintah di bawah ini:
sudo nano /boot/config.txt
di bagian bawah file config.txt, tambahkan baris berikut
dtparam = spi = on dtoverlay = pi3-nonaktifkan-bt core_freq = 250 enable_uart = 1 force_turbo = 1
ctrl + x untuk keluar dan tekan y dan enter untuk menyimpan.
Pastikan tidak ada kesalahan ketik atau kesalahan dengan memeriksa ulang karena kesalahan ini dapat mencegah pi Anda dari boot.
Apa alasan untuk perintah ini, force_turbo memungkinkan UART untuk menggunakan frekuensi inti maksimum yang kami setel dalam hal ini menjadi 250. Alasannya adalah untuk memastikan konsistensi dan integritas data serial yang diterima. Penting untuk dicatat pada titik ini bahwa menggunakan force_turbo = 1 akan membatalkan garansi raspberry pi Anda, tetapi selain itu, ini cukup aman.
The dtoverlay = PI3-disable-bt terputus bluetooth dari ttyAMA0 , ini adalah untuk memungkinkan kita mengakses untuk menggunakan kekuatan UART penuh tersedia melalui ttyAMAO bukan mini UART ttyS0.
Langkah kedua di bawah bagian setup UART ini adalah mengedit boot / cmdline.txt
Saya akan menyarankan Anda membuat salinan cmdline.txt dan menyimpannya terlebih dahulu sebelum mengedit sehingga Anda dapat kembali lagi nanti jika diperlukan. Ini bisa dilakukan dengan menggunakan;
sudo cp boot / cmdline.txt boot / cmdline_backup.txt sudo nano /boot.cmdline.txt
Ganti konten dengan;
dwc_otg.lpm_enable = 0 console = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 elevator = deadline fsck.repair = yes rootwait splash yang tenang plymouth.ignore-serial-consoles
Simpan dan keluar.
Setelah ini selesai maka kita perlu me-reboot sistem lagi untuk melakukan perubahan ( sudo reboot ).
Langkah3: Menonaktifkan Layanan Raspberry Pi Serial Getty
Langkah selanjutnya adalah menonaktifkan serial Pi layanan getty , perintah akan mencegahnya memulai lagi saat reboot:
sudo systemctl hentikan [email protected] sudo systemctl nonaktifkan [email protected]
Perintah berikut dapat digunakan untuk mengaktifkannya kembali jika diperlukan
sudo systemctl aktifkan [email protected] sudo systemctl mulai [email protected]
Mulai ulang sistem.
Langkah 4: Mengaktifkan ttyAMAO:
Kami telah menonaktifkan ttyS0, hal berikutnya adalah mengaktifkan ttyAMAO .
sudo systemctl mengaktifkan [email protected]
Step5: Instal Minicom dan pynmea2:
Kami akan sangat mudah untuk terhubung ke modul GPS dan memahami data. Ini juga salah satu alat yang akan kami gunakan untuk menguji modul GPS kami berfungsi dengan baik. Alternatif untuk minicom adalah perangkat lunak daemon GPSD.
sudo apt-get install minicom
Untuk dengan mudah mengurai data yang diterima, kita akan menggunakan pustaka pynmea2 . Itu dapat diinstal menggunakan;
sudo pip menginstal pynmea2
Dokumentasi perpustakaan dapat ditemukan di sini
Langkah 6: Memasang Perpustakaan LCD:
Untuk tutorial ini kita akan menggunakan library AdaFruit. Perpustakaan dibuat untuk layar AdaFruit tetapi juga berfungsi untuk papan tampilan menggunakan HD44780. Jika tampilan Anda didasarkan pada ini maka seharusnya berfungsi tanpa masalah.
Saya merasa lebih baik untuk mengkloning pustaka dan langsung menginstal. Untuk mengkloning lari;
git clone
ubah ke direktori kloning dan instal
cd./Adafruit_Python_CharLCD sudo python setup.py install
Pada tahap ini, saya akan menyarankan reboot lagi sehingga kami siap untuk melanjutkan menghubungkan komponen.
Koneksi untuk modul GPS Raspberry Pi Antarmuka:
Hubungkan Modul GPS dan LCD ke Raspberry Pi seperti yang ditunjukkan pada Diagram Sirkuit di bawah ini.
Menguji sebelum Python Script:
Saya merasa penting untuk menguji koneksi modul GPS sebelum melanjutkan ke skrip python, Kami akan menggunakan minicom untuk ini. Jalankan perintahnya:
sudo minicom -D / dev / ttyAMA0 -b9600
dimana 9600 mewakili baud rate di mana modul GPS berkomunikasi. Ini dapat digunakan untuk setelah kami yakin akan komunikasi data antara GPS dan RPI, waktunya untuk menulis skrip python kami.
Tes juga bisa dilakukan dengan menggunakan cat
sudo cat / dev / ttyAMA0
Di Window, Anda bisa melihat kalimat NMEA yang telah kita bahas sebelumnya.
Skrip Python untuk tutorial GPS Raspberry Pi ini diberikan di bawah ini di bagian Kode.
Dengan semua yang dikatakan dan dilakukan, saatnya untuk menguji seluruh sistem. Sangat penting bagi Anda untuk memastikan GPS Anda mendapatkan sinyal yang baik, dengan mengeluarkannya, sebagian besar GPS memerlukan antara tiga hingga 4 satelit untuk mendapatkan sinyal, meskipun milik saya bekerja di dalam ruangan.
Bekerja dengan Benar? Ya…
Punya pertanyaan atau komentar? Jatuhkan di bagian komentar.
Video Demonstrasi diberikan di bawah ini, di mana kami telah menunjukkan Lokasi dalam lintang dan bujur pada LCD menggunakan GPS dan Raspberry Pi.