İçindekiler:
- Gereçler
- Adım 1: İlk Durum
- Adım 2: BerryGPS-GSM ve Raspberry Pi Zero
- 3. Adım: Konum ve Hız Gösterge Tablosu
Video: Gerçek Zamanlı GPS Takibi: 3 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Elizabethna tarafındanYazarın daha fazlasını izleyin:
Bu eğitimde size bir BerryGPS-GSM, bir Raspberry Pi Zero ve İlk Durum kullanarak gerçek zamanlı konum takibinin nasıl yapıldığını göstereceğiz. BerryGPS-GSM ile 3G üzerinden boylam, enlem ve hızı İlk Duruma göndereceğiz.
Gereçler
- Ahududu Pi Sıfır
- BerryGPS-GSM
- Başlangıç hali
Adım 1: İlk Durum
Tüm boylam, enlem ve hız verilerimizi bir bulut hizmetine aktarmak ve bu hizmetin verilerimizi dizüstü veya mobil cihazımızdan erişebileceğimiz güzel bir panoya dönüştürmesini istiyoruz. İlk Durumu kullanacağız.
Adım 1: İlk Durum Hesabına Kaydolun
iot.app.initialstate.com adresine gidin ve yeni bir hesap oluşturun. 14 günlük ücretsiz deneme süresine sahip olursunuz ve edu e-posta adresi olan herkes ücretsiz öğrenci planına kaydolabilir.
2. Adım: ISStreamer'ı yükleyin
Raspberry Pi'nize Initial State Python modülünü kurun. Komut isteminde aşağıdaki komutu çalıştırın:
$ cd /ev/pi/
$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash
3. Adım: Biraz Automagic yapın
2. Adımdan sonra ekranda aşağıdaki çıktıya benzer bir şey göreceksiniz:
pi@raspberrypi ~ $ \curl -sSL https://get.initialstate.com/python -o - | sudo bashPassword: ISStreamer Python Kolay Kurulumu Başlıyor! Kurulumu birkaç dakika sürebilir, biraz kahve alın:) Ama tekrar gelmeyi unutmayın, daha sonra sorularım olacak! Bulunan easy_install: setuptools 1.1.6 Bulunan pip: /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg'den pip 1.5.6 (python 2.7) pip ana sürüm: 1 pip küçük sürüm: 5 ISStreamer bulundu, güncelleniyor… Gereksinim zaten güncel: Library/Python/2.7/site-packages'de ISStreamer Temizleniyor… Otomatik olarak örnek bir komut dosyası almak ister misiniz? [y/N] Örneği nereye kaydetmek istiyorsunuz? [varsayılan:./is_example.py] Lütfen kullandığınız Başlangıç Durumu uygulamasını seçin: 1. app.initialstate.com 2. [YENİ!] iot.app.initialstate.com 1. veya 2. seçeneği girin: iot.app girin.initialstate.com kullanıcı adı: iot.app.initialstate.com parolasını girin:
Otomatik olarak örnek bir komut dosyası almak isteyip istemediğiniz sorulduğunda, evet için "y" koyun ve komut dosyanızı varsayılan konuma kaydetmek için enter tuşuna basın. Hangi uygulamayı kullandığınızla ilgili soru için 2'yi seçin (Kasım 2018'den önce kaydolmadıysanız) ve kullanıcı adınızı ve şifrenizi girin.
Adım 4: Örnek Komut Dosyasını Çalıştırın
İlk Durum hesabınıza bir veri akışı oluşturabileceğimizden emin olmak için test komut dosyasını çalıştırın. Aşağıdaki komutu yazın:
$ python is_example.py
Adım 5: Örnek Veriler
Web tarayıcınızda İlk Durum hesabınıza geri dönün. Günlük rafınızın solunda “Python Akış Örneği” adlı yeni bir veri paketi görünmelidir (sayfayı yenilemeniz gerekebilir). Verilerinizi görüntülemek için bu kovaya tıklayın.
Adım 2: BerryGPS-GSM ve Raspberry Pi Zero
BerryGPS-GSM kullanıyorsanız, GPS'i çalıştırmak ve Pi'nizin PPP kullanarak 3G üzerinden bağlanmasını sağlamak için bu kılavuzu takip edebilirsiniz.
Bağlantılı kılavuz ayrıca, önyüklendiğinde Pi'nizin otomatik olarak taşıyıcı ağına nasıl bağlanacağını gösterir. Uzaktan izleme yapmayı planlıyorsanız buna ihtiyacınız olacak.
Kitaplıkları Yükle
Aşağıdaki kitaplıkları yüklemeniz gerekecek:
$ sudo apt-get install python-pip
$ sudo pip kurulumu pynmea2 $ sudo pip ISStreamer kurulumu
Ana Python Komut Dosyası
Burada, GPS verilerini Başlangıç Durumuna aktaracak ana komut dosyasını oluşturacağız. Aşağıdaki kod, seri bağlantı noktasını izlemek için kullanılan ayrı bir iş parçacığı oluşturur. Bu gerekli çünkü ana döngüde bir duraklamamız var. Duraklama, 3G üzerinden ne kadar veri yüklediğimizi sınırlamak için var.
Duraklama sırasında her şeyi aynı iş parçacığında yaparsak, seri tampon dolacak (FIFO'dur) ve tampondan bir sonraki değeri aldığımızda, birkaç saniye eski olacaktır. Bu her döngüde olur ve sonunda veriler dakikalar veya saatler geride kalır.
Python betiğini oluşturmak ve metin düzenleyiciyi açmak için aşağıdaki komutu girin:
$ nano GPStracker.py
Aşağıdaki kodu kopyalayıp metin düzenleyiciye yapıştırın. İlk Durum Erişim Anahtarınızı 11. satırda "ERİŞİM ANAHTARINIZI GİRİN" yazan satıra girmeniz gerekecektir:
#! /usr/bin/python'dan gps içe aktar * zamandan içe aktar * aktarım dizisini içe aktar ISStreamer'dan içe aktar tarihsaat. Streamer içe aktar Streamer gpsd = Yok #Genel değişkeni kur #İlk Durum akışını ayarla, akış anahtarının altına erişim anahtarınızı girin streamer = Streamer(bucket_name="GPS_Tracker ", kova_key="GPS_TRACKER", access_key="ERİŞİM ANAHTARINIZI GİRİN") class GPSDcollector(threading. Thread): def _init_(self, threadID): threading. Thread._init_(self) self.threadID = threadID global gpsd #bring bu kapsamda gpsd = gps(mode=WATCH_ENABLE) #GPD'yi başlat self.running = True #Bu konuyu çalıştırmaya başla def run(self): global gpsd while gpsdThread.running: gpsd.next() if _name_ == '_main_': gpsdThread = GPSDcollector(1) # veri toplamak için bir iş parçacığı oluşturun deneyin: gpsdThread.start() # True iken başlatın: 'GPS' yazdırın, gpsd.utc, ' CPU time->', datetime.datetime.now().time(), if (gpsd.fix.longitude0) ve (gpsd.fix.longitude'nan'): streamer.log("Location", "{lat}, {lon}".format(lat=gpsd.fix).latitude, uzun=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 uyku (5) hariç (KeyboardInterrupt, SystemExit): #ctrl+c tuşlarına bastığınızda print "\nİpliği Öldürüyor…" gpsdThread.running = False gpsdThread.join() # iş parçacığının yaptığı işi bitirmesini bekleyin print "Bitti.\nÇıkış yapılıyor"
CTRL + X, Y tuşlarına basarak metin düzenleyiciyi kaydedin ve çıkın.
Komut dosyasını açılışta otomatik olarak başlat
Uzaktan izleme yapıyorsanız, komut dosyasının önyüklemede çalışmasını istersiniz. Bunu yapmak için ana python programını başlatacak küçük bir betik oluşturacağız. Aşağıdaki komutu girin:
$ nano GPStrackerStart.sh
Satırları metin düzenleyiciye kopyalayın:
#!/bin/bash
uyku 15 python /home/pi/GPStracker.py &
Yukarıdaki duraklama, Pi'ye PPP aracılığıyla önyükleme yapması ve bağlanması için zaman vermek içindir.
Komut dosyasını yürütülebilir yapın:
$ chmod +x ~/GPStrackerStart.sh
Pi her başlatıldığında betiği başlatmak için cron kullanacağız:
$ crontab -e
En alta aşağıdaki satırı ekleyin:
@reboot /home/pi/GPStrackerStart.sh &
3. Adım: Konum ve Hız Gösterge Tablosu
Artık projeniz hazır ve çalışır durumda olduğuna göre, veriler İlk Duruma gönderilmelidir. GPS verilerine ve hız verilerine sahip olacaksınız. Konumu izlemek için bir haritalar Döşemesindeki GPS verilerini kullanabilirsiniz. Harita Döşemesi için, konum izlemenizin yukarıdaki gösterge panosu gibi haritalanması için Yol Çiz onay kutusunu işaretlediğinizden emin olun. Zaman içindeki hızı görmek için hız verilerinizi bir çizgi grafiğine koyabilirsiniz.
Önerilen:
Gerçek Zamanlı Saat Modülü (DS3231) Nasıl Kullanılır: 5 Adım
Gerçek Zamanlı Saat Modülü (DS3231) Nasıl Kullanılır: DS3231, entegre sıcaklık telafili kristal osilatör (TCXO) ve kristal ile düşük maliyetli, son derece hassas bir I2C gerçek zamanlı saattir (RTC). Cihaz bir pil girişi içerir ve ana güç bu cihaza geldiğinde doğru zaman işleyişini korur
Raspberry Pi ve OpenCV Kullanan Gerçek Zamanlı Rubik Küp Gözü Kapalı Çözücü: 4 Adım
Raspberry Pi ve OpenCV Kullanan Gerçek Zamanlı Rubik Küp Gözü Kör Çözücü: Bu, Rubik küp aracının gözü kapalı çözmek için yapılmış 2. versiyonudur. 1. sürüm javascript ile geliştirilmiştir, RubiksCubeBlindfolded1 projesini görebilirsiniz, öncekinden farklı olarak, bu sürüm renkleri algılamak için OpenCV kütüphanesini kullanır ve e
Gerçek Zamanlı Kuyu Suyu Seviye Ölçer: 6 Adım (Resimlerle)
Gerçek Zamanlı Bir Kuyu Su Seviyesi Ölçer: Bu talimatlar, kazılmış kuyularda kullanım için düşük maliyetli, gerçek zamanlı bir su seviyesi ölçerin nasıl oluşturulacağını açıklar. Su seviyesi ölçer, kazılmış bir kuyuya asılmak, günde bir kez su seviyesini ölçmek ve verileri WiFi veya hücresel bağlantı ile göndermek için tasarlanmıştır
Gerçek Zamanlı Kuyu Suyu Sıcaklığı, İletkenlik ve Su Seviyesi Ölçer: 6 Adım (Resimlerle)
Gerçek Zamanlı Kuyu Suyu Sıcaklığı, İletkenlik ve Su Seviyesi Ölçer: Bu talimatlar, kazılmış kuyulardaki sıcaklık, Elektrik İletkenliği (EC) ve su seviyelerini izlemek için düşük maliyetli, gerçek zamanlı bir su sayacının nasıl oluşturulacağını açıklar. Sayaç, kazılmış bir kuyuya asılmak, su sıcaklığını ölçmek, EC ve
Ev Yapımı Gerçek Zamanlı GPS İzleyici (SIM800L, Ublox NEO-6M, Arduino): 8 Adım
Ev Yapımı Gerçek Zamanlı GPS İzleyici (SIM800L, Ublox NEO-6M, Arduino): Demek benim gibi ortalıkta dolaşan bir GSM modülünüz var? Ayrıca bir GPS izci mi? Biz de aynısını düşünüyoruz! Bu talimatta, yeni başlayanların bakış açısıyla hedefinize nasıl ulaşacağınız konusunda size rehberlik etmeye çalışacağım. Daha önce elektrik mühendisliği bilgim olmadığı için (