- పదార్థాలు అవసరం
- ఉపయోగించిన సాఫ్ట్వేర్
- GSM మాడ్యూల్
- AT ఆదేశాలను ఉపయోగించి GSM మాడ్యూల్తో కమ్యూనికేట్ చేయడం
- ATMega16 GSM మాడ్యూల్ ఇంటర్ఫేసింగ్ సర్క్యూట్ రేఖాచిత్రం
- కోడ్విజన్ ఉపయోగించి ATmega16 కోసం ప్రాజెక్ట్ను సృష్టిస్తోంది
- కోడ్ మరియు వివరణ
- ప్రాజెక్ట్ను నిర్మించండి
- Atmega16 కు కోడ్ను అప్లోడ్ చేయండి
మా ప్రాజెక్ట్కు రిమోట్ యాక్సెస్ అవసరమైనప్పుడు GSM గుణకాలు ఉపయోగించడం ఆసక్తికరంగా ఉంటుంది. ఈ మాడ్యూల్స్ మా సాధారణ మొబైల్ ఫోన్ చేయగల అన్ని చర్యలను చేయగలవు, కాల్ చేయడం / స్వీకరించడం, SMS పంపడం / స్వీకరించడం, GPRS ఉపయోగించి ఇంటర్నెట్కు కనెక్ట్ చేయడం మొదలైనవి. మీరు ఈ మాడ్యూల్కు సాధారణ మైక్రోఫోన్ మరియు స్పీకర్ను కూడా కనెక్ట్ చేయవచ్చు మరియు మీతో సంభాషించవచ్చు మొబైల్ కాల్స్. మైక్రోకంట్రోలర్తో ఇంటర్ఫేస్ చేయగలిగితే ఇది చాలా సృజనాత్మక ప్రాజెక్టులకు తలుపులు తెరుస్తుంది. అందువల్ల ఈ ట్యుటోరియల్లో మనం AVR మైక్రోకంట్రోలర్ ATmega16 తో GSM మాడ్యూల్ (SIM900A) ను ఎలా ఇంటర్ఫేస్ చేయవచ్చో నేర్చుకుంటాము మరియు GSM మాడ్యూల్ ఉపయోగించి సందేశాలను పంపడం మరియు స్వీకరించడం ద్వారా దీనిని ప్రదర్శిస్తాము.
పదార్థాలు అవసరం
- Atmega16
- GSM మాడ్యూల్ (SIM900 లేదా మరేదైనా)
- LCD డిస్ప్లే
- పుష్ బటన్లు
- 10 కె రెసిస్టర్లు, పొటెన్టోమీటర్
- వైర్లను కనెక్ట్ చేస్తోంది
- 12 వి అడాప్టర్
- USBasp ప్రోగ్రామర్
- 10 పిన్ ఎఫ్ఆర్సి కేబుల్
ఉపయోగించిన సాఫ్ట్వేర్
మేము ఉపయోగించే CodeVisionAVR మా కోడ్ మరియు వ్రాయడం కోసం సాఫ్ట్వేర్ SinaProg USBASP ప్రోగ్రామర్ ఉపయోగించి Atmega16 మా కోడ్ అప్లోడ్ సాఫ్ట్వేర్.
ఇచ్చిన లింక్ల నుండి మీరు ఈ సాఫ్ట్వేర్లను డౌన్లోడ్ చేసుకోవచ్చు:
CodeVisionAVR:
సినాప్రోగ్:
స్కీమాటిక్స్ మరియు కోడ్లలోకి వెళ్ళే ముందు, మేము GSM మాడ్యూల్ మరియు దాని పని గురించి తెలుసుకుంటాము.
GSM మాడ్యూల్
AT కమాండ్ మోడ్ను ఉపయోగించడం ద్వారా GSM మాడ్యూల్ను మైక్రోకంట్రోలర్ లేకుండా కూడా ఉపయోగించవచ్చు. GSM మాడ్యూల్ పైన చూపిన విధంగా USART అడాప్టర్తో వస్తుంది, ఇది MAX232 మాడ్యూల్ను ఉపయోగించి కంప్యూటర్కు నేరుగా ఇంటర్ఫేస్ చేయవచ్చు లేదా Tx మరియు Rx పిన్లను మైక్రోకంట్రోలర్కు కనెక్ట్ చేయడానికి ఉపయోగించవచ్చు. మైక్రోఫోన్ లేదా స్పీకర్ కనెక్ట్ చేయగల MIC +, MIC-, SP +, SP- మొదలైన ఇతర పిన్లను కూడా మీరు గమనించవచ్చు. మాడ్యూల్ సాధారణ డిసి బారెల్ జాక్ ద్వారా 12 వి అడాప్టర్ ద్వారా శక్తినివ్వవచ్చు.
మాడ్యూల్ యొక్క స్లాట్లో మీ సిమ్ కార్డ్ను చొప్పించి, దాన్ని ఆన్ చేయండి, ఎల్ఈడీ ఆన్లో ఉండడాన్ని మీరు గమనించాలి. ఇప్పుడు ఒక నిమిషం పాటు వేచి ఉండండి మరియు మీరు ప్రతి 3 సెకన్లకు ఒకసారి ఎరుపు (లేదా మరేదైనా రంగు) LED ఫ్లాషింగ్ చూడాలి. మీ మాడ్యూల్ మీ సిమ్ కార్డుతో కనెక్షన్ను ఏర్పాటు చేయగలదని దీని అర్థం. ఇప్పుడు మీరు మీ మాడ్యూల్ను ఫోన్ లేదా ఏదైనా మైక్రోకంట్రోలర్తో కనెక్ట్ చేయడం ద్వారా కొనసాగవచ్చు.
GSM మాడ్యూల్ ఉపయోగించి మీరు చాలా మంచి ప్రాజెక్టులను నిర్మించవచ్చు:
- GSM మరియు Arduino ఉపయోగించి వైర్లెస్ నోటీసు బోర్డు
- Arduino మరియు GSM మాడ్యూల్ ఉపయోగించి ఆటోమేటిక్ కాల్ ఆన్సరింగ్ మెషిన్
- Arduino ఉపయోగించి GSM బేస్డ్ హోమ్ ఆటోమేషన్
- పిఐఆర్ సెన్సార్ మరియు జిఎస్ఎమ్ బేస్డ్ సెక్యూరిటీ సిస్టమ్
GSM కి సంబంధించిన అన్ని ప్రాజెక్టులను కూడా ఇక్కడ తనిఖీ చేయండి.
AT ఆదేశాలను ఉపయోగించి GSM మాడ్యూల్తో కమ్యూనికేట్ చేయడం
మీరు ess హించినట్లుగా, GSM మాడ్యూల్ సీరియల్ కమ్యూనికేషన్ ద్వారా కమ్యూనికేట్ చేయగలదు మరియు ఒక భాషను మాత్రమే అర్థం చేసుకోగలదు మరియు అది “ AT ఆదేశాలు ”. మీరు GSM మాడ్యూల్కు చెప్పాలనుకుంటున్నారా లేదా అడగాలనుకున్నా అది AT ఆదేశాల ద్వారా మాత్రమే ఉండాలి. ఉదాహరణకు మీ మాడ్యూల్ సక్రియంగా ఉందో లేదో తెలుసుకోవాలనుకుంటే. మీరు “AT” వంటి ఆదేశాన్ని అడగాలి (పంపండి) మరియు మీ మాడ్యూల్ “సరే” అని ప్రత్యుత్తరం ఇస్తుంది.
ఈ AT ఆదేశాలు దాని డేటా షీట్లో బాగా వివరించబడ్డాయి మరియు ఇక్కడ దాని అధికారిక డేటాషీట్లో చూడవచ్చు. సరే! సరే! ఇది 271 పేజీల డేటాషీట్ మరియు మీరు వాటిని చదవడానికి రోజులు పట్టవచ్చు. కాబట్టి మీరు దీన్ని త్వరగా పొందడానికి మరియు అమలు చేయడానికి క్రింద కొన్ని ముఖ్యమైన AT ఆదేశాలను ఇచ్చాను.
AT |
రసీదు కోసం సరే అని ప్రత్యుత్తరాలు |
AT + CPIN? |
సిగ్నల్ నాణ్యతను తనిఖీ చేయండి |
AT + COPS? |
సేవా ప్రదాత పేరును కనుగొనండి |
ATD96XXXXXXXX; |
నిర్దిష్ట సంఖ్యకు కాల్ చేయండి, సెమీ కోలన్తో ముగుస్తుంది |
AT + CNUM |
సిమ్ కార్డ్ సంఖ్యను కనుగొనండి (కొన్ని సిమ్ కోసం పని చేయకపోవచ్చు) |
ATA |
ఇన్కమింగ్ కాల్కు సమాధానం ఇవ్వండి |
ATH |
ప్రస్తుత ఇన్కమింగ్ కాల్ను ఆపివేయండి |
AT + COLP |
ఇన్కమింగ్ కాల్ నంబర్ చూపించు |
AT + VTS = (సంఖ్య) |
DTMF నంబర్ పంపండి. (మొబైల్) కోసం మీరు మీ మొబైల్ కీప్యాడ్లో ఏదైనా సంఖ్యను ఉపయోగించవచ్చు |
AT + CMGR |
AT + CMGR = 1 సందేశాన్ని మొదటి స్థానంలో చదువుతుంది |
AT + CMGD = 1 |
మొదటి స్థానంలో సందేశాన్ని తొలగించండి |
AT + CMGDA = ”DEL ALL” |
సిమ్ నుండి అన్ని సందేశాలను తొలగించండి |
AT + CMGL = ”ALL” |
సిమ్ నుండి సందేశం పంపినవన్నీ చదవండి |
AT + CMGF = 1 |
SMS కాన్ఫిగరేషన్ను సెట్ చేయండి. “1” టెక్స్ట్ ఓన్లీ మోడ్ కోసం |
AT + CMGS = “+91 968837XXXX” > సర్క్యూట్ డైజెస్ట్ టెక్స్ట్
|
ఇక్కడ ఒక నిర్దిష్ట సంఖ్యకు 968837XXXX కు SMS పంపుతుంది. మీరు “>” చూసినప్పుడు వచనాన్ని నమోదు చేయడం ప్రారంభించండి. వచనాన్ని పంపడానికి Ctrl + Z నొక్కండి. |
AT + CGATT? |
సిమ్ కార్డులో ఇంటర్నెట్ కనెక్షన్ కోసం తనిఖీ చేయడానికి |
AT + CIPSHUT |
TCP కనెక్షన్ను మూసివేయడానికి, ఫారం ఇంటర్నెట్ను డిస్కనెక్ట్ చేయడం అని అర్థం |
AT + CSTT = “APN”, ”వినియోగదారు పేరు”, “పాస్” |
మీ APN మరియు Pass కీతో GPRS కి కనెక్ట్ అవ్వండి. నెట్వర్క్ ప్రొవైడర్ నుండి పొందవచ్చు. |
AT + CIICR |
సిమ్ కార్డులో డేటా ప్యాక్ ఉందో లేదో తనిఖీ చేయండి |
AT + CIFSR |
సిమ్ నెట్వర్క్ యొక్క IP పొందండి |
AT + CIPSTART = “TCP”, ”SERVER IP”, ”PORT” |
TCP IP కనెక్షన్ను సెట్ చేయడానికి ఉపయోగిస్తారు |
AT + CIPSEND |
సర్వర్కు డేటాను పంపడానికి ఈ ఆదేశం ఉపయోగించబడుతుంది |
ఇక్కడ మేము సందేశాలను పంపడానికి AT + CMGF మరియు AT + CMGS ఆదేశాన్ని ఉపయోగిస్తాము.
మీరు ఆర్డునోతో GSM మాడ్యూల్ ఉపయోగించినట్లయితే, సందేశాలను స్వీకరించేటప్పుడు మీరు + CMT: కమాండ్ను మొబైల్ నంబర్ మరియు టెక్స్ట్ సందేశాన్ని సీరియల్ మానిటర్లో చూడవచ్చు. చిత్రంలో చూపిన విధంగా వచన సందేశం రెండవ పంక్తిలో వస్తుంది.
సందేశం అందుబాటులో ఉందో లేదో తనిఖీ చేయడానికి మేము ఈ + CMT: ఆదేశాన్ని స్కాన్ చేస్తాము.
ATMega16 GSM మాడ్యూల్ ఇంటర్ఫేసింగ్ సర్క్యూట్ రేఖాచిత్రం
కనెక్షన్లు క్రింది విధంగా ఉంటాయి
- GSM మాడ్యూల్ యొక్క Tx మరియు Rx వరుసగా Atmega16 యొక్క Rx (Pin14) మరియు Tx (Pin15).
- పిడి 5 (పిన్ 19) మరియు పిడి 6 (పిన్ 20) కు బటన్లను నొక్కండి.
- LCD కనెక్షన్లు:
- RS - PA 0
- R / W - PA1
- EN - PA2
- డి 4 - పిఏ 4
- D5 - PA5
- డి 6 - పిఏ 6
- డి 7 - పిఏ 7
కోడ్విజన్ ఉపయోగించి ATmega16 కోసం ప్రాజెక్ట్ను సృష్టిస్తోంది
CodeVisionAVR మరియు SinaProg సాఫ్ట్వేర్లను ఇన్స్టాల్ చేసిన తరువాత , ప్రాజెక్ట్ మరియు రైటింగ్ కోడ్ను సృష్టించడానికి క్రింది దశలను అనుసరించండి:
ఇప్పటికే అప్లోడ్ చేయబడింది
దశ 1. ఓపెన్ కోడ్విజన్ ఫైల్ -> న్యూ -> ప్రాజెక్ట్ పై క్లిక్ చేయండి. నిర్ధారణ డైలాగ్ బాక్స్ కనిపిస్తుంది. అవునుపై క్లిక్ చేయండి
దశ 2. కోడ్విజార్డ్ తెరవబడుతుంది. మొదటి ఎంపికపై AT90 పై క్లిక్ చేసి, సరి క్లిక్ చేయండి.
దశ 3: - మీ మైక్రోకంట్రోలర్ చిప్ను ఎంచుకోండి, ఇక్కడ మేము చూపిన విధంగా Atmega16L ను తీసుకుంటాము.
దశ 4: - USART పై క్లిక్ చేయండి. దానిపై క్లిక్ చేయడం ద్వారా రిసీవర్ మరియు ట్రాన్స్మిటర్ ఎంచుకోండి. క్రింద చూపిన విధంగా:
దశ 5: - ఆల్ఫాన్యూమరిక్ ఎల్సిడిపై క్లిక్ చేసి, ఆల్ఫాన్యూమరిక్ ఎల్సిడి మద్దతును ప్రారంభించు ఎంచుకోండి.
దశ 6: - ప్రోగ్రామ్ -> జనరేట్, సేవ్ మరియు ఎగ్జిట్ పై క్లిక్ చేయండి. ఇప్పుడు, మా పనిలో సగానికి పైగా పూర్తయ్యాయి
దశ 7: - డెస్క్టాప్లో క్రొత్త ఫోల్డర్ను తయారు చేయండి, తద్వారా మా ఫైల్లు ఫోల్డర్లో ఉంటాయి, లేకపోతే అది మొత్తం డెస్క్టాప్ విండోలో చెల్లాచెదురుగా ఉంటుంది. మీకు కావలసిన విధంగా మీ ఫోల్డర్కు పేరు పెట్టండి మరియు ప్రోగ్రామ్ ఫైల్లను సేవ్ చేయడానికి అదే పేరును ఉపయోగించమని నేను సూచిస్తున్నాను.
ఫైళ్ళను సేవ్ చేయడానికి మేము మూడు డైలాగ్ బాక్స్లను ఒకదాని తరువాత ఒకటి కలిగి ఉంటాము.
మీరు మొదటిదాన్ని సేవ్ చేసిన తర్వాత కనిపించే ఇతర రెండు డైలాగ్ బాక్స్లతో కూడా అదే చేయండి.
ఇప్పుడు, మీ కార్యస్థలం ఇలా ఉంది.
మా పని చాలావరకు విజార్డ్ సహాయంతో పూర్తయింది. ఇప్పుడు, మేము GSM కోసం మాత్రమే కోడ్ రాయాలి.
కోడ్ మరియు వివరణ
ప్రాజెక్ట్ను సృష్టించిన తర్వాత అన్ని హెడర్ ఫైల్స్ స్వయంచాలకంగా జతచేయబడతాయి, మీరు delay.h హెడర్ ఫైల్ను చేర్చాలి మరియు అన్ని వేరియబుల్స్ ను డిక్లేర్ చేయాలి. ఈ ట్యుటోరియల్ చివరిలో పూర్తి కోడ్ ఇవ్వబడింది.
# చేర్చండి
UDR రిజిస్టర్ నుండి డేటాను స్వీకరించడానికి ఒక ఫంక్షన్ చేయండి. ఈ ఫంక్షన్ అందుకున్న డేటాను తిరిగి ఇస్తుంది.
సంతకం చేయని చార్ అందుకుంది_ విలువ (శూన్యమైనది) { అయితే (! (UCSRA & (1 <
కమ్ అయితే దీనిలో లూప్ మేము రెండు సృష్టించడానికి ఉంటే ప్రకటనలు, అందుకోవటానికి సందేశం మరియు ఇతర పంపడం కోసం ఒక. పంపు బటన్ ATmega యొక్క PIND6 తో కనెక్ట్ చేయబడింది మరియు PIND5 తో సందేశ బటన్ను స్వీకరించండి.
స్టేట్మెంట్ ఎగ్జిక్యూట్ చేస్తే మొదట PIND6 (పంపు బటన్) నొక్కినప్పుడు మరియు సందేశం పంపే అన్ని ఆదేశాలు ఒక్కొక్కటిగా అమలు అవుతాయి.
(1) { // lcd_clear (); lcd_putsf ("పంపండి-> bttn 1"); lcd_gotoxy (0,1); lcd_putsf ("స్వీకరించండి-> బట్న్ 2"); if (PIND.6 == 1) { lcd_clear (); lcd_gotoxy (0,0); lcd_putsf ("Msg పంపుతోంది…"); (z = 0; cmd_1! = ''; z ++) { UDR = cmd_1; delay_ms (100); } UDR = ('\ r'); delay_ms (500); (z = 0; cmd_2! = ''; z ++) { UDR = cmd_2; delay_ms (100); } …..
రిసీవ్ మెసేజ్ బటన్ నొక్కితే, (బి! = '+') లూప్ CMT కమాండ్ ఉందా లేదా అని తనిఖీ చేస్తుంది. ఉన్నట్లయితే, సెకండ్ అయితే లూప్ ఎగ్జిక్యూట్ అవుతుంది మరియు కమాండ్ యొక్క రెండవ పంక్తికి వెళ్లి సందేశాన్ని ఎల్సిడిలో ఒక్కొక్కటిగా ప్రింట్ చేస్తుంది.
(PIND.5 == 1) { lcd_clear (); lcd_gotoxy (0,0); lcd_putsf ("Msg ను స్వీకరిస్తోంది…"); b = అందుకున్న_ విలువ (); అయితే (బి! = '+') { బి = అందుకున్న_ విలువ (); } b = అందుకున్న_ విలువ (); if (b == 'C') { b = received_value (); … ..
ఈ లూప్ ప్రోగ్రామ్ను రెండవ వరుస కమాండ్కు తీసుకువెళుతుంది మరియు సందేశాన్ని శ్రేణిలో నిల్వ చేస్తుంది.
అయితే (బి! = 0x0a) { b = అందుకున్న_ విలువ (); } for (b = 0; b <3; b ++) { c = received_value (); msg = సి; } .. ..
ఈ కోసం లూప్ LCD సందేశాన్ని ప్రదర్శించడానికి ఉంది.
(z = 0; z <3; z ++) { a = msg; lcd_putchar (a); // ప్రింట్ ఇన్ ఎల్సిడి ఆలస్యం_ఎంఎస్ (10); }
డెమో వీడియోతో పూర్తి కోడ్ క్రింద ఇవ్వబడింది, ఇప్పుడు మేము మా ప్రాజెక్ట్ను నిర్మించాలి.
ప్రాజెక్ట్ను నిర్మించండి
చూపిన విధంగా బిల్డ్ ప్రాజెక్ట్ ఐకాన్ పై క్లిక్ చేయండి.
ప్రాజెక్ట్ను నిర్మించిన తరువాత , డీబగ్-> Exe ఫోల్డర్లో ఒక HEX ఫైల్ ఉత్పత్తి అవుతుంది, ఇది మీ ప్రాజెక్ట్ను సేవ్ చేయడానికి మీరు గతంలో చేసిన ఫోల్డర్లో చూడవచ్చు. సినాప్రోగ్ సాఫ్ట్వేర్ను ఉపయోగించి Atmega16 లో అప్లోడ్ చేయడానికి మేము ఈ HEX ఫైల్ను ఉపయోగిస్తాము.
Atmega16 కు కోడ్ను అప్లోడ్ చేయండి
ప్రోగ్రామ్ Atmega16 కు ఇచ్చిన రేఖాచిత్రం ప్రకారం మీ సర్క్యూట్లను కనెక్ట్ చేయండి. FRC కేబుల్ యొక్క ఒక వైపు USBASP ప్రోగ్రామర్కు హుక్అప్ చేయండి మరియు మరొక వైపు క్రింద వివరించిన విధంగా మైక్రోకంట్రోలర్ యొక్క SPI పిన్లకు కనెక్ట్ అవుతుంది:
- FRC మహిళా కనెక్టర్ యొక్క పిన్ 1 -> పిన్ 6, Atmega16 యొక్క MOSI
- పిన్ 2 atmega16 యొక్క Vcc కి కనెక్ట్ చేయబడింది, అంటే పిన్ 10
- పిన్ 5 atmega16 యొక్క రీసెట్కు కనెక్ట్ చేయబడింది, అంటే పిన్ 9
- పిన్ 7 atmega16 యొక్క SCK కి కనెక్ట్ చేయబడింది, అంటే పిన్ 8
- పిన్ 9 atmega16 యొక్క MISO కి కనెక్ట్ చేయబడింది, అంటే పిన్ 7
- పిన్ 8 atmega16 యొక్క GND కి కనెక్ట్ చేయబడింది, అంటే పిన్ 11
మేము పైన ఉత్పత్తి చేసిన హెక్స్ ఫైల్ను సినాప్రోగ్ ఉపయోగించి అప్లోడ్ చేస్తాము, కాబట్టి దాన్ని తెరిచి, పరికర డ్రాప్ డౌన్ మెను నుండి Atmega16 ని ఎంచుకోండి. చూపిన విధంగా డీబగ్-> Exe ఫోల్డర్ నుండి HEX ఫైల్ను ఎంచుకోండి.
ఇప్పుడు, ప్రోగ్రామ్పై క్లిక్ చేయండి మరియు మీ కోడ్ ATmega16 మైక్రోకంట్రోలర్లో బర్న్ అవుతుంది.
మీరు పూర్తి చేసారు మరియు మీ మైక్రోకంట్రోలర్ ప్రోగ్రామ్ చేయబడింది. GSM మరియు ATmega16 మైక్రోకంట్రోలర్ రూపంలో సందేశాలను పంపడానికి మరియు స్వీకరించడానికి బటన్లను నొక్కండి.
పూర్తి కోడ్ మరియు ప్రదర్శన వీడియో క్రింద ఇవ్వబడింది.