మునుపటి ట్యుటోరియల్లో, కంప్యూటర్తో GPS మాడ్యూల్ను ఎలా ఇంటర్ఫేస్ చేయాలి మరియు GSM మరియు GPS ఉపయోగించి వాహనాన్ని ఎలా ట్రాక్ చేయాలి అనే దాని గురించి తెలుసుకున్నాము. మేము ఆర్డునో మరియు యాక్సిలెరోమీటర్ ఉపయోగించి వాహన ప్రమాద హెచ్చరిక వ్యవస్థను కూడా నిర్మించాము. ఇక్కడ మేము మళ్ళీ అదే ప్రాజెక్ట్ను నిర్మిస్తున్నాము కాని ఈసారి వాహన ప్రమాదాన్ని గుర్తించడానికి MSP430 లాంచ్ప్యాడ్ మరియు వైబ్రేషన్ సెన్సార్ ఉపయోగించబడతాయి. కాబట్టి ఈ ప్రాజెక్ట్ MSP430 లాంచ్ప్యాడ్తో వైబ్రేషన్ సెన్సార్ను ఇంటర్ఫేస్ చేయడం గురించి కూడా తెలియజేస్తుంది. మీరు ఇక్కడ మరిన్ని MSP430 ప్రాజెక్టులను కనుగొనవచ్చు.
ఇక్కడ వైబ్రేషన్ సెన్సార్ మాడ్యూల్ వాహనం యొక్క కంపనాన్ని గుర్తించి, MSP430 లాంచ్ప్యాడ్కు సిగ్నల్ పంపుతుంది. అప్పుడు MSP430 GPS మాడ్యూల్ నుండి డేటాను పొందుతుంది మరియు GSM మాడ్యూల్ ఉపయోగించి SMS ద్వారా వినియోగదారు మొబైల్ ఫోన్కు పంపండి. ఎల్ఈడీ యాక్సిడెంట్ అలర్ట్ సిగ్నల్గా కూడా మెరుస్తుంది, ఈ ఎల్ఈడీని కొంత అలారం ద్వారా మార్చవచ్చు. ప్రమాదం జరిగిన ప్రదేశం గూగుల్ మ్యాప్ లింక్ రూపంలో పంపబడుతుంది, ఇది GPS మాడ్యూల్ నుండి అక్షాంశం మరియు రేఖాంశం నుండి తీసుకోబడింది. చివరిలో డెమో వీడియో చూడండి.
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
ATD
AT + CMGF = 1
AT + CMGS = ”మొబైల్ నంబర్”
ఇప్పుడు మన సందేశాన్ని వ్రాయవచ్చు
>> సందేశం రాసిన తరువాత
Ctrl + Z సందేశ ఆదేశాన్ని పంపుతుంది (దశాంశంలో 26).
HEX లో ENTER = 0x0d
(GSM మాడ్యూల్ గురించి మరింత తెలుసుకోవడానికి, ఇక్కడ వివిధ మైక్రోకంట్రోలర్లతో మా వివిధ GSM ప్రాజెక్టులను తనిఖీ చేయండి)
వైబ్రేషన్ సెన్సార్ మాడ్యూల్
ఈ MSP430 యాక్సిడెంట్ అలర్ట్ సిస్టమ్ ప్రాజెక్ట్లో, వైబ్రేషన్స్ లేదా ఆకస్మిక మాడ్యులేషన్స్ను గుర్తించే వైబ్రేషన్ సెన్సార్ మాడ్యూల్ను మేము ఉపయోగించాము. వైబ్రేషన్ సెన్సార్ మాడ్యూల్ మాడ్యూల్ను బట్టి డిజిటల్ అవుట్పుట్ HIGH / LOW లాజిక్ని ఇస్తుంది. మా విషయంలో, మేము క్రియాశీల HIGH లాజిక్ వైబ్రేషన్ సెన్సార్ మాడ్యూల్ని ఉపయోగించాము. వైబ్రేషన్ సెన్సార్ వైబ్రేషన్ను గుర్తించినప్పుడల్లా ఇది మైక్రోకంట్రోలర్కు హై లాజిక్ని ఇస్తుంది.
సర్క్యూట్ వివరణ
ఈ వాహన ప్రమాద హెచ్చరిక వ్యవస్థ ప్రాజెక్ట్ యొక్క సర్క్యూట్ కనెక్షన్లు చాలా సులభం. ఇక్కడ GPS మాడ్యూల్ యొక్క Tx పిన్ నేరుగా MSP430 లాంచ్ప్యాడ్ (హార్డ్వేర్ సీరియల్) యొక్క డిజిటల్ పిన్ నంబర్ P1_1 కు అనుసంధానించబడి ఉంది మరియు GPS మాడ్యూల్ను శక్తివంతం చేయడానికి 5v ఉపయోగించబడుతుంది. ఇక్కడ సాఫ్ట్వేర్ సీరియల్ లైబ్రరీని ఉపయోగించడం ద్వారా, మేము పిన్ P_6 మరియు P1_7 లలో సీరియల్ కమ్యూనికేషన్ను అనుమతించాము మరియు వాటిని వరుసగా Rx మరియు Tx గా చేసి GSM మాడ్యూల్కు అనుసంధానించాము. GSM మాడ్యూల్కు శక్తినివ్వడానికి వోల్ట్ సరఫరా ఉపయోగించబడుతుంది. కంపనం సెన్సార్ P1_3 వద్ద అనుసంధానించబడి ఉంది. ప్రమాద గుర్తింపును సూచించడానికి ఒక LED కూడా ఉపయోగించబడుతుంది. మిగిలిన కనెక్షన్లు సర్క్యూట్ రేఖాచిత్రంలో చూపించబడ్డాయి.
ప్రోగ్రామింగ్ వివరణ
GPS భాగం మినహా ఈ ప్రాజెక్ట్ కోసం ప్రోగ్రామింగ్ సులభం. ప్రాజెక్ట్ చివరిలో పూర్తి కోడ్ ఇవ్వబడుతుంది. MSP430 లో కోడ్ను వ్రాయడానికి లేదా కంపైల్ చేయడానికి మేము ఎనర్జియా IDE ని ఉపయోగించాము, ఇది Arduino అనుకూలమైనది. Arduino IDE ఫంక్షన్ చాలావరకు ఈ ఎనర్జియా IDE లో నేరుగా ఉపయోగించవచ్చు.
కాబట్టి మొదట మనం అవసరమైన లైబ్రరీలను చేర్చాము మరియు పిన్ మరియు వేరియబుల్స్ డిక్లేర్డ్ చేసాము.
# చేర్చండి
ఇచ్చిన ఫంక్షన్ వైబ్రేషన్ సెన్సార్ సిగ్నల్ చదవడానికి ఉపయోగించబడుతుంది. ఈ ఫంక్షన్ చిన్న లేదా తప్పుడు కంపనాలను కూడా ఫిల్టర్ చేస్తుంది.
# define count_max 25 చార్ SensorRead (Int పిన్) // రీడ్ SW debounce తో { చార్ count_low = 0, count_high = 0; చేయండి { ఆలస్యం (1); if (DigitalRead (పిన్) == HIGH) { count_high ++; count_low = 0; } else { count_high = 0; count_low ++; } } ఉండగా (కౌంట్_లో <కౌంట్_మాక్స్ && కౌంట్_హై <కౌంట్_మాక్స్); (count_low> = count_max) తిరిగి తక్కువ ఉంటే; లేకపోతే అధికంగా తిరిగి; }
క్రింద ఉన్న ఫంక్షన్ వైబ్రేషన్ను కనుగొంటుంది మరియు GPS కోఆర్డినేట్ పొందడానికి gpsEvent () ఫంక్షన్ను పిలుస్తుంది మరియు చివరకు SMS పంపడానికి పంపండి () ఫంక్షన్కు కాల్ చేయండి.
void loop () { if (సెన్సార్ రీడ్ (వైబ్రేషన్ సెన్సార్) == HIGH) { DigitalWrite (led, HIGH); gpsEvent (); పంపండి (); డిజిటల్ రైట్ (దారితీసింది, తక్కువ); ఆలస్యం (2000); } }
GPS మాడ్యూల్ నుండి GPS తీగలను పొందటానికి, వాటి నుండి కోఆర్డినేట్లను సంగ్రహించి, వాటిని డిగ్రీ-దశాంశ ఆకృతిలో మార్చడానికి ఇచ్చిన ఫంక్షన్ బాధ్యత.
void gpsEvent () { char gpsString; చార్ టెస్ట్ = "RMC"; i = 0; అయితే (1) { ఉండగా (సీరియల్.అవబుల్ ()) // GPS నుండి చార్ సీరియల్ ఇన్కమింగ్ డేటా { చార్ inChar = (చార్) సీరియల్.రెడ్ (); gpsString = inChar; // GPS నుండి తాత్కాలిక స్ట్రింగ్ str i ++ వరకు ఇన్కమింగ్ డేటాను నిల్వ చేయండి ; if (i <4) { if (gpsString! = test) // కుడి స్ట్రింగ్ కోసం తనిఖీ చేయండి i = 0; }
పూర్ణాంక డిగ్రీ = 0; డిగ్రీ = gpsString-48; డిగ్రీ * = 10; డిగ్రీ + = gpsString-48; int minut_int = 0; minut_int = gpsString-48; minut_int * = 10; minut_int + = gpsString-48; int minut_dec = 0; minut_dec + = (gpsString-48) * 10000; minut_dec + = (gpsString-48) * 1000; minut_dec + = (gpsString-48) * 100; minut_dec + = (gpsString-48) * 10; minut_dec + = (gpsString-48); float minut = ((float) minut_int + ((float) minut_dec / 100000.0%)) / 60.0; అక్షాంశం = ((ఫ్లోట్) డిగ్రీ + మినిట్);
చివరకు, కోడ్ యొక్క ఈ భాగంలో చేర్చబడిన వినియోగదారు సంఖ్యకు SMS పంపడానికి పంపు () ఫంక్షన్ ఉపయోగించబడుతుంది.
void Send () { GSM.print ("AT + CMGS ="); GSM.print ('"'); GSM.print (" 961 **** 059 "); // మీ మొబైల్ నంబర్ను నమోదు చేయండి GSM.println ('"'); ఆలస్యం (500); // GSM.print ("అక్షాంశం:"); // GSM.println (అక్షాంశం); GSM.println ("యాక్సిడెంట్ హాప్డ్"); ఆలస్యం (500); // GSM.print ("రేఖాంశం:"); // GSM.println (లాజిట్యూడ్); GSM.println ("స్థానాన్ని చూడటానికి లింక్పై క్లిక్ చేయండి"); GSM.print ("http://maps.google.com/maps?&z=15&mrt=yp&t=k&q="); GSM.print (అక్షాంశం, 6); GSM.print ("+"); GSM.print (లాజిట్యూడ్, 6); జీఎస్ఎం.రైట్ (26); ఆలస్యం (4000); }
పూర్తి కోడ్ మరియు డెమో వీడియో క్రింద ఇవ్వబడ్డాయి, మీరు కోడ్లోని అన్ని విధులను తనిఖీ చేయవచ్చు.