|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

NodeMCU en español
NodeMCU - Juan Antonio Villalpando

-- Tutorial de NodeMCU en español --

Volver al índice del tutorial NodeMCU

____________________________

82.- NodeMCU y Bluetooth. Enviar un mensaje desde el móvil al NodeMCU y verlo en la LCD. App Inventor.

- Vamos a enviar un palabra o un mensaje de menos de 16 caracteres desde el móvil al NodeMCU por Bluetooth, en mensaje se verá en una LCD.

- Además se enviamos a palabra enciende o apaga, se encenderá o apagará el LED conectado al terminal D3 del NodeMCU, se corresponde al GPIO0.

___________________________________________________
1.- Conexiones.

- Los terminales D1 y D2 los necesita la pantalla LCD para funcionar con el bus I2C.

- El LED está conectado al terminal D3 del NodeMCU, que corresponde al GPIO0.

___________________________________________________
5
.- Código para enviar un mensaje desde el móvil al NodeMCU por Bluetooth, con pantalla LCD.

Código
Nodemcu_mensaje_LED_BT_LCD.ino
// Juan Antonio Villalpando
// KIO4.COM
// Enviar mensaje desde móvil a NodeMCU por BT.

#include <Wire.h>
#include <LiquidCrystal_I2C.h> 
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
// LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
int LED0 = 0; // Es el terminal D3 de NodeMCU

void setup() {
  lcd.begin(16,2); // Columnas y filas de LCD
  Serial.begin(9600);
  pinMode(LED0, OUTPUT);
}

void loop(){
byte guardados[10];
int caracteres;
String palabra;

while(1){
if ((caracteres=(Serial.available()))>0){
lcd.clear(); // Borra pantalla
// Esto por si vinieran varios caracteres.
for (int i=0; i<caracteres; i++){
guardados[i]=char(Serial.read()); 
}
} 
guardados[caracteres]=0; // Fin de caracteres.
palabra = (char*)guardados;
lcd.setCursor(0,0); // Inicio del cursor
lcd.print(palabra); 
  delay(500); 
    if (palabra == "enciende"){
    digitalWrite(LED0, HIGH); 
    }
    if (palabra == "apaga"){
    digitalWrite(LED0, LOW); 
    }
}
}

___________________________________________________

- App Inventor.
___________________________________________________________
9J.- Android envía un mensaje al NodeMCU por Bluetooh.

p9J_palabra_LED_Nodemcu.aia

- Escribimos una palabra o frase (menor de 16 caracteres) en el CampoDeTexto y la enviamos por Bluetooth al NomeMCU.

- Si escribimos la palabra enciende o apaga, se encenderá o apagará el LED.

_________________
- Diseño.

- El Intervalo del Reloj lo ponemos a 100 milisegundos.

_________________
- Bloques.

_________________
-
Comentarios.

- Es importante el delay en el código para dar tiempo a escribir en la LCD.

- Puedes poner botones y varios LED, cada botón envía una letra, según la letra enviada se encenderá/apagará un LED

______________________________________________________________

10.- Otro código más sencillo.

- En vez del código anterior del NodeMcu, podemos poner este otro.

Código
Nodemcu_mensaje_LED_BT_LCD.ino

// Juan Antonio Villalpando
// juana1991@yahoo.com
// kio4.com

#include <Wire.h>
#include <LiquidCrystal_I2C.h>    
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
// LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
int LED0 = 0; // Es el terminal D3 de NodeMCU

char caracter;
String palabra;

void setup()
{
  lcd.begin(16,2);// Columnas y filas de LCD
  Serial.begin(9600);
  pinMode(LED0, OUTPUT);
}

void loop() {

  if(Serial.available())
  {
    caracter = Serial.read();  
    palabra = palabra + caracter; 

if (caracter == '*') {
      
    Serial.println(palabra);
    palabra = palabra.substring(0, palabra.length() - 1); // Quita último caracter *      

    // LCD
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print(palabra);

    delay(400);
    // LED0
     if (palabra == "enciende"){digitalWrite(LED0, HIGH); }
     if (palabra == "apaga"){digitalWrite(LED0, LOW); }
     palabra = "";
  }
      }
}
 
 

- Este código irá recibiendo caracteres hasta que llegue el asterisco, este indica fin del mensaje.

- Cuando termine el mensaje se muestra en la LCD y se actúa sobre el LED0.

- Para ello debemos hacer una pequeña modificación en el código de App Inventor:

- En la aplicación p9J_palabra_LED_Nodemcu.aia

- cambiar esto, es decir que la palabra enviada siempre termine en asterisco *

- Si queremos una contestación, un retorno de la información, estudiamos el código visto en:

http://kio4.com/appinventor/9J2A_bluetooth_palabras_LCD.htm

- Se haría mediante un Serial.print, y un Reloj en App Inventor

______________________________________________________

________________________________

 

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información