- Szükséges anyagok
- Kördiagramm
- A HC05 modulok kezdeti konfigurálása
- Arduino - Arduino Bluetooth kommunikációs tesztelés
A HC-05 Bluetooth modulok bármelyik Arduino projekthez használható Bluetooth modulok! Könnyű bekapcsolni és kódolni az Arduino IDE-t. A legtöbb projektben általában a HC05-hez csatlakozunk egy Arduinóhoz, és vezeték nélkül kommunikálunk egy másik intelligens eszközzel, például egy mobiltelefonnal. Ez meglehetősen egyszerű, és sok érdekes projektet építettünk vele, mint például a Bluetooth vezérlésű robot, a Bluetooth hangvezérlés, a Bluetooth otthoni automatizálás stb. Szüksége volt azonban valaha két HC-05 összekapcsolására? A HC05 okostelefonhoz való csatlakoztatása nem olyan egyszerű, van néhány további lépés. Ez az oktatóanyag végigvezeti Önt ezen a folyamaton. Ugorjunk be rögtön!
Szükséges anyagok
- 2x Arduino (Bármelyik modell megteszi; Arduino Uno R3-at és Arduino Nano-t használok)
- 2x HC05 Bluetooth modul
- Kenyérlemez
- Jumper huzalok
- 2x 1kΩ ellenállás
- 2x 2,2kΩ ellenállás
Kördiagramm
Ez az alapvető kapcsolási rajz. Huzalozzon fel 2 ilyen áramkört, egyet a masterhez és egyet a slave-hez. A kapcsolatokhoz itt csak annyit teszünk, hogy összekapcsoljuk a HC05-öt az Arduinóval. A HC05 vevő (Rx) csapja 0–3,3 V tartományban, az Arduino pedig 0–5 V tartományban működik. Tehát ellenállásokkal (R1 és R2) fogunk létrehozni egy feszültségosztót, amellyel az Arduino 5 V-os kimenetét 3,3 V-ra csökkentjük, hogy ne sérüljön a HC05 modul.
1kΩ-ot használok R1-hez és 2,2KΩ-t R2-hez, de bármilyen ellenállási értéket használhatunk, amennyiben az R2 körülbelül kétszerese az R1 értékének (R2 ≈ 2R1). Hasonlóképpen ismételje meg az áramkört mind a master, mind a slave számára. Az alábbiakban az Arduino Master Bluetooth áramkör és az Arduino Slave Bluetooth áramkör látható.
A HC05 modulok kezdeti konfigurálása
Ez a további lépés, amely két HC05 modul összekapcsolásához szükséges. Meg kell változtatnunk néhány beállítást a HC05 Bluetooth modul belsejében, ehhez be kell lépnünk a HC05 modul AT Parancs módjába, és parancsokat kell küldenünk neki az Arduino IDE soros monitorján keresztül. Ehhez írnunk kell egy Arduino kódot, hogy a soros monitoron keresztül parancsokat küldjünk a HC05-nek.
A HC05 modul konfigurálásához szükséges kód az oldal alján található, a kód magyarázata a következő
Adja hozzá a SoftwareSerial könyvtárat ehhez a kódhoz.
#include < SoftwareSerial.h>
Határozza meg az adás (Tx) és a fogadás (Rx) tűszámait. A Tx-t a Tx-hez és a Rx-hez a 3-as tűt használom.
#define tx 2 #define rx 3
Adjon nevet a Bluetooth-kapcsolatnak (itt a configBt-t használom), majd mondja el a SoftwareSerial könyvtárnak, hogy melyik pin Tx és melyik pin Rx. A szintaxis bluetoothName (Rx, Tx);
SoftwareSerial configBt (rx, tx); // RX, TX
A Bluetooth modul konfigurálásához az Arduinónak parancsokat kell küldenie 38400 baud sebességgel. Ehhez hasonlóan 38400 baudra állítjuk be a Bluetooth kapcsolat átviteli sebességét is. Állítsa az Adás (Tx) elemet a kimeneti tűre és a Fogadás (Rx) beállítást a bemeneti tűre
void setup () { Soros.begin (38400); configBt.begin (38400); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Az örök hurok belsejében megvan a kód fő része. Az ötlet az, hogy a soros monitor szövegmezőjébe beírt szöveget az Arduino Tx tűjén keresztül elküldjük a HC05-nek. Ezután jelenítse meg a HC05 kimenetét a soros monitoron.
void loop () {if (configBt.available ()) // ha a HC05 küld valamit… { Soros.print (configBt.readString ()); // nyomtatás soros monitorban} if (Soros.available ()) // ha a soros monitor kiad valamit… {configBt.write (Soros.read ()); // írjon Arduino Tx pin-jére}}
Először töltse fel ezt a kódot a HC05 masterhez csatlakozó Arduino-ba. A kód feltöltése után húzza ki az Arduino tápkábelt. Tartsa nyomva a HC05 gombot. Most csatlakoztassa az Arduino tápkábelt, miközben továbbra is nyomva tartja a HC05 gombját. Rendben, most elengedheti a HC05 gombját. Így lép a HC05 AT módjába. Annak ellenőrzéséhez, hogy ezt jól tette-e, ellenőrizze, hogy a HC05 piros lámpája körülbelül másodpercenként villog-e (lassan villog!). Általában mielőtt a HC05 bármilyen Bluetooth eszközhöz csatlakozik, a vörös fény nagyon nagy frekvencián villog (gyorsan villog!).
Ezután nyissa meg a soros monitort (a soros monitor gombja az Arduino IDE jobb felső sarkában található). Ha még nem tette meg a soros monitor ablakának jobb alsó sarkában, győződjön meg arról, hogy a sorvégződési beállítást „Mind NL, mind CL” értékre, az átviteli sebességet pedig 38400-ra állította. Írja be az AT-t a soros monitorba, ha minden jól megy, akkor kap egy „OK” jelet a soros monitor ablakában megjelenő HC05-től. Gratulálunk! Sikeresen bejelentkezett a HC05 modul AT parancs módjába.
Most adja meg a következő parancsokat az alábbi táblázatba a fő HC05 modul konfigurálásához :
COMMAND (írja be ezt a soros monitorba, és nyomja meg az Enter billentyűt) |
VÁLASZ (a HC05 válasza, megjelenik a soros monitoron) |
Funkció (Mit csinál ez a parancs?) |
NÁL NÉL |
rendben |
Teszt |
AT + CMODE? |
rendben |
Ellenőrizze a CMODE vagy a Kapcsolat módot ----------------------------- CMODE: 0 a rabszolga 1 a mester |
AT + CMODE = 1 |
rendben |
Állítsa be a cmode hogy 1 ahogy konfigurálja a mester HC05 |
AT + ADDR? |
+ ADDR: FCA8: 9A: 58D5 rendben * Ez a HC05 mesterem címe. Más lesz a címed! |
Visszaadja a HC05 címét, jegyezze fel ezt, mivel később szükségünk lesz rá! |
Ezután csatlakoztassa számítógépét a másik HC05-höz, a slave-hez:
COMMAND (írja be ezt a soros monitorba, és nyomja meg az Enter billentyűt) |
VÁLASZ (a HC05 válasza, megjelenik a soros monitoron) |
Funkció (Mit csinál ez a parancs?) |
NÁL NÉL |
rendben |
Teszt |
AT + CMODE? |
rendben |
Ellenőrizze a CMODE vagy a Kapcsolat módot ----------------------------- CMODE: 0 egy rabszolga 1 a mester |
AT + CMODE = 0 |
rendben |
Állítsa a CMODE- t 0-ra, amikor konfiguráljuk a slave HC05-et |
AT + BIND = FCA8,9A, 58D5 * Cserélje ki a „:” jelet a mester HC05 címére „,” * Itt használom az előző táblázatban feljegyzett HC05 mester címét. Használja a mester HC05 címét! |
rendben |
Beállítja annak a HC05 masternek a címét, amelyhez ez a slave HC05 automatikusan csatlakozik indításkor |
AT + BIND? |
+ BIND: FCA8: 9A: 58D5 rendben * Ez a HC05 mesterem címe. Más lesz a címed! |
Ellenőrizze a rabszolga kötési címét. Ha megegyezik a mester HC05 címével, akkor jó vagy! |
Arduino - Arduino Bluetooth kommunikációs tesztelés
Először táplálja mind a master, mind a slave HC05 modulokat. A bekapcsolás és néhány másodperc elteltével nézze meg a piros lámpát a HC05 modulokon.
Villogó piros fény sebessége |
Mit jelent |
Nagyon magas frekvencián villog (gyorsan villog!) |
Nem jó! Ez azt jelenti, hogy a HC05 moduljai nem kapcsolódnak egymáshoz! Ideje elhárítani! |
Alacsony frekvencián villog (lassan villog!) |
Szép! Megcsináltad! De még mindig el kell végeznünk még egy ellenőrzést, csak hogy biztosak legyünk abban, hogy ez a beállítás működik! Továbblép! |
Miután a vörös fényei alacsony frekvencián villognak (lassan villog!), Biztos lehet benne, hogy mindkét HC05 készüléke össze van kapcsolva, de még nem teszteltük, hogy az adatok továbbadhatók-e a master és a slave között. Végül is itt ez a fő cél.
Töltse fel az alábbi kódot az Arduinos egyikére, ez az adó (Tx) tesztelésére szolgáló kód, ismételten az adó és a vevő teljes kódja az oldal alján található.
Az előző kódot követve hozzáadjuk a SoftwareSerial könyvtárat ehhez a kódhoz, és meghatározzuk az adás (Tx) és a fogadás (Rx) csapszámait. Ezután megnevezzük a Bluetooth kapcsolatot, és továbbítjuk a Tx és Rx pin számokat a könyvtárnak.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
A beállítási funkcióban ismét beállítjuk az Arduino soros monitor és a Bluetooth átviteli sebességét. Látja itt a különbséget az előző kódhoz képest? 9600 baud sebességet használunk. Ez az alapértelmezett előre beállított kommunikációs átviteli sebesség a HC05 Bluetooth modul számára, amikor más Bluetooth eszközökkel kommunikál. Tehát vegye figyelembe, hogy 38400 baud a HC05 AT parancsokkal történő konfigurálására szolgál, és 9600 baud az alapértelmezett átviteli sebesség a HC05 modul számára. Végül, csakúgy, mint korábban konfiguráltuk a Tx tűt kimenetként és az Rx tűt bemenetként.
void setup () { Soros.begin (9600); bt. kezdete (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Az örök hurok belsejében mindössze annyit teszünk, hogy egy véletlenszerű „123” értéket továbbítunk a HC05-en keresztül.
void loop () {bt.write (123); }
Töltse fel ezt a kódot a másik Arduino-ba, ez az a kód, amelyet a vétel tesztelésére (Rx) tesztel:
Pontosan ugyanaz, mint az előző kódok, konfiguráljuk a SoftwareSerial könyvtárat.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
A beállítási funkció kódja pontosan megegyezik az adás tesztelésének kódjával (Tx).
void setup () { Soros.begin (9600); bt. kezdete (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Az örökkévalóság körében csak meg kell kapnunk, amit küldünk az adó Arduinótól. Ha a vételi puffer kapott néhány adatot a HC05-től, akkor a soros monitoron jelenítse meg bármit.
void loop () {if (bt.available ()> 0) { Soros.println (bt.read ()); }}
Miután feltöltötted a megfelelő kódokat minden Arduino-ba, nyisd meg a soros monitort a fogadó Arduino számára. Győződjön meg arról, hogy az átviteli sebességet 9600-nak, a sor végét pedig Newline-nak választotta a soros monitoron. Ha minden rendben működik, akkor a 123-at kell látnia.
Megjegyzés: Ha az adó és a fogadó Arduinos-t is ugyanahhoz a laptophoz csatlakoztatta, győződjön meg arról, hogy a megfelelő COM-portot választotta az TOOLS> PORT menüpont alatt. Csatlakoznia kell a fogadó Arduino COM portjához.
AHa minden jól megy, cserélje ki a HC05 modulokat, hogy megbizonyosodjon arról, hogy a kommunikáció mindkét irányban megtörténhet, és KÉSZÜNK!