- Nasıl çalışır:
- Gerekli Bileşenler:
- Devre Açıklaması:
- Koordinatların GPS Derece Dakikadan Ondalık Dereceye Dönüşümü:
- Programlama Açıklaması:
Araç Takip Sistemi günümüzde özellikle araçların çalınması durumunda çok önemli hale geliyor. Eğer varsa GPS sistemi araç yüklü, size Araç Konum izleyebilir ve onun Çalıntı Araçlar izlemek için polise yardımcı olur. Daha önce, Aracın Konum koordinatlarının Cep Telefonuna gönderildiği benzer bir proje inşa etmiştik, burayı kontrol edin 'Arduino tabanlı Araç Takip GPS ve GSM kullanarak.
Burada, Aracınızı Google Haritalar üzerinden Takip edebileceğiniz Araç Takip Sisteminin daha gelişmiş bir versiyonunu oluşturuyoruz. Bu projede, konum koordinatlarını Yerel Sunucuya göndereceğiz ve sadece bilgisayarınızda veya mobil cihazınızda Araç Konum Koordinatlarınızla Google Haritalar'a bir Bağlantı bulacağınız bir 'web sayfası' açmanız gerekiyor. Bu bağlantıya tıkladığınızda, sizi Google Haritalar'a götürerek araçlarınızın konumunu gösterir. Bu ise Google Maps kullanarak Araç Takip Sistemi, GPS Modülü Yer Koordinatları, almak için kullanılan kablosuz modülü Wi-Fi ve üzerinde bir bilgisayardan veya mobil için gönderme verileri tutmak için Arduino birbirine GPS ve Wi-Fi konuşma yapmak için kullanılır.
Nasıl çalışır:
Aracı takip etmek için GPS modülünü kullanarak Araç Koordinatlarını bulmamız gerekiyor. GPS modülü, koordinatları almak için uydu ile sürekli iletişim halindedir. O zaman bu koordinatları UART kullanarak GPS'den Arduino'muza göndermemiz gerekiyor. Ve sonra Arduino GPS ile alınan verilerden gerekli verileri çıkarır.
Bundan önce Arduino, yönlendiriciyi yapılandırmak ve bağlamak ve IP adresini almak için Wi-Fi Modülü ESP8266'ya komut gönderir. Bundan sonra Arduino, koordinatları almak için GPS'yi başlatır ve LCD'de 'Sayfa Yenileme mesajı' gösterilir. Bu, kullanıcının web sayfasını yenilemesi gerektiği anlamına gelir. Kullanıcı web sayfasını yenilediğinde, Arduino GPS koordinatlarını alır ve aynısını Wi-Fi üzerinden web sayfasına (yerel sunucu), bazı ek bilgiler ve içinde bir Google haritaları bağlantısı ile birlikte gönderir. Şimdi bu bağlantıyı tıklayarak kullanıcı koordinat ile Google Haritalar'a yönlendiriyor ve ardından Google Haritalar'daki Kırmızı noktada Aracın Mevcut Konumunu alacaktır. Tüm süreç düzgün gösterilmiştir video sonunda.
Gerekli Bileşenler:
- Arduino UNO
- Wi-Fi Modülü ESP8266
- GPS modülü
- USB kablosu
- Bağlantı telleri
- Dizüstü bilgisayar
- Güç kaynağı
- 16x2 LCD
- Ekmek Tahtası
- Wi-Fi yönlendirici
Devre Açıklaması:
Bu ' Google Haritalar projesini kullanarak Araç Takibi ' için devre çok basit ve esas olarak bir Arduino UNO, GPS Modülü ve ESP8266 Wi-Fi modülüne ihtiyacımız var. Durumu görüntülemek için isteğe bağlı olarak bağlı 16x2 LCD vardır. Bu LCD, Arduino'nun 14-19 (A0-A5) Pinlerine bağlanır.
Burada GPS modülünün Tx pini doğrudan Arduino'nun 10 numaralı dijital pinine bağlıdır. Burada Yazılım Seri Kitaplığı'nı kullanarak pin 10 ve 11'de seri iletişime izin verdik ve sırasıyla Rx ve Tx yaptık ve GPS Modülünün Rx pinini açık bıraktık. Varsayılan olarak Arduino'nun Pin 0 ve 1'i seri iletişim için kullanılır, ancak SoftwareSerial kitaplığını kullanarak, Arduino'nun diğer dijital pinlerinde seri iletişime izin verebiliriz. GPS Modülüne güç sağlamak için 12 Volt adaptör kullanılır. “GPS'nin Arduino ile Nasıl Kullanılacağını” öğrenmek ve koordinatları almak için buradan gidin.
Wi-Fi modülü ESP8266 ‘ın Vcc ve GND pinleri doğrudan bağlı olan 3.3 V ve Arduino GND'sine ve CH_PD da 3.3V ile bağlantılıdır. ESP8266'nın Tx ve Rx pinleri doğrudan Arduino'nun 2. ve 3. pinlerine bağlıdır. Yazılım Seri Kitaplığı ayrıca burada Arduino'nun 2. ve 3. pinlerinde seri iletişime izin vermek için kullanılır. ESP8266 Wi-Fi modülünün Arduino ile Arayüzünü detaylı olarak ele aldık, ayrıca bu projeyi yapmadan önce "Arduino'dan Web Sayfasına WiFi Kullanarak Veri Nasıl Gönderilir" konusuna bakın. ESP8266'nın resmi aşağıdadır:
ESP8266, biri Gücü göstermek için Kırmızı, ikincisi ise Veri İletişim LED'i olan Mavi olmak üzere iki LED'e sahiptir. ESP, Tx pini aracılığıyla bazı veriler gönderdiğinde mavi LED yanıp söner. Ayrıca ESP'yi +5 volt beslemeye bağlamayın, aksi takdirde cihazınız zarar görebilir. Bu projede, tüm UART iletişimleri için 9600 baud hızı seçtik.
Kullanıcı ayrıca Wi-Fi modülü ESP8266 ve Arduino arasındaki haberleşmeyi Seri Monitörde 9600 baud hızında görebilir:
Ayrıntılı çalışma süreci için bu projenin sonundaki Videoyu da kontrol edin.
Koordinatların GPS Derece Dakikadan Ondalık Dereceye Dönüşümü:
GPS Modülü, uydudan Koordinatları Derece Dakika biçiminde (ggmm.mmmm) alır ve burada Google Haritalar'da konumu aramak için Ondalık Derece biçimine ihtiyacımız var . Bu nedenle, önce verilen formülü kullanarak koordinatları Derece Dakika Formatından Ondalık Derece Formatına dönüştürmemiz gerekiyor.
2856,3465'in (ggmm.mmmm) GPS Modülünden aldığımız Enlem olduğunu varsayalım. Şimdi ilk iki sayı Derece ve geri kalan Dakika.
Yani 28 derece ve 56.3465 dakikadır.
Şimdi burada Derece bölümünü (28) dönüştürmeye gerek yok, ancak Dakika bölümünü 60'ı bölerek Ondalık Dereceye dönüştürmeniz yeterli:
Ondalık Derece Koordinat = Derece + Dakika / 60
Ondalık Derece Koordinat = 28 + 56.3465 / 60
Ondalık Derece Koordinat = 28 + 0.94
Ondalık Derece Koordinat = 28.94
Boylam Verileri için aynı işlem yapılacaktır. Arduino Sketch'te yukarıdaki formülleri kullanarak koordinatları Derece Dakikadan Ondalık Dereceye dönüştürdük:
float minut = lat_minut.toFloat (); dakika = dakika / 60; float derecesi = lat_degree.toFloat (); enlem = derece + dakika; minut = long_minut.toFloat (); dakika = dakika / 60; derece = long_degree.toFloat (); logitude = derece + dakika;
Programlama Açıklaması:
Bu kodda, ESP8266 ve GPS modülünü Arduino ile arayüzlemek için Seri Yazılım kütüphanesini kullandık. Sonra her ikisi için farklı pinler tanımladık ve UART'ı 9600 baud hızı ile başlattık. Ayrıca Arduino ile arayüz LCD'si için LiquidCrystal Kitaplığı dahildir.
#Dahil etmek
Bundan sonra, değişken ve dizeyi farklı amaçlarla tanımlamamız veya bildirmemiz gerekir.
Dize web sayfası = ""; int i = 0, k = 0; int gps_status = 0; Dize adı = "
1. Adınız: Adınız
"; // 22 String dob ="2. DOB: 12 Şubat 1993
"; // 21 Dize numarası ="4. Araç No: RJ05 XY 4201
"; // 29 String cordinat ="Koordinatlar:
"; // 17 String latitude =" "; String logitude =" "; String gpsString =" "; char * test =" $ GPGGA ";Daha sonra farklı amaçlar için bazı işlevler yaptık:
Koordinatlarla GPS verilerini alma işlevi:
void gpsEvent () {gpsString = ""; while (1) {while (gps.available ()> 0) {char inChar = (char) gps.read (); gpsString + = inChar; eğer (i <7) {if (gpsString! = test) {i = 0;……………….
Önceden açıklandığı gibi, GPS dizesinden veri çıkarma ve bu verileri ondalık dakika biçiminden ondalık derece biçimine dönüştürme işlevi.
void koordinate2dec () {String lat_degree = ""; için (i = 18; i <20; i ++) lat_degree + = gpsString; Dize lat_minut = ""; için (i = 20; i <28; i ++) lat_minut + = gpsString;……………….
WIFI ile yapılandırmak ve bağlamak için ESP8266'ya komut gönderme işlevi.
void connect_wifi (String cmd, int t) {int temp = 0, i = 0; while (1) {Serial.println (cmd); Serial1.println (cmd); while (Seri1.available ()> 0)……………….
hükümsüz show_coordinate () LCD ve Seri Monitör ve üzerinde koordinat gösteren fonksiyon void get_ip () IP adresini almak için işlevi.
ESP8266 kullanılarak web sayfasına gönderilecek bir bilgi dizisioluşturmak için Void Send () işlevi veUART kullanarak web sayfasına bilgi dizesi gönderme işlevi void sendwebdata () işlevi.
Gelen boşluk döngü fonksiyonu Arduino sürekli talep formu web sayfasında (Canlandırıcı web sayfası) bekleyin.
boşluk döngü () {k = 0; Serial.println ("Lütfen Ur Sayfasını Yenileyin"); lcd.setCursor (0,0); lcd.print ("Lütfen Yenileyin"); lcd.setCursor (0,1); lcd.print ("Web Sayfanız.."); süre (k <1000)……………….
Aşağıdaki Tam Kodu Kontrol Edin.