Mundarija:

To'liq Arduino-ga asoslangan avtomobil GPS+GPRS o'g'irlikka qarshi tizimi: 5 qadam (rasmlar bilan)
To'liq Arduino-ga asoslangan avtomobil GPS+GPRS o'g'irlikka qarshi tizimi: 5 qadam (rasmlar bilan)

Video: To'liq Arduino-ga asoslangan avtomobil GPS+GPRS o'g'irlikka qarshi tizimi: 5 qadam (rasmlar bilan)

Video: To'liq Arduino-ga asoslangan avtomobil GPS+GPRS o'g'irlikka qarshi tizimi: 5 qadam (rasmlar bilan)
Video: Lesson 28: Car-6 SunFounder self Driving Arduino car using | Robojax 2024, Noyabr
Anonim
Image
Image
Uskuna
Uskuna

Hammaga salom!

Men GPS-avtomashinalarni o'g'irlashga qarshi qurilma uchun to'liq echim yaratmoqchi edim:

iloji boricha arzonroq

iloji boricha to'liq

iloji boricha boshqa hech narsa yo'q, u faqat ishlaydi

Shunday qilib, men Arduino-ga asoslangan qarorni ishlab chiqdim, bu menga umumiy qiymati 25 dollarga tushdi.

Videodan ko'rinib turibdiki, bu faqat ishlaydi! Siz mashinani ishga tushirasiz, siz mobil telefoningizga mashina harakatlanayotgani to'g'risida bildirishnoma olasiz, keyin siz mobil ilovani ochasiz va siz mashinaning real vaqtda harakatlanishini ko'rasiz (10 soniya yangilanish kechikishi bilan).

Ushbu qo'llanma sizga barcha bosqichlar bo'yicha yo'l -yo'riq beradi, shuni yodda tutingki, yechimning bir nechta komponentlari mavjud:

1) apparat (Arduino -ga asoslangan)

2) dasturiy ta'minot (Arduino dasturi)

3) ko'proq dasturiy ta'minot (gps manzillarini server tomonidan qabul qilish)

4) undan ham ko'proq dasturiy ta'minot (mobil ilova)

Boshlaylik..

1 -qadam: Uskuna

Uskuna
Uskuna

Xaridlar ro'yxati:

1) Arduino Uno R3 yoki klon. Men "DCcEle DCcduino uno" klonidan foydalandim, u endi mavjud emas. Mana ekvivalenti: Aliexpress -da - 3,75 $

2) Arduino uchun GPS birligi (GY-NEO6MV2 yangi GPS moduli, parvoz nazorati EEPROM MWC APM2.5 katta antennasi NEO6MV2). Men buni qo'lladim: Aliexpress -da - 6,66 dollar

3) Arduino uchun GPRS / GSM birligi (SIM800L V2.0 5V simsiz GSM GPRS moduli to'rt bandli antennali kabel qopqog'i). Men buni ishlatdim: Aliexpress -da - 6,71 dollar

4) Shu kabi zaxira dupont kabellari: Aliexpress -da - 0,89 $

5) IoT ma'lumot sim -kartasi (yoki ma'lumotlar aloqasi bo'lgan boshqa sim -karta). Men buni ishlatganman: Hologram.io dan. Menda bepul ishlab chiquvchi bor, faqat pullik etkazib berish - 7,50 $

Hammasi: 25,51 $, lekin menda kabellar bor edi, shuning uchun u 25 $ dan kam!

Ikkita rasmda montajdan oldin komponentlar va yakuniy mahsulot ko'rsatilgan. Siz qilishingiz kerak bo'lgan ulanishlar:

Arduino - SIM800L

10 - SIFIRLASH

GND - GND (ulardan 2 tasi)

5V - 5V

7 - SIM_TXD

8 - SIM_RXD

Arduino-GY-NEO6MV2

GND - GND

5V - VCC

3 - RX

4 - TX

Barcha kabellar va antennalarni ulang va Arduino -ni 2A cho'qqisiga chiqa oladigan manbadan quvvatlantirganingizga ishonch hosil qiling. Kompyuter usb zo'rg'a yaxshi (men MacBook Pro -dan foydalanayapman), "tasodifiy" telefon zaryadlovchi qurilmasi etarli bo'lmaydi. Aksariyat avtomobillarning usb rozetkalari ham 1A dan past. Agar bu sizning holatingiz bo'lsa, sizga kamida 2A bo'lgan 12Vli 5V quvvat manbai kerak bo'ladi.

Sim -kartani joylashtiring. Agar siz Hologram.io sim -kartasidan foydalansangiz, uning boshqaruv panelida ro'yxatdan o'tganingizga ishonch hosil qiling va sim -kartani faollashtiring (bu bir necha daqiqa / soat davom etadi).

2 -qadam: dasturiy ta'minot (Arduino dasturi)

Dasturiy ta'minot (Arduino dasturi)
Dasturiy ta'minot (Arduino dasturi)

Menimcha, siz Arduino dasturini yaxshi bilasiz. Aks holda, iltimos, ushbu qo'llanmadan boshlang: Instructables -da.

Sizga faqat bitta tashqi kutubxona kerak, men uni qo'lda o'rnatishim kerak edi. Bu erga o'ting: TinyGPS, kutubxonani eksport qiling va uni mahalliy Arduino papkasiga o'rnating.

U erdan biz ularning asosiy misolidan ba'zi kodlarni "o'g'irlaymiz" va uni o'z maqsadlarimizga o'zgartirmoqchimiz.

Keyin biz ushbu qo'llanmadan "o'g'irlaymiz" va kodni maqsadimizga muvofiq o'zgartiramiz.

Natijada biriktirilgan.ino dasturi.

Siz qila oladigan va o'zgartirishingiz kerak bo'lgan ikkita narsa bor:

"SECONDS" aniqlaydi va "SERVER" aniqlaydi.

Men SECONDS ni 10 ga qo'ydim, shuning uchun ham: Hologram.io ishlab chiqaruvchi dasturi sizga oyiga 1 mb bepul ma'lumot beradi. Bu shuni anglatadiki, biz yuborilgan baytlarni minimallashtirishni xohlaymiz, lekin biz o'z pozitsiyamizni tez -tez yangilab turishimiz kerak. Biz UDP paketlarini serverga yuborish uchun standart AT modem buyruqlaridan foydalanamiz, har biri 4 baytdan va har biri 1 baytdan foydalanadigan lat/lon. Shunday qilib, umumiy GPS yangilanishi 20 bayt (IP sarlavhasi) va 8 bayt (UDP sarlavhasi) va 9 bayt (yuk). Bu 37 bayt. Agar mening mashinam kuniga 2 soatdan ko'p bo'lmagan vaqt faol bo'lsa, men har 10 soniyada yangilanishga qodirman va oyiga atigi 806kb (31 kun) sarflayman. Bu menga o'z vaqtimdan, ya'ni avtomobil o'g'risidan, haydash vaqti uchun 218kb beradi. Bu menga haydash vaqtimdan tashqari 16,76 soatlik GPS kuzatuvini beradi, har 10 soniyada bitta yangilanish.

Endi, bu UDP paketlari bir joyga borishi kerak. Men CloudAtCost bulutida joylashgan Ubuntu serveridan foydalanayapman, uni 80% chegirma bilan 8 dollarga sotib oldim va boshqa maqsadlarga xizmat qilyapman, shuning uchun xarajatlar hisobiga kirmaydi. Agar siz server uchun pul to'lashni xohlamasangiz, Amazon AWS -ning 12 oylik bepul namunasini olishingiz va unga Ubuntu -ni o'rnatishingiz mumkin. Serverni o'rnatganingizdan so'ng (keyingi bosqichga qarang), uning statik IP manzilini oling va uni SERVER ta'rifi yoniga qo'ying.

3-qadam: Qo'shimcha dasturiy ta'minot (Gps manzillarini server tomonidan qabul qilish)

CloudAtCost ham, Amazon ham oldindan tuzilgan Ubuntu tasviri bilan birga keladi (CloudAtCost Ubuntu 14.04 da). Men Ubuntu -ni o'rnatish bosqichlarini o'tmayman, chunki sizga kerak bo'lmaydi. Agar siz CloudAtCost -dan foydalanayotgan bo'lsangiz, Ubuntu 16.04 -ga o'tishni xohlashingiz mumkin

sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

Keyin LAMP -ni o'rnatishingiz kerak (bu ko'rsatmaga qarang: bu erda), lekin biz PHP -dan foydalanmaymiz.

Python -ni o'rnatish

sudo apt-get install python-minimal pip

Keyin bir nechta modul qo'shing:

pip install --user urllib3 so'rovlari

Siz /var /www ni siz yozadigan qilib sozlashimiz kerak, shunday qilaylik:

sudo adduser YOUR_USER www-ma'lumotlar to'plami -R www-ma'lumotlar: www-ma'lumotlar /var /www

sudo chmod -R g+rwX /var /www

Endi, bizga "server" kerak, u) UDP paketlarini qabul qiladi, ii) trekni quradi, iii) mobil telefonimizga bildirishnoma yuboradi va yaratilgan gps trekka xizmat ko'rsatadigan "server" (bu apache bo'ladi).

Birinchi server uchun biriktirilgan python kodini nusxa ko'chiring. Siz quyidagi narsalarni sozlashingiz kerak:

iftttuser = "IFTTT FOYDALANISHINGIZ"

iftttpass = "Sizning IFTTT parolingiz"

iftttappletid = "IFTTT BILDIRISHINGIZ QO'LLANILGAN"

iftttkey = "Sizning IFTTT kalitingiz"

iftttevent = "SIZNING IFTTT VOQEASI"

Siz taxmin qilganingizdek, biz mobil telefonlarimizga real vaqtda bildirishnomalarni yuborish uchun IFTTT-dan foydalanamiz. Bu yo'riqnomaga amal qiling: bu erda, lekin "menga sms yuborish" o'rniga "ilova xabarnomasini yuborish" -ni tanlang. Applet identifikatorini oling (ko'rish uchun applet konfiguratsiyasining pastki qismiga o'ting) va yuqoridan foydalaning. Yuqoridagi sozlamalarda shunday yaratilgan kalitdan ham foydalaning. IFTTT tadbiri - bu sizning appletga bergan ismingiz, men uni "harakatlanuvchi" deb ataganman.

AFAIK-hozirda real vaqtda bepul xabarnomalar platformasi yo'q. Agar siz ulardan birini bilsangiz, menga xabar bering. IFTTT kechiktirildi. Agar siz elektron pochta tetikidan foydalansangiz, bu kechikishni bir necha soniyagacha kamaytirish mumkin. Afsuski, bu ishonchli emas. Yangi yaratilgan webhook 15 daqiqaga kechikdi. Lekin biz mashinamiz o'g'irlanganini bilish uchun 15 daqiqa kutishni xohlamaymiz, to'g'rimi? Bu yuqoridagi barcha sozlamalarni o'rnatishingizni so'rash uchun parol. Agar siz python kodini aylantirsangiz, IFTTT-ning "hozir tekshirish" funksiyasini avtomatlashtirish uchun bir nechta satrlar borligini ko'rasiz, bu tetiklarni to'satdan tekshirishga majbur qiladi va bildirishnomani 1 soniyadan kamroq vaqt ichida ishga tushiradi! Salomat bo'ling:)

Python kodingizni biror joyga o'rnatganingizdan so'ng, uni ishga tushiring. Agar siz professional foydalanuvchi bo'lsangiz, uni server yuklanishidan boshlang. Buni qanday qilish kerakligi haqida Internetda ko'plab bepul qo'llanmalarga qarang, masalan.

4 -qadam: Yana dasturiy ta'minot (mobil ilova)

Yana dasturiy ta'minot (mobil ilova)
Yana dasturiy ta'minot (mobil ilova)
Yana dasturiy ta'minot (mobil ilova)
Yana dasturiy ta'minot (mobil ilova)
Yana dasturiy ta'minot (mobil ilova)
Yana dasturiy ta'minot (mobil ilova)
Yana dasturiy ta'minot (mobil ilova)
Yana dasturiy ta'minot (mobil ilova)

Oldingi bosqichda server yangilangan gps -trekni tasavvur qilishning bizga tez va sodda usuli kerak. Ehtimol, u har qanday smartfonda ishlashi kerak.

Keling, Ionic/Cordova kabi o'zaro faoliyat platformali mobil ilovalar to'plamidan foydalanaylik. Men Ionic v1 dan foydalanmoqdaman, uni Ionic Native yoki Ionic v2 bilan aralashtirmang, bu boshqa narsa.

Ionic -da birinchi loyihangizni boshlash uchun quyidagi oddiy qadamlarni bajaring.

Keyin, Google Maps sdk -ga asoslangan yangi loyihani boshlashingiz kerak, masalan:

ion start myapp xaritalari

"Resurslar" papkasiga o'ting va katta avtomobil tasvirini bu erdan "icon.png" nusxa ko'chiring. Kichik piktogrammalarni "car2.png" va "start.png" sifatida yuklang. Sizga ilovada marker sifatida kerak bo'ladi.

Biriktirilgan index.html (index.html.txt nomini index.html qilib o'zgartiring), directives.js va controllers.js fayllaridan foydalaning va ularni www (index.html), www/js (hamma js) ga joylashtiring.

platformangizni quyidagicha qo'shing:

ionic plaftorm android qo'shish

shunday qurish:

Android -ning ionli qurilishi

keyin ionic sizga.apk qayerda qurilganligini aytib beradi, uni mobil telefoningizga o'rnatishingiz mumkin.

IOS -ni yaratish uchun sizga Mac va Xcode kerak bo'ladi. ionic keyin Xcode -da ochish va telefoningiz uchun qurish mumkin bo'lgan Xcode loyihasini saqlashi mumkin. Agar sizda iOS dasturchi hisobi bo'lmasa, siz telefoningizni Xcode -ga ulashingiz va dasturni o'sha erga o'rnatish uchun uni ishlab chiqish uchun sozlashingiz kerak bo'ladi. Bu ko'rsatma berish doirasidan tashqarida.

Har xil js fayllarida siz "car2.png" va "start.png" ga mos keladigan satrlarni topishingiz va ularni rasmlaringiz yo'li bilan o'zgartirishingiz kerak bo'ladi. "Plan.json" uchun ham xuddi shunday.

Bo'ldi shu!!

5 -qadam: Kelgusi ish

1) Men hamma narsani karton qutiga joylashtirdim, uni usb rozetkasiga yaqin joyda yashirishim mumkin. Eng yaxshisi, 12v-> 5v konvertorli, kaput ostiga yaxshi korpus o'rnatish.

2) Bluetooth sensori yordamida, agar siz mashinada bo'lsangiz, "sezishingiz" mumkin, shuning uchun gps tizimi yoqilmaydi.

3) Sim-ma'lumotlar rejasi uchun pul to'lang va SECONDS-ni 1-ga qo'ying, real vaqt rejimida kuzatishni yoqtiring:)

Umid qilamanki, sizga bu birinchi ko'rsatmam yoqdi!

Tavsiya: