- పదార్థాలు అవసరం
- సర్క్యూట్ రేఖాచిత్రం
- HC05 గుణకాలు ప్రారంభ కాన్ఫిగరేషన్
- Arduino to Arduino బ్లూటూత్ కమ్యూనికేషన్ టెస్టింగ్
HC-05 బ్లూటూత్ గుణకాలు ఏదైనా ఆర్డునో ప్రాజెక్ట్ కోసం గో-టు బ్లూటూత్ మాడ్యూల్స్! Arduino IDE లో హుక్ అప్ మరియు కోడ్ చేయడం సులభం. చాలా ప్రాజెక్టులలో, మేము సాధారణంగా HC05 కి ఆర్డునోకు కనెక్ట్ చేస్తాము మరియు మొబైల్ ఫోన్ వంటి మరొక స్మార్ట్ పరికరంతో వైర్లెస్గా కమ్యూనికేట్ చేయడానికి దాన్ని ఉపయోగిస్తాము. ఇది చాలా సులభం మరియు బ్లూటూత్ కంట్రోల్డ్ రోబోట్, బ్లూటూత్ వాయిస్ కంట్రోల్, బ్లూటూత్ హోమ్ ఆటోమేషన్ వంటి అనేక ఆసక్తికరమైన ప్రాజెక్టులను మేము నిర్మించాము. అయితే, మీరు ఎప్పుడైనా రెండు హెచ్సి -05 లను కనెక్ట్ చేయాల్సిన అవసరం ఉందా? ఇది స్మార్ట్ఫోన్కు HC05 ని కనెక్ట్ చేయడం అంత సూటిగా లేదు, కొన్ని అదనపు దశలు ఉన్నాయి. ఈ ట్యుటోరియల్ ఈ ప్రక్రియ ద్వారా మీకు మార్గనిర్దేశం చేస్తుంది. కుడివైపుకి దూకుదాం!
పదార్థాలు అవసరం
- 2x Arduino (ఏదైనా మోడల్ చేస్తుంది; నేను Arduino Uno R3 మరియు Arduino Nano ని ఉపయోగిస్తున్నాను)
- 2x HC05 బ్లూటూత్ గుణకాలు
- బ్రెడ్బోర్డ్
- జంపర్ వైర్లు
- 2x 1kΩ నిరోధకం
- 2x 2.2kΩ రెసిస్టర్
సర్క్యూట్ రేఖాచిత్రం
ఇది ప్రాథమిక సర్క్యూట్ రేఖాచిత్రం. ఈ సర్క్యూట్లలో 2, మాస్టర్ కోసం ఒకటి మరియు బానిస కోసం వైర్ అప్ చేయండి. కనెక్షన్ల కోసం, మేము ఇక్కడ చేస్తున్నదంతా HC05 ను Arduino కి కనెక్ట్ చేయడమే. HC05 యొక్క రిసీవర్ (Rx) పిన్ 0V నుండి 3.3V పరిధిలో పనిచేస్తుంది మరియు Arduino 0V నుండి 5V పరిధిలో పనిచేస్తుంది. కాబట్టి, HC05 మాడ్యూల్ దెబ్బతినకుండా ఉండటానికి, ఆర్డునో యొక్క 5V ఉత్పత్తిని 3.3V కి తగ్గించడానికి వోల్టేజ్ డివైడర్ను రూపొందించడానికి మేము రెసిస్టర్లను (R1 మరియు R2) ఉపయోగిస్తాము.
నేను R1 కోసం 1kΩ మరియు R2 కోసం 2.2KΩ ఉపయోగిస్తున్నాను, అయితే R2 R1 (R2 ≈ 2R1) విలువ కంటే రెట్టింపు ఉన్నంత వరకు మీరు ఏదైనా నిరోధక విలువను ఉపయోగించవచ్చు. అదేవిధంగా, మాస్టర్ మరియు స్లేవ్ రెండింటికీ సర్క్యూట్ పునరావృతం చేయండి, ఆర్డునో మాస్టర్ బ్లూటూత్ సర్క్యూట్ మరియు ఆర్డునో స్లేవ్ బ్లూటూత్ సర్క్యూట్ క్రింద చూపించబడ్డాయి.
HC05 గుణకాలు ప్రారంభ కాన్ఫిగరేషన్
రెండు HC05 మాడ్యూళ్ళను కలిపి కనెక్ట్ చేయడానికి ఇది అదనపు దశ. మేము HC05 బ్లూటూత్ మాడ్యూల్ లోపల కొన్ని సెట్టింగులను మార్చాలి, దీన్ని చేయడానికి, మేము HC05 మాడ్యూల్ యొక్క AT కమాండ్ మోడ్లోకి వెళ్లి, ఆర్డునో IDE యొక్క సీరియల్ మానిటర్ ద్వారా ఆదేశాలను పంపాలి. ఇది చేయుటకు, సీరియల్ మానిటర్ ద్వారా ఆదేశాలను HC05 కు పంపటానికి మేము ఆర్డునో కోడ్ రాయాలి.
HC05 మాడ్యూల్ ఆకృతీకరించుటకు కోడ్ ఈ పేజీ దిగువన చూడవచ్చు, కోడ్ యొక్క వివరణగా అనుసరిస్తుంది
ఈ కోడ్కు సాఫ్ట్వేర్ సీరియల్ లైబ్రరీని జోడించండి.
# చేర్చండి < సాఫ్ట్వేర్సెరియల్.హెచ్>
ట్రాన్స్మిట్ (టిఎక్స్) మరియు రిసీవ్ (ఆర్ఎక్స్) పిన్ నంబర్లను నిర్వచించండి. నేను Tx కోసం పిన్ 2 మరియు Rx కోసం పిన్ 3 ఉపయోగిస్తున్నాను.
# tx 2 ని నిర్వచించండి # rx 3 ని నిర్వచించండి
బ్లూటూత్ కనెక్షన్కు కొంత పేరు ఇవ్వండి (ఇక్కడ నేను configBt ని ఉపయోగిస్తున్నాను), ఆపై సాఫ్ట్వేర్ సీరియల్ లైబ్రరీకి ఏ పిన్ Tx మరియు ఏ పిన్ Rx అని చెప్పండి. వాక్యనిర్మాణం బ్లూటూత్నేమ్ (Rx, Tx);
సాఫ్ట్వేర్ సీరియల్ configBt (rx, tx); // RX, TX
బ్లూటూత్ మాడ్యూల్ను కాన్ఫిగర్ చేయడానికి, ఆర్డునో 38400 బాడ్ రేటుతో దానికి ఆదేశాలను పంపాలి. అదేవిధంగా, మేము బ్లూటూత్ కనెక్షన్ యొక్క బాడ్ రేటును 38400 బాడ్కు సెట్ చేసాము. అవుట్పుట్ పిన్కు ట్రాన్స్మిట్ (టిఎక్స్) ను సెట్ చేయండి మరియు ఇన్పుట్ పిన్కు రిసీవ్ (ఆర్ఎక్స్)
శూన్య సెటప్ () { సీరియల్.బెగిన్ (38400); configBt.begin (38400); పిన్మోడ్ (tx, OUTPUT); పిన్మోడ్ (rx, INPUT); }
ఎప్పటికీ లూప్ లోపల, మనకు కోడ్ యొక్క ప్రధాన భాగం ఉంది. సీరియల్ మానిటర్లోని టెక్స్ట్బాక్స్లో టైప్ చేసిన వాటిని ఆర్డునో యొక్క టిఎక్స్ పిన్ ద్వారా హెచ్సి 05 కు పంపించడమే ఇక్కడ ఆలోచన. అప్పుడు సీరియల్ మానిటర్లో HC05 ద్వారా అవుట్పుట్ ఉన్నదాన్ని ప్రదర్శించండి.
void loop () {if (configBt.available ()) // HC05 ఏదో పంపుతుంటే … { సీరియల్.ప్రింట్ (configBt.readString ()); // సీరియల్ మానిటర్లో ముద్రించండి} if (సీరియల్. అందుబాటులో ఉంది ()) // సీరియల్ మానిటర్ ఏదో అవుట్పుట్ చేస్తుంటే… {configBt.write (సీరియల్.read ()); // Arduino యొక్క Tx పిన్కు వ్రాయండి}}
మొదట మాస్టర్ HC05 మాడ్యూల్కు కనెక్ట్ చేయబడిన Arduino లోకి ఈ కోడ్ను అప్లోడ్ చేయండి. కోడ్ను అప్లోడ్ చేసిన తర్వాత, ఆర్డునో పవర్ కేబుల్ను ప్లగ్ అవుట్ చేయండి. HC05 లోని బటన్ను నొక్కి ఉంచండి. HC05 పై బటన్ను నొక్కి ఉంచేటప్పుడు ఇప్పుడు ఆర్డునో పవర్ కేబుల్ను ప్లగ్ చేయండి. సరే, ఇప్పుడు మీరు HC05 లోని బటన్ను విడుదల చేయవచ్చు. ఈ విధంగా మీరు HC05 యొక్క AT మోడ్లోకి వెళతారు. మీరు ఈ హక్కు చేశారో లేదో తనిఖీ చేయడానికి , HC05 లోని ఎరుపు కాంతి ప్రతి సెకనులో మెరిసిపోతోందని నిర్ధారించుకోండి (నెమ్మదిగా మెరిసే!). సాధారణంగా HC05 ఏదైనా బ్లూటూత్ పరికరానికి కనెక్ట్ కావడానికి ముందు, ఇది చాలా ఎక్కువ పౌన frequency పున్యంలో రెడ్ లైట్ బ్లింక్ అవుతుంది (వేగంగా మెరిసేది!).
తరువాత, సీరియల్ మానిటర్ను తెరవండి (సీరియల్ మానిటర్ బటన్ Arduino IDE యొక్క కుడి ఎగువ భాగంలో ఉంది). సీరియల్ మానిటర్ విండో యొక్క కుడి దిగువ మూలలో, మీరు ఇప్పటికే అలా చేయకపోతే, మీరు లైన్ ఎండింగ్ సెట్టింగ్ను “NL మరియు CL రెండూ” మరియు బాడ్ రేట్ను 38400 కు సెట్ చేశారని నిర్ధారించుకోండి. ఇప్పుడు, సీరియల్ మానిటర్లో AT అని టైప్ చేయండి, అన్నీ సరిగ్గా జరిగితే, మీరు సీరియల్ మానిటర్ విండోలో ప్రదర్శించబడే HC05 నుండి “సరే” పొందుతారు. అభినందనలు! మీరు విజయవంతంగా HC05 మాడ్యూల్ యొక్క AT కమాండ్ మోడ్లోకి లాగిన్ అయ్యారు.
ఇప్పుడు, మాస్టర్ HC05 మాడ్యూల్ను కాన్ఫిగర్ చేయడానికి క్రింది పట్టికలో క్రింది ఆదేశాలను నమోదు చేయండి :
కమాండ్ (దీన్ని సీరియల్ మానిటర్లో ఎంటర్ చేసి ఎంటర్ నొక్కండి) |
ప్రతిస్పందన (HC05 నుండి ప్రత్యుత్తరం, సీరియల్ మానిటర్లో ప్రదర్శించబడుతుంది) |
ఫంక్షన్ (ఈ ఆదేశం ఏమి చేస్తుంది?) |
AT |
అలాగే |
పరీక్ష |
AT + CMODE? |
అలాగే |
CMODE లేదా కనెక్షన్ మోడ్ను తనిఖీ చేయండి ----------------------------- CMODE: 0 బానిస 1 మాస్టర్ |
AT + CMODE = 1 |
అలాగే |
మేము మాస్టర్ HC05 ను కాన్ఫిగర్ చేస్తున్నందున CMODE ని 1 కు సెట్ చేయండి |
AT + ADDR? |
+ ADDR: FCA8: 9A: 58D5 అలాగే * ఇది నా మాస్టర్ HC05 యొక్క చిరునామా. మీ చిరునామా భిన్నంగా ఉంటుంది! |
HC05 యొక్క చిరునామాను చూపుతుంది, తరువాత మనకు ఇది అవసరం కనుక దీన్ని గమనించండి ! |
తరువాత మీ కంప్యూటర్ను మీ ఇతర HC05, బానిసతో కనెక్ట్ చేయండి :
కమాండ్ (దీన్ని సీరియల్ మానిటర్లో ఎంటర్ చేసి ఎంటర్ నొక్కండి) |
ప్రతిస్పందన (HC05 నుండి ప్రత్యుత్తరం, సీరియల్ మానిటర్లో ప్రదర్శించబడుతుంది) |
ఫంక్షన్ (ఈ ఆదేశం ఏమి చేస్తుంది?) |
AT |
అలాగే |
పరీక్ష |
AT + CMODE? |
అలాగే |
CMODE లేదా కనెక్షన్ మోడ్ను తనిఖీ చేయండి ----------------------------- CMODE: 0 ఒక బానిస 1 మాస్టర్ |
AT + CMODE = 0 |
అలాగే |
మేము బానిస HC05 ను కాన్ఫిగర్ చేస్తున్నందున CMODE ని 0 కి సెట్ చేయండి |
AT + BIND = FCA8,9A, 58D5 * మాస్టర్ HC05 చిరునామాలోని “:” ని “,” తో భర్తీ చేయండి * ఇక్కడ నేను మునుపటి పట్టిక నుండి గమనించిన మాస్టర్ HC05 యొక్క చిరునామాను ఉపయోగిస్తున్నాను. మీరు మీ మాస్టర్ HC05 యొక్క చిరునామాను ఉపయోగించాలి! |
అలాగే |
ఈ బానిస HC05 స్వయంచాలకంగా బూట్ అప్లో కనెక్ట్ అయ్యే మాస్టర్ HC05 యొక్క చిరునామాను సెట్ చేస్తుంది |
AT + BIND? |
+ BIND: FCA8: 9A: 58D5 అలాగే * ఇది నా మాస్టర్ HC05 యొక్క చిరునామా. మీ చిరునామా భిన్నంగా ఉంటుంది! |
మీ బానిస యొక్క బైండింగ్ చిరునామాను తనిఖీ చేయండి. ఇది మీ మాస్టర్ HC05 యొక్క చిరునామాతో సరిపోలితే, మీరు వెళ్ళడం మంచిది! |
Arduino to Arduino బ్లూటూత్ కమ్యూనికేషన్ టెస్టింగ్
మొదట, మాస్టర్ మరియు స్లేవ్ HC05 మాడ్యూళ్ళకు శక్తినివ్వండి. పవర్ ఆన్ మరియు కొన్ని సెకన్లు గడిచిన తరువాత HC05 మాడ్యూళ్ళపై రెడ్ లైట్ చూడండి.
ఎరుపు కాంతి యొక్క మెరిసే వేగం |
అంటే ఏమిటి |
చాలా ఎక్కువ పౌన frequency పున్యంలో మెరిసేటట్లు (వేగంగా మెరిసే!) |
మంచిది కాదు! మీ HC05 గుణకాలు ఒకదానితో ఒకటి కనెక్ట్ కావడం లేదని అర్థం! ట్రబుల్షూట్ చేయడానికి సమయం! |
తక్కువ పౌన frequency పున్యంలో మెరిసే (నెమ్మదిగా మెరిసే!) |
బాగుంది! మీరు చేసారు! ఈ సెటప్ పనిచేస్తుందని సూపర్ గా ఉండటానికి మేము ఇంకా ఒక చెక్ చేయవలసి ఉంది! ముందుకు సాగండి! |
మీ ఎరుపు లైట్లు తక్కువ పౌన frequency పున్యంలో (నెమ్మదిగా మెరిసేవి!) మెరిసేటప్పుడు, మీ HC05 లు రెండూ ఒకదానితో ఒకటి అనుసంధానించబడి ఉన్నాయని మీరు అనుకోవచ్చు, కాని మాస్టర్ మరియు బానిసల మధ్య డేటాను ముందుకు వెనుకకు పంపించగలదా అని మేము పరీక్షించలేదు. అన్ని తరువాత, అది ఇక్కడ ప్రధాన ఉద్దేశ్యం.
దిగువ కోడ్ను ఆర్డునోస్లో ఒకదానికి అప్లోడ్ చేయండి, ఇది ట్రాన్స్మిటర్ (టిఎక్స్) ను పరీక్షించే కోడ్, మళ్ళీ ట్రాన్స్మిటర్ మరియు రిసీవర్ రెండింటికీ పూర్తి కోడ్ ఈ పేజీ దిగువన చూడవచ్చు.
మునుపటి కోడ్ను అనుసరించి, మేము ఈ కోడ్కు సాఫ్ట్వేర్ సీరియల్ లైబ్రరీని జోడించి, ట్రాన్స్మిట్ (టిఎక్స్) మరియు రిసీవ్ (ఆర్ఎక్స్) పిన్ నంబర్లను నిర్వచించాము. అప్పుడు మేము బ్లూటూత్ కనెక్షన్కు పేరు పెట్టి, Tx మరియు Rx పిన్ నంబర్లను లైబ్రరీకి పాస్ చేస్తాము.
# చేర్చండి < సాఫ్ట్వేర్సెరియల్.h> # tx 2 ని నిర్వచించండి # rx 3 సాఫ్ట్వేర్ సీరియల్ bt (rx, tx); // RX, TX
సెటప్ ఫంక్షన్లో, మేము ఆర్డునో సీరియల్ మానిటర్ మరియు బ్లూటూత్ కోసం బాడ్ రేట్ను మళ్లీ సెట్ చేస్తున్నాము. మునుపటి కోడ్తో పోలిస్తే ఇక్కడ తేడా మీకు కనిపిస్తుందా? మేము 9600 బాడ్ రేటును ఉపయోగిస్తున్నాము. ఇతర బ్లూటూత్ పరికరాలతో కమ్యూనికేట్ చేసేటప్పుడు ఇది HC05 బ్లూటూత్ మాడ్యూల్ యొక్క డిఫాల్ట్ ప్రీ-సెట్ కమ్యూనికేషన్ బాడ్ రేటు. కాబట్టి, 38400 బాడ్ HC05 ను AT ఆదేశాలతో కాన్ఫిగర్ చేయడానికి మరియు 9600 బాడ్ అనేది HC05 మాడ్యూల్ యొక్క డిఫాల్ట్ బాడ్ రేటు అని గమనించండి. చివరగా, మేము Tx పిన్ను అవుట్పుట్గా మరియు Rx పిన్ను ఇన్పుట్గా కాన్ఫిగర్ చేసే ముందు మాదిరిగానే.
శూన్య సెటప్ () { సీరియల్.బెగిన్ (9600); bt.begin (9600); పిన్మోడ్ (tx, OUTPUT); పిన్మోడ్ (rx, INPUT); }
ఎప్పటికీ లూప్ లోపల, మేము చేస్తున్నదంతా HC05 ద్వారా “123” యొక్క యాదృచ్ఛిక విలువను ప్రసారం చేయడమే.
void loop () {bt.write (123); }
ఈ కోడ్ను ఇతర ఆర్డునోకు అప్లోడ్ చేయండి, స్వీకరించడానికి (Rx) పరీక్షించడానికి ఇది కోడ్:
మునుపటి కోడ్ల మాదిరిగానే, మేము సాఫ్ట్వేర్ సీరియల్ లైబ్రరీని కాన్ఫిగర్ చేస్తాము.
# చేర్చండి < సాఫ్ట్వేర్సెరియల్.h> # tx 2 ని నిర్వచించండి # rx 3 సాఫ్ట్వేర్ సీరియల్ bt (rx, tx); // RX, TX
సెటప్ ఫంక్షన్లోని కోడ్ ట్రాన్స్మిట్ (టిఎక్స్) ను పరీక్షించే కోడ్కు సమానం.
శూన్య సెటప్ () { సీరియల్.బెగిన్ (9600); bt.begin (9600); పిన్మోడ్ (tx, OUTPUT); పిన్మోడ్ (rx, INPUT); }
ఎప్పటికీ లూప్లో, ప్రసారం చేసే ఆర్డునో నుండి మనం పంపే వాటిని స్వీకరించాలి. రిసీవ్ బఫర్ HC05 నుండి కొంత డేటాను అందుకున్నట్లయితే, అప్పుడు సీరియల్ మానిటర్లో అందుకున్నదాన్ని ప్రదర్శించండి.
void loop () {if (bt.available ()> 0) { సీరియల్.println (bt.read ()); }}
మీరు ప్రతి ఆర్డునోకు సంబంధిత కోడ్లను అప్లోడ్ చేసిన తర్వాత, స్వీకరించే ఆర్డునోకు సీరియల్ మానిటర్ను తెరవండి. మీరు బాడ్ రేటును 9600 గా మరియు సీరియల్ మానిటర్లో న్యూలైన్గా ముగిసే పంక్తిని ఎంచుకున్నారని నిర్ధారించుకోండి. ప్రతిదీ బాగా పనిచేస్తుంటే, మీరు 123 ని చూడాలి.
గమనిక: మీరు ప్రసారం మరియు స్వీకరించడం రెండింటినీ ఒకే ల్యాప్టాప్కు కనెక్ట్ చేసి ఉంటే, మీరు TOOLS> PORT క్రింద సరైన COM పోర్ట్ను ఎంచుకున్నారని నిర్ధారించుకోండి. మీరు స్వీకరించే Arduino యొక్క COM పోర్ట్కు కనెక్ట్ అయి ఉండాలి.
అన్నీ సరిగ్గా జరిగితే, కమ్యూనికేషన్ రెండు దిశలలోనూ జరుగుతుందని నిర్ధారించుకోవడానికి HC05 మాడ్యూళ్ళను మార్చుకోండి మరియు మేము పూర్తి చేసాము!