App inventor 2 en español
Cómo programar los teléfonos móviles con Android.
Bluetooth, Arduino y App inventor 2 - Juan Antonio Villalpando
-- Tutorial de iniciación de App Inventor 2 en español --
Volver al índice del tutorial
___________________________
9A02.- Bluetooth. Una pantalla para conectar. Otra para ver datos. Dos pantallas.
p9A02_bluetooth_dospantallas.aia
- Un ejemplo parecido lo vimos en: 299H_extension_GraficoDinamico.htm
- Se trata de que tenemos dos pantallas. En la Screen1 realizamos la conexión por Bluetooth y recibimos los datos del Arduino. Estos datos se van guardando en una TinyDB.
- En la Screen2 visualizamos los datos que contiene la TinyDB.
- Podemos pasar de la Screen1 a la Screen2 y viceversa, y visualizar los datos recibidos de Arduino.
___________________________
- Conexión y código Arduino.
|
// Juan A. Villalpando
// http://kio4.com/appinventor/9A02_Bluetooth_Dos_pantallas.htm
#include <SoftwareSerial.h>
SoftwareSerial BT(2,3);
int number = 0;
String numberS = "0";
char caracter = '0';
void setup(){
BT.begin(9600);
Serial.begin(9600);
}
void loop(){
// Send number every 800 ms.
delay(800);
number = number + 1;
if(number == 1000){number = 0;}
Serial.println(number);
numberS = (String) number + '\n';
BT.write(numberS.c_str());
// If receive char 'r' by BT, restart number.
if(BT.available()) {
caracter = BT.read();
Serial.println(caracter);
if(caracter == 'r'){number = 0;}
}
}
|
- El código envía por BT números cada 800 ms 1 2 3 4 5 6 7 8 9...
- Si recibe desde la aplicación el caracter 'r', reinicia, es decir vuelve a contar desde 0.
- Podemos ver los números en el Monitor Serie.
_______________________________________________
- Funcionamiento.
- Conectamos Bluetooth y seguidamente recibimos los números de Arduino 1 2 3 4 5 6 7 8 9...
- Esos números se van guardando en una TinyDB con la misma etiqueta: ReceiveText
- Se van guardando según van llegando y separados por coma: 1,2,3,4,5,6,7,8,9,...
- Se va uniendo el nuevo que se Recibe con los que ya había, separado por coma.
- Se muestra toda la etiqueta ReceiveText en etq_receive.
- Si escribimos la letra 'r' en el Casillero y la enviamos por BT, el código del Arduino reinicia la cuenta, es decir comienza a contar desde 0.
- Pulsando el Botón "Open Screen2", podemos abrir la Screen2 (cuando se abre la Screen2, la Screen1 permanece funcionando).
- Veamos la Screen2:
- Mediante el Temporizador vamos observando todo el contenido de la TinyDB. La TinyDB de la Screen1 y de la Screen2 es la misma.
- Podemos Cerrar la ventana mediante el Botón: "Close this Screen".
- Si pulsamos el Botón: "Send 'r' (by Screen1)", se cierra la pantalla y además envía el caracter 'r' a la Screen1.
- Cuando la Screen1 recibe ese caracter 'r', envía la 'r' al Arduino por BT para que reinicie, y además vuelve a abrir la Screen2.
_______________________________________________
- Diseño Screen1.
_______________________________________________
- Bloques Screen1.
_______________________________________________
- Diseño Screen2.
_______________________________________________
- Bloques Screen2.
__________________________________
|