- అవసరమైన భాగాలు:
- GPS మాడ్యూల్ మరియు దాని పని:
- GSM మాడ్యూల్:
- యాక్సిలెరోమీటర్:
- సర్క్యూట్ వివరణ:
- పని వివరణ:
- ప్రోగ్రామింగ్ వివరణ:
మా మునుపటి ట్యుటోరియల్లో, కంప్యూటర్తో జిపిఎస్ మాడ్యూల్ను ఎలా ఇంటర్ఫేస్ చేయాలి, ఆర్డునో జిపిఎస్ క్లాక్ను ఎలా నిర్మించాలో మరియు జిఎస్ఎమ్ మరియు జిపిఎస్ ఉపయోగించి వాహనాన్ని ఎలా ట్రాక్ చేయాలో గురించి తెలుసుకున్నాము. ఇక్కడ ఈ ప్రాజెక్ట్లో, మేము GPS, GSM మరియు యాక్సిలెరోమీటర్ ఉపయోగించి Arduino ఆధారిత వాహన ప్రమాద హెచ్చరిక వ్యవస్థను నిర్మించబోతున్నాము. యాక్సిలెరోమీటర్ వాహనం యొక్క గొడ్డలిలో ఆకస్మిక మార్పును కనుగొంటుంది మరియు GSM మాడ్యూల్ ప్రమాదం జరిగిన ప్రదేశంతో మీ మొబైల్ ఫోన్లో హెచ్చరిక సందేశాన్ని పంపుతుంది. ప్రమాదం జరిగిన ప్రదేశం గూగుల్ మ్యాప్ లింక్ రూపంలో పంపబడుతుంది, ఇది అక్షాంశం మరియు రేఖాంశం నుండి GPS మాడ్యూల్ నుండి తీసుకోబడింది. నాట్స్లో వాహనం యొక్క వేగం కూడా సందేశంలో ఉంది. డెమో వీడియో చూడండిచివరలో. హార్డ్వేర్ మరియు సాఫ్ట్వేర్లో కొన్ని మార్పులు చేయడం ద్వారా ఈ వాహన ప్రమాద హెచ్చరిక ప్రాజెక్ట్ను ట్రాకింగ్ సిస్టమ్గా మరియు మరెన్నో ఉపయోగించవచ్చు.
అవసరమైన భాగాలు:
- ఆర్డునో యునో
- GSM మాడ్యూల్ (SIM900A)
- GPS మాడ్యూల్ (SIM28ML)
- యాక్సిలెరోమీటర్ (ADXL335)
- 16x2 LCD
- విద్యుత్ పంపిణి
- వైర్లను కనెక్ట్ చేస్తోంది
- 10 K-POT
- బ్రెడ్బోర్డ్ లేదా పిసిబి
- విద్యుత్ సరఫరా 12v 1amp
ప్రాజెక్ట్లోకి వెళ్లేముందు, మేము GPS, GSM మరియు యాక్సిలెరోమీటర్ గురించి చర్చిస్తాము.
GPS మాడ్యూల్ మరియు దాని పని:
GPS అంటే గ్లోబల్ పొజిషనింగ్ సిస్టమ్ మరియు భూమిపై ఏదైనా ప్రదేశం యొక్క అక్షాంశం మరియు రేఖాంశాలను గుర్తించడానికి ఉపయోగిస్తారు, ఖచ్చితమైన UTC సమయం (యూనివర్సల్ టైమ్ కోఆర్డినేటెడ్). మా ప్రాజెక్ట్లో ప్రమాదం జరిగిన ప్రదేశాన్ని తెలుసుకోవడానికి GPS మాడ్యూల్ ఉపయోగించబడుతుంది. ఈ పరికరం సమయం మరియు తేదీతో ప్రతి సెకనుకు ఉపగ్రహం నుండి అక్షాంశాలను అందుకుంటుంది. అక్షాంశం మరియు రేఖాంశ కోఆర్డినేట్లను కనుగొనడానికి మేము గతంలో వాహన ట్రాకింగ్ సిస్టమ్లో $ GPGGA స్ట్రింగ్ను సేకరించాము.
GPS మాడ్యూల్ ట్రాకింగ్ స్థానానికి సంబంధించిన డేటాను నిజ సమయంలో పంపుతుంది మరియు ఇది NMEA ఆకృతిలో చాలా డేటాను పంపుతుంది (క్రింద స్క్రీన్ షాట్ చూడండి). NMEA ఆకృతిలో అనేక వాక్యాలు ఉన్నాయి, దీనిలో మనకు ఒక వాక్యం మాత్రమే అవసరం. ఈ వాక్యం $ GPGGA నుండి మొదలవుతుంది మరియు అక్షాంశాలు, సమయం మరియు ఇతర ఉపయోగకరమైన సమాచారాన్ని కలిగి ఉంటుంది. ఈ GPGGA ని గ్లోబల్ పొజిషనింగ్ సిస్టమ్ ఫిక్స్ డేటాకు సూచిస్తారు. NMEA వాక్యాల గురించి మరియు GPS డేటాను ఇక్కడ చదవడం గురించి మరింత తెలుసుకోండి.
స్ట్రింగ్లోని కామాలతో లెక్కించడం ద్వారా మేము $ GPGGA స్ట్రింగ్ నుండి కోఆర్డినేట్ను సేకరించవచ్చు. మీరు $ GPGGA స్ట్రింగ్ను కనుగొని, దానిని శ్రేణిలో నిల్వ చేస్తారని అనుకుందాం, అప్పుడు రెండు కామాలతో అక్షాంశం కనుగొనవచ్చు మరియు నాలుగు కామాలతో తర్వాత రేఖాంశం కనుగొనవచ్చు. ఇప్పుడు, ఈ అక్షాంశం మరియు రేఖాంశం ఇతర శ్రేణులలో ఉంచవచ్చు.
దాని వివరణతో పాటు $ GPGGA స్ట్రింగ్ క్రింద ఉంది:
$ GPGGA, 104534.000,7791.0381, N, 06727.4434, E, 1,08,0.9,510.4, M, 43.9, M,, * 47 $ GPGGA, HHMMSS.SSS, అక్షాంశం, N, రేఖాంశం, E, FQ, NOS, HDP, ఎత్తు, M, ఎత్తు, M,, చెక్సమ్ డేటా
ఐడెంటిఫైయర్ |
వివరణ |
$ GPGGA |
గ్లోబల్ పొజిషనింగ్ సిస్టమ్ ఫిక్స్ డేటా |
HHMMSS.SSS |
గంట నిమిషం సెకన్లు మరియు మిల్లీసెకన్ల ఆకృతిలో సమయం. |
అక్షాంశం |
అక్షాంశం (సమన్వయం) |
ఎన్ |
దిశ N = ఉత్తరం, S = దక్షిణ |
రేఖాంశం |
రేఖాంశం (సమన్వయం) |
ఇ |
దిశ E = తూర్పు, W = పడమర |
FQ |
నాణ్యమైన డేటాను పరిష్కరించండి |
NOS |
వాడుతున్న ఉపగ్రహాల సంఖ్య |
HDP |
ప్రెసిషన్ యొక్క క్షితిజసమాంతర పలుచన |
ఎత్తు |
ఎత్తు (సముద్ర మట్టానికి మీటర్లు పైన) |
ఓం |
మీటర్ |
ఎత్తు |
ఎత్తు |
చెక్సమ్ |
చెక్సమ్ డేటా |
GSM మాడ్యూల్:
SIM900 అనేది పూర్తి క్వాడ్-బ్యాండ్ GSM / GPRS మాడ్యూల్, దీనిని కస్టమర్ లేదా అభిరుచి గలవారు సులభంగా ఉపయోగించుకోవచ్చు. SIM900 GSM మాడ్యూల్ పరిశ్రమ-ప్రామాణిక ఇంటర్ఫేస్ను అందిస్తుంది. SIM900 వాయిస్, SMS, తక్కువ విద్యుత్ వినియోగంతో డేటా కోసం GSM / GPRS 850/900/1800/1900MHz పనితీరును అందిస్తుంది. ఇది మార్కెట్లో సులభంగా లభిస్తుంది.
- AMR926EJ-S కోర్ను సమగ్రపరిచే సింగిల్-చిప్ ప్రాసెసర్ను ఉపయోగించి SIM900 రూపొందించబడింది
- క్వాడ్ - చిన్న పరిమాణంలో బ్యాండ్ GSM / GPRS మాడ్యూల్.
- GPRS ప్రారంభించబడింది
AT ఆదేశం:
AT అంటే ATTENTION. ఈ ఆదేశం GSM మాడ్యూల్ను నియంత్రించడానికి ఉపయోగించబడుతుంది. Arduino తో మా మునుపటి GSM ప్రాజెక్టులలో మేము ఉపయోగించిన కాల్ మరియు సందేశం కోసం కొన్ని ఆదేశాలు ఉన్నాయి. GSM మాడ్యూల్ పరీక్షించడానికి మేము AT ఆదేశాన్ని ఉపయోగించాము. AT కమాండ్ అందుకున్న తరువాత GSM మాడ్యూల్ సరేతో స్పందించండి. అంటే GSM మాడ్యూల్ బాగా పనిచేస్తుందని. ఈ ప్రాజెక్ట్లో మేము ఇక్కడ ఉపయోగించిన కొన్ని AT ఆదేశాలు క్రింద ఉన్నాయి:
ATE0 ప్రతిధ్వని ఆఫ్ AT + CNMI = 2,2,0,0,0
(GSM మాడ్యూల్ గురించి మరింత తెలుసుకోవడానికి, ఇక్కడ వివిధ మైక్రోకంట్రోలర్లతో మా వివిధ GSM ప్రాజెక్టులను తనిఖీ చేయండి)
యాక్సిలెరోమీటర్:
పిన్ యాక్సిలెరోమీటర్ వివరణ:
- Vcc 5 వోల్ట్ సరఫరా ఈ పిన్ వద్ద కనెక్ట్ అవ్వాలి.
- X-OUT ఈ పిన్ x దిశలో అనలాగ్ అవుట్పుట్ను ఇస్తుంది
- Y-OUT ఈ పిన్ y దిశలో అనలాగ్ అవుట్పుట్ను ఇస్తుంది
- Z-OUT ఈ పిన్ z దిశలో అనలాగ్ అవుట్పుట్ను ఇస్తుంది
- GND గ్రౌండ్
- ST ఈ పిన్ సెన్సార్ యొక్క సెట్ సున్నితత్వం కోసం ఉపయోగించబడుతుంది
యాక్సిలెరోమీటర్ ఉపయోగించి మా ఇతర ప్రాజెక్టులను కూడా తనిఖీ చేయండి: ఆర్డునో మరియు యాక్సిలెరోమీటర్ బేస్డ్ హ్యాండ్ సంజ్ఞ నియంత్రిత రోబోట్ ఉపయోగించి పింగ్ పాంగ్ గేమ్.
సర్క్యూట్ వివరణ:
ఈ వాహన ప్రమాద హెచ్చరిక వ్యవస్థ ప్రాజెక్ట్ యొక్క సర్క్యూట్ కనెక్షన్లు చాలా సులభం. ఇక్కడ GPS మాడ్యూల్ యొక్క Tx పిన్ నేరుగా Arduino యొక్క డిజిటల్ పిన్ నంబర్ 10 కి అనుసంధానించబడి ఉంది. ఇక్కడ సాఫ్ట్వేర్ సీరియల్ లైబ్రరీని ఉపయోగించడం ద్వారా, మేము పిన్ 10 మరియు 11 లలో సీరియల్ కమ్యూనికేషన్ను అనుమతించాము మరియు వాటిని వరుసగా Rx మరియు Tx గా చేసి, GPS మాడ్యూల్ యొక్క Rx పిన్ను తెరిచి ఉంచాము. అప్రమేయంగా ఆర్డునో యొక్క పిన్ 0 మరియు 1 సీరియల్ కమ్యూనికేషన్ కోసం ఉపయోగించబడతాయి కాని సాఫ్ట్వేర్ సీరియల్ లైబ్రరీని ఉపయోగించడం ద్వారా, ఆర్డునో యొక్క ఇతర డిజిటల్ పిన్లపై సీరియల్ కమ్యూనికేషన్ను అనుమతించవచ్చు. 12 వోల్ట్ సరఫరా GPS మాడ్యూల్కు శక్తినివ్వడానికి ఉపయోగించబడుతుంది.
GSM మాడ్యూల్ యొక్క Tx మరియు Rx పిన్స్ నేరుగా ఆర్డునో యొక్క పిన్ D2 మరియు D3 లతో అనుసంధానించబడి ఉన్నాయి. GSM ఇంటర్ఫేసింగ్ కోసం, ఇక్కడ మేము సాఫ్ట్వేర్ సీరియల్ లైబ్రరీని కూడా ఉపయోగించాము. GSM మాడ్యూల్ 12v సరఫరాతో కూడా నడుస్తుంది. ఒక ఐచ్ఛిక LCD యొక్క డేటా పిన్స్ D4, D5, D6, మరియు D7 Arduino యొక్క 9 పిన్ నెంబర్ 6, 7, 8 కనెక్ట్, మరియు. కమాండ్ పిన్ RS మరియు LCD యొక్క EN అర్డునో యొక్క పిన్ నంబర్ 4 మరియు 5 తో అనుసంధానించబడి ఉన్నాయి మరియు RW పిన్ నేరుగా భూమితో అనుసంధానించబడి ఉంది. LCD యొక్క కాంట్రాస్ట్ లేదా ప్రకాశాన్ని సెట్ చేయడానికి ఒక పొటెన్టోమీటర్ కూడా ఉపయోగించబడుతుంది.
ఒక యాక్సిలెరోమీటర్ నేరుగా Arduino ADC పిన్ A1, A2, మరియు A3 కు కనెక్ట్ ఒక ప్రమాదంలో మరియు దాని x, y మరియు z అక్షం ADC అవుట్పుట్ పిన్స్ కనిపెట్టడానికి ఈ వ్యవస్థలో జోడిస్తారు.
పని వివరణ:
ఈ ప్రాజెక్ట్లో, GPS రిసీవర్ మరియు GSM మాడ్యూల్తో మొత్తం ప్రక్రియను నియంత్రించడానికి Arduino ఉపయోగించబడుతుంది. వాహనం యొక్క కోఆర్డినేట్లను గుర్తించడానికి GPS రిసీవర్ ఉపయోగించబడుతుంది, కోఆర్డినేట్లతో హెచ్చరిక SMS మరియు గూగుల్ మ్యాప్కు లింక్ను పంపడానికి GSM మాడ్యూల్ ఉపయోగించబడుతుంది. ఏదైనా అక్షంలో ప్రమాదం లేదా ఆకస్మిక మార్పును గుర్తించడానికి యాక్సిలెరోమీటర్ ADXL335 ఉపయోగించబడుతుంది. స్థితి సందేశాలు లేదా కోఆర్డినేట్లను ప్రదర్శించడానికి ఐచ్ఛిక 16x2 LCD కూడా ఉపయోగించబడుతుంది. మేము GPS మాడ్యూల్ SIM28ML మరియు GSM మాడ్యూల్ SIM900A ను ఉపయోగించాము.
ప్రోగ్రామింగ్ తర్వాత మేము మా హార్డ్వేర్తో సిద్ధంగా ఉన్నప్పుడు, దాన్ని మన వాహనంలో ఇన్స్టాల్ చేసి పవర్ అప్ చేయవచ్చు. ఇప్పుడు ప్రమాదం జరిగినప్పుడల్లా, కారు వంగిపోతుంది మరియు యాక్సిలెరోమీటర్ అతని అక్షం విలువలను మారుస్తుంది. ఈ విలువలు ఆర్డునో చదివి, ఏదైనా అక్షంలో ఏదైనా మార్పు జరిగిందో లేదో తనిఖీ చేస్తుంది. ఏదైనా మార్పు జరిగితే, ఆర్డునో జిపిఎస్ మాడ్యూల్ డేటా నుండి $ జిపిజిజిఎ స్ట్రింగ్ను సేకరించడం ద్వారా కోఆర్డినేట్లను చదువుతుంది (పైన వివరించిన జిపిఎస్ వర్కింగ్) మరియు ప్రమాద స్థలం యొక్క స్థాన కోఆర్డినేట్లతో పోలీసులకు లేదా అంబులెన్స్ లేదా కుటుంబ సభ్యులకు ముందే నిర్వచించిన నంబర్కు ఎస్ఎంఎస్ పంపండి. సందేశంలో ప్రమాద స్థానానికి గూగుల్ మ్యాప్ లింక్ కూడా ఉంది, తద్వారా ఆ స్థానాన్ని సులభంగా ట్రాక్ చేయవచ్చు. మేము సందేశాన్ని అందుకున్నప్పుడు, మేము లింక్ను మాత్రమే క్లిక్ చేయాలి మరియు మేము గూగుల్ మ్యాప్కు మళ్ళిస్తాము మరియు తరువాత వాహనం యొక్క ఖచ్చితమైన స్థానాన్ని చూడవచ్చు. వాహనం యొక్క వేగం, నాట్లలో(1.852 KPH), SMS లో కూడా పంపబడుతుంది మరియు LCD ప్యానెల్లో ప్రదర్శించబడుతుంది. ప్రాజెక్ట్ క్రింద పూర్తి డెమో వీడియోను తనిఖీ చేయండి.
ఇక్కడ ఈ ప్రాజెక్ట్లో, కోడ్లో నిమిషం మరియు గరిష్ట విలువను ఉంచడం ద్వారా యాక్సిలెరోమీటర్ యొక్క సున్నితత్వాన్ని సెట్ చేయవచ్చు.
ఇక్కడ డెమోలో ఇచ్చిన విలువలను ఉపయోగించారు:
# minVal -50 ను నిర్వచించండి # MaxVal 50 ని నిర్వచించండి
కానీ మంచి ఫలితాల కోసం మీరు 50 స్థానంలో 200 ను ఉపయోగించవచ్చు లేదా మీ అవసరానికి అనుగుణంగా సెట్ చేయవచ్చు.
ప్రోగ్రామింగ్ వివరణ:
కోడ్ ప్రోగ్రామ్లో పూర్తి ప్రోగ్రామ్ క్రింద ఇవ్వబడింది; ఇక్కడ మేము దాని వివిధ విధులను క్లుప్తంగా వివరిస్తున్నాము.
మొదట మేము అవసరమైన అన్ని లైబ్రరీలను లేదా హెడర్ ఫైళ్ళను చేర్చుకున్నాము మరియు లెక్కల కొరకు మరియు డేటాను తాత్కాలికంగా నిల్వ చేయడానికి వివిధ వేరియబుల్స్ ప్రకటించాము.
దీని తరువాత , GSM మాడ్యూల్ను ప్రారంభించడానికి మరియు AT ఆదేశాలను ఉపయోగించి దాని ప్రతిస్పందనను తనిఖీ చేయడానికి మేము ఫంక్షన్ శూన్యమైన initModule (స్ట్రింగ్ cmd, char * res, int t) ను సృష్టించాము.
void initModule (స్ట్రింగ్ cmd, char * res, int t) {అయితే (1) {Serial.println (cmd); సీరియల్ 1.ప్రింట్ల్న్ (సెం.మీ); ఆలస్యం (100); అయితే (Serial1.available ()> 0) {if (Serial1.find (res)) {Serial.println (res); ఆలస్యం (టి); తిరిగి; } else {Serial.println ("లోపం"); }} ఆలస్యం (టి); }}
దీని తరువాత, శూన్య సెటప్ () ఫంక్షన్లో, మేము హార్డ్వేర్ మరియు సాఫ్ట్వేర్ సీరియల్ కమ్యూనికేషన్, ఎల్సిడి, జిపిఎస్, జిఎస్ఎమ్ మాడ్యూల్ మరియు యాక్సిలెరోమీటర్ను ప్రారంభించాము.
శూన్య సెటప్ () {సీరియల్ 1.బెగిన్ (9600); సీరియల్.బెగిన్ (9600); lcd.begin (16,2); lcd.print ("యాక్సిడెంట్ అలర్ట్"); lcd.setCursor (0,1); lcd.print ("సిస్టమ్"); ఆలస్యం (2000); lcd.clear ();…………………
సెటప్ లూప్లో యాక్సిలెరోమీటర్ క్రమాంకనం ప్రక్రియ కూడా జరుగుతుంది. దీనిలో, మేము కొన్ని నమూనాలను తీసుకున్నాము మరియు తరువాత x- అక్షం, y- అక్షం మరియు z- అక్షం కోసం సగటు విలువలను కనుగొన్నాము. మరియు వాటిని వేరియబుల్ లో నిల్వ చేయండి. వాహనం వంపు (ప్రమాదం) వచ్చినప్పుడు యాక్సిలెరోమీటర్ అక్షంలో మార్పులను చదవడానికి మేము ఈ నమూనా విలువలను ఉపయోగించాము.
lcd.print ("కాలిబ్రేటింగ్"); lcd.setCursor (0,1); lcd.print ("యాక్సిలెరోమీటర్"); (int i = 0; i
దీని తరువాత, శూన్య లూప్ () ఫంక్షన్లో, మేము యాక్సిలెరోమీటర్ అక్షం విలువలను చదివాము మరియు క్రమాంకనంలో తీసుకున్న నమూనాల సహాయంతో మార్పులను సేకరించేందుకు ఒక గణన చేసాము. ఇప్పుడు ఏవైనా మార్పులు ఎక్కువ లేదా తక్కువ ఉంటే నిర్వచించిన స్థాయి అయితే ఆర్డునో ముందే నిర్వచించిన సంఖ్యకు సందేశాన్ని పంపుతుంది.
void loop () {int value1 = అనలాగ్ రీడ్ (x); పూర్ణాంక విలువ 2 = అనలాగ్ రీడ్ (y); int విలువ 3 = అనలాగ్ రీడ్ (z); int xValue = xsample-value1; int yValue = ysample-value2; int zValue = zsample-value3; సీరియల్.ప్రింట్ ("x ="); సీరియల్.ప్రింట్ల్న్ (xValue); సీరియల్.ప్రింట్ ("y ="); సీరియల్.ప్రింట్ల్న్ (yValue); సీరియల్.ప్రింట్ ("z ="); సీరియల్.ప్రింట్ల్న్ (zValue);…………………
ఇక్కడ మేము కూడా వంటి వివిధ puposes కోసం కొన్ని ఇతర ఫంక్షన్ సృష్టించారు () గర్జన gpsEvent GPS అక్షాంశాలు, పొందడానికి గర్జన coordinate2dec () GPS స్ట్రింగ్ నుండి అక్షాంశాలు సంగ్రహించి మరియు దశాంశ విలువలు, వాటిని మార్చేందుకు గర్జన show_coordinate () సీరియల్ మానిటర్ పైగా విలువలు ప్రదర్శించడానికి మరియు LCD, మరియు చివరకు ముందే నిర్వచించిన నంబర్కు హెచ్చరిక SMS పంపడం కోసం శూన్య పంపు () .
పూర్తి కోడ్ మరియు డెమో వీడియో క్రింద ఇవ్వబడ్డాయి, మీరు కోడ్లోని అన్ని విధులను తనిఖీ చేయవచ్చు.