Inhoudsopgave:

Arduino Smartphone Coms/Seriële Monitor Via Bluetooth HC-05, HC-06 - Ajarnpa
Arduino Smartphone Coms/Seriële Monitor Via Bluetooth HC-05, HC-06 - Ajarnpa

Video: Arduino Smartphone Coms/Seriële Monitor Via Bluetooth HC-05, HC-06 - Ajarnpa

Video: Arduino Smartphone Coms/Seriële Monitor Via Bluetooth HC-05, HC-06 - Ajarnpa
Video: блютуз bluetooth модуль hc-05, hc-06 Подключение к ардуино, 2024, November
Anonim
Arduino Smartphone Coms/Seriële Monitor Via Bluetooth HC-05, HC-06
Arduino Smartphone Coms/Seriële Monitor Via Bluetooth HC-05, HC-06

Dit is ongelooflijk handig als u uw schets in een echte wereld wilt testen, weg van uw pc. Het resultaat is dat uw smartphone hetzelfde werkt als de seriële Arduino-monitor op uw pc. De HC-05 en HC-06 Bluetooth-modules zijn beschikbaar voor ongeveer £ 3 op ebay en er zijn veel gratis smartphone-apps om uit te kiezen. Er zijn een paar valkuilen die u hopelijk kunt vermijden door de voorbeelden hier te volgen. De gratis smartphone-app die hier wordt gebruikt, kan de ontvangen tekst ook opslaan in een bestand voor later gebruik. U hoeft uw schetsen niet te wijzigen omdat dezelfde seriële pinnen worden gebruikt.

Ik heb dit voor het eerst gebruikt bij het testen van een apparaat dat de afstand meet die auto's afleggen als ze me op mijn fiets inhalen. Ik kon 30 keer per seconde afstandsmetingen opnemen op mijn telefoon, waar ze in een bestand werden opgeslagen. Ik heb dit later geanalyseerd met video die ik ook heb opgenomen met een sportcamera en mijn tracking-app die mijn snelheid en locatie gaf.

Je zal nodig hebben:

  • Je favoriete Arduino (Uno hier gebruikt)
  • HC-05 of HC-06 Bluetooth-module
  • Een smartphone (hier wordt Android-telefoon gebruikt) en gratis Bluetooth-app

Stappen:

  • Installeer gratis Bluetooth-app
  • Bluetooth-module configureren
  • Verbind Bluetooth met Arduino
  • Voorbeeldschets laden
  • Testsysteem

Stap 1: Installeer de Bluetooth-app

Er zijn veel Bluetooth-apps beschikbaar en veel zijn gratis. Ik gebruik Android-telefoons, maar ik verwacht dat hetzelfde geldt voor de andere systemen. Ik besloot BlueTerm 2 te gebruiken omdat het ook de mogelijkheid biedt om de ontvangen gegevens in een bestand te loggen. Ik vond het ook heel eenvoudig in gebruik. Ga dus naar Google Play en vraag de download van BlueTerm 2 aan.

Als je de app hebt geïnstalleerd, kun je verbinding maken met Bluetooth-apparaten. Houd er rekening mee dat Bluetooth-apparaten eerst met de telefoon moeten worden gekoppeld voordat ze in apps kunnen worden gebruikt:

BlueTooth inschakelen: ik ga via Instellingen>Bluetooth.

De telefoon geeft al gekoppelde apparaten weer en na een paar seconden wordt vervolgens Beschikbare apparaten weergegeven. De naam kan aanvankelijk worden weergegeven als een reeks cijfers in plaats van de apparaatnaam. Als u het echter selecteert, wordt de naam weergegeven en wordt om de pincode gevraagd die meestal 1234 is.

Start nu BlueTerm 2. Klik op instellingen, klik vervolgens op Apparaat verbinden en selecteer indien nodig. U kunt in dit stadium gewoon een HC-05/HC-06-module inschakelen en desgewenst het koppelingsproces controleren (sluit de negatieve voeding aan op aarde en 5v op Vcc).

Afbeelding
Afbeelding

Stap 2: Bluetooth-module configureren - Deel 1 - Verbindingen en HC-06

Als u graag de standaardnaam en baudrate wilt gebruiken, kunt u deze stap overslaan. De standaardwaarden zijn naam: HC-05 of HC-06 en baud: 9600. Het voordeel van het opnieuw configureren van de module is dat snellere baudrates kunnen worden geselecteerd en de naam kan worden ingesteld op iets dat gemakkelijker te herkennen is.

Configuratie vereist dat opdrachten van een pc naar de module worden verzonden via een seriële verbinding. Een FDTI USB seriële link is ideaal, vooral als deze een 3.3v-optie heeft. Arduino-boards hebben echter een USB-naar-serieel-converter en daarom kan deze ook worden gebruikt en dit is de methode die hier wordt getoond. Om dit te doen, is het het beste om de seriële poort van de Arduino-hoofdprocessor uit te schakelen, zodat we zonder interferentie kunnen communiceren tussen de pc en de Bluetooth-module.

De schets om de Arduino-serie uit te schakelen heeft gewoon de instructies:

pinMode(0, INGANG):

pinMode (1, INGANG);

in de setup{} sectie.

Ik heb de schets NoSerial.ino bijgevoegd. Maak een map met de naam ‘NoSerial’ in je sketches-map en voeg hier NoSerial.ino aan toe. Start de Arduino IDE, ga naar Bestand> Sketchbook> Sketches> NoSerial om de schets te openen. Selecteer het bordtype en de poort in het menu Extra en klik op de downloadknop.

Aansluiting voor configuratie

Met sketch geladen kunnen we nu de Bluetooth-module verbinden met het Arduino-bord. De Tx- en Rx-verbindingen zijn verwisseld in vergelijking met wat we later zullen doen, omdat we willen communiceren met de pc-poort voor de seriële monitor en niet met de Arduino-hoofdprocessor. De PC Tx is verbonden met de Arduino Rx en vice versa.

Merk op dat de Bluetooth-modules 3.3v-niveaus hebben voor Tx en Rx. Daarom moet een spanningsdeler worden gebruikt voor de Bluetooth Rx-ingang bij aansluiting op 5v-systemen. De Bluetooth 3.3v Tx-uitgang wordt meestal goed gedetecteerd door 5v-systemen en kan daarom direct worden aangesloten.

Ik heb ontdekt dat een spanningsdeler die 3k3- en 6k8-weerstanden gebruikt, werkt tot 115200 seriële baudrates.

De HC05- en HC06-modules hebben ingebouwde spanningsregelaars en werken daarom met Vcc aangesloten op 5v.

Dus aansluiten:

  • 3k3 weerstand naar D0
  • 6k8 weerstand naar aarde
  • Verbind de andere uiteinden van de twee weerstanden met elkaar en met de Rx-pin op de Bluetooth-module
  • Verbind de Bluetooth-module Tx-pin met D1
  • Verbind de massapin van de Bluetooth-module met GND Verbind de massapin van de Bluetooth-module met GND
  • Verbind de Bluetooth-module Vcc-pin met 5v

Zie afbeelding voor details.

Afbeelding
Afbeelding

Om de module te configureren, moet deze in de AT-modus worden gezet. De procedure is anders voor de HC-05- en HC-06-modules.

HC-06

Dit zijn de gemakkelijkste. Ze zetten zichzelf in de AT-modus als ze met geen enkel apparaat zijn gekoppeld. De baud-instelling is echter gelijk aan de normale operationele baud. Dit is normaal gesproken 9600 bij levering. Als dit niet werkt, probeer dan 38400 of de andere gangbare tarieven.

Sluit de USB-kabel van pc aan op Arduino en start de Arduino IDE. De Bluetooth-LED knippert snel (~4Hz) in de AT-modus.

Open de Arduino Seriële monitor via Extra>Seriële Monitor. Zet de baud op 9600 en stel ‘No line ending’ in.

Voer nu AT in en klik op Verzenden. Als alles werkt, ziet u 'OK' terug op de monitor. Als er niets terugkomt, controleer dan de bedrading en probeer verschillende Baud-instellingen.

Met een OK ter bevestiging van goede communicatie kunnen we de naam wijzigen en een eigen Baudrate instellen.

Voer AT+NAMEARDUINO in en klik op verzenden. Dit stelt de modulenaam in op ARDUINO. Elke andere tekst kan worden gebruikt. Let op geen spaties in de opdracht.

Het antwoord moet OKsetname zijn. Dit wordt toegevoegd aan de eerder verzonden OK

Voer nu AT+BAUD8 in. Hiermee wordt de baud ingesteld op 115200.

Het antwoord moet OK115200 zijn. Als er nog meer AT-commando's moeten worden verzonden, moet de baud-instelling van de seriële monitor worden gewijzigd in 115200.

Er kunnen andere tarieven worden ingesteld. Baud4 is 9600, Baud5 is 19200, Baud6 38400, Baud7 57600. Er zijn hogere instellingen dan 115200, maar controleer eerst of je pc en Arduino ze kunnen accepteren (de mijne kan 128000 niet overschrijden). Opmerking - Als u een te hoge snelheid instelt, kunt u er niet mee communiceren om deze terug te zetten!!!

Afbeelding
Afbeelding

Stap 3: Bluetooth-module configureren - Deel 2 - HC-05 en eerste test

HC-05

Deze hebben de complicatie dat ze handmatig in de AT-modus moeten worden gezet. De handleiding zegt dat als de AT-modus wordt geactiveerd na het opstarten, de Baud-instelling zal doorgaan met de snelheid die al is ingesteld voor normale communicatie. Ik kreeg dit niet werkend! Als echter de AT-modus is ingesteld bij inschakelen, is de baud ingesteld op 38400. Daarom is deze laatste optie de meest betrouwbare omdat we er zeker van kunnen zijn dat de baud 38400 is.

Open de Arduino Seriële monitor via Extra>Seriële Monitor. Zet de baud op 38400 en stel 'Carriage Return' in.

De volgende stap is om het bord in de AT-modus te krijgen. Hier ontstaan de meeste problemen door verschillen in de draagborden.

Het fundamentele proces is om de 'Sleutel'-pin (pin 34) een paar seconden laag te houden bij het opstarten.

Mijn board heeft een knop om dit te doen (de twee extra aansluitpinnen zijn EN en STATE). Koppel de Vcc-draad los van de Bluetooth-module. Breng vervolgens 5v opnieuw aan op Vcc terwijl u de knop ingedrukt houdt. De LED moet met tussenpozen van ongeveer 2 seconden knipperen. Ik houd de knop ingedrukt tot de tweede flits.

Sommige boards hebben een Key-pin als een van de 6 pinnen naar de module. Als dat zo is, koppel dit dan aan 3.3v tijdens het opstarten.

Sommige boards hebben geen van beide en gebruikers hebben een knop moeten solderen tussen de Key pin (34) en 3.3v (pin 12). Zie bijgevoegde handleiding.

Met de LED langzaam knipperend kunnen we de communicatie controleren. Voer AT in en klik op Verzenden. Het antwoord moet goed zijn. Ik ontdekte dat dit antwoord voortdurend werd herhaald totdat ik een lege regel stuurde - klik gewoon op verzenden. Als je ERROR:(0) krijgt, stuur dan een lege regel en stuur dan AT.

Stel nu een nieuwe naam in. Voer AT+NAME=ARDUINO in. Het antwoord zou OK moeten zijn. In mijn geval werd de module echter uit de AT-modus gereset (LED knippert snel). Ik kon de oorzaak niet vinden en dit gebeurde ook bij gebruik van een FDTI seriële verbinding in plaats van de Arduino. Ik kwam terug in de AT-modus zoals voorheen: de voedingskabel loskoppelen van het bord en opnieuw verbinden terwijl de knop werd ingedrukt. Latere controles wezen uit dat de naam was veranderd.

Stel vervolgens de Baud in. Voer AT+UART=115200, 1, 0 in. Het antwoord zou OK moeten zijn. Het sprong echter soms uit de AT-modus zoals hierboven.

De UART-instelling kan worden gecontroleerd met het commando: AT+UART? Het antwoord zou OK moeten zijn en +UART=115200, 1, 0

Eerste test

In dit stadium hebben we de pc met een seriële verbinding met de Bluetooth-module. Een eerste, optionele test kan dus worden gedaan door de BlueTerm 2-app van de smartphone te starten (ervan uitgaande dat de module al aan de telefoon is gekoppeld). Maak verbinding met ARDUINO. Stel de Arduino Seriële Monitor in op 115200 baud. Typ 'Hallo wereld' en klik op verzenden. Dit zou nu op BlueTerm 2 moeten verschijnen. Typ nu 'Hello to you' in BlueTerm 2. Dit zou nu in de seriële monitor moeten verschijnen.

Afbeelding
Afbeelding
Afbeelding
Afbeelding

Stap 4: Verbind de Bluetooth-module met Arduino

We moeten eerst onze Arduino-testschets laden. De bijgevoegde BTtest.ino verzendt elke 0,5 s een nummer en verhoogt het vervolgens, van 255 naar 0. Maak een map met de naam BTtest in uw schetsenmap en voeg BTtest.ino toe

De Arduino seriële verbinding wordt ook gebruikt voor het downloaden van schetsen. Dus de twee draden naar de Bluetooth-module moeten worden losgekoppeld zodat deze niet interfereren.

Sluit na het downloaden van de schets de Bluetooth-module opnieuw aan. Merk echter op dat de Tx en Rx op de Arduino moeten worden verwisseld in vergelijking met de eerdere configuratie-instellingen.

Dus aansluiten:

  • 3k3 weerstand naar D1
  • 6k8 weerstand naar aarde
  • Verbind de andere uiteinden van de twee weerstanden met elkaar en met de Rx-pin op de Bluetooth-module
  • Verbind de Bluetooth-module Tx-pin met D0
  • Verbind de massapin van de Bluetooth-module met GND Verbind de massapin van de Bluetooth-module met GND
  • Verbind de Bluetooth-module Vcc-pin met 5v

Zie afbeelding voor details.

Afbeelding
Afbeelding

Zet nu de Arduino aan. Het hoeft niet te worden aangesloten op een pc.

Koppel het bord met de smartphone als deze nog niet is verbonden (zie Bluetooth-app installeren hierboven). Start vervolgens BlueTerm 2, klik op instellingen, klik vervolgens op Apparaat aansluiten en selecteer ARDUINO. U zou het scherm moeten zien vullen met getallen die oplopend van 0 tot 255.

Afbeelding
Afbeelding

Ik hoop dat je dit net zo nuttig vindt als ik.

Mike

Bluetooth-uitdaging
Bluetooth-uitdaging
Bluetooth-uitdaging
Bluetooth-uitdaging

Tweede plaats in de Bluetooth-uitdaging

Aanbevolen: