# GPS(raspberry) 硬體: 1. raspberry pi zero 2. neo-6m ## UART 腳位設定 依照參考資料3使用指令**sudo rasp-config**選擇**Serial**的設定,之後會有兩種設定選擇,分別是: ```bash= 1. 是否開啟uart硬體設定 2. 是否讓console透過uart輸出 ``` 第一個選是,二個選否。 ## 硬體接腳  | raspberry pi | neo-6m | | -------- | -------- | | VCC | VCC | | RX | TX | | TX | RX | | GND | GND | ## 軟體操作 1. 安裝python 查詢gps實際位址需要的函式庫 ```bash= pip install geopy pip install pynmea2 ``` 2. 使用以下程式碼(gps.py): ```bash= from geopy.geocoders import Nominatim import serial import time import string import pynmea2 while True: port="/dev/ttyAMA0" ser=serial.Serial(port, baudrate=9600, timeout=0.5) dataout = pynmea2.NMEAStreamReader() newdata=ser.readline() if newdata[0:6] == "$GPRMC": newmsg=pynmea2.parse(newdata) lat=newmsg.latitude lng=newmsg.longitude geolocator = Nominatim(user_agent="gps") print(str(lat)+","+str(lng)) location = geolocator.reverse(str(lat)+","+str(lng)) print(location.address) ``` 3. 執行程式碼: ```bash= python gps.py ``` 4. 之後應該到程式印出gps位址和轉換過得實際地址 ## 遇到問題 1. neo-6m這個模組gps精度不夠高,導致最後轉換出來的位址只能顯示到門牌幾號的細部資訊,之後可以找更高階的模組(neo-7m,neo-M8N)應該可以解決這個問題。 ## 未來應用 1. 路跑軌跡數據收集 參考資料: 1. [geopy 2.0.0](https://pypi.org/project/geopy/) 2. [reverse-geocode 1.4.1](https://pypi.org/project/reverse-geocode/) 3. [树莓派3 串口](http://allstack.net/wordpress/post-1657.html) 4. [minmea, a lightweight GPS NMEA 0183 parser library](https://github.com/kosma/minmea) 5. [使用Python和C的Raspberry Pi UART通信](https://www.qutaojiao.com/9502.html) ###### tags: `raspberry pi` `gps`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up