Mundarija:
- Ta'minotlar
- 1 -qadam: dastlabki holat
- 2-qadam: BerryGPS-GSM va Raspberry Pi Zero
- 3 -qadam: Joylashuv va tezlikni boshqarish paneli
Video: Haqiqiy vaqtda GPS kuzatuvi: 3 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Muallif tomonidan batafsil:
Ushbu qo'llanmada biz sizga BerryGPS-GSM, Raspberry Pi Zero va boshlang'ich holati yordamida real vaqtda manzilni kuzatishni ko'rsatamiz. Biz BerryGPS-GSM yordamida 3G orqali uzunlik, kenglik va tezlikni dastlabki holatga yuboramiz.
Ta'minotlar
- Raspberry Pi Zero
- BerryGPS-GSM
- Boshlang'ich davlat
1 -qadam: dastlabki holat
Biz barcha uzunlik, kenglik va tezlik ma'lumotlarini bulutli xizmatga o'tkazmoqchimiz va bu xizmat bizning ma'lumotlarimizni noutbukdan yoki mobil qurilmadan kira oladigan yaxshi boshqaruv paneliga aylantirishini xohlaymiz. Biz boshlang'ich holatidan foydalanamiz.
1 -qadam: Boshlang'ich davlat hisobiga ro'yxatdan o'ting
Https://iot.app.initialstate.com saytiga o'ting va yangi hisob yarating. Siz 14 kunlik bepul sinov muddatiga ega bo'lasiz va elektron pochta manziliga ega bo'lganlar bepul talabalar rejasiga yozilishlari mumkin.
2 -qadam: ISStreamer -ni o'rnating
Raspberry Pi -ga boshlang'ich holat Python modulini o'rnating. Buyruq satrida quyidagi buyruqni bajaring:
$ CD/uy/pi/
$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash
3 -qadam: Automagic -ni yarating
2 -qadamdan so'ng siz ekranga quyidagi chiqishga o'xshash narsani ko'rasiz:
pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bashPassword: ISStreamer Python -ni oson o'rnatishni boshlang! Bu o'rnatish uchun bir necha daqiqa vaqt ketishi mumkin, qahva oling:) Lekin qaytib kelishni unutmang, keyinroq savollarim bor! Easy_install topildi: setuptools 1.1.6 pip topildi: pip 1.5.6 dan /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip asosiy versiyasi: 1 pip kichik versiyasi: 5 ISStreamer topildi, yangilanmoqda … Talab allaqachon yangilangan: Kutubxonadagi ISStreamer/Python/2.7/sayt-paketlar Tozalash … Siz avtomatik tarzda misol skriptini olishni xohlaysizmi? [y/N] Misolni qayerda saqlamoqchisiz? [standart:./is_example.py] Iltimos, qaysi shtat dasturidan foydalanayotganingizni tanlang: 1. app.initialstate.com 2. [YANGI!] iot.app.initialstate.com 1 yoki 2 -variantni kiriting: iot.app -ga kiring..initialstate.com foydalanuvchi nomi: iot.app.initialstate.com parolini kiriting:
Agar siz avtomatik skript namunasini olishni xohlaysizmi, degan savolga "y" ni "ha" deb qo'ying va skriptni standart joyga saqlash uchun enter tugmasini bosing. Qaysi ilovadan foydalanayotganingiz haqidagi savol uchun 2 -ni tanlang (agar siz 2018 yil noyabrgacha ro'yxatdan o'tmagan bo'lsangiz) va foydalanuvchi nomingiz va parolingizni kiriting.
4 -qadam: Misol skriptini ishga tushiring
Boshlang'ich davlat hisob qaydnomangizga ma'lumotlar oqimini yaratishimiz uchun test skriptini ishga tushiring. Quyidagi buyruqni yozing:
$ python is_example.py
5 -qadam: Ma'lumot namunasi
Veb -brauzerda boshlang'ich davlat hisobingizga qayting. "Python oqimining namunasi" deb nomlangan yangi ma'lumotlar to'plami jurnal javonining chap tomonida ko'rsatilishi kerak edi (ehtimol siz sahifani yangilashingiz kerak bo'ladi). Ma'lumotlaringizni ko'rish uchun bu chelakka bosing.
2-qadam: BerryGPS-GSM va Raspberry Pi Zero
Agar siz BerryGPS-GSM-dan foydalanayotgan bo'lsangiz, GPS-ni ishga tushirish va Pi-ni PPP yordamida 3G orqali ulanish uchun ushbu qo'llanmani bajarishingiz mumkin.
Bog'langan qo'llanma, shuningdek, yuklash paytida Pi -ni avtomatik ravishda operator tarmog'iga qanday ulashni ko'rsatadi. Agar siz masofadan kuzatishni amalga oshirishni rejalashtirmoqchi bo'lsangiz, bu sizga kerak bo'ladi.
Kutubxonalarni o'rnating
Siz quyidagi kutubxonalarni o'rnatishingiz kerak bo'ladi:
$ sudo apt-get python-pip ni o'rnating
$ sudo pip install pynmea2 $ sudo pip install ISStreamer
Asosiy Python skript
Bu erda biz GPS ma'lumotlarini boshlang'ich holatiga o'tkazadigan asosiy skriptni yaratamiz. Quyidagi kod ketma -ket portni kuzatish uchun ishlatiladigan alohida ipni yaratadi. Bu kerak, chunki bizda asosiy tsiklda pauza bor. To'xtatish 3G orqali qancha ma'lumot yuklashni cheklash uchun mavjud.
Agar biz pauza paytida hamma narsani bir xil mavzuda bajargan bo'lsak, ketma -ket bufer to'ldiriladi (bu FIFO) va biz buferdan keyingi qiymatni olsak, u bir necha soniyalarga eskiradi. Bu har bir tsiklda sodir bo'ladi va oxir -oqibat ma'lumotlar bir necha daqiqa yoki soat orqada qoladi.
Python skriptini yaratish va matn muharririni ochish uchun quyidagi buyruqni kiriting:
$ nano GPStracker.py
Quyidagi kodni nusxa ko'chiring va matn muharririga joylashtiring. Siz "kirish kalitini kiriting" deb yozilgan 11 -qatorga dastlabki kirish kalitini kiritishingiz kerak bo'ladi.
#! /usr/bin/pythonfrom gps import * vaqtdan import * ISStreamer -dan ma'lumotlarni uzatish vaqtini import qilish. Streamer import Streamer gpsd = Yo'q #Global o'zgaruvchini o'rnatish #Boshlang'ich holatini sozlash, kirish kalitini streamer ostiga kiriting = Streamer (bucket_name = "GPS_Tracker) ", bucket_key =" GPS_TRACKER ", access_key =" KIRISH KEYINGIZGA KIRING ") sinf GPSDcollector (threading. Thread): def _init _ (self, threadID): threading. Thread._ init _ (self) self.threadID = threadID global gpsd #bring u gpsd = gps (mode = WATCH_ENABLE) #Start GPSD self.running = True #Bu ishni bajarishni boshlang def run (self): global gpsd while gpsdThread.running: gpsd.next () if _name_ == '_main_': gpsdThread = GPSDcollector (1) # ma'lumotlarni yig'ish uchun mavzu yarating, harakat qilib ko'ring: gpsdThread.start () # rost bo'lganda uni ishga tushiring: 'GPS', gpsd.utc, 'CPU time->', datetime.datetime.now () ni chop eting..time (), agar (gpsd.fix.longitude0) va (gpsd.fix.longitude'nan '): streamer.log ("Manzil", "{lat}, {lon}". format) (lat = gpsd.fix. Latitude, lon = gpsd.fix.longitu de)) streamer.log ("tezlik", gpsd.fix.speed) "lat", gpsd.fix.latitude, "lon", gpsd.fix.longitude, "tezlik", gpsd.fix.speed uyqu (5) tashqari (KeyboardInterrupt, SystemExit): # ctrl+c tugmachalarini bosganingizda "\ nKilling Thread…" gpsdThread.running = False gpsdThread.join () # ip nima qilayotganini tugatguncha kutib turing "Bajarildi. / NExit."
Matn tahrirlovchisini saqlang va CTRL + X, Y tugmalarini bosing va kiriting.
Yuklash paytida skriptni avtomatik ravishda ishga tushiring
Agar siz masofadan turib kuzatayotgan bo'lsangiz, skript yuklashda ishlashini xohlaysiz. Buning uchun biz asosiy python dasturini ishga tushiradigan kichik skript yaratamiz. Quyidagi buyruqni kiriting:
$ nano GPStrackerStart.sh
Satrlarni matn muharririga nusxalash:
#!/bin/bash
uxlash 15 python /home/pi/GPStracker.py &
Yuqoridagi pauza Pi -ga PPP orqali yuklash va ulanish uchun vaqt berish uchun mavjud.
Skriptni bajariladigan qilib qo'ying:
$ chmod +x ~/GPStrackerStart.sh
Biz har safar Pi yuklashda skriptni ishga tushirish uchun cron -dan foydalanamiz:
$ crontab -e
Pastki qatorga quyidagi qatorni qo'shing:
@reboot /home/pi/GPStrackerStart.sh &
3 -qadam: Joylashuv va tezlikni boshqarish paneli
Endi siz loyihangizni ishga tushirganingizdan so'ng, ma'lumotlar dastlabki holatga yuborilishi kerak. Sizda GPS va tezlik ma'lumotlari bo'ladi. Joylashuvni kuzatish uchun siz GPS ma'lumotlarini xaritalarda ishlatishingiz mumkin. Plitka xaritasi uchun "Yo'l chizish" katagiga belgi qo'yganingizga ishonch hosil qiling, shunda sizning joylashuvingizni kuzatish yuqoridagi asboblar paneliga o'xshab ko'rinadi. Vaqt o'tishi bilan tezlikni ko'rish uchun siz tezlik ma'lumotlarini chiziqli grafikga qo'yishingiz mumkin.
Tavsiya:
Haqiqiy vaqtda soat modulidan qanday foydalanish kerak (DS3231): 5 qadam
Haqiqiy vaqtda soat modulidan qanday foydalanish kerak (DS3231): DS3231-bu past haroratli, juda aniq I2C real vaqtda soat (RTC), haroratni kompensatsiyalangan kristalli osilator (TCXO) va kristalli. Qurilma batareya quvvatini o'z ichiga oladi va uning asosiy quvvati quvvat olganda vaqtni aniq saqlaydi
Haqiqiy vaqtda suv sathining o'lchagichi: 6 qadam (rasmlar bilan)
Haqiqiy vaqtda quduqdagi suv sathini o'lchash moslamasi: Bu yo'riqnomada qazilgan quduqlarda foydalanish uchun arzon, real vaqtda suv sathini o'lchash moslamasi qanday qurilishi tasvirlangan. Suv sathi o'lchagichi qazilgan quduq ichida osib qo'yish, kuniga bir marta suv sathini o'lchash va ma'lumotlarni WiFi yoki uyali aloqa orqali yuborish uchun mo'ljallangan
Haqiqiy vaqtda quduq suvining harorati, o'tkazuvchanligi va suv sathi o'lchagichi: 6 qadam (rasmlar bilan)
Haqiqiy vaqtda quduq suvining harorati, o'tkazuvchanligi va suv sathi o'lchagichi: Bu yo'riqnomada harorati, elektr o'tkazuvchanligi (EC) va qazilgan quduqlardagi suv sathini kuzatish uchun arzon, real vaqtda suv hisoblagichini qanday qurish kerakligi tasvirlangan. Hisoblagich qazilgan quduq ichiga osib qo'yish, suvning haroratini o'lchash uchun mo'ljallangan, EC va
ESP8266 va OLED yordamida jonli Covid19 kuzatuvchisi - Haqiqiy vaqtda Covid19 asboblar paneli: 4 qadam
ESP8266 va OLED yordamida jonli Covid19 kuzatuvchisi | Haqiqiy vaqtda Covid19 asboblar paneli: Techtronic Harsh veb -saytiga tashrif buyuring: http: //techtronicharsh.com Hamma joyda yangi korona virusi (COVID19) avj olgan. Dunyoda COVID-19ning hozirgi ssenariysini kuzatib turish zarur bo'lib qoldi, shuning uchun uyda bo'lganingizda, bu
LightMeUp! Haqiqiy vaqtda o'zaro faoliyat platformali LED chiziqli boshqaruv: 5 qadam (rasmlar bilan)
LightMeUp! Haqiqiy vaqtda o'zaro faoliyat platformali LED chiziqli boshqaruv: LightMeUp! RGB LED-Strip-ni real vaqtda boshqarish uchun men ixtiro qilgan tizim, shu bilan birga narxni past va ishlashni yuqori darajada ushlab turish. Server Node.js-da yozilgan va shuning uchun uni o'zaro ishlatish mumkin, mening misolimda men uzoq muddatli foydalanish uchun Raspberry Pi 3B dan foydalanaman