- అవసరమైన భాగాలు:
- GPS మాడ్యూల్:
- GPS నుండి స్థాన డేటాను పొందడం:
- ESP12E NodeMCU తో GPS ను ఇంటర్ఫేసింగ్:
- కోడ్ వివరణ:
- వెబ్పేజీ కోసం HTML కోడ్:
GPS అంటే గ్లోబల్ పొజిషనింగ్ సిస్టమ్ మరియు UTC లో స్థానం, ఎత్తు, వేగం, తేదీ మరియు సమయాన్ని తెలుసుకోవడానికి ఇది ఉపయోగించబడుతుంది. ఈ ప్రాజెక్ట్లో మేము GPS మాడ్యూల్ను నోడ్ఎంసియుతో ఇంటర్ఫేస్ చేయబోతున్నాం. NodeMCU ని ఉపయోగించి ఒక సాధారణ స్థానిక వెబ్ సర్వర్ సృష్టించబడుతుంది మరియు ఆ సర్వర్ వెబ్పేజీలో స్థాన వివరాలు నవీకరించబడతాయి. ఈ IoT ఆధారిత ప్రాజెక్ట్ యొక్క ప్రత్యేకత ఏమిటంటే, వెబ్ పేజీలో అందించిన లింక్పై క్లిక్ చేయడం ద్వారా గూల్జ్ మ్యాప్స్లో ఉన్న స్థానాన్ని మనం తనిఖీ చేయవచ్చు. మీరు ఈ వెబ్పేజీని కూడా తెరిచి, మీ మోడెమ్ / రౌటర్లో పోర్ట్ ఫార్వార్డింగ్ను సక్రియం చేయడం ద్వారా ఎక్కడి నుండైనా స్థానాన్ని తనిఖీ చేయవచ్చు.
అవసరమైన భాగాలు:
- నోడ్ఎంసియు ఇఎస్పి 12
- GPS మాడ్యూల్ (uBlox Neo 6M GPS)
GPS మాడ్యూల్:
ఉబ్లోక్స్ నియో 6 ఎమ్ అనేది సీరియల్ జిపిఎస్ మాడ్యూల్, ఇది సీరియల్ కమ్యూనికేషన్ ద్వారా స్థాన వివరాలను అందిస్తుంది. దీనికి నాలుగు పిన్స్ ఉన్నాయి.
పిన్ |
వివరణ |
విసిసి |
2.7 - 5 వి విద్యుత్ సరఫరా |
Gnd |
గ్రౌండ్ |
TXD |
డేటాను ప్రసారం చేయండి |
RXD |
డేటాను స్వీకరించండి |
ఉబ్లోక్స్ నియో 6 ఎమ్ జిపిఎస్ మాడ్యూల్ టిటిఎల్ అనుకూలమైనది మరియు దాని లక్షణాలు క్రింద ఇవ్వబడ్డాయి.
సంగ్రహ సమయం | కూల్ స్టార్ట్: 27 సె, హాట్ స్టార్ట్: 1 సె |
కమ్యూనికేషన్ ప్రోటోకాల్ | NMEA |
సీరియల్ కమ్యూనికేషన్ | 9600 బిపిఎస్, 8 డేటా బిట్స్, 1 స్టాప్ బిట్, పారిటీ లేదు మరియు ఫ్లో కంట్రోల్ లేదు |
ఆపరేటింగ్ కరెంట్ | 45 ఎంఏ |
GPS నుండి స్థాన డేటాను పొందడం:
మాడ్యూల్ 9600 బాడ్ రేట్ వద్ద బహుళ తీగలలో డేటాను ప్రసారం చేస్తుంది. మేము 9600 బాడ్ రేటుతో UART టెర్మినల్ ఉపయోగిస్తే, GPS అందుకున్న డేటాను చూస్తాము.
GPS మాడ్యూల్ రియల్ టైమ్ ట్రాకింగ్ పొజిషన్ డేటాను NMEA ఆకృతిలో పంపుతుంది (పై స్క్రీన్ షాట్ చూడండి). NMEA ఫార్మాట్ అనేక వాక్యాలను కలిగి ఉంది, దీనిలో నాలుగు ముఖ్యమైన వాక్యాలు క్రింద ఇవ్వబడ్డాయి. NMEA వాక్యం మరియు దాని డేటా ఫార్మాట్ గురించి మరింత వివరంగా ఇక్కడ చూడవచ్చు.
- $ GPGGA: గ్లోబల్ పొజిషనింగ్ సిస్టమ్ ఫిక్స్ డేటా
- $ GPGSV: GPS ఉపగ్రహాలు వీక్షణలో
- $ GPGSA: GPS DOP మరియు క్రియాశీల ఉపగ్రహాలు
- $ GPRMC: సిఫార్సు చేయబడిన కనీస నిర్దిష్ట GPS / రవాణా డేటా
GPS డేటా మరియు NMEA తీగల గురించి ఇక్కడ మరింత తెలుసుకోండి.
9600 బాడ్ రేటుతో అనుసంధానించబడినప్పుడు GPS అందుకున్న డేటా ఇది.
$ GPRMC, 141848.00, A, 2237.63306, N, 08820.86316, E, 0.553,, 100418,,, A * 73 $ GPVTG,, T,, M, 0.553, N, 1.024, K, A * 27 $ GPGGA, 141848.00, 2237.63306, ఎన్, 08820.86316, ఇ, 1,03,2.56,1.9, ఓం, -54.2, ఎం,, * 74 $ జిపిజిఎస్ఎ, ఎ, 2,06,02,05,,,,,,,,, 2.75, 2.56,1.00 * 02 $ GPGSV, 1,1,04,02,59,316,30,05,43,188,25,06,44,022,23,25,03,324, * 76 $ GPGLL, 2237.63306, N, 08820.86316, E, 141848.00, ఎ, ఎ * 65
ఏదైనా స్థానాన్ని ట్రాక్ చేయడానికి మేము GPS మాడ్యూల్ను ఉపయోగించినప్పుడు , మాకు కోఆర్డినేట్లు మాత్రమే అవసరం మరియు దీన్ని $ GPGGA స్ట్రింగ్లో కనుగొనవచ్చు. $ GPGGA (గ్లోబల్ పొజిషనింగ్ సిస్టమ్ ఫిక్స్ డేటా) మాత్రమే స్ట్రింగ్ ఎక్కువగా ప్రోగ్రామ్లలో ఉపయోగించబడుతుంది మరియు ఇతర తీగలను విస్మరిస్తారు.
$ GPGGA, 141848.00,2237.63306, N, 08820.86316, E, 1,03,2.56,1.9, M, -54.2, M,, * 74
ఆ పంక్తి యొక్క అర్థం ఏమిటి?
ఆ రేఖ యొక్క అర్థం: -
1. స్ట్రింగ్ ఎల్లప్పుడూ “$” గుర్తుతో మొదలవుతుంది
2. GPGGA అంటే గ్లోబల్ పొజిషనింగ్ సిస్టమ్ ఫిక్స్ డేటా
3. “,” కామా రెండు విలువల మధ్య విభజనను సూచిస్తుంది
4. 141848.00: GMT సమయం 14 (గం): 18 (నిమి): 48 (సెక): 00 (ఎంఎస్)
5. 2237.63306, ఎన్: అక్షాంశం 22 (డిగ్రీ) 37 (నిమిషాలు) 63306 (సెకను) ఉత్తరం
6. 08820.86316, ఇ: లాంగిట్యూడ్ 088 (డిగ్రీ) 20 (నిమిషాలు) 86316 (సెక) తూర్పు
7. 1: పరిమాణం 0 = చెల్లని డేటా, 1 = చెల్లుబాటు అయ్యే డేటా, 2 = డిజిపిఎస్ పరిష్కారాన్ని పరిష్కరించండి
8. 03: ప్రస్తుతం చూసిన ఉపగ్రహాల సంఖ్య.
9. 1.0: HDOP
10. 2.56, ఓం: ఎత్తు (మీటర్లో సముద్ర మట్టానికి ఎత్తు)
11. 1.9, ఓం: జియోయిడ్స్ ఎత్తు
12. * 74: చెక్సమ్
కాబట్టి మాడ్యూల్ స్థానం గురించి సమాచారం సేకరించడానికి మాకు 5 మరియు No.6 అవసరం. ఈ ప్రాజెక్ట్లో మేము అక్షాంశం మరియు రేఖాంశాలను తీయడానికి కొన్ని విధులను అందించే GPS లైబ్రరీని ఉపయోగించాము, కాబట్టి మేము దాని గురించి ఆందోళన చెందాల్సిన అవసరం లేదు.
మేము ఇంతకుముందు ఇతర మైక్రోకంట్రోలర్లతో GPS ను ఇంటర్ఫేస్ చేసాము:
Ar ఆర్డునోతో GPS ను ఎలా ఉపయోగించాలి
· రాస్ప్బెర్రీ పై GPS మాడ్యూల్ ఇంటర్ఫేసింగ్ ట్యుటోరియల్
IC పిఐసి మైక్రోకంట్రోలర్తో ఇంటర్ఫేసింగ్ జిపిఎస్ మాడ్యూల్
Ar Arduino, ESP8266 & GPS ఉపయోగించి గూగుల్ మ్యాప్స్లో వాహనాన్ని ట్రాక్ చేయండి
ESP12E NodeMCU తో GPS ను ఇంటర్ఫేసింగ్:
NodeMCU అనేది ESP8266 ఆధారిత అభివృద్ధి బోర్డు. ఇది ESP-12E ను దాని ప్రాసెసింగ్ కోర్గా కలిగి ఉంది. ఇది 32 బిట్ ఎంసియు. దీనిలో 14 GPIO పిన్స్, సింగిల్ ఛానల్ 10 బిట్ ఇంటిగ్రేటెడ్ ADC ఉన్నాయి. ఇది UART, I2C, SPI కమ్యూనికేషన్కు మద్దతు ఇస్తుంది. ఇది 3.3 వి అనుకూలంగా ఉంది, ఇది 5 విని నిర్వహించదు. మీరు NodeMCU కి క్రొత్తగా ఉంటే, అప్పుడు NodeMCU ESP-12 తో ప్రారంభించడం చదవండి.
NodeMCU మరియు GPS మాడ్యూల్ మధ్య కనెక్షన్లను క్రింద చూపిన విధంగా ఉంది.
నోడ్ఎంసియు |
GPS మాడ్యూల్ |
3 వి 3 |
విసిసి |
GND |
GND |
D1 (GPIO5) |
RX |
D2 (GPIO4) |
టిఎక్స్ |
GPS ను NodeMCU తో కనెక్ట్ చేసే సర్క్యూట్ రేఖాచిత్రం క్రింద ఉంది:
GPS మాడ్యూల్ ఆన్ చేయబడిన తర్వాత స్థాన వివరాలను సంగ్రహించడానికి కొంత సమయం పడుతుంది. నోడ్ఎంసియు వెబ్ సర్వర్ ను ప్రారంభిస్తుంది మరియు క్లయింట్ వెబ్ సర్వర్కు కనెక్ట్ కావడానికి వేచి ఉంటుంది. క్లయింట్ వెబ్ సర్వర్కు కనెక్ట్ అయిన తర్వాత, కనెక్ట్ చేసిన క్లయింట్కు నోడ్ఎంసియు స్థాన వివరాలను పంపుతుంది. స్థాన వివరాలు HTML ఉపయోగించి రూపొందించిన సాధారణ వెబ్పేజీలో ప్రదర్శించబడతాయి.
దశలు:
- స్కీమాటిక్లో చూపిన విధంగా సర్క్యూట్ను కనెక్ట్ చేయండి.
- Wi-Fi ఆధారాలను మార్చిన తర్వాత కోడ్ను అప్లోడ్ చేయండి.
- Arduino IDE లో సీరియల్ మానిటర్ తెరిచి, వెబ్ సర్వర్ యొక్క IP చిరునామాను గమనించండి.
- ఏదైనా బ్రౌజర్ను తెరిచి వెబ్సర్వర్ యొక్క IP చిరునామాను నమోదు చేయండి.
- ఇది స్థాన వివరాలు, తేదీ, సమయం మరియు గూగుల్ మ్యాప్స్ లింక్ను ప్రదర్శిస్తుంది.
కోడ్ వివరణ:
పూర్తి సోర్స్ కోడ్ ఈ ప్రాజెక్ట్ కోసం ఈ వ్యాసం చివర ఇవ్వబడుతుంది. కోడ్ చిన్న అర్ధవంతమైన భాగాలుగా విభజించబడింది మరియు క్రింద వివరించబడింది.
GPS మాడ్యూల్ను NodeMCU తో ఇంటర్ఫేస్ చేయడానికి మేము తగిన హెడర్ ఫైల్లను చేర్చాలి. క్రింద ఇచ్చిన లింకుల నుండి హెడర్ ఫైళ్ళను డౌన్లోడ్ చేసుకోవచ్చు.
చిన్న GPS ++ లైబ్రరీ:
# చేర్చండి
NodeMCU ని ఉపయోగించి వెబ్సర్వర్ను సృష్టించడానికి, దీన్ని Wi-Fi నెట్వర్క్కు కనెక్ట్ చేయాలి. కోడ్ యొక్క ఈ భాగంలో మేము నోడ్ఎంసియు కనెక్ట్ అయ్యే వైర్లెస్ నెట్వర్క్ యొక్క వై-ఫై ఆధారాలను అందిస్తున్నాము. దీన్ని మీ Wi-Fi ఆధారాలతో భర్తీ చేయండి.
కాన్స్ట్ చార్ * SSID = " శశి "; const char * password = "12345678”;
కోడ్ యొక్క ఈ భాగంలో మేము క్లాస్ టినిజిపిఎస్ప్లస్ యొక్క ఒక వస్తువును సృష్టిస్తున్నాము మరియు జిపిఎస్ మాడ్యూల్ అనుసంధానించబడిన పిన్నులను నిర్వచిస్తున్నాము. GPS మాడ్యూల్ నోడ్ఎంసియు యొక్క పిన్స్ 4 మరియు 5 (GPIO4 మరియు GPIO5) లకు అనుసంధానించబడి ఉంది. పిన్ 4 మరియు 5 లలో సీరియల్ కమ్యూనికేషన్కు మద్దతు ఇవ్వడానికి, వర్చువల్ సీరియల్ పోర్ట్ను సృష్టించడానికి మేము “సాఫ్ట్వేర్ సీరియల్” లైబ్రరీని ఉపయోగిస్తున్నాము.
TinyGPSPlus gps; // టినిజిపిఎస్ ++ ఆబ్జెక్ట్ సాఫ్ట్వేర్ సీరియల్ ఎస్ఎస్ (4, 5); // GPS పరికరానికి సీరియల్ కనెక్షన్.
కోడ్ యొక్క ఈ పంక్తి వెబ్ సర్వర్ యొక్క పోర్ట్ సంఖ్యను సృష్టిస్తుందని సూచిస్తుంది. కోసం HTTP అనుసంధానాన్ని, డిఫాల్ట్ పోర్ట్ సంఖ్య 80 ఉంది.
వైఫైసర్వర్ సర్వర్ (80);
NodeMCU ని ఉపయోగించి వెబ్సర్వర్ను సృష్టించడానికి, క్రింద పేర్కొన్న కోడ్ ముక్క ఉపయోగించబడుతుంది. వెబ్సర్వర్ను సృష్టించిన తరువాత, ఇది వెబ్ సర్వర్ యొక్క IP చిరునామాను సీరియల్ మానిటర్లో ప్రింట్ చేస్తుంది. తరువాత ఈ IP చిరునామా స్థానిక నెట్వర్క్లోని వెబ్సర్వర్ను యాక్సెస్ చేయడానికి ఉపయోగించబడుతుంది.
server.begin (); Serial.println ("సర్వర్ ప్రారంభమైంది"); సీరియల్.ప్రింట్ల్న్ (వైఫై.లోకాలిఐపి ()); // IP చిరునామాను ముద్రించండి
తరువాత మనం GPS మాడ్యూల్ నుండి పంపిన సీరియల్ డేటాను చదవడం ప్రారంభించాలి మరియు అది లోపం లేకుండా ఉంటే, మేము దాని నుండి స్థాన వివరాలను సేకరించాలి. కు సారం నగర వివరాలు మనం ఉపయోగిస్తున్న TinyGPSPlus లైబ్రరీ. కోడ్ యొక్క ఈ భాగం పై పని చేస్తుంది.
అయితే (ss.available ()> 0) if (gps.encode (ss.read ()))
అందుకున్న స్ట్రింగ్ లోపం లేనిది అయితే, మొదట మేము స్థానం చెల్లుబాటు కాదా అని తనిఖీ చేయాలి. స్థానం చెల్లుబాటు అయితే మేము దాని నుండి అక్షాంశం మరియు రేఖాంశాన్ని తీయాలి. అప్పుడు దానిని వెబ్పేజీలో ప్రదర్శించడానికి స్ట్రింగ్ ఫార్మాట్గా మార్చబడుతుంది. ఈ పనిని పూర్తి చేయడానికి, మేము ఈ కోడ్ భాగాన్ని ఉపయోగిస్తున్నాము.
if (gps .location.isValid ()) { lattitude = gps.location.lat (); lat_str = స్ట్రింగ్ (అక్షాంశం, 6); రేఖాంశం = gps.location.lng (); lng_str = స్ట్రింగ్ (రేఖాంశం, 6); }
తేదీ మరియు సమయాన్ని సేకరించేందుకు మేము అదే దశలను అనుసరించాలి.
if (gps.date.isValid ()) { date = gps.date.day (); నెల = gps.date.month (); సంవత్సరం = gps.date.year (); }
టు టైమ్ సేకరించేందుకు, మేము అదే విధానాన్ని అనుసరించాల్సి, కానీ GPS సమయం UTC ఫార్మాట్ లో ఉంది అందిస్తుంది. టు వరకు IST UTC మార్చేందుకు మేము ఒక అధిగమించారు జోడించడానికి అవసరం + 5 గంటల మరియు 30 నిమిషాల వరకు UTC. కోడ్ యొక్క ఈ భాగం UTC నుండి IST కి మార్పిడి చేస్తుంది.
నిమిషం = (నిమిషం + 30); if (నిమిషం> 59) { నిమిషం = నిమిషం - 60; గంట = గంట + 1; } గంట = (గంట + 5); if (గంట> 23) గంట = గంట - 24;
ఈ సమయం 24 గంటల ఆకృతిలో ఉంది. టు 12 గంట ఫార్మాట్ 24 గంటల మార్చేందుకు, క్రింది పేర్కొన్న కోడ్ ఉపయోగిస్తారు.
if (గంట> = 12) pm = 1; else pm = 0; గంట = గంట% 12;
కోడ్ యొక్క ఈ భాగంలో క్లయింట్ వెబ్ సర్వర్కు కనెక్ట్ చేయబడిందా అని మేము తనిఖీ చేస్తున్నాము. క్లయింట్ కనెక్ట్ అయ్యే వరకు ఇది వేచి ఉంటుంది.
WiFiClient client = server.available (); if (! క్లయింట్) { తిరిగి; }
క్లయింట్ కనెక్ట్ అయిన తర్వాత, వెబ్సర్వర్ క్లయింట్కు ప్రతిస్పందన పంపాలి. వెబ్పేజీ HTML ఉపయోగించి రూపొందించబడింది. వెబ్పేజీ కోసం HTML కోడ్ ఈ వ్యాసం చివరిలో ఇవ్వబడింది. GPS మాడ్యూల్ నుండి డేటా అందుకున్న తర్వాత అక్షాంశం, రేఖాంశం, తేదీ మరియు సమయ విలువలు నవీకరించబడతాయి. కోడ్ యొక్క ఈ భాగంలో మేము క్లయింట్కు ప్రతిస్పందనను పంపుతున్నాము. ఎక్కడ 's' అనేది వెబ్పేజీ మరియు స్థాన వివరాల కోసం HTML కోడ్ను కలిగి ఉన్న స్ట్రింగ్.
client.print (లు);
వెబ్పేజీ కోసం HTML కోడ్:
నోడ్ఎంసియుతో జిపిఎస్ ఇంటర్ఫేసింగ్
స్థాన వివరాలు
అక్షాంశం | 12.9000 |
---|---|
రేఖాంశం | 77.5900 |
తేదీ | 22/06/18 |
సమయం | 07:12:12 |
ఇక్కడ నొక్కండి! Google మ్యాప్స్లో స్థానాన్ని తనిఖీ చేయడానికి.
వెబ్ బ్రౌజర్లో స్థానిక వెబ్సర్వర్ యొక్క ఐపిని తెరిచిన తర్వాత వెబ్పేజీ ఎలా ఉంటుంది.
మీరు “ ఇక్కడ క్లిక్ చేయండి ” లింక్పై క్లిక్ చేసినప్పుడు, ఇది Google మ్యాప్స్లో ఈ క్రింది విధంగా స్థానాన్ని తెరుస్తుంది: