- Како то ради:
- Компоненте потребне:
- Објашњење кола:
- ГПС претварање минута у децимални степен координата:
- Објашњење програмирања:
Систем за праћење возила постаје веома важан данас, посебно у случају украдених возила. Ако је у вашем возилу инсталиран ГПС систем, можете да пратите локацију возила, а то помаже полицији да прати украдена возила. Раније смо направили сличан пројекат у којем се координате локације возила шаљу на мобилни телефон, погледајте овде „Трацкер возила заснован на Ардуину користећи ГПС и ГСМ.
Овде градимо напреднију верзију система за праћење возила у којој можете пратити своје возило на Гоогле мапама. У овом пројекту ћемо послати координате локације на Локални сервер и само треба да отворите „веб страницу“ на рачунару или мобилном телефону, где ћете пронаћи везу до Гоогле мапа са вашим координатама локације возила. Када кликнете на ту везу, водиће вас на Гоогле Мапс, приказујући локацију вашег возила. У овом систему за праћење возила помоћу Гоогле мапа, ГПС модул се користи за добијање координата локације, Ви-Фи модул за слање података на рачунар или мобилни преко Ви-Фи-а, а Ардуино се користи да ГПС и Ви-Фи међусобно разговарају.
Како то ради:
Да бисмо пратили возило, морамо да пронађемо координате возила помоћу ГПС модула. ГПС модул континуирано комуницира са сателитом ради добијања координата. Затим треба да пошаљемо ове координате са ГПС-а на наш Ардуино помоћу УАРТ-а. А онда Ардуино из ГПС-а извуче потребне податке из примљених података.
Пре овога, Ардуино шаље наредбу Ви-Фи модулу ЕСП8266 за конфигурисање и повезивање на рутер и добијање ИП адресе. Након тога Ардуино иницијализује ГПС за добивање координата, а на ЛЦД-у се приказује порука „Освежавање странице“. То значи да корисник треба да освежи веб страницу. Када корисник освежи веб страницу, Ардуино добија ГПС координате и шаље је на веб страницу (локални сервер) преко Ви-Фи-ја, са неким додатним информацијама и везом Гоогле мапа у себи. Кликом на ову везу корисник се преусмерава на Гоогле Мапс са координатама, а затим ће добити тренутну локацију возила на црвеној тачки на Гоогле мапама. Читав поступак је на крају правилно приказан у видеу.
Компоненте потребне:
- Ардуино УНО
- Ви-Фи модул ЕСП8266
- ГПС модул
- УСБ кабл
- Повезивање жица
- Лап топ
- Напајање
- ЛЦД 16к2
- Даска за хлеб
- Ви-Фи рутер
Објашњење кола:
Круг за овај „ Праћење возила помоћу пројекта Гоогле Мапс“ је врло једноставан и углавном су нам потребни Ардуино УНО, ГПС модул и ЕСП8266 Ви-Фи модул. За приказ статуса постоји опционално повезан ЛЦД димензија 16к2. Овај ЛЦД је повезан на 14-19 (А0-А5) пинове Ардуина.
Овде је Тк пин ГПС модула директно повезан са дигиталним пином 10 Ардуина. Коришћењем софтверске серијске библиотеке овде, дозволили смо серијску комуникацију на пиновима 10 и 11 и направили их Рк односно Тк, а Рк пину ГПС модула оставили отвореним. Подразумевано се пин 0 и 1 Ардуина користе за серијску комуникацију, али помоћу библиотеке СофтвареСериал можемо дозволити серијску комуникацију на другим дигиталним пиновима Ардуина. 12-волтни адаптер користи се за напајање ГПС модула. Прођите овде да бисте сазнали „Како користити ГПС са Ардуином“ и добити координате.
Вцц и ГНД пинови Ви-Фи модула ЕСП8266 су директно повезани на 3.3В, а ГНД Ардуина и ЦХ_ПД је такође повезан са 3.3В. Тк и Рк пинови ЕСП8266 су директно повезани на пин 2 и 3 Ардуина. Овде се користи и софтверска серијска библиотека која омогућава серијску комуникацију на пин 2 и 3 Ардуина. Већ смо детаљно обрадили повезивање Ви-Фи модула ЕСП8266 са Ардуином, такође пређите на „Како послати податке са Ардуина на веб страницу користећи ВиФи“ пре него што урадите овај пројекат. Испод је слика ЕСП8266:
ЕСП8266 има две ЛЕД диоде, једна је црвена, за индикацију напајања, а друга је плава, односно ЛЕД за комуникацију података. Плава ЛЕД лампица трепће када ЕСП пошаље неке податке путем свог Тк пина. Такође, немојте прикључивати ЕСП на напајање од +5 волти, јер иначе ваш уређај може оштетити. Овде смо у овом пројекту одабрали 9600 брзина преноса за све УАРТ комуникације.
Корисник такође може видети комуникацију између Ви-Фи модула ЕСП8266 и Ардуина, на серијском монитору, брзином преноса од 9600:
Такође погледајте Видео на крају овог пројекта, за детаљан радни процес.
ГПС претварање минута у децимални степен координата:
ГПС модул прима координате са сателита у формату степена минута (ддмм.мммм) и овде нам је потребан формат децималног степена за претрагу локације на Гоогле мапама. Дакле, прво морамо да претворимо координате из степена у минутни формат у децимални у степеновни облик помоћу дате формуле.
Претпоставимо да је 2856.3465 (ддмм.мммм) Латитуде који примамо од ГПС модула. Сада су прва два броја степени, а преостали минуте.
Дакле 28 је степен, а 56,3465 минут.
Сада овде нема потребе за претварањем дела степена (28), већ само за претварање минутног дела у децимални степен дељењем 60:
Координата децималног степена = Степен + Минута / 60
Координата децималног степена = 28 + 56,3465 / 60
Координата децималног степена = 28 + 0,94
Координата децималног степена = 28,94
Исти поступак ће се урадити и за податке о дужини. Користили смо горње формуле у Ардуино Скетцх-у, претворили смо координате из степена у децимале.
флоат минут = лат_минут.тоФлоат (); минут = минут / 60; плутајући степен = лат_дегрее.тоФлоат (); ширина = степен + минут; минут = лонг_минут.тоФлоат (); минут = минут / 60; степен = лонг_дегрее.тоФлоат (); географска ширина = степен + минут;
Објашњење програмирања:
У овом коду користили смо библиотеку СериалСофтваре за повезивање ЕСП8266 и ГПС модула са Ардуином. Тада смо дефинисали различите пинове за оба и иницијализовали УАРТ са 9600 бауд брзинама. Такође је укључена ЛикуидЦристал библиотека за интерфејс ЛЦД са Ардуином.
#инцлуде
После ње треба да дефинишемо или прогласимо променљиву и низ за различите сврхе.
Стринг веб страница = ""; инт и = 0, к = 0; инт гпс_статус = 0; Стринг наме = "
1. Име: Ваше име
"; // 22 Стринг доб ="2. РОК: 12. фебруара 1993
"; // 21 Низ низа ="4. Број возила: РЈ05 КСИ 4201
"; // 29 Стринг цординат ="Координате:
"; // 17 Ширина низа =" "; Латитуде низа =" "; Низ гпсСтринг =" "; цхар * тест =" $ ГПГГА ";Тада смо направили неке функције за различите сврхе као што су:
Функција за добијање ГПС података са координатама:
воид гпсЕвент () {гпсСтринг = ""; вхиле (1) {вхиле (гпс.аваилабле ()> 0) {цхар инЦхар = (цхар) гпс.реад (); гпсСтринг + = инЦхар; иф (и <7) {иф (гпсСтринг! = тест) {и = 0;……………….
Функција за издвајање података из ГПС низа и претварање тих података у децимални формат степена из децималног минута, како је објашњено раније.
воид цоординате2дец () {Низ лат_дегрее = ""; за (и = 18; и <20; и ++) лат_дегрее + = гпсСтринг; Стринг лат_минут = ""; за (и = 20; и <28; и ++) лат_минут + = гпсСтринг;……………….
Функција за слање наредби на ЕСП8266 за конфигурисање и повезивање са ВИФИ-јем.
воид цоннецт_вифи (Стринг цмд, инт т) {инт темп = 0, и = 0; вхиле (1) {Сериал.принтлн (цмд); Сериал1.принтлн (цмд); вхиле (Сериал1.аваилабле ()> 0)……………….
воид схов_цоординате () функција за приказивање координата на ЛЦД-у и серијском монитору и воид гет_ип () функција за добијање ИП адресе.
Функција Воид Сенд () за креирање низа информација које ће се послати на веб страницу помоћу ЕСП8266 и воид сендвебдата () функција за слање низа информација на веб страницу помоћу УАРТ-а.
У воид лооп функцији Ардуино непрекидно чека на веб страницу обрасца захтева (освежавање веб странице).
воид лооп () {к = 0; Сериал.принтлн („Освежите ур страницу“); лцд.сетЦурсор (0,0); лцд.принт ("Освежите"); лцд.сетЦурсор (0,1); лцд.принт ("Ваша веб страница.."); док (к <1000)……………….
Проверите пуни код испод.