Stap 1: HC-06 en Arduino
Bluetooth is een vorm van draadloze communicatie gebruikt voor het verzenden van de stem en de gegevens aan hoge snelheden met behulp van de golven van radio. Het wordt wijd gebruikt in mobiele telefoons voor oproepen, headset en delen van gegevens. Dit type communicatie is een goedkope en gemakkelijke manier om iets op afstand met behulp van arduino.
HC-06 module heeft 4 pinnen zijn aangesloten op de arduino, ze zijn:
- RXD
- TXD
- VCC
- GND
RXD ontvangt gegevens van arduino; TXD stuurt gegevens naar de arduino; VCC is de voeding (3,3 v 6.6V) en GND is de grond.
U moet betalen aandacht over de RXD niveau, sommige modules werken met 5V, maar deze werkt met 3.3V en arduino TX zal een signaal 5V, dan een voltage divider moet.
Voltage divider met R1 = 300Ω:
Vout = R2/(R2+R1) * Vin
3.3 = R2/(R2+300) * 5
3.3 * R2 + 990 = 5 * R2
R2 = 990/1.7
R2 ~ 600Ω
Hebt u een verschillende weerstand:
R2 = (3.3 * R1) / 1.7Ω
Instellen:
1ª sluit de HC-06 module (Zie Pict.):
Arduino---HC-06
RX---TXD
TX---RXD
+ 5V---VCC
GND---GND
2 C-code:
De schets voor dit Project is zeer eenvoudig, alles wat je hoeft te doen is de seriële poort te controleren als er gegevens beschikbaar.
Met behulp van een android telefoon met een bluetooth-apk van spp, wordt het bericht verzonden naar bluetooth (RX/TX). Wat er gebeurt is dat de bluetooth module communiceert met android's bluetooth met een profiel SPP (Serial Port Profile) genoemd. Het emuleert een USB-poort aangesloten op de arduino en android.
Alle pinnen en variabelen definiëren.
char command; String string;#define led 8
De standaard baud-rate van HC-06 module is 9600. De void setup-code:
void setup(){Serial.begin(9600); pinMode(led, OUTPUT);}
Void loop:
void loop(){ if (Serial.available() > 0) {string = "";} while(Serial.available() > 0) { command = ((byte)Serial.read()); if(command == ':') { break; } else { string += command; } delay(1); } if(string == "LO") { LEDOn(); } if(string =="LF") { LEDOff(); } }
Er zijn twee functies in de code. Hun namen zegt eigenlijk alles.
void LEDOn() { digitalWrite(led, HIGH); } void LEDOff() { digitalWrite(led, LOW); }