- Mga Materyal na Kinakailangan
- Diagram ng Circuit
- Paunang Pag-configure ng mga module ng HC05
- Arduino sa Arduino Bluetooth Pagsubok sa Komunikasyon
Ang HC-05 Bluetooth Modules ay ang go-to Bluetooth module para sa anumang proyekto ng Arduino! Madaling mag-hook up at mag-code sa Arduino IDE. Sa karamihan ng mga proyekto, karaniwang kumokonekta kami sa HC05 sa isang Arduino at ginagamit ito upang wireless na makipag-usap sa isa pang matalinong aparato tulad ng isang mobile phone. Ito ay medyo simple at nakabuo kami ng maraming mga kagiliw-giliw na proyekto kasama nito tulad ng Bluetooth Controlled Robot, Bluetooth Voice Control, Bluetooth Home Automation, atbp. Gayunpaman, kailangan mo bang ikonekta ang dalawang HC-05? Hindi ito prangka na pagkonekta ng isang HC05 sa isang smartphone, mayroong ilang mga karagdagang hakbang na kasangkot. Gagabayan ka ng tutorial na ito sa prosesong ito. Tumalon kaagad!
Mga Materyal na Kinakailangan
- 2x Arduino (Anumang modelo ang gagawin; Gumagamit ako ng isang Arduino Uno R3 at isang Arduino Nano)
- 2x HC05 Mga Module ng Bluetooth
- Breadboard
- Jumper Wires
- 2x 1kΩ risistor
- 2x 2.2kΩ risistor
Diagram ng Circuit
Ito ang pangunahing diagram ng circuit. Wire up ang 2 sa mga circuit na ito, isa para sa master at isa para sa alipin. Para sa mga koneksyon, ang ginagawa lang namin dito ay ang pagkonekta sa HC05 sa Arduino. Ang Receiver (Rx) pin ng HC05 ay nagpapatakbo sa 0V hanggang 3.3V range at ang Arduino ay nagpapatakbo sa 0V hanggang 5V range. Kaya, gagamitin namin ang mga resistors (R1 at R2) upang lumikha ng isang divider ng boltahe upang mabawasan ang 5V na output ng Arduino sa 3.3V, upang hindi makapinsala sa module ng HC05.
Gumagamit ako ng 1kΩ para sa R1 at 2.2KΩ para sa R2 ngunit maaari mong gamitin ang anumang halaga ng risistor basta ang R2 ay humigit-kumulang na doble sa halaga ng R1 (R2 ≈ 2R1). Katulad nito, ulitin ang circuit para sa parehong master at alipin, ang Arduino Master Bluetooth Circuit at Arduino Slave Bluetooth Circuit ay ipinapakita sa ibaba.
Paunang Pag-configure ng mga module ng HC05
Ito ang karagdagang kinakailangang hakbang upang ikonekta ang dalawang mga HC05 module nang magkasama. Kailangan naming baguhin ang ilang mga setting sa loob ng HC05 Bluetooth Module, upang magawa ito, kailangan nating pumunta sa AT Command Mode ng module na HC05 at magpadala ng mga utos dito sa pamamagitan ng serial monitor ng Arduino IDE. Upang magawa ito, kailangan naming magsulat ng isang Arduino code upang magpadala ng mga utos sa pamamagitan ng serial monitor sa HC05.
Ang code upang mai-configure ang module na HC05 ay matatagpuan sa ilalim ng pahinang ito, ang paliwanag ng code ay ang mga sumusunod
Idagdag ang library ng SoftwareSerial sa code na ito.
# isama ang < SoftwareSerial.h>
Tukuyin ang mga numero ng ipadala (Tx) at Tumanggap (Rx). Gumagamit ako ng pin 2 para sa Tx at pin 3 para sa Rx.
# tukuyin ang tx 2 # tukuyin ang rx 3
Bigyan ang koneksyon ng Bluetooth ng ilang pangalan (narito gumagamit ako ng configBt), pagkatapos ay sabihin sa library ng SoftwareSerial kung aling pin ang Tx at kung aling pin ang Rx. Ang syntax ay blu BluetoothName (Rx, Tx);
SoftwareSerial configBt (rx, tx); // RX, TX
Upang mai-configure ang module ng Bluetooth, kailangang magpadala ng mga utos dito ang Arduino sa rate ng baud na 38400 baud. Katulad nito, itinakda namin ang rate ng baud ng koneksyon sa Bluetooth pati na rin sa 38400 baud. Itakda ang Transmit (Tx) sa output pin at Tumanggap (Rx) sa input pin
void setup () { Serial.begin (38400); configBt.begin (38400); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Sa loob ng walang hanggang loop, mayroon kaming pangunahing tipak ng code. Ang ideya dito ay upang ipadala ang anumang nai-type sa textbox sa serial monitor sa HC05 sa pamamagitan ng Arxino's Tx pin. Pagkatapos ay ipakita ang anumang output ng HC05 sa serial monitor.
void loop () {if (configBt.available ()) // kung ang HC05 ay nagpapadala ng isang bagay… { Serial.print (configBt.readString ()); // print in serial monitor} if (Serial.available ()) // if serial monitor is outputting something… {configBt.write (Serial.read ()); // sumulat sa Tx pin ni Arduino}}
I-upload ang code na ito sa Arduino na konektado sa master HC05 module muna. Matapos i-upload ang code, i-plug ang Arduino power cable. Pindutin nang matagal ang pindutan sa HC05. Ngayon plug sa Arduino power cable habang hawak pa rin ang pindutan sa HC05. O sige, ngayon ay maaari mong palabasin ang pindutan sa HC05. Ito ay kung paano ka pumunta sa mode ng AT ng HC05. Upang suriin kung nagawa mo ito nang tama, tiyaking ang pulang ilaw sa HC05 ay kumikislap ng humigit-kumulang bawat isang segundo (mabagal na kumikislap!). Karaniwan bago ang HC05 ay konektado sa anumang aparatong Bluetooth, kumikislap ang pulang ilaw sa napakataas na dalas (mabilis na kumikislap!).
Susunod, buksan ang serial monitor (ang pindutan ng serial monitor ay nasa kanang tuktok ng Arduino IDE). Sa kanang sulok sa ibaba ng window ng Serial monitor, kung hindi mo pa nagagawa, tiyakin na itinakda mo ang setting ng pagtatapos ng linya sa "Parehong NL at CL" at baud rate sa 38400. Ngayon, i-type ang AT sa serial monitor, kung maayos ang lahat, makakakuha ka ng isang "OK" mula sa HC05 na ipinakita sa window ng serial monitor. Binabati kita! Matagumpay kang naka-log in sa mode na command na HC05 module.
Ngayon, ipasok ang mga sumusunod na utos sa talahanayan sa ibaba upang i - configure ang master HC05 module:
KOMANDA (ipasok ito sa serial monitor at pindutin ang enter) |
RESPONSE (tugon mula sa HC05, ipinakita sa serial monitor) |
Pag-andar (Ano ang ginagawa ng utos na ito?) |
AT |
OK lang |
Pagsusulit |
SA + CMODE? |
OK lang |
Suriin ang CMODE o Connection Mode ----------------------------- Ang CMODE: 0 ay ang alipin 1 ang master |
SA + CMODE = 1 |
OK lang |
Itakda ang CMODE sa 1 habang ini-configure namin ang master HC05 |
SA + ADDR? |
+ ADDR: FCA8: 9A: 58D5 OK lang * Ito ang address ng aking panginoon HC05. Magiging iba ang iyong address! |
Ibinabalik ang address ng HC05, tandaan ito dahil kakailanganin namin ito sa paglaon! |
Susunod na ikonekta ang iyong computer sa iyong iba pang HC05, ang alipin:
KOMANDA (ipasok ito sa serial monitor at pindutin ang enter) |
RESPONSE (tugon mula sa HC05, ipinakita sa serial monitor) |
Pag-andar (Ano ang ginagawa ng utos na ito?) |
AT |
OK lang |
Pagsusulit |
SA + CMODE? |
OK lang |
Suriin ang CMODE o Connection Mode ----------------------------- Ang CMODE: 0 ay isang alipin 1 ang master |
SA + CMODE = 0 |
OK lang |
Itakda ang CMODE sa 0 habang ini-configure namin ang alipin HC05 |
SA + BIND = FCA8,9A, 58D5 * Palitan ang ":" sa master ng HC05 address ng "," * Narito ginagamit ko ang address ng master HC05 na nabanggit ko mula sa nakaraang mesa. Dapat mong gamitin ang address ng iyong master HC05! |
OK lang |
Ang pagtatakda ng address ng master HC05 na ang alipin na ito HC05 ay awtomatikong kumonekta sa boot up |
SA + BIND? |
+ BIND: FCA8: 9A: 58D5 OK lang * Ito ang address ng aking panginoon HC05. Magiging iba ang iyong address! |
Suriin ang umiiral na address ng iyong alipin. Kung tumutugma ito sa address ng iyong master HC05, mabuting pumunta ka! |
Arduino sa Arduino Bluetooth Pagsubok sa Komunikasyon
Una, paganahin ang parehong mga module ng master at alipin na HC05. Matapos ang lakas at ilang segundo ay lumipas tingnan ang pulang ilaw sa mga module na HC05.
Blinking Bilis ng pulang ilaw |
Kung ano ang ibig sabihin |
Kumukurap sa isang napakataas na dalas (mabilis na kumukurap!) |
Hindi maganda! Nangangahulugan ito na ang iyong mga module na HC05 ay hindi kumokonekta sa bawat isa! Oras upang mag-troubleshoot! |
Kumukurap sa isang mababang dalas (mabagal na pagkurap!) |
Ang ganda! Nagawa mo na ito! Ngunit kailangan pa naming gumawa ng isa pang tseke upang matiyak lamang na gagana ang setup na ito! Magpatuloy ka! |
Kapag ang iyong mga pulang ilaw ay kumikislap sa isang mababang dalas (mabagal na pagkurap!), Makakasiguro ka na ang iyong parehong HC05 ay konektado sa bawat isa, ngunit hindi pa namin nasubukan kung ang data ay maaaring maipadala pabalik-balik sa pagitan ng master at alipin. Pagkatapos ng lahat, iyon ang pangunahing layunin dito.
I-upload ang code sa ibaba sa isa sa mga Arduinos, ito ang code upang subukan ang transmitter (Tx), muli ang kumpletong code para sa parehong transmitter at receiver ay matatagpuan sa ilalim ng pahinang ito.
Kasunod sa nakaraang code, idinagdag namin ang library ng SoftwareSerial sa code na ito at tinutukoy ang mga numero ng ipadala (Tx) at Makatanggap (Rx). Pagkatapos ay pinangalanan namin ang koneksyon ng Bluetooth at ipinapasa ang mga numero ng Tx at Rx na pin sa library.
# isama ang < SoftwareSerial.h> # tukuyin ang tx 2 # tukuyin ang rx 3 SoftwareSerial bt (rx, tx); // RX, TX
Sa pag-andar ng pag-setup, itinatakda namin ang rate ng baud para sa serial monitor ng Arduino at ang Bluetooth muli. Nakikita mo ba ang pagkakaiba dito kumpara sa nakaraang code? Gumagamit kami ng baud rate na 9600 baud. Ito ang default na paunang itinakdang rate ng baud ng komunikasyon ng module na HC05 Bluetooth kapag nakikipag-usap sa iba pang mga aparatong Bluetooth. Kaya, tandaan na ang 38400 baud ay para sa pag- configure ng HC05 sa mga utos ng AT at 9600 baud ang default na rate ng baud ng module na HC05. Panghuli, tulad din bago namin i-configure ang Tx pin bilang output at Rx pin bilang isang input.
walang bisa ang pag-set up () { Serial.begin (9600); bt.begin (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Sa loob ng walang hanggang loop, ang ginagawa lang namin ay nagpapadala ng isang random na halagang "123" sa pamamagitan ng HC05.
void loop () {bt.write (123); }
I-upload ang code na ito sa iba pang Arduino, ito ang code upang matanggap ang pagsubok (Rx):
Eksaktong kapareho ng mga nakaraang code, iko-configure namin ang library ng SoftwareSerial.
# isama ang < SoftwareSerial.h> # tukuyin ang tx 2 # tukuyin ang rx 3 SoftwareSerial bt (rx, tx); // RX, TX
Ang code sa pag-andar ng pag-setup ay eksaktong kapareho ng code upang subukan ang pagpapadala (Tx).
walang bisa ang pag-set up () { Serial.begin (9600); bt.begin (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Sa walang hanggang loop, kailangan lang naming matanggap kung ano ang ipinapadala namin mula sa nagpapadala na Arduino. Kung ang natanggap na buffer ay nakatanggap ng ilang data mula sa HC05, pagkatapos ay ipakita ang anumang natanggap sa serial monitor.
void loop () {if (bt.available ()> 0) { Serial.println (bt.read ()); }}
Matapos mong mai-upload ang kani-kanilang mga code sa bawat Arduino, buksan ang Serial monitor sa tumatanggap na Arduino. Tiyaking pinili mo ang baud rate bilang 9600 at ang linya na nagtatapos bilang Newline sa serial monitor. Kung ang lahat ay gumagana nang maayos, dapat kang makakita ng 123.
Tandaan: Kung nakakonekta mo ang parehong pagpapadala at pagtanggap ng mga Arduino sa parehong laptop, tiyaking napili mo ang tamang COM port sa ilalim ng TOOLS> PORT. Dapat kang konektado sa tumatanggap na COM port ng Arduino.
Kung maayos ang lahat, ipagpalit ang mga modyul na HC05 upang matiyak na ang komunikasyon ay maaaring mangyari sa parehong direksyon at TAYO NA!