Paso 3: Android controla luces y energía--abrepuertas de garaje
Finalmente aquí está el código que combina un abridor de puerta de garaje con el control de las luces delanteras. Combina el Android controlado abridor de puertas de garaje, que utiliza el relé 1, con el código de luces delanteras de la parte 2).
Es el código de ejemplo final. (Nota: el código se actualizó el 21 de marzo de 2013 para mejorar la fiabilidad del contador de tiempo, ver Cómo escribir tiempos y demoras en Arduino para los detalles)
pfodApp pantalla de depuración (normalmente no son vistos por los usuarios)
Las otras capturas de 3 pantalla Mostrar la pantalla de depuración pfodApp. El usuario normalmente no ve esta pantalla. Se accede desde el botón de menu del móvil. Esta pantalla de depuración pfodApp muestra toda la comunicación entre el pfodApp y pfodDevice. Mensajes con < son enviado por la pfodApp, mensajes con > son recibidos por el pfodApp de la pfodDevice.
A continuación voy a comentar cómo el Android pfodApp muestra los Estados del relé y controla los relés. Todos los ejemplos de código anteriores son completos en sí mismas, las bibliotecas no son necesarios. Sin embargo hay bibliotecas disponible para el analizador de comando pfodDevice si quiere usarlos. Se dan ejemplos del uso de estas bibliotecas en Garaje puerta de control remoto y Display de LCD/LED control remoto. El Arduino pfod bibliotecas están disponibles aquí.
Codificación el Arduino para ser un pfodDevice.
PfodDevice analizador de comando
Para comunicarse con el pfodApp en tu móvil Android, Arduino debe codificarse como un pfodDevice. Pfod especificación detalla Qué funcionalidad debe ser apoyado para ser un pfodDevice. Como era de esperar que son mínimos los requisitos para la pfodDevice
La pfodDevice es necesaria para:-
1. responder a todos los mensajes, incluso no reconocido unos, con un mensaje de respuesta. Este mensaje de respuesta puede ser el mensaje vacío, {}
2. responder a la petición de GetMainMenu, {.}, con un menú principal o entrada de la funcionalidad de nivel superior o, menos comúnmente, con uno de los otros mensajes de navegación:-SingleSelectionList, MultiSelectionList, UpdateMenu StreamingRawData, StringInput, NumericInput o el {mensaje}
3. ignorar mensajes cuya longitud supera los 255 bytes, incluyendo el inicio y fin {} bytes.
4. Si la conexión es half-dúplex los mensajes desde el pfodApp a la pfodDevice tienen prioridad sobre y pueden interrumpir, transmisión de datos en bruto procedentes de la pfodDevice.
Como ejemplo veremos el código pfodDevice para el abrelatas de la puerta de garaje combinado y control de las luces.
Primero el pfodDevice debe responder al mensaje {.} que pfodApp en tu móvil Andriod envía cuando se conecta. Pide menú principal de pfodDevice. En este caso queremos mostrar 4 botones (menú), con los nombres de los interruptores y su estado actual, activado o desactivado.
Cada uno de estos botones tiene un comando único asociado que no se muestra al usuario. Cuando el usuario selecciona ese elemento de menú, el comando asociado es enviar a la pfodDevice (Arduino Uno) para ser ejecutado. En este caso se utilizan los comandos '1', '2', '3' y 4' para cada uno de los 4 relés. Así que un mensaje típico menú principal sería la segunda pantalla que se muestra
Se trata de una pantalla desde la pantalla de depuración de la pfodApp. La pantalla de depuración de pfodApp es accesible desde el botón de menú de móviles. Cuando el pfodApp conectado a la pfodDevice de Arduino, el pfodApp enviar el mensaje de {.} pedir menú principal de pfodDevice. El analizador de pfodDevice analiza el Cmd:. y el código Adruino imprime el resultado. El pfodApp en el móvil Android pasa por alto este texto ya que no está contenido dentro de pfod mensaje Inicio y final caracteres, {}. El pfodDevice entonces actúa su menú principal
{. Presione para cambiar en/off|1 ~ GarageDoor\nOpen/Close|2 ~ OFF|3 Light\nis delantero ~ garaje Light\nis OFF|4 ~ Hall Light\nisOff}
donde \n inicia una nueva línea. El {. indica que este mensaje debe mostrarse como una lista de elementos de menú, botones. Las siguientes 4 secciones entre || definir cada elemento de menú. Cada elemento de menú está formado por el comando ~ Mostrar texto. Ver pfodSpecification para una descripción detallada de este mensaje de menú. Primera parte es el comando a enviar cuando se selecciona este elemento de menú y, a continuación, el texto que se muestra. Tan por ejemplo 2 ~ Light\nis frontal de establece 2 como el comando para este botón menú y ajustar el texto
Luz delantera
está apagado
Cuando el usuario selecciona este elemento del menú, la pfodApp enviar el comando asociado 2, en el mensaje {2}, a la pfodDevice. La pfodDevice el comando analizadores analizador y activa el relé y envía una carta actualizada para mostrar al usuario, mostrando que la luz frontal está ahora en.
Cuando se presiona el botón de cierre de puerta garaje el pfodApp envía el msg {1} a la pfodDevice, que analizar el mensaje y pulsos el relé conectado a la puerta de garaje pulsador para abrir/cerrar la puerta.
Nota en este caso que el código de Arduino imprime cuando comienza y termina la función del relé. Otra vez el pfodApp ignora este texto adicional ya que no está contenido en el inicio del mensaje pfod y extremo {} caracteres. Ver Android controlado abridor de puerta de garaje para unas más detalles sobre el código de pulso de puerta de garaje.