Controlar Arduino mediante un modulo bluetooth
Sin duda la versatilidad de trabajar con Arduino es una de las ventajas mas relevante a la hora de elegir que sistema de desarrollo quiero utilizar para mis proyectos, elegir Arduino nos permite contar con infinidad de modulos disponibles,entre ellos el modulo bluetooth que podemos utilizar sin rendir cuentas de licencias a nadie.
Arduino cuenta con un modulo bluetooth que nos facilita la implementación de sistemas de comunicación entre dos dispositivos diferentes ¿se pusieron a pensar el abanico de posibilidades que nos da relacionar nuestro telefono celular android con una placa Arduino?
Vamos a ver un ejemplo de los tantos que hay en la web, donde se realiza la conexión de un celular android con la placa Arduino mediante el modulo Bluetooth.
Lista de materiales
1 - Placa Arduino
2 - Modulo Bluetooth (btm222)
3 - Resistencia de 10Ohms
4 - Un Led
5 - Algunos alambres para realizar las conexiones
Diagrama de conexión
Como se puede ver, el circuito es realmente simple.
Código Arduino bluetooth
Es importante que las velocidades de transmicion del emisor coincida con el receptor, de no ser asi es muy probable que se pierda informacion y no podamos realizar una comunicacion efectiva
const int ledPin = 2; // the pin that the LED is attached to
byte serialA;
void setup()
{
// initialize the serial communication:
Serial.begin(19200); //baud rate - make sure it matches that of the module you got:
// initialize the ledPin as an output:
pinMode(ledPin, OUTPUT);
}
void loop() {
if (Serial.available() > 0) {serialA = Serial.read();Serial.println(serialA);}
switch (serialA) {
case 1:
digitalWrite(ledPin, HIGH);
break;
case 2:
digitalWrite(ledPin, LOW);
break;
case 3:digitalWrite(ledPin, HIGH);
delay(100);
digitalWrite(ledPin, LOW);
delay(100);
default:
break;
}
}
Recepción de datos de Arduino
Para hacer algo que sea de utilidad utilizamos el sensor de temperatura DS1820
#include <OneWire.h> int DS18S20_Pin = 2; //DS18S20 Signal pin on digital 2 //Temperature chip i/o OneWire ds(DS18S20_Pin); // on digital pin 2 void setup() { // initialize the serial communication: Serial.begin(19200); // initialize the ledPin as an output: } void loop() { float temperature = getTemp(); Serial.println(temperature); delay (500); } float getTemp(){ //returns the temperature from one DS18S20 in DEG Celsius byte data[12]; byte addr[8]; if ( !ds.search(addr)) { //no more sensors on chain, reset search ds.reset_search(); return -100; } if ( OneWire::crc8( addr, 7) != addr[7]) { Serial.println("CRC is not valid!"); return -1000; } if ( addr[0] != 0x10 && addr[0] != 0x28) { Serial.print("Device is not recognized"); return -1000; } ds.reset(); ds.select(addr); ds.write(0x44,1); // start conversion, with parasite power on at the end byte present = ds.reset(); ds.select(addr); ds.write(0xBE); // Read Scratchpad for (int i = 0; i < 9; i++) { data[i] = ds.read(); } ds.reset_search(); byte MSB = data[1]; byte LSB = data[0]; float tempRead = ((MSB << 8) | LSB); float TemperatureSum = tempRead / 16; return TemperatureSum;}
Lectura de resultados
Existen varias aplicación para celulares que podemos bajar para realizar la lectura de los datos que llegan desde el modulo Bluetooth, dejo el link de una de ellas
La aplicacion
https://speedy.sh/RMFgg/bluetoothforarduino-app-temperaturereadings.apk
El codigo
https://speedy.sh/SHpjj/bluetoothforarduino-app-temperaturereadings-3.zip
Dejo un video con el resultado final
Bibliografica
Deja un comentario
Estimado te comparto una plataforma llamada CJAR para telemetría y telecontrol usando equipos Android, que te puede ser de utilidad para remotizar, para mayor información puedes visitar http://www.cjarperu.com o buscar las app como CJAR en Goggle Play Store , te dejo un video: https://www.youtube.com/watch?v=ttXMSWJ2Nfk