İçindekiler:
- Adım 1: Önkoşullar
- Adım 2: Ana Konsept
- Adım 3: SIM800L Modülü
- 4. Adım: Ublox Neo 6m
- Adım 5: Devre
- 6. Adım: Kod
- 7. Adım: Web sunucusu
- Adım 8: Bitirme/Deneyim
Video: Ev Yapımı Gerçek Zamanlı GPS İzleyici (SIM800L, Ublox NEO-6M, Arduino): 8 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Demek benim gibi ortalıkta dolaşan bir GSM modülün var? Ayrıca bir GPS izci?
Aynı düşünüyoruz!
Bu talimatta, bir acemi bakış açısıyla hedefinize nasıl ulaşacağınız konusunda size rehberlik etmeye çalışacağım.
Daha önce elektrik mühendisliği bilgim olmadığı için (dürüst olmak gerekirse, proje o kadar da gerekli değil, ama hayır) ve bir web sunucusuna gerçek zamanlı veri pompalayan bir cihazın nasıl yapılacağına dair hiçbir fikrim olmadığı için çok sayıda sorunla karşılaştım. Yine de, sonunda işleri yoluna koymayı başardım.
Bu derste, yeni başlayan birinin yapabileceği hataları vurgulamak ve projeyi buna göre oluşturmak istiyorum.
Unutmayın: Elektrikle çalışırken daima dikkatli olun!
NOT: Profesyonel değilim. Kod, tüm ihtiyaçlarınız için yeterince karmaşık olmayabilir. Proje bir "hobi projesi" olarak düşünülmüş ama! benim için çalıştı. Ve benim için işe yaradıysa, senin için de işe yarar!
Adım 1: Önkoşullar
GSM MODÜLÜ - SIM800L
- Oldukça küçük, kullanımı kolay
- Mobil internet (GPRS) kullanabilen
- Ucuz
GPS MODÜLÜ - Ublox NEO6M
- Ayrıca küçük
- işini çok iyi hallediyor
Bir mikro denetleyici - herhangi bir şey olabilir - biraz yer açmak için ünlü Arduino Uno veya Nano'yu kullanabilirsiniz
Pil - Ana ve yalnızca güç kaynağı olarak 18650 hücre kullandım (Nominal 3.7V)
Pil tutucu - neden? - çünkü 18650 pili lehimlemek ısı nedeniyle oldukça tehlikelidir.
DC-DC Boost Dönüştürücü Yükseltme Modülü 5V - Kullanmış olduğum Arduino'nun 5V'a ihtiyacı olduğu için olmalı
Araçlar, kullanışlı olabilecek temel şeyler:
Test için teller, havya, devre tahtası
Adım 2: Ana Konsept
Sistemin ana konsepti şudur:
3 bölümden oluşur:
- Uygun GPS-Koordinatlarına sahip olan ve bir sunucuya uzaktan bağlanabilen ve ona veri gönderebilen bir cihaz
- Gelen verileri alabilen, depolayan ve diğer istemcilere hizmet veren bir web sunucusu
- Platform - koordinatları görebileceğimiz - İdeal olarak artık bir mobil uygulama veya bir web sitesi olmalıdır.
Adım 3: SIM800L Modülü
Modülle zor zamanlar geçirdim.
Bazı özellikler ve referanslarla başlamak istiyorum.
Veri sayfasına göre:
- 3.4V - 4.4V arasında çalışır
- SMS gönderebilir, diğer telefonlara sesli arama yapabilir ve hatta internete bağlanabilir!
- AT komutları aracılığıyla onunla iletişim kurabiliriz!
- Yoğun zamanlarda 2A'ya kadar kullanabilir! Not: Düşük örnekleme oranları nedeniyle muhtemelen bir multimetre ile ölçemezsiniz.
Benim deneyimim, 3.8V'nin altındaki SIM800L'nin gerçekten çalışmadığı yönünde.
Daha fazla bilgi için şu adresi ziyaret edin: veri sayfası
Dolayısıyla işiniz modüle en az 3,8V (ideal olarak 4V), en az 2A çıkış veren bir güç kaynağı sağlamaktır.
Modülü son cihazda kullanmadan önce, cihazınızın düzgün çalıştığından emin olmak için SIM800L'niz ve bilgisayarınız ile iletişim kurmanızı öneririm.
İlk önce, yukarıdaki resimdeki gibi SIM Kartı takın.
PC'nize bağlamak için bir USB'den TTL'ye dönüştürücü veya bir Arduino kullanabilirsiniz.
Şimdi, Arduino ile gidiyorum.
SIM800L VCC ve GND'yi güç kaynağı terminallerinize bağlayın.
TX'i Arduino 10. dijital pimine, RX'i arduino 11. dijital pime bağlayın.
Kodu indirin, bu adımda bağladım.
Kodla, Seri Monitörünüzde komutlar gönderebilir ve bunları geri alabilirsiniz.
Bazı basit komutlar:
AT Bağlantı tamamsa, Tamam döndürür.
ATD+123456789; Belirli bir telefon numarasını arayın. Not: Noktalı virgül ile bitirmeyi unutmayınız.
AT+CPIN? SIM Kart durumunu döndürür (kilitli veya değil)
SMS göndermek istiyorsanız, girişinizi özel bir karakterle sonlandırmanız gerekir, '$' sembolü ile yapılabilir.
Daha ilginç komutlar için bunu okumanızı öneririm.
Çeşitli komutlar var, bunlara aşina olun, gerçekten faydalılar.
SIM800L'nin hangi işlemde olduğunu söyleyen kırmızı bir durum LED'i vardır.
64 MS AÇIK - 800MS KAPALI - SIM800L ağa kayıtlı değil.
64 MS AÇIK - 3000MS KAPALI - SIM800L ağa kayıtlı.
64 MS AÇIK - 300MS KAPALI - SIM800l GPRS modunda
Yaklaşık 8-10 kez yanıp söndükten sonra SIM800L yeniden çalışmaya devam ederse, bunun nedeni verimli güç kaynağının olmaması olabilir.
AT'den sonra düzelmezse, kablolamayı kontrol edin! Bir multimetreniz varsa, kabloların sürekliliğini kontrol edin.
Tellerin ve lehim bağlantılarının bağlantılarını kontrol edin! Modül yalnızca yanıp sönerken çalışacaktır.
4. Adım: Ublox Neo 6m
Bazı özellikler
- Maksimum voltaj: 3.6V - Arduino'nun 3.3V piniyle çalıştırdım
- Maksimum akım çekişi 67mA'dır - böylece arduino'dan güç sağlayabilirsiniz
- Sıcaklık Aralığı:: -40-85 Santigrat (Sanırım size uyacaktır)
Sipariş ettiğim ünite resimde görülen bir antenle geldi, onu ilgili yuvaya takmam yeterli.
Cihaz sinyal aldığında mavi LED ile yanıp söner.
Öncelikle, bilmiyorsanız, burada bir GPS'in nasıl çalıştığını kontrol edin.
Cihaz açıkken 3 uydu bulduğunda Arduino'ya yukarıdaki gibi bir çok virgülle ayrılmış değer gönderir.
İşimize yardımcı olması için, bu verileri daha insan tarafından okunabilir olacak şekilde ayrıştırmak için bazı harici kütüphaneler kullanabiliriz.
TinyGps kitaplığını veya NeoGPS kitaplığını kullanabilirsiniz. 2.yi daha hafif olduğu için kullandım.
Test için güç pinlerini arduino 3.3V ve GND'ye bağlamanız gerekir.
Bu kodu indirin ve GPS'inizle birlikte kullanın. RX Dijital pin 10, TX Dijital pin 11
Not: Modülü açık havada, tercihen bulut olmadığında kullanmayı unutmayın.
Yarım dakika sonra cihaz yanıp sönmeli ve GPS koordinatlarınızı vermelidir!:)
SIM800L ve GPS modülünüzün düzgün çalıştığını öğrendikten sonra bir sonraki adıma geçebilirsiniz.
Adım 5: Devre
Devre resimdeki gibidir.
Yani 3.4V - 4.2V 18650 pil ana güç kaynağıdır. Sim800L, enerjiyi doğrudan ondan alır. Devrenin kararlılığını arttırmak için aralarında paralel olarak bir kondansatör bulunmaktadır.
Bir kapasitör seçtiğinizde, düşük bir ESR kapasitör seçmelisiniz.
Bir 5V yükseltici dönüştürücü, pilin voltajını 5V'a yükseltir (Arduino 5V ile çalıştığı için ir gereklidir).
5V güç rayı burada Nano'ya bağlanır. Sim800L ve Neo6m, resimdeki gibi Nano ile bağlantılıdır. (Sim Tx-D10, SimRx-D11; NeoTX-D3, NeoRX-D4)
D12, RST'ye bağlı olduğundan, sistemi programlı olarak yeniden başlatabiliyoruz (SIM800L hariç). NOT: Bu yeniden başlatma yöntemi en iyi uygulama olmayabilir)
Ve son olarak, NANO'ya iki LED bağlanır, böylece herhangi bir hata olup olmadığını kullanıcıya söyleyebiliriz.
6. Adım: Kod
Kod, Instructables'a eklenmiştir veya github'a bir göz atın.
Gereksinimleriniz için düzgün çalışması için değiştirebilir veya isterseniz başkalarının kodunu kullanabilirsiniz.
waitUntilResponse(); yardımcı işlevi kodundan alındı. Çalışmasını kontrol edin ve kodlayın!
Kısaca kurulum fonksiyonunda SIM800L modülümüzün GPRS bağlantısını etkinleştirmemiz gerekiyor. LED hızla yanıp sönerse başarılı olup olmadığını biliyoruz. (kurulumGPRSConnection())
Döngü işlevinde - her 15 saniyede bir HTTP isteğine sahip olan sendData() işlevi çağrılır
Verileri web sunucusuna bu biçimde göndermek için sorgu dizeleri kullandım:
ip adresi/file.php?key=değer&anahtar=değer ör.
Herhangi bir hata meydana gelirse, ilgili LED yanacaktır. (SIM, GPS)
7. Adım: Web sunucusu
Bizim kullanımımız için basit bir hafif web sunucusu yeterlidir.
Aralarından seçim yapabileceğiniz bazı seçenekler vardır:
- Muhtemelen düzenli olarak ödemeniz gereken bir şirketin uzak sunucusunu kullanabilirsiniz.
- Kendi bilgisayarınızı kullanabilirsiniz. Sadece test için öneriyorum, enerji israfı, güvenlik sorunları nedeniyle 7/24 çalıştırmak gerçekten verimli değil.
- Raspberry PI gibi küçük bir bilgisayar kullanabilirsiniz. Hafif, ucuz, fazla güç tüketmez.
2. ve 3. seçeneği denedim, iyi çalıştılar. Eh, asıl amaç bu talimatların sunucuları değil, ama size bazı tavsiyelerde bulunuyorum.
Bir PC kullanıyorsanız, muhtemelen Windows kullanıyorsunuzdur. Yerinizde olsam, üzerine bir Apache veya XAMPP sunucusu kurardım.
XAMPP'de zaten PHP var, bunun yanında HTML, Perl ve Veritabanı Yönetim Sistemi ile birlikte geliyor. PHP ile dinamik bir sunucu yapabilirsiniz. Dünyanın herhangi bir yerinden yeni oluşturduğunuz yerel sunucuyu kullanmak istiyorsanız, PC'nize statik IP atamanız ve bazı portforwarding yapmanız gerekir. Statik IP için faydalı bir eğitim:
Ve tüm portforwarding olayı:
Bir Ahududu'nuz varsa, onu kullanmak iyi bir uygulamadır. Linux komutlarına aşina olabilir ve kendi sunucunuzu 7/24 çalıştırabilirsiniz.
İşletim sistemi, başsız bir kurulumla (klavye, monitör olmadan) Raspbian Jessie idi - SSH bağlantısı olan bilgisayarımla kontrol ettim.
Raspberry'ime giriş yapmak için Putty kullandım. Başkalarının size giriş yapmaması için hesabınızın şifresini değiştirmeyi unutmayın Pi. Varsayılan: pi, passw: ahududu.
Sqlite3 ile bir lighttpd web sunucusu kurdum. İyi öğretici burada bulundu:
Sunucu kodunda ağırlıklı olarak PHP kullandım. PHP ile veri alabilir, veritabanlarını okuyabilir/yazabilir - bir sorguyu json formatına kodlayabilirsiniz, vb. …Bu eğitim size PHP ile veritabanınızı nasıl yöneteceğiniz konusunda çok yardımcı olacaktır.
Kodumu github'da server_files klasöründe de görüntüleyebilirsiniz.
Ve elbette, buna uzaktan erişmek istiyorsanız, yönlendiricinizdeki Pi'nize bağlantı noktası iletmeyi etkinleştirmeniz gerekir.
Adım 8: Bitirme/Deneyim
Henüz bir kasa yapılmadı.
Benim tecrübeme göre sistem çok kötü çalışmıyor. Ancak bekleyen kararlılık iyileştirmeleri var.
İzleyici eklediğim kodla çalışmadıysa endişelenmeyin. SIM800L ve NEO 6M'nin gerektiği gibi çalıştığından emin olmaya çalışın. Kodumu özgürce değiştirebilir veya daha iyisini arayabilirsiniz. Umarım, size bu projeyi nasıl tamamlayabileceğinize dair bir örnek gösterebilmişimdir.
Herhangi bir tavsiyeyi, yorumlardan düzeltmeyi kabul ediyorum. Sormaktan çekinmeyin.
Önerilen:
ESP32 için COVID-19 Gerçek Zamanlı İzleyici: 3 Adım
ESP32 için COVID-19 Gerçek Zamanlı İzleyici: Bu küçük izleyici, korona virüsü salgını ve ülkenizdeki durum hakkında güncel bilgiler almanıza yardımcı olacak. Ekran, seçtiğiniz farklı ülkelerin güncel verilerini dönüşümlü olarak gösterir. Veriler www.wo web sitesi tarafından toplanır
ESP8266 ve OLED Kullanan Canlı Covid19 İzleyici - Gerçek Zamanlı Covid19 Panosu: 4 Adım
ESP8266 ve OLED Kullanan Canlı Covid19 İzleyici | Gerçek Zamanlı Covid19 Panosu: Techtronic Harsh Web Sitesini Ziyaret Edin: http://techtronicharsh.comHer yerde büyük bir Roman Corona Virüsü (COVID19) salgını var. Dünyadaki mevcut COVID-19 senaryosunu takip etmek gerekli hale geldi.Yani evde olmak p
Arduino IDE Kullanarak M5stick C İle Saat Yapımı - M5stack M5stick-C ile RTC Gerçek Zamanlı Saat: 4 Adım
Arduino IDE Kullanarak M5stick C İle Saat Yapımı | M5stack M5stick-C ile RTC Gerçek Zamanlı Saat: Merhaba arkadaşlar bu talimatta Arduino IDE kullanarak m5stick-C m5stack geliştirme kartı ile saat yapmayı öğreneceğiz. Ekranda ayın haftası
Gerçek Zamanlı GPS Takibi: 3 Adım
Gerçek Zamanlı GPS Takibi: Bu eğitimde size bir BerryGPS-GSM, bir Raspberry Pi Zero ve İlk Durum kullanarak gerçek zamanlı konum takibinin nasıl yapıldığını göstereceğiz. BerryGPS-GSM ile 3G üzerinden Boylam, Enlem ve Hızı İlk Duruma göndereceğiz
Yapımı Kolay Gerçek Ev Yapımı Bir Bilgisayar: Z80-MBC2!: 9 Adım (Resimlerle)
Yapması Kolay Gerçek Ev Yapımı Bir Bilgisayar: Z80-MBC2!: Bir bilgisayarın nasıl çalıştığını ve "harici şeylerle" nasıl etkileşime girdiğini merak ediyorsanız, günümüzde Arduino veya Raspberry ve diğerleri gibi oynamaya hazır birçok tahta var. Ama bu panoların hepsi aynı "limit"e sahip… selamlar