Paso 5: Código App Inventor - detalles
Los componentes claves de la aplicación de Arduino Bluetooth conexión son:
- un ListPicker para los dispositivos Bluetooth emparejado (ListPicker1)
- 3 botones, cada uno controlando el correspondiente color tablero LED (RedLedBtn, GreenLedBtn, YellowLedBtn)
- un botón de enviar el comando STATUS (GetStatusBtn)
- un botón con un cuadro de texto asociado para establecer el intervalo de informe de estado (SecondsBtn y SecondsTxBx)
- una etiqueta de estado multilínea enorme mostrando la información proveniente de la placa de Arduino (estado)
- el objeto de cliente Bluetooth mencionado en el paso anterior (BluetoothClient1)
- un componente de reloj que se dispara una interrupción cada segundo cuando se conecta el cliente (Clock1)
Lo que sigue es una descripción de código de aplicación basada en las imágenes anteriores.
Figura 1
Variables de estado del LED y el intervalo se establece e inicializadas cuando se abre la pantalla de la aplicación.
Figura 2
El objeto de ListPicker de conexión ListPicker1 trabaja con dos métodos:
- una lista de dispositivos Bluetooth (pares) es preparada y mostró al usuario
- Cuando el usuario selecciona un dispositivo, se llama al método Connect del objeto cliente Bluetooth para iniciar la conexión: Si tiene éxito, esto se muestra en la etiqueta adecuada y la interrupción de reloj se activa por lo que pueden recibir mensajes desde el dispositivo.
Figura 3
Aquí mostramos cómo enviar comandos a la placa Arduino.
Cuando se presiona el GetStatusBtn, se invoca el método SendText del objeto cliente Bluetooth y se emite el comando de texto: nota el "\n" añadido al final de la cadena de "Estado de CMD" para que la función serialEvent() en el sketch de Arduino es capaz de saber cuando el mensaje es largo.
El código para encender un LED o apagado es un poco más complejo:
- Utilizamos la variable correspondiente al seguimiento de su estado actual: Si está en, queremos apagarlo y la otra manera alrededor; así, en primer lugar, nosotros cambiar la variable como booleano
- luego actualizamos la etiqueta del botón con el nuevo estado
- por último, se llama BluetoothClient1.SendText para transmitir el comando.
El código para los otros comandos no se muestra ya que es muy similar.
Figura 4
Cada vez que se activa el temporizador Clock1, esta rutina se ejecuta: es el equivalente de serialEvent() de Arduino; Si hay bytes recibidos por BluetoothClient1, se copian en la etiqueta de estado. Tenga en cuenta que el objeto cliente Bluetooth tiene un método de devolver la longitud del mensaje se ha recibido.