- Tarvittavat materiaalit
- Piirikaavio
- HC05-moduulien alkuasetukset
- Arduino - Arduino Bluetooth-yhteyden testaus
HC-05 Bluetooth-moduulit ovat go-to-Bluetooth-moduulit mille tahansa Arduino-projektille! Arduino IDE on helppo liittää ja koodata. Useimmissa projekteissa yhdistämme yleensä HC05: n Arduinoon ja käytämme sitä yhteydenpitoon langattomasti toisen älylaitteen, kuten matkapuhelimen, kanssa. Tämä on melko yksinkertaista ja olemme rakentaneet sen kanssa monia mielenkiintoisia projekteja, kuten Bluetooth-ohjattava robotti, Bluetooth-ääniohjaus, Bluetooth-kotiautomaatio jne. Oletko koskaan tarvinnut yhdistää kaksi HC-05: tä yhteen? HC05: n yhdistäminen älypuhelimeen ei ole yhtä suoraviivaista, vaan siihen liittyy joitain lisätoimia. Tämä opetusohjelma opastaa sinut läpi tämän prosessin. Hypätään heti sisään!
Tarvittavat materiaalit
- 2x Arduino (mikä tahansa malli tekee; käytän Arduino Uno R3: ta ja Arduino Nanoa)
- 2x HC05 Bluetooth-moduulia
- Leipälauta
- Neulalangat
- 2x 1kΩ vastus
- 2x 2,2 kΩ vastus
Piirikaavio
Tämä on peruspiirikaavio. Kytke kaksi näistä piireistä, yksi isännälle ja toinen orjalle. Yhteyksiä varten kaikki, mitä täällä teemme, on HC05: n liittäminen Arduinoon. HC05: n vastaanottimen (Rx) nasta toimii 0 V - 3,3 V alueella ja Arduino 0 - 5 V alueella. Joten käytämme vastuksia (R1 ja R2) jännitteenjakajan luomiseksi Arduinon 5 V: n ulostulon pienentämiseksi 3,3 V: iin, jotta HC05-moduuli ei vahingoitu.
Käytän 1 kΩ R1: lle ja 2,2 KΩ R2: lle, mutta voit käyttää mitä tahansa vastuksen arvoa, kunhan R2 on suunnilleen kaksinkertainen R1: n arvoon (R2 ≈ 2R1). Vastaavasti toista piiri sekä isännälle että orjalle, Arduino Master Bluetooth -piiri ja Arduino Slave Bluetooth -piiri on esitetty alla.
HC05-moduulien alkuasetukset
Tämä on lisävaihe, joka tarvitaan kahden HC05-moduulin liittämiseen toisiinsa. Meidän on muutettava joitain asetuksia HC05 Bluetooth-moduulin sisällä, jotta voimme tehdä tämän, meidän on mentävä HC05-moduulin AT-komentotilaan ja lähetettävä sille komennot Arduino IDE: n sarjavalvojan kautta. Tätä varten meidän on kirjoitettava Arduino-koodi lähettämään komennot sarjakuvan kautta HC05: lle.
Koodi määrittää HC05 moduuli löytyy alareunassa tämän sivun, selitys koodi on seuraava
Lisää SoftwareSerial-kirjasto tähän koodiin.
#include < SoftwareSerial.h>
Määritä lähetys (Tx) ja Vastaanotto (Rx) pin-numerot. Käytän nastaa 2 Tx: lle ja nastaa 3 Rx: lle.
#define tx 2 #define rx 3
Anna Bluetooth-yhteydelle jokin nimi (tässä käytän configBt: tä) ja kerro sitten SoftwareSerial-kirjastolle, mikä nasta on Tx ja mikä nasta on Rx. Syntaksi on bluetoothName (Rx, Tx);
SoftwareSerial configBt (rx, tx); // RX, TX
Bluetooth-moduulin määrittämiseksi Arduinon on lähetettävä sille komennot 38400 baudin nopeudella. Samoin asetamme myös Bluetooth-yhteyden siirtonopeudeksi 38400 baudia. Aseta lähetys (Tx) lähtötappiin ja Vastaanota (Rx) tulotappiin
void setup () { Sarja.begin (38400); configBt.begin (38400); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Ikuisen silmukan sisällä meillä on koodin pääosa. Ajatuksena on lähettää kaikki sarjamonitorin tekstilaatikkoon kirjoitettu HC05: lle Arduinon Tx-nastan kautta. Näytä sitten mikä tahansa HC05: n antama sarjavalvonta.
void loop () {if (configBt.available ()) // jos HC05 lähettää jotain… { Serial.print (configBt.readString ()); // tulosta sarjamonitorissa } if (Serial.available ()) // jos sarjamonitori tuottaa jotain… {configBt.write (Serial.read ()); // kirjoita Arduinon Tx-tappi}}
Lataa tämä koodi ensin master HC05 -moduuliin liitettyyn Arduinoon. Koodin lataamisen jälkeen liitä Arduino-virtajohto. Pidä HC05: n painiketta painettuna. Liitä nyt Arduino-virtajohto pitäen samalla kiinni HC05: n painikkeesta. Selvä, nyt voit vapauttaa HC05: n painikkeen. Näin siirryt HC05: n AT-tilaan. Tarkista, oletko tehnyt tämän oikein, varmista, että HC05: n punainen valo vilkkuu noin sekunnin välein (vilkkuu hitaasti!). Normaalisti ennen kuin HC05 on kytketty mihin tahansa Bluetooth-laitteeseen, punainen valo vilkkuu hyvin suurella taajuudella (vilkkuu nopeasti!).
Seuraavaksi avaa sarjamonitori (sarjakuvapainike on Arduino IDE: n oikeassa yläkulmassa). Jos et ole jo tehnyt niin Sarjamonitori-ikkunan oikeassa alakulmassa, varmista, että asetat rivin lopetusasetukseksi ”Sekä NL että CL” ja siirtonopeudeksi 38400. Kirjoita nyt sarjakuvanäyttöön AT, jos kaikki menee hyvin, saat “OK” sarjavalvontaikkunassa näytetystä HC05: stä. Onnittelut! Olet kirjautunut onnistuneesti HC05-moduulin AT-komentotilaan.
Kirjoita nyt seuraavat komennot alla olevaan taulukkoon konfiguroidaksesi master HC05 -moduulin:
COMMAND (kirjoita tämä sarjamonitoriin ja paina Enter) |
RESPONSE (vastaus HC05: ltä, näkyy sarjamoduulissa) |
Funktio (Mitä tämä komento tekee?) |
AT |
OK |
Testata |
AT + CMODE? |
OK |
Tarkista CMODE- tai yhteystila ----------------------------- CMODE: 0 on orja 1 on päällikkö |
AT + CMODE = 1 |
OK |
Määritä CMODE- arvoksi 1, kun asetamme master HC05: tä |
AT + ADDR? |
+ ADDR: FCA8: 9A: 58D5 OK * Tämä on isäntäni HC05 osoite. Osoitteesi on erilainen! |
Palauttaa HC05: n osoitteen. Merkitse tämä muistiin, koska tarvitsemme sitä myöhemmin! |
Liitä sitten tietokoneesi toiseen HC05- orjaan:
COMMAND (kirjoita tämä sarjamonitoriin ja paina Enter) |
RESPONSE (vastaus HC05: ltä, näkyy sarjamoduulissa) |
Funktio (Mitä tämä komento tekee?) |
AT |
OK |
Testata |
AT + CMODE? |
OK |
Tarkista CMODE- tai yhteystila ----------------------------- CMODE: 0 on orja 1 on päällikkö |
AT + CMODE = 0 |
OK |
Aseta CMODE- arvoksi 0, kun konfiguroimme orja HC05: tä |
AT + BIND = FCA8,9A, 58D5 * Korvaa ”:” master-HC05-osoitteessa sanalla “,” * Tässä käytän edellisestä taulukosta muistiin merkityn master HC05: n osoitetta. Käytä isäntäsi HC05 osoitetta! |
OK |
Määritetään isäntä HC05: n osoite, johon orja HC05 yhdistyy automaattisesti käynnistettäessä |
AT + BIND? |
+ SIDOS: FCA8: 9A: 58D5 OK * Tämä on isäntäni HC05 osoite. Osoitteesi on erilainen! |
Tarkista orjasi sidososoite. Jos se vastaa master HC05: n osoitetta, olet hyvä mennä! |
Arduino - Arduino Bluetooth-yhteyden testaus
Ensinnäkin virtaa sekä master- että slave HC05 -moduulit. Kun virta on kytketty ja muutama sekunti on kulunut, katsokaa punaista valoa HC05-moduuleissa.
Vilkkuva punaisen valon nopeus |
Mitä se tarkoittaa |
Vilkkuu erittäin suurella taajuudella (nopeasti vilkkuu!) |
Ei hyvä! Se tarkoittaa, että HC05-moduulisi eivät ole yhteydessä toisiinsa! Aika vianmääritykseen! |
Vilkkuu matalalla taajuudella (vilkkuu hitaasti!) |
Kiva! Olet tehnyt sen! Mutta meidän on silti tehtävä vielä yksi tarkistus vain varmistaaksemme, että tämä asennus toimii! Jatka eteenpäin! |
Kun punaiset valosi vilkkuvat matalalla taajuudella (vilkkuu hitaasti!), Voit olla varma, että molemmat HC05-laitteesi ovat yhteydessä toisiinsa, mutta emme ole testanneet, voidaanko tietoja lähettää edestakaisin isännän ja orjan välillä. Loppujen lopuksi se on tärkein tarkoitus täällä.
Lataa alla oleva koodi johonkin Arduinosista, tämä on lähetin (Tx) testattava koodi, jälleen sekä lähettimen että vastaanottimen täydellinen koodi löytyy tämän sivun alareunasta.
Edellisen koodin jälkeen lisätään SoftwareSerial-kirjasto tähän koodiin ja määritetään lähetys (Tx) ja Vastaanotto (Rx) -tunnusnumerot. Sitten nimeämme Bluetooth-yhteyden ja välitämme Tx- ja Rx-pin-numerot kirjastoon.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
Asetustoiminnossa asetamme Arduino-sarjamonitorin ja Bluetoothin siirtonopeuden uudelleen. Näetkö tässä eron edelliseen koodiin verrattuna? Käytämme 9600 baudin nopeutta. Tämä on HC05 Bluetooth-moduulin oletusasetettu ennalta asetettu tiedonsiirtonopeus, kun se on yhteydessä muihin Bluetooth-laitteisiin. Joten huomaa, että 38400 baudia on tarkoitettu HC05: n konfigurointiin AT-komennoilla ja 9600 baudia on oletussiirtonopeus HC05-moduulille. Viimeiseksi, aivan kuten aiemmin, konfiguroimme Tx-nastan lähdöksi ja Rx-nastan tuloksi.
void setup () { Sarjan alku (9600); alku alussa (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Ikuisen silmukan sisällä kaikki, mitä teemme, on satunnaisen arvon 123 lähettäminen HC05: n kautta.
void loop () {bt.write (123); }
Lataa tämä koodi toiseen Arduinoon, tämä on koodi, jonka avulla testataan vastaanotto (Rx):
Määritämme SoftwareSerial-kirjaston täsmälleen samalla tavalla kuin edelliset koodit.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
Asennustoiminnon koodi on täsmälleen sama kuin lähetystestattava koodi (Tx).
void setup () { Sarjan alku (9600); alku alussa (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Ikuisesti silmukassa meidän on vain vastaanotettava, mitä lähetämme lähettävältä Arduinolta. Jos vastaanottopuskuri on vastaanottanut jonkin verran tietoa HC05: ltä, näytä kaikki vastaanotetut sarjamonitorissa.
void loop () {if (bt.available ()> 0) { Sarja.println (bt.read ()); }}
Kun olet ladannut vastaavat koodit kullekin Arduinolle, avaa Serial-näyttö vastaanottavalle Arduinolle. Varmista, että valitset siirtonopeudeksi 9600 ja rivin päättyneen Newline-sarjaliitännän. Jos kaikki toimii hyvin, sinun pitäisi nähdä 123.
Huomaa: Jos olet liittänyt sekä lähettävän että vastaanottavan Arduinon samaan kannettavaan tietokoneeseen, varmista, että valitset oikean COM-portin kohdassa TYÖKALUT> PORTTI. Sinun on oltava yhteydessä vastaanottavan Arduinon COM-porttiin.
AJos kaikki menee hyvin, vaihda HC05-moduulit varmistaaksesi, että viestintää voi tapahtua molempiin suuntiin, ja OLEMME TEHTY!