İçindekiler:

Eksiksiz Arduino Tabanlı Araç GPS+GPRS Hırsızlık Önleme Sistemi: 5 Adım (Resimlerle)
Eksiksiz Arduino Tabanlı Araç GPS+GPRS Hırsızlık Önleme Sistemi: 5 Adım (Resimlerle)

Video: Eksiksiz Arduino Tabanlı Araç GPS+GPRS Hırsızlık Önleme Sistemi: 5 Adım (Resimlerle)

Video: Eksiksiz Arduino Tabanlı Araç GPS+GPRS Hırsızlık Önleme Sistemi: 5 Adım (Resimlerle)
Video: Aracın Nerede? Arduino İle Araç Takip Projesi | Sixfab GPS/GSM Shield İncelemesi 2024, Temmuz
Anonim
Image
Image
Donanım
Donanım

Herkese selam!

GPS araç hırsızlık önleme cihazı için eksiksiz bir çözüm oluşturmak istedim, bu şöyle olurdu:

mümkün olduğunca ucuz

mümkün olduğunca eksiksiz

mümkün olduğunca yapılacak başka bir şey yok-sadece-çalışır

Bu yüzden, bana toplam 25$'a (aşağı yukarı) mal olan Arduino tabanlı bir çözüm geliştirdim.

Videodan da görebileceğiniz gibi, işe yarıyor! Arabayı çalıştırıyorsunuz, cep telefonunuza arabanın hareket ettiğine dair bir bildirim geliyor, ardından mobil uygulamayı açıyorsunuz ve arabanın gerçek zamanlı olarak hareket ettiğini (10 saniyelik bir güncelleme gecikmesi ile) görebilirsiniz.

Bu öğretici, çözümde birkaç bileşen olduğunu akılda tutarak tüm adımlarda size rehberlik edecektir:

1) donanım (Arduino tabanlı)

2) yazılım (Arduino programı)

3) daha fazla yazılım (gps konumlarının sunucu tarafında alınması)

4) daha da fazla yazılım (mobil uygulama)

Hadi başlayalım..

Adım 1: Donanım

Donanım
Donanım

Alışveriş listesi:

1) Arduino Uno R3 veya klonu. Artık mevcut olmayan "DCcEle DCcduino uno" klonunu kullandım. İşte bir eşdeğer: Aliexpress - 3.75$

2) Arduino için GPS ünitesi (Uçuş Kontrol Uçuş Kontrolü EEPROM MWC APM2.5 büyük anten NEO6MV2 ile GY-NEO6MV2 yeni GPS modülü). Bunu kullandım: Aliexpress - 6.66$

3) Arduino için GPRS / GSM ünitesi (SIM800L V2.0 5V Kablosuz GSM GPRS MODÜLÜ Dört Bantlı W/ Anten Kablo Kapağı). Bunu kullandım: Aliexpress - 6.71$

4) Bunun gibi yedek dupont kablolar: Aliexpress - 0.89$

5) IoT veri sim kartı (veya veri bağlantısı olan herhangi bir başka sim kart). Bunu kullandım: Hologram.io'dan. Ücretsiz bir geliştiricim var, yalnızca nakliye ücreti ödendi - 7.50$

Toplam: 25.51$, ancak kablolar zaten bende olduğu için 25$'dan az!

İki resim, montajdan önceki bileşenleri ve nihai ürünü göstermektedir. Yapmanız gereken bağlantılar şunlardır:

Arduino -- SIM800L

10 -- SIFIRLA

GND -- GND (2 tanesi)

5v -- 5v

7 -- SIM_TXD

8 -- SIM_RXD

Arduino -- GY-NEO6MV2

GND -- GND

5v -- VCC

3 -- RX

4 -- TX

Tüm kabloları ve antenleri bağlayın ve Arduino'yu size 2A'lık tepe noktaları verebilecek bir kaynaktan çalıştırdığınızdan emin olun. Bilgisayarın usb'si zar zor iyi (MacBook Pro kullanıyorum), "rastgele" bir telefon şarj cihazı yeterli olmayacak. Çoğu arabanın usb çıkışı da 1A'dan azdır. Durumunuz buysa, en az 2A ile 12v araba 5v güç kaynağına da ihtiyacınız var.

Sim kartı takın. Hologram.io sim kartı kullanıyorsanız, kontrol panellerine kaydolduğunuzdan ve sim kartı etkinleştirdiğinizden emin olun (birkaç dakika/saat sürer).

Adım 2: Yazılım (Arduino Programı)

Yazılım (Arduino Programı)
Yazılım (Arduino Programı)

Arduino programlamaya aşina olduğunuzu varsayacağım. Aksi takdirde, lütfen bu kılavuzla başlayın: Instructables'ta.

Sadece bir harici kütüphaneye ihtiyacınız var, onu manuel olarak kurmak zorunda kaldım. Buraya gidin: TinyGPS, kitaplığı dışa aktarın ve yerel Arduino klasörünüze kurun.

Oradan, temel örneklerinden bazı kodları "çalacağız" ve onu amaçlarımıza göre değiştireceğiz.

Daha sonra bu kılavuzdan "çalacağız" ve kodu tekrar amaçlarımıza göre değiştireceğiz.

Sonuç, ekli.ino programıdır.

Yapabileceğiniz ve ayarlamanız GEREKEN birkaç şey var:

"SANİYE" tanımlar ve "SUNUCU" tanımlar.

SECONDS'u 10'a ayarladım ve işte nedeni: Hologram.io geliştirici programı size ayda 1mb ücretsiz veri veriyor. Bu, gönderilen baytları en aza indirmek istediğimiz anlamına gelir, ancak aynı zamanda konumumuzu da sık sık güncellememiz gerekir. Her biri 4 bayt kullanan ve 1 bayt kullanan hızlı mesajları alan sunucumuza UDP paketleri göndermek için standart AT modem komutlarını kullanacağız. Yani toplam gps güncellemesi 20 bayt (IP başlığı) artı 8 bayt (UDP başlığı) artı 9 bayttır (yük). Bu 37 bayt. Arabamın günde 2 saatten fazla aktif olmadığını varsayarsak, her 10 saniyede bir güncelleme yapabilirim ve ayda sadece 806 kb (31 gün) tüketebilirim. Bu bana, araba hırsızı olan benim üzerimde sürüş süresi için 218 kb veriyor. Bu da her 10 saniyede bir güncelleme ile sürüş süremin dışında bana 16.76 saat gps izleme sağlıyor.

Şimdi, bu UDP paketlerinin bir yere gitmesi gerekiyor. 8$'a %80 indirimle aldığım CloudAtCost bulutunda barındırılan ve bana başka amaçlara hizmet eden bir Ubuntu sunucusu kullanıyorum, bu nedenle maliyet hesaplamalarına girmiyor. Bir sunucu için ödeme yapmak istemiyorsanız, 12 ay boyunca ücretsiz bir Amazon AWS örneği alabilir ve üzerine Ubuntu yükleyebilirsiniz. Sunucu kurulumunuzu yaptıktan sonra (bir sonraki adıma bakın), statik IP adresini alın ve SUNUCU tanımının yanına koyun.

3. Adım: Daha Fazla Yazılım (Gps Konumlarının Sunucu Tarafı Alımı)

Hem CloudAtCost hem de Amazon, önceden yapılandırılmış bir Ubuntu görüntüsü ile birlikte gelir (CloudAtCost, Ubuntu 14.04'tedir). Bu yüzden Ubuntu'yu kurma adımlarından geçmeyeceğim, çünkü sizin yapmanız gerekmeyecek. CloudAtCost kullanıyorsanız, Ubuntu 16.04'e yükseltmek isteyebilirsiniz.

sudo apt-get güncelleme && sudo apt-get yükseltme && sudo apt-get dağıtım yükseltme

Daha sonra LAMP'ı kurmanız gerekir (bu kılavuza bakın: burada), ancak PHP kullanmayacağız.

Python'u şununla yükleyin:

sudo apt-get install python-minimal pip

Ardından birkaç modül ekleyin:

pip kurulumu --user urllib3 istekleri

Sizin tarafınızdan yazılabilir /var/www ayarlamamız gerekiyor, öyleyse yapalım:

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

sudo chmod -R g+rwX /var/www

Şimdi, i) UDP paketlerini almak, ii) yolu oluşturmak, iii) cep telefonumuza bir bildirim göndermek için bir "sunucuya" ve oluşturulan gps izini sunmak için bir "sunucuya" ihtiyacımız var (bu apache olacaktır).

İlk sunucu için ekteki python kodunu kopyalayın. Aşağıdakileri yapılandırmanız gerekir:

iftttuser="IFTTT KULLANICINIZ"

iftttpass="IFTTT ŞİFRENİZ"

iftttappletid="IFTTT BİLDİRİM UYGULAMANIZ"

iftttkey="IFTTT ANAHTARINIZ"

iftttevent="IFTTT ETKİNLİĞİNİZ"

Tahmin edebileceğiniz gibi, cep telefonlarımıza gerçek zamanlı bildirimler göndermek için IFTTT kullanıyoruz. Bu kılavuzu izleyin: burada, ancak "bana sms gönder"i seçmek yerine "uygulama bildirimi gönder"i seçin. Applet kimliğinizi alın (görmek için uygulama yapılandırmasının en altına gidin) ve yukarıdakini kullanın. Yukarıdaki ayarlarda bu şekilde oluşturulan anahtarı da kullanın. IFTTT olayı applet'inize verdiğiniz isimdir, ben ona "carmoving" verdim.

Şimdi, ücretsiz olarak gerçek zamanlı bildirim platformları yok, AFAIK. Birini biliyorsanız, bana bildirin. IFTTT'de gecikme var. E-posta tetikleyicisini kullanırsanız, bu gecikme birkaç saniyeye indirilebilir. Ne yazık ki, bu güvenilir değil. Yeni oluşturulan web kancasının 15 dakikalık bir gecikmesi vardır. Ama arabamızın çalındığını anlamak için 15 dakika beklemek istemiyoruz, değil mi? Bu, yukarıdaki tüm ayarları yapmanızı isteyen paroladır. Python kodunu kaydırırsanız, tetikleyicileri ani bir kontrole zorlayan ve bildirimi 1 saniyeden daha kısa sürede tetikleyen IFTTT'nin "şimdi kontrol et" işlevini otomatikleştirmek için 45-53 gibi birkaç satır olduğunu görürsünüz! Rica ederim:)

Python kodunuzu bir yere kurduktan sonra çalıştırın. Profesyonel bir kullanıcıysanız, sunucu açılışında başlamasını sağlayın. Bunun nasıl yapılacağına ilişkin çevrimiçi tonlarca ücretsiz kılavuza bakın, örneğin bu.

4. Adım: Daha Fazla Yazılım (Mobil Uygulama)

Daha Fazla Yazılım (Mobil Uygulama)
Daha Fazla Yazılım (Mobil Uygulama)
Daha Fazla Yazılım (Mobil Uygulama)
Daha Fazla Yazılım (Mobil Uygulama)
Daha Fazla Yazılım (Mobil Uygulama)
Daha Fazla Yazılım (Mobil Uygulama)
Daha Fazla Yazılım (Mobil Uygulama)
Daha Fazla Yazılım (Mobil Uygulama)

Bir önceki adımda sunucunun güncel tuttuğu gps izini görselleştirmenin hızlı ve basit bir yoluna ihtiyacımız var. Muhtemelen, her türlü akıllı telefon üzerinde çalışması gerekiyor.

Ardından, Ionic/Cordova gibi bir çapraz platform mobil uygulama paketi kullanalım. Ionic v1 kullanıyorum, onu Ionic Native veya Ionic v2 ile karıştırmayın, bu farklı bir şey.

Ionic'teki ilk projenize başlamak için bu çok basit adımları izleyin: burada.

Ardından, aşağıdaki gibi google maps sdk'ye dayalı yeni bir proje başlatmanız gerekir:

iyonik uygulamam haritalarını başlat

"Kaynaklar" klasörüne gidin ve büyük araba görüntüsünü buraya "icon.png" olarak kopyalayın. Bunun yerine küçük simgeleri "car2.png" ve "start.png" olarak sunucunuzda https://sunucunuz/car2-p.webp

Ekli index.html (index.html.txt dosyasını index.html olarak yeniden adlandırın), directives.js ve controllers.js dosyalarını kullanın ve bunları www (index.html), www/js (tüm js) içine koyun.

platformunuzu şu şekilde ekleyin:

iyonik plaftorm android ekle

şöyle inşa et:

iyonik yapı android

o zaman ionic, cep telefonunuza kurabileceğiniz.apk'nizi nerede kurduğunu size söyleyecektir.

iOS için derleme yapmak için bir Mac'e ve Xcode'a ihtiyacınız olacak. ionic daha sonra Xcode'da açıp telefonunuz için oluşturabileceğiniz bir Xcode projesini kaydedebilir. Bir iOS geliştirici hesabınız yoksa, uygulamayı buraya yükleyebilmek için telefonunuzu Xcode'a bağlamanız ve telefonunuzu geliştirme için ayarlamanız gerekir. Bu, bu talimatın kapsamı dışındadır.

Çeşitli js dosyalarında, "car2.png" ve "start.png" ile ilgili satırları bulmanız ve bunları resimlerinizin yolu ile değiştirmeniz gerekir. "plan.json" için aynı.

Bu kadar!!

Adım 5: Gelecekteki Çalışma

1) Her şeyi usb çıkışının yakınında herhangi bir yere saklayabileceğim bir karton kutuya koydum. Yapılacak en iyi şey, 12v->5v dönüştürücü ile arabanın kaputunun altına daha iyi bir kasa monte etmek olacaktır.

2) Bir bluetooth sensörüyle, arabada olduğunuzu gerçekten "hissedebilirsiniz", böylece gps sistemi açılmaz.

3) Sadece bir sim veri planı için ödeme yapın ve süper gerçek zamanlı izlemenin keyfini çıkarmak için SECONDS'u 1'e ayarlayın:)

Umarım bu ilk talimatımı beğenmişsinizdir!

Önerilen: