NodeMCU en español
NodeMCU - Juan Antonio Villalpando
-- Tutorial de NodeMCU en español --
Volver al índice del tutorial NodeMCU
____________________________
153.- Wemos D1 R32 ESP32. App Inventor envía un mensaje a pantalla LCD. LED on/off.
_________________________________
14.- Bluetooth clásico. App Inventor envía un mensaje a pantalla LCD. LED on/off.
p153wemos_led_LCD_BT.aia
- Escribimos un mensaje en App Inventor y lo enviamos por Bluetooth para visualizarlo en una pantalla LCD.
- Si escribimos on12, off12, on14, off14 se encenderán/apagarán esos LED.
- En este código no obtenemos respuesta del servidor.
- Este código es parecido a este otro por WiFi:
125.- Encender/apagar LED desde App Inventor en el Servidor web WiFi.
_________________________________
- Diseño.
_________________________________
- Bloques.
_________________________________
- Conexiones.
_________________________________
- Código.
AI2_BT_LCD.ino |
// Juan A. Villalpando.
// KIO4.COM
// App Inventor Bluetooth LCD ESP32
#include <LiquidCrystal_I2C.h>
int columnas = 16;
int filas = 2;
LiquidCrystal_I2C lcd(0x27, columnas, filas);
// LiquidCrystal_I2C lcd(0x3F, columnas, filas);
#include "BluetoothSerial.h"
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth no activado! Activa la conexion Bluetooth.
#endif
BluetoothSerial SerialBT;
char caracter;
String palabra;
#define LED12 12 // LED en terminal 12
#define LED14 14 // LED en terminal 14
void setup(){
SerialBT.begin("ESP32test");
lcd.init();
lcd.backlight();
pinMode(LED12, OUTPUT);
pinMode(LED14, OUTPUT);
}
void loop(){
if(SerialBT.available()) {
caracter = SerialBT.read();
palabra = palabra + caracter;
if(caracter == '*') {
palabra = palabra.substring(0, palabra.length() - 1); // Quita último caracter *
lcd.clear(); // Borra pantalla.
lcd.setCursor(0, 0); // Inicio del cursor
lcd.print("Palabra =");
lcd.setCursor(0,1); // Siguiente renglón.
lcd.print(palabra);
// Enciende Apaga.
if (palabra == "on12"){digitalWrite(LED12, HIGH);}
if (palabra == "off12"){digitalWrite(LED12, LOW);}
if (palabra == "on14"){digitalWrite(LED14, HIGH);}
if (palabra == "off14"){digitalWrite(LED14, LOW);}
palabra = "";
}
delay(100);
} // =>Fin del available
}
|
_________________________________
- Comentarios.
- Fíjate en el código de App Inventor, se envía un texto y siempre terminará en *
- Amigo*
- El código del ESP32 irá leyendo caracter a caracter e irá formando la palabra.
- Cuando llegue el *, indicará que ha llegado el fin del mensaje.
- Entonces lo mostrará en la pantalla LCD.
- También irá comprobando si la palabra recibida es: on12, off12, on14, off14 en este caso, se encenderán/apagarán esos LED.
- En el código del tutorial anterior solo se enviaba un caracter cada vez, por lo cual no era necesario buscar el último caracter.
_________________________________
- Propuesta.
- Utiliza además del BluetoothSerial, la librería Serial para mostrar los valores en el Monitor Serie.
- Debes poner:
Serial.begin(115200);
y luego
Serial.println(palabra);
_______________________________
|