Étape 5: logiciels
Le lien du logiciel est répertorié ci-dessous. Alors qu’il est visé pour le 16F688, il est facilement porté à d’autres versions de la photo. Assurez-vous juste que vous choisissez celui qui a la capacité de port série asynchrone. Vous devrez également modifier la ligne qui identifie la version PIC (liste =) et le fichier INCLUDE, mais ceux sont les changements intuitives. La ligne __CONFIG devez également peaufiner tout simplement parce qu’un ou deux des étiquettes utilisées soient orthographiés différemment dans certains des fichiers INCLUDE.
Le logiciel imite fondamentalement les commandes que nous avons envoyé manuellement depuis le programme terminal. Aux endroits appropriés il attend les réponses attendues de la ESP8266 avant de donner des ordres. Les commandes envoyées et les réponses attendues peut-être besoin de changer si l’ensemble de la commande AT est mis à jour dans les versions plus récentes de la ESP8266. Lors de l’envoi sur les chaînes de commande et le message factice, que le commandant de bord utilise un adressage indirect des emplacements de RAM dans les banques de 0 et 1. Le code pour initialiser ces lieux de mémoire se trouve à la fin de la liste. Malheureusement, ces photos anciennes sont limités dans leurs capacités d’adressage indirectes, donc nous ne pouvons pas juste incorporer les chaînes en mémoire Flash, comme nous l’avons fait pour l’affichage graphique LCD dans l’épisode 13. Ce projet a utilisé une photo plus récente de 16F1847 et il serait assez facile de ce programme pour ce nouveau PIC de port si vous êtes si incliné.
Afin de pouvoir utiliser un commun systématique d’envoyer les chaînes nous pourrions ont adopté une longueur de chaîne à la routine ou il suffit d’ajouter un caractère de "fin-de-chaîne" à chaque chaîne. La deuxième option, c’est ce que j’ai choisi et pour simplifier encore, j’ai utilisé la valeur numérique 0. Qui permet au code charger la valeur suivante et puis vérifier si le chargement causé l’indicateur de zéro soit défini dans le statut s’inscrire. La longueur de chaîne définie inclure un espace pour un retour chariot et un saut de ligne pour chaque commande AT et l’identificateur de fin-de-chaîne pour toutes les sorties. Notez que les données envoyées après l’envoi de la commande CIPSEND ne nécessite pas un retour chariot ou saut de ligne.
Il est intéressant de noter que le ESP8266 envoie en retour une grande quantité de données que nous avons vraiment ne se soucient. Pour cette raison, avoir le code de réception série comme un gestionnaire d’interruption ne serait pas une bonne façon de faire. Le problème, cependant, est que juste d’interrogation pour les réponses provoque le tampon de récepteur à déborder. C’est pourquoi le gestionnaire « Overflow » dans le code est très important. Il permet le PIC de simplement éclaircir le trop-plein à sa guise et d’attendre pour les réponses attendues. Dans les listes précédentes où je n’avais pas prévu de débordements, j’ai utilisé la méthode décrite dans la fiche technique de Désactivation/activation du port série. Qui n’a pas fonctionné correctement dans ce programme et je soupçonne il avait quelque chose à voir avec le fait que l’émetteur n’était ne peut-être pas terminée avant le débordement a été géré. À cause de cela, j’ai changé pour la deuxième méthode de compensation de l’indicateur de débordement où juste le récepteur série est désactivé/activé.
La capture d’écran des messages PIC pour le programme de terminal et à la page Web est indiquée au dessus. Notez que le message « Hello World » envoyé est sur deux lignes. C’est parce que le message a une commande HTML incluse (< br >) qui effectue une nouvelle ligne. C’est important de souligner parce que la plupart de n’importe quelle commande HTML peut être inclus dans tout ce que vous envoyez à la page Web. Alors que le message dans cet exemple est statique, vous pourriez rendre dynamique à vos besoins. Simplement faire un appel à votre propre message création de routine dans la routine « Send_Data ». Comme mentionné dans la section d’ouverture vous avez pu lire une sonde de température, convertir la valeur ASCII et puis sortie les résultats chaque fois que le ESP8266 reçoit une page Web connect demande. Pour des applications telles qu’un rafraîchissement de la page Web provoquera le PIC d’envoyer les nouvelles données donc vous ne devez fermez, puis rouvrez la page Web.
Eh bien, c’est tout pour l’épisode 18 « Fun avec PIC Assemblée ». Restez à l’écoute des autres épisodes.