Mündəricat:

Tam Arduino əsaslı avtomobil GPS+GPRS oğurluq əleyhinə sistem: 5 addım (şəkillərlə)
Tam Arduino əsaslı avtomobil GPS+GPRS oğurluq əleyhinə sistem: 5 addım (şəkillərlə)

Video: Tam Arduino əsaslı avtomobil GPS+GPRS oğurluq əleyhinə sistem: 5 addım (şəkillərlə)

Video: Tam Arduino əsaslı avtomobil GPS+GPRS oğurluq əleyhinə sistem: 5 addım (şəkillərlə)
Video: ⚡️ Авто-Газулька на Ардуине (Универсальное Устройство) 2024, Noyabr
Anonim
Image
Image
Avadanlıq
Avadanlıq

Hər kəsə salam!

Bir GPS avtomobil oğurluq əleyhinə cihaz üçün tam bir həll qurmaq istədim:

mümkün qədər ucuz

mümkün qədər tam

yalnız işlədiyi üçün mümkün olan başqa bir şey yoxdur

Beləliklə, Arduino əsaslı bir həll hazırladım və mənə 25 dollara başa gəldi.

Videodan da gördüyünüz kimi, sadəcə işləyir! Maşını işə salırsınız, cib telefonunuzda avtomobilin hərəkət etdiyi barədə bildiriş alırsınız, sonra mobil tətbiqini açırsınız və maşının real vaxtda hərəkət etdiyini görə bilərsiniz (10 saniyəlik yeniləmə gecikməsi ilə).

Bu təlimat, həll yolunda bir neçə komponent olduğunu nəzərə alaraq, bütün addımlar boyunca sizə yol göstərəcək:

1) aparat (Arduino əsaslı)

2) proqram (Arduino proqramı)

3) daha çox proqram təminatı (gps yerlərinin server tərəfində qəbulu)

4) daha çox proqram (mobil tətbiq)

Gəlin başlayaq..

Addım 1: Hardware

Avadanlıq
Avadanlıq

Alış-veriş siyahısı:

1) Arduino Uno R3 və ya klon. Artıq görünməyən "DCcEle DCcduino uno" klonundan istifadə etdim. Budur bir ekvivalent: Aliexpress -də - 3.75 $

2) Arduino üçün GPS vahidi (Uçuş İdarəetmə Uçuş İdarəetmə EEPROM MWC APM2.5 böyük anten NEO6MV2 ilə yeni GY-NEO6MV2 yeni GPS modulu). Bunu istifadə etdim: Aliexpress -də - 6.66 $

3) Arduino üçün GPRS / GSM vahidi (SIM800L V2.0 5V Simsiz GSM GPRS MODÜLÜ Dörd Bantlı W / Anten Kabel Qapağı). Bunu istifadə etdim: Aliexpress -də - 6.71 $

4) Bu kimi ehtiyat dupont kabelləri: Aliexpress -də - 0.89 $

5) IoT məlumat sim kartı (və ya məlumat bağlantısı olan hər hansı digər sim kart). Bunu istifadə etdim: Hologram.io -dan. Pulsuz bir inkişaf etdiricim var, yalnız ödənişli göndərmə - 7.50 dollar

Cəmi: 25.51 $, amma kabellər artıq məndə idi, buna görə də 25 $ -dan azdır!

İki şəkil montajdan əvvəl komponentləri və son məhsulu göstərir. Etməli olduğunuz əlaqələr bunlardır:

Arduino - SIM800L

10 - SIFIRLA

GND - GND (bunlardan 2 -si)

5v - 5v

7 - SIM_TXD

8 - SIM_RXD

Arduino-GY-NEO6MV2

GND - GND

5V - VCC

3 - RX

4 - TX

Bütün kabelləri və antenləri bağlayın və Arduino'yu 2A zirvələri verə biləcək bir mənbədən işə saldığınızdan əmin olun. Kompüterin usb -i çox yaxşı deyil (MacBook Pro istifadə edirəm), "təsadüfi" telefon şarj cihazı kifayət etməyəcək. Bir çox avtomobilin usb satış nöqtəsi də 1A -dan azdır. Bu sizin vəziyyətinizdirsə, ən azı 2A olan 12v avtomobil 5v enerji təchizatına da ehtiyacınız var.

Sim kartı daxil edin. Hologram.io sim kartından istifadə edirsinizsə, onların tablosunda qeydiyyatdan keçdiyinizə və sim kartı aktivləşdirdiyinizə əmin olun (bir neçə dəqiqə / saat çəkir).

Addım 2: Proqram təminatı (Arduino Proqramı)

Proqram təminatı (Arduino Proqramı)
Proqram təminatı (Arduino Proqramı)

Güman edirəm ki, Arduino proqramlaşdırması ilə tanışsınız. Əks təqdirdə, bu təlimatla başlayın: Təlimatlar.

Yalnız bir xarici kitabxanaya ehtiyacınız var, onu əl ilə qurmalıydım. Bura gedin: TinyGPS, kitabxananı ixrac edin və yerli Arduino qovluğuna quraşdırın.

Oradan, əsas nümunələrindən bəzi kodları "oğurlayacağıq" və məqsədlərimizə uyğun olaraq dəyişdirəcəyik.

Sonra bu təlimatdan "oğurlayacağıq" və kodu yenidən məqsədlərimizə dəyişdirəcəyik.

Nəticə əlavə olunan.ino proqramıdır.

Düzəltməli olduğunuz və edə biləcəyiniz bir neçə şey var:

"SECONDS" təyin edir və "SERVER" müəyyən edir.

SECONDS -i 10 olaraq təyin etdim və bunun səbəbi budur: Hologram.io geliştirici proqramı sizə ayda 1mb pulsuz məlumat verir. Bu o deməkdir ki, göndərilən baytları minimuma endirmək istəyirik, həm də mövqeyimizi tez -tez yeniləmək lazımdır. UDP paketlərini mesajları alan serverimizə göndərmək üçün standart AT modem əmrlərindən istifadə edəcəyik, hər biri 4 bayt və 1 bayt istifadə edərək lat/lon. Beləliklə, ümumi GPS yeniləməsi 20 bayt (IP başlığı) və 8 bayt (UDP başlığı) üstəgəl 9 bayt (yük) təşkil edir. Bu 37 baytdır. Avtomobilimin gündə 2 saatdan çox olmayaraq aktiv olduğunu düşünsəm, hər 10 saniyədə bir yeniləmə ala bilərəm və ayda (31 gün) yalnız 806kb istehlak edə bilərəm. Bu, sürücülük vaxtı üçün öz maşınımdan, yəni avtomobil oğrusundan 218kb verir. Sürüş vaxtım xaricində hər 10 saniyədə bir yeniləmə ilə 16.76 saat GPS izləmə imkanı verir.

İndi bu UDP paketləri bir yerə getməlidir. CloudAtCost buludunda yerləşdirilmiş, 80% endirimlə 8 dollara aldığım və mənə başqa məqsədlər üçün xidmət edən bir Ubuntu serverindən istifadə edirəm, buna görə də xərc hesablamalarına girmirəm. Bir server üçün pul ödəmək istəmirsinizsə, 12 ay ərzində pulsuz Amazon AWS nümunəsi əldə edə və üzərinə Ubuntu quraşdıra bilərsiniz. Serverinizi qurduqdan sonra (növbəti addıma baxın), statik IP ünvanını alın və SERVER təyininin yanına qoyun.

Addım 3: Daha çox proqram (server tərəfində GPS yerlərinin qəbulu)

Həm CloudAtCost, həm də Amazon əvvəlcədən konfiqurasiya edilmiş Ubuntu görüntüsü ilə gəlir (CloudAtCost Ubuntu 14.04-dədir). Buna görə də ehtiyacınız olmayacağı kimi Ubuntu qurmaq üçün addımlar atmıram. CloudAtCost istifadə edirsinizsə, bir Ubuntu 16.04 -ə yüksəltmək istəyə bilərsiniz

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

Sonra PHP istifadə etməyəcəyimizə baxmayaraq LAMP qurmalısınız (bu təlimata baxın: burada).

Python -u yükləyin

sudo apt-get python-minimal pip qurun

Sonra bir neçə modul əlavə edin:

pip install --user urllib3 sorğuları

Sizin yazdığınız /var /www qurmalıyıq, buna görə də edək:

sudo adduser YOUR_USER www-dataudo chown -R www-data: www-data /var /www

sudo chmod -R g+rwX /var /www

İndi, i) UDP paketlərini almaq, ii) treki qurmaq, iii) cib telefonumuza bildiriş göndərmək və yaradılan gps parçasına xidmət etmək üçün "server" (bu apache olacaq) üçün "server" ə ehtiyacımız var.

İlk server üçün əlavə edilmiş python kodunu kopyalayın. Aşağıdakıları konfiqurasiya etməlisiniz:

iftttuser = "IFTTT İSTİFADƏÇİNİZ"

iftttpass = "IFTTT PAROLUNUZ"

iftttappletid = "SİZİN IFTTT BİLDİRİMİNİZ APPLET"

iftttkey = "SİZİN IFTTT DÖVLƏTİNİZ"

iftttevent = "IFTTT TƏDBİRİNİZ"

Ehtimal etdiyiniz kimi, cib telefonlarımıza real vaxt bildirişlərini təqdim etmək üçün IFTTT-dən istifadə edirik. Bu təlimatı izləyin: burada ancaq "mənə bir sms göndər" seçimini yerinə "tətbiq bildirişi göndər" seçin. Applet id -nizi əldə edin (görmək üçün appletin konfiqurasiyasının aşağı hissəsinə gedin) və yuxarıdakılardan istifadə edin. Yuxarıdakı parametrlərdə belə yaradılmış düyməni istifadə edin. IFTTT tədbiri, tətbiqetməyinizə verdiyiniz addır, ona "carmoving" verdim.

İndi pulsuz olaraq real vaxt rejimində heç bir bildiriş platforması yoxdur, AFAIK. Birindən xəbəriniz varsa, mənə bildirin. IFTTT gecikməsi var. E -poçt tetikleyicisini istifadə etsəniz, bu gecikmə bir neçə saniyəyə qədər minimuma endirilə bilər. Təəssüf ki, bu etibarlı deyil. Yeni yaradılan webhookun 15 dəqiqə gecikməsi var. Amma maşınımızın oğurlandığını bilmək üçün 15 dəqiqə gözləmək istəmirik, elə deyilmi? Yuxarıdakı bütün parametrləri qurmağınızı istəməyin şifrəsidir. Python kodunu sürüşdürsəniz, IFTTT-in "indi yoxla" funksiyasını avtomatlaşdırmaq üçün tetikleyiciləri qəfil yoxlamağa məcbur edən və bildirişi 1 saniyədən az müddətdə işə salan 45-53 bir neçə sətir olduğunu görürsünüz! Buyurun:)

Python kodunuzu bir yerə qurduqdan sonra onu işə salın. Pro istifadəçisisinizsə, server açılışında başlamasını təmin edin. Bunun necə ediləcəyi ilə bağlı bir çox pulsuz onlayn bələdçiyə baxın, məsələn bu.

Addım 4: Daha Çox Proqram (Mobil Tətbiq)

Daha Çox Proqram (Mobil Tətbiq)
Daha Çox Proqram (Mobil Tətbiq)
Daha çox proqram (Mobil Tətbiq)
Daha çox proqram (Mobil Tətbiq)
Daha Çox Proqram (Mobil Tətbiq)
Daha Çox Proqram (Mobil Tətbiq)
Daha Çox Proqram (Mobil Tətbiq)
Daha Çox Proqram (Mobil Tətbiq)

Əvvəlki addımdakı serverin günümüzə qədər saxladığı gps izini görselleştirmek üçün sürətli və sadə bir yola ehtiyacımız var. Ola bilsin ki, hər cür smartfonda işləməlidir.

Daha sonra Ionic/Cordova kimi çarpaz platformalı bir mobil tətbiq paketindən istifadə edək. Ionic v1 istifadə edirəm, Ionic Native və ya Ionic v2 ilə qarışdırmayın, bu fərqli bir şeydir.

Ionic -də ilk layihənizi başlamaq üçün bu çox sadə addımları izləyin: burada.

Sonra, Google Maps sdk -ə əsaslanan yeni bir layihəyə başlamalısınız:

ionic start myapp xəritələri

"Resurslar" qovluğuna daxil olun və böyük avtomobil şəklini bura "icon.png" olaraq kopyalayın. Kiçik nişanları "car2.png" və "start.png" olaraq serverinizdə bir yerə yükləyin, məsələn https://yourserver/car2.png. Tətbiqinizdə marker olaraq bunlara ehtiyacınız olacaq.

Əlavə edilmiş index.html (index.html.txt adını index.html olaraq dəyişdirin), directives.js və controllers.js fayllarından istifadə edin və onları www (index.html), www/js (bütün js) fayllarına qoyun.

platformanızı belə əlavə edin:

ionic plaftorm android əlavə edin

belə qurun:

ion quruluşlu android

sonra ionic, mobil telefonunuza yükləyə biləcəyiniz.apkınızı harada qurduğunu sizə xəbər verəcəkdir.

İOS üçün qurmaq üçün Mac və Xcode lazımdır. ionic daha sonra Xcode -da açıb telefonunuz üçün qura biləcəyiniz bir Xcode layihəsini saxlaya bilər. Bir iOS geliştirici hesabınız yoxdursa, telefonunuzu Xcode -a bağlamalı və tətbiqin orada quraşdırılması üçün telefonunuzu inkişaf etdirmək üçün qurmalısınız. Bu təlimatlandırmanın əhatəsi xaricindədir.

Müxtəlif js fayllarında "car2.png" və "start.png" ilə əlaqəli sətirləri tapmalı və şəkillərinizin yolu ilə dəyişdirməlisiniz. Eyni "plan.json" üçün.

Bu belədir!!

Addım 5: Gələcək İş

1) Hər şeyi usb prizinin yanında gizlədə biləcəyim bir karton qutuya qoydum. Ən yaxşısı, 12v-> 5v çeviricisi olan avtomobilin kapotunun altına daha yaxşı bir korpus quraşdırmaq olar.

2) Bluetooth sensoru ilə, maşında olduğunuzu əslində "hiss edə" bilərsiniz, buna görə GPS sistemi açılmır.

3) Sadəcə bir sim məlumat planı üçün pul ödəyin və SECONDS-u 1 olaraq təyin edin ki, super-real vaxt izləmədən zövq alın:)

Ümid edirəm ki, mənim ilk təlimatımdan zövq aldınız!

Tövsiyə: