Постоји много ГПС сателита око Земље који се користе за тачну локацију било ког места. Заједно са координатама локације (географска ширина и дужина), пружа и друге податке попут времена, датума, надморске висине, угла праћења правца итд. Већ смо научили да ове ГПС податке читамо са сателита користећи Ардуино. Дакле, направићемо ГПС сат користећи податке „Време и датум“ са ГПС сателита. Ажурирани ГПС је врло прецизан и пружа податке у реалном времену са прецизношћу у милисекундама.
Компоненте:
- Ардуино Уно
- ГПС модул
- ЛЦД 16к2
- Повезивање жица
- Напајање
Објашњење:
ГПС модул шаље податке у НМЕА формату, погледајте излаз ГПС података на доњем снимку екрана. НМЕА формат се састоји од неколико реченица, у којима нам је потребна једна реченица за издвајање датума и времена. Ова реченица почиње од $ ГПРМЦ и садржи координате, време и друге корисне информације. Овај $ ГПРМЦ се односи на Препоручени минимални специфични ГПС / подаци о транзиту, а дужина овог низа је око 70 знакова. Претходно смо издвојили $ ГПГГА низ у Систему за праћење возила како бисмо пронашли координате географске ширине и дужине. Ево ГПС излаза:
А $ ГПРМЦ низ углавном садржи брзину, време, датум и положај
$ ГПРМЦ, 123519.000, А, 7791.0381, Н, 06727.4434, Е, 022.4,084.4,230394,003.1, В * 6 А $ ГПРМЦ, ХХММСС.ССС, А, ширина, Н, дужина, Е, брзина, угао, датум, СН, З, ЦМД
Идентификатор |
Опис |
РМЦ |
Препоручена минимална реченица Ц. |
ХХММСС.ССС |
Време у сатима минутним секундама и милисекундама. |
А. |
Статус // А = активан и В = неважећи |
Географска ширина |
Ширина 49 °. 16.45 мин. Север |
Н. |
Правац Н = Север, С = Југ |
Земљописна дужина |
Географска дужина (координата) |
Е. |
Правац Е = Исток, З = Запад |
Брзина |
брзина у чворовима |
Угао |
Угао праћења у степенима |
Датум |
ДАТУМ у УТЦ |
МВ |
Магнетска варијација |
В |
Смер варијације П / З |
ЦМД (* 6А) |
Подаци о контролној суми |
Време и датум можемо издвојити из $ ГПРМЦ низа бројањем зареза у низу. Уз помоћ Ардуина и програмирања проналазимо $ ГПРМЦ низ и складиштимо га у низ, тада се време (24-часовни формат) може наћи након једне зареза, а Дате након девет зареза. Време и датум се даље чувају у низовима.
ГПС сателит даје време и датум у универзалном координираном времену (УТЦ), па га морамо претворити у складу с тим. Да бисмо извршили конверзију према индијском времену, додали смо 5:30 по УТЦ времену, јер је индијско време 5 и по сати испред УТЦ / ГМТ.
Кружни дијаграм:
Кружне везе Ардуино ГПС сата су једноставне. Ардуино се користи за контролу читавог процеса, прима ГПС податке са сателита путем ГПС модула, извлачи датум и време из $ ГПРМЦ низа и приказује их на ЛЦД-у.
Прикључци за податке Д4, Д5, Д6, Д7 од 16к2 ЛЦД-а повезани су на пин бр. 5, 4, 3, 2 Ардуина и командни пин РС и ЕН ЛЦД-а повезани су на пин 7 и 6 Ардуино-а. Прикључак модула ГПС пријемника Тк повезан је са Рк пином 10 Ардуина. Приземни ПИН Ардуина и ГПС-а повезани су међусобно. Овде смо користили ГПС модул СКГ13БЛ, који ради са брзином преноса од 9800 бпс. Ардуино је такође конфигурисан на брзини преноса од 9800 бпс користећи функцију „Сериал.бегин (9800)“.
Објашњење програмирања:
У програмски део прво укључујемо библиотеке и дефинишемо пинове за ЛЦД и софтверску серијску комуникацију. Такође дефинишите неку променљиву са низовима за чување података. Користећи овде софтверску серијску библиотеку, дозволили смо серијску комуникацију на пиновима 10 и 11 и поставили их Рк односно Тк. Подразумевано се пин 0 и 1 Ардуина користе за серијску комуникацију, али помоћу библиотеке СофтвареСериал можемо дозволити серијску комуникацију на другим дигиталним пиновима Ардуина
#инцлуде
Након ње покренули смо серијску комуникацију и ЛЦД у функцији подешавања и приказали поруку добродошлице на ЛЦД-у.
Тада смо из примљеног низа издвојили време и датум.
док (к
А затим претворите време и датум у децималне вредности и модификујте их у индијско време (УТЦ +5: 30)
инт УТЦ_хоурДец = УТЦ_хоур.тоИнт (); инт УТЦ_минутДец = УТЦ_минут.тоИнт (); инт Друго = УТЦ_сецонд.тоИнт (); инт Датум = УТЦ_дате.тоИнт (); инт месец = УТЦ_монтх.тоИнт ();……………
А онда су коначно на ЛЦД-у приказани Време и Датум помоћу функције лцд.принт , проверите комплетан код испод.