- Nepieciešamie materiāli
- Ķēdes shēma
- Sākotnējā HC05 moduļu konfigurēšana
- Arduino līdz Arduino Bluetooth sakaru testēšana
HC-05 Bluetooth moduļi ir pārejas uz Bluetooth moduļi jebkuram Arduino projektam! Arduino IDE ir viegli piesaistīt un kodēt. Lielākajā daļā projektu mēs parasti izveidojam savienojumu ar HC05 ar Arduino un izmantojam to bezvadu sakariem ar citu viedierīci, piemēram, mobilo tālruni. Tas ir diezgan vienkārši, un mēs ar to esam izveidojuši daudz interesantu projektu, piemēram, ar Bluetooth vadāmu robotu, Bluetooth balss vadību, Bluetooth mājas automatizāciju utt. Tomēr vai jums kādreiz ir nepieciešams savienot divus HC-05 kopā? HC05 savienošana ar viedtālruni nav tik vienkārša, ir jāveic dažas papildu darbības. Šī apmācība palīdzēs jums veikt šo procesu. Lecam tieši iekšā!
Nepieciešamie materiāli
- 2x Arduino (derēs jebkurš modelis; es izmantoju Arduino Uno R3 un Arduino Nano)
- 2x HC05 Bluetooth moduļi
- Maizes dēlis
- Džemperu vadi
- 2x 1kΩ rezistors
- 2x 2.2kΩ rezistors
Ķēdes shēma
Šī ir pamata shēma. Savienojiet 2 no šīm ķēdēm, vienu - saimniekam un otru - vergam. Savienojumiem viss, ko mēs šeit darām, ir HC05 savienošana ar Arduino. HC05 uztvērēja tapa (Rx) darbojas 0–3,3 V diapazonā, bet Arduino 0–5 V diapazonā. Tātad, mēs izmantosim rezistorus (R1 un R2), lai izveidotu sprieguma dalītāju, lai samazinātu Arduino 5 V izeju līdz 3,3 V, lai nesabojātu HC05 moduli.
Es izmantoju 1kΩ R1 un 2.2KΩ R2, bet jūs varat izmantot jebkuru rezistora vērtību, kamēr R2 ir aptuveni divkārša R1 vērtība (R2 ≈ 2R1). Līdzīgi atkārtojiet ķēdi gan galvenajam, gan vergam. Arduino Master Bluetooth ķēde un Arduino Slave Bluetooth shēma ir parādīti zemāk.
Sākotnējā HC05 moduļu konfigurēšana
Šis ir papildu solis, kas nepieciešams divu HC05 moduļu savienošanai kopā. Mums ir jāmaina daži iestatījumi HC05 Bluetooth moduļa iekšpusē, lai to izdarītu, mums jāiet uz HC05 moduļa AT komandu režīmu un jānosūta tam komandas, izmantojot Arduino IDE sērijveida monitoru. Lai to izdarītu, mums jāuzraksta Arduino kods, lai komandas caur sērijas monitoru nosūtītu HC05.
Kods konfigurēt HC05 moduli var atrast pie šīs lapas apakšā, skaidrojumu kods ir šāds
Pievienojiet šim kodam SoftwareSerial bibliotēku.
#include < SoftwareSerial.h>
Definējiet pārraides (Tx) un saņemšanas (Rx) tapu numurus. Es izmantoju 2. tapu Tx un 3. kontaktu Rx.
#define tx 2 #define rx 3
Piešķiriet Bluetooth savienojumam kādu nosaukumu (šeit es izmantoju configBt), pēc tam pastāstiet SoftwareSerial bibliotēkai, kura tapa ir Tx un kura tapa ir Rx. Sintakse ir bluetoothName (Rx, Tx);
SoftwareSerial configBt (rx, tx); // RX, TX
Lai konfigurētu Bluetooth moduli, Arduino ir jānosūta tam komandas ar 38400 baudu pārraides ātrumu. Līdzīgi mēs iestatījām arī Bluetooth savienojuma pārraides ātrumu līdz 38400 baudu. Iestatiet raidīšanas (Tx) izejas tapai un saņemšanas (Rx) ievades tapai
void setup () { Seriālais. sākums (38400); configBt.begin (38400); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Mūžīgā cikla iekšpusē mums ir galvenā koda daļa. Ideja ir nosūtīt visu, kas ierakstīts sērijas monitora tekstlodziņā, uz HC05 caur Arduino Tx tapu. Tad sērijveida monitorā parādiet visu, ko izdod HC05.
void loop () {if (configBt.available ()) // ja HC05 kaut ko sūta… { Serial.print (configBt.readString ()); // drukāt sērijveida monitorā} if (Serial.available ()) // ja seriālais monitors kaut ko izdod… {configBt.write (Serial.read ()); // rakstīt uz Arduino Tx PIN}}
Vispirms augšupielādējiet šo kodu Arduino, kas savienots ar galveno HC05 moduli. Pēc koda augšupielādes pievienojiet strāvas kabeli Arduino. Nospiediet un turiet pogu uz HC05. Tagad pievienojiet Arduino barošanas kabeli, vienlaikus turot pogu uz HC05. Labi, tagad jūs varat atlaist pogu uz HC05. Tas ir veids, kā pāriet uz HC05 AT režīmu. Lai pārbaudītu, vai esat rīkojies pareizi, pārliecinieties, vai sarkanā gaisma uz HC05 mirgo apmēram ik pēc sekundes (lēni mirgo!). Parasti pirms HC05 pievienošanas jebkurai Bluetooth ierīcei sarkanā gaisma mirgo ļoti lielā frekvencē (ātri mirgo!).
Pēc tam atveriet sērijveida monitoru (sērijveida monitora poga atrodas Arduino IDE augšējā labajā stūrī). Seriālā monitora loga apakšējā labajā stūrī, ja vēl neesat to izdarījis, pārliecinieties, vai līnijas beigu iestatījums ir “Gan NL, gan CL”, un pārraides ātrums ir 38400. Tagad sērijveida monitorā ierakstiet AT, ja viss izdosies, jūs saņemsiet “OK” no seriālā monitora logā redzamā HC05. Apsveicam! Jūs esat veiksmīgi pieteicies HC05 moduļa AT komandu režīmā.
Tagad, lai konfigurētu galveno HC05 moduli, zemāk esošajā tabulā ievadiet šādas komandas :
COMMAND (ievadiet to sērijveida monitorā un nospiediet enter) |
ATBILDE (atbilde no HC05, parādīta sērijveida monitorā) |
Funkcija (Ko dara šī komanda?) |
AT |
labi |
Pārbaude |
AT + CMODE? |
labi |
Pārbaudiet CMODE vai savienojuma režīmu ----------------------------- CMODE: 0 ir vergs 1 ir meistars |
AT + CMODE = 1 |
labi |
Iestatiet CMODE uz 1, kad mēs konfigurējam galveno HC05 |
AT + ADDR? |
+ ADDR: FCA8: 9A: 58D5 labi * Šī ir mana meistara HC05 adrese. Jūsu adrese būs atšķirīga! |
Atgriež HC05 adresi, atzīmējiet to, jo mums tā būs nepieciešama vēlāk! |
Pēc tam pievienojiet datoru savam otrajam vergam HC05 :
COMMAND (ievadiet to sērijveida monitorā un nospiediet enter) |
ATBILDE (atbilde no HC05, parādīta sērijveida monitorā) |
Funkcija (Ko dara šī komanda?) |
AT |
labi |
Pārbaude |
AT + CMODE? |
labi |
Pārbaudiet CMODE vai savienojuma režīmu ----------------------------- CMODE: 0 ir vergs 1 ir meistars |
AT + CMODE = 0 |
labi |
Iestatiet CMODE uz 0, kad mēs konfigurējam vergu HC05 |
AT + BIND = FCA8,9A, 58D5 * Nomainiet “:” galvenajā HC05 adresē ar “,” * Šeit es izmantoju galvenā HC05 adresi, kuru atzīmēju no iepriekšējās tabulas. Jums jāizmanto sava meistara HC05 adrese! |
labi |
Uzstādot galvenā HC05 adresi, kurai šis vergs HC05 automātiski izveidos savienojumu, palaižot |
AT + BIND? |
+ BIND: FCA8: 9A: 58D5 labi * Šī ir mana meistara HC05 adrese. Jūsu adrese būs atšķirīga! |
Pārbaudiet sava verga saistošo adresi. Ja tā sakrīt ar jūsu kapteiņa HC05 adresi, varat doties! |
Arduino līdz Arduino Bluetooth sakaru testēšana
Pirmkārt, barojiet gan galveno, gan vergu moduļus HC05. Pēc ieslēgšanas un dažām sekundēm skatieties sarkano gaismu uz HC05 moduļiem.
Mirgo sarkanās gaismas ātrums |
Ko tas nozīmē |
Mirgo ļoti lielā frekvencē (ātri mirgo!) |
Nav labi! Tas nozīmē, ka jūsu HC05 moduļi nesavienojas viens ar otru! Laiks novērst problēmas! |
Mirgo zemā frekvencē (lēni mirgo!) |
Jauki! Jūs to izdarījāt! Bet mums joprojām ir jāveic vēl viena pārbaude, lai pārliecinātos, ka šī iestatīšana darbojas! Pārejiet tālāk! |
Kad sarkanās gaismas mirgo zemā frekvencē (lēni mirgo!), Jūs varat būt pārliecināti, ka abi jūsu HC05 ir savienoti viens ar otru, taču mēs neesam pārbaudījuši, vai datus var nosūtīt turp un atpakaļ starp galveno un vergu. Galu galā tas šeit ir galvenais mērķis.
Augšupielādējiet zemāk redzamo kodu vienā no Arduinos, tas ir kods, lai pārbaudītu raidītāju (Tx), un atkal pilnīgs raidītāja un uztvērēja kods ir atrodams šīs lapas apakšdaļā.
Pēc iepriekšējā koda mēs šim kodam pievienojam programmatūru SoftwareSerial un definējam pārraides (Tx) un saņemšanas (Rx) tapu numurus. Tad mēs nosaucam Bluetooth savienojumu un nododam Tx un Rx pin numurus bibliotēkai.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
Iestatīšanas funkcijā mēs atkal iestatām pārraides ātrumu Arduino sērijveida monitoram un Bluetooth. Vai šeit redzat atšķirību salīdzinājumā ar iepriekšējo kodu? Mēs izmantojam 9600 baudu pārraides ātrumu. Tas ir noklusējuma iepriekš iestatītais HC05 Bluetooth moduļa sakaru pārraides ātrums, sazinoties ar citām Bluetooth ierīcēm. Tātad, ņemiet vērā, ka 38400 baudu ir paredzēts HC05 konfigurēšanai ar AT komandām un 9600 baudu ir noklusējuma pārraides ātrums HC05 modulī. Visbeidzot, tāpat kā iepriekš, mēs konfigurējam Tx tapu kā izvadi un Rx tapu kā ieeju.
void setup () { Sērijas. sākums (9600); sākums (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Mūžīgā cikla iekšienē viss, ko mēs darām, ir nejaušas “123” vērtības pārsūtīšana caur HC05.
void loop () {bt.write (123); }
Augšupielādējiet šo kodu citā Arduino, tas ir kods, lai pārbaudītu saņemšanu (Rx):
Tieši tāpat kā iepriekšējie kodi, mēs konfigurējam SoftwareSerial bibliotēku.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
Iestatīšanas funkcijas kods ir tieši tāds pats kā kods, lai pārbaudītu pārraidi (Tx).
void setup () { Sērijas. sākums (9600); sākums (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Uz visiem laikiem mums vienkārši jāsaņem tas, ko mēs sūtām no raidītāja Arduino. Ja saņemšanas buferis ir saņēmis dažus datus no HC05, tad visu saņemto parādiet seriālajā monitorā.
void loop () {if (bt.available ()> 0) { Serial.println (bt.read ()); }}
Kad esat augšupielādējis attiecīgos kodus katrā Arduino, atveriet sērijas monitoru saņēmējam Arduino. Pārliecinieties, ka sērijveida monitorā izvēlaties datu pārraides ātrumu kā 9600 un līnijas galu kā Newline. Ja viss darbojas labi, jums vajadzētu redzēt 123.
Piezīme: Ja gan raidošo, gan saņemošo Arduinos esat pievienojis vienam un tam pašam klēpjdatoram, pārliecinieties, vai izvēlaties pareizo COM portu sadaļā TOOLS> PORT. Jums vajadzētu būt savienotam ar saņemošā Arduino COM portu.
Ja viss izdosies, nomainiet HC05 moduļus, lai pārliecinātos, ka komunikācija var notikt abos virzienos, un MĒS ESAM GATAVI!