Étape 3: Android contrôlée lumières et pouvoir--porte de garage
Enfin Voici le code qui combine une porte de garage avec le contrôle des feux avant. Il allie l' Android contrôlée porte de Garage, qui utilise le relais 1, le code de phares avant de la partie 2).
C’est le dernier exemple de code. (Note : le code a été mis à jour 21 mars 2013 pour améliorer reliablity minuterie, voir Comment écrire les Timings et les retards dans l’Arduino pour plus de détails)
pfodApp écran de Debug (normalement pas vu par les utilisateurs)
Les autres captures de 3 écran afficher l’écran de debug pfodApp. L’utilisateur ne voit pas normalement de cet écran. Il est accessible depuis le bouton menu de la mobile. Cet écran de debug pfodApp montre toute la communication entre les pfodApp et les pfodDevice. Messages avec < sont transmis par le pfodApp, les messages avec > sont reçus par la pfodApp de la pfodDevice.
Ensuite, je vais discuter comment l' Android pfodApp affiche les États de relais et commande les relais. Tous les exemples de code ci-dessus sont complets en eux-mêmes, aucune bibliothèque n’est requise. Cependant il y a les bibliothèques disponibles pour l’analyseur de commande pfodDevice si vous voulez les utiliser. Exemples d’utilisation de ces bibliothèques sont donnés dans la Porte de Garage à distance et à L’écran LCD/LED télécommande contrôlée. Arduino the pfod bibliothèques sont disponibles ici.
Codage de l’Arduino pour être un pfodDevice.
L’analyseur de commande de pfodDevice
Afin de communiquer avec le pfodApp sur votre mobile Android, l’Arduino doit être codé comme un pfodDevice. Le pfod spécification en détail quelles fonctionnalités doivent être soutenues afin d’être un pfodDevice. Comme vous vous en doutez les exigences relatives à la pfodDevice sont minimes
Le pfodDevice est tenu de:-
1. répondre à tous les messages, même ceux qui, avec un message de réponse non reconnue. Ce message de réponse peut être le message vide, {}
2. répondre à la demande de GetMainMenu, {.}, avec un menu principal ou la navigation d’entrée de haut niveau fonctionnalité ou, moins souvent, avec un des autres messages:-SingleSelectionList, MultiSelectionList, UpdateMenu StreamingRawData, StringInput, NumericInput ou les {} message vide
3. ignorer les messages dont la longueur est supérieure à 255 octets, y compris les début et fin {} octets.
4. Si la connexion est semi-duplex, puis prennent le pas sur les messages de la pfodApp vers le pfodDevice et peuvent interrompre, le streaming de données brutes provenant de le pfodDevice.
A titre d’exemple, nous allons regarder le code de pfodDevice combinée de porte de garage et de contrôle des lumières.
Le pfodDevice doit d’abord répondre au message {.} qui le pfodApp sur votre mobile Android envoie lorsqu’il se connecte. Cela demande de menu principal de la pfodDevice. Dans ce cas, nous voulons afficher 4 boutons (les menus), avec les noms des commutateurs et leur état actuel, On ou Off.
Chacun de ces boutons a une commande unique qui lui sont associée, qui n’est pas affichée à l’utilisateur. Lorsque l’utilisateur choisit cet élément de menu, la commande associée est renvoyer à la pfodDevice (Arduino Uno) doit être exécutée. Dans ce cas, les commandes '1', « 2 », « 3 » et 4' sont utilisées sur chacun des relais 4. Ainsi un message typique menu principal ressemblerait le second écran montré
Il s’agit d’une capture de l’écran de debug de la pfodAppd’écran. L’écran de debug pfodApp est accessible depuis le bouton de menu mobiles. Quand la pfodApp reliée à l’Arduino pfodDevice, la pfodApp envoyer le message de {.} de demander le menu principal de la pfodDevice. L’analyseur pfodDevice analyse la Cmd:. et le code de Adruino imprime le résultat. Le pfodApp sur le mobile Android ne tient pas compte de ce texte car il n’est pas contenu dans pfod début de message et les caractères de fin, {}. Le pfodDevice puis returnes son menu principal
{. Appuyez sur pour basculer sur off|1 / ~ GarageDoor\nOpen/Close|2 ~ avant Light\nis OFF|3 ~ OFF|4 Light\nis Garage ~ Hall Light\nisOff}
où \n commence une nouvelle ligne. Le {. indique que ce message doit s’afficher comme une liste d’éléments de menu, boutons. Les 4 prochaines sections entre || définir chaque élément de menu. Chaque élément de menu est constitué de la commande ~ afficher du texte. Voir le pfodSpecification pour une description détaillée de ce message de menu. Première partie est la commande à envoyer à l’époque où cette option est sélectionnée, puis le texte à afficher. Ainsi, par exemple 2 ~ Light\nis Front OFF définit 2 comme la commande de ce bouton de menu et de définir le texte comme
Eclairage avant
est éteint
Lorsque l’utilisateur sélectionne cet élément de menu, le pfodApp envoyer la commande associée 2, dans le message {2}, pour le pfodDevice. Le pfodDevice analyseurs analyseur de commande la commande et active le relais et lui renvoie un menu mise à jour pour afficher à l’utilisateur, montrant qu’avant l'est maintenant allumé.
Lorsque la porte de Garage ouverture/fermeture touche le pfodApp envoie le {1} msg à la pfodDevice, qui parse le message et les impulsions, le relais connecté à la porte de garage bouton-poussoir pour ouvrir/fermer la porte.
Notez dans ce cas que le code Arduino imprime quand il commence et termine à la pulsation du relais. Encore une fois la pfodApp ignore ce texte supplémentaire car il n’est pas contenue dans le début du message pfod et fin des caractères {}. Voir Android contrôlée porte de Garage pour un plus de détails sur le code d’impulsion de porte de Garage.