IMP cuisinier : thermomètre de barbecue Internet-Connected (7 / 7 étapes)

Étape 7: Une présentation détaillée de comment cela fonctionne : Code de l’Agent

Le firmware de l’agent est beaucoup plus long, mais comme vous verrez dans une seconde, c’est parce qu’il contient deux gros morceaux de code que faire des travaux plus généraux.

La première chose que l’agent fait lors du démarrage est de vérifier et voir si elle est juste redémarré et connaît déjà l’ID de périphérique. Chaque fois que l’agent doit aller et obtenir l’ID de périphérique de l’appareil, il l’enregistre dans le nuage d’imp avec server.save() dès qu’il obtient la mise à jour. De cette façon, si jamais l’agent redémarre, il peut saisir l’ID tout de suite sans même avoir à vérifier avec le périphérique en appelant server.load() :

Juste en dessous de cela, nous nous heurtons à une fonction géante avec une très grande chaîne multiligne dedans. Cette fonction est appelée prepWebpage, et il ne fait que concaténer plusieurs chaînes ensemble. Ces chaînes juste pour arriver à un site web. Ce site web est l’interface web pour le thermomètre BBQ, et c’est ce que vous voyez lorsque vous demandez l’agentURL dans un navigateur. Parce que l’agent a la possibilité de mettre en place son propre gestionnaire HTTP, il peut répondre à certaines demandes en servant cette chaîne très longue - fondamentalement, l’agent agit comme un serveur web minuscule. Le site web inclut même un simple javascript qui s’exécute sur l’ordinateur client.

Après le site Web, l’agent a une fonction qui conserve la trace de l’activité sur l’appareil et utilise une minuterie et quelques simples heuristiques pour déterminer si l’appareil doit aller pour dormir pour économiser la batterie.

Cela fonctionne comme le sable de coulée dans le dessus d’un sablier. Si la température change rapidement, l’agent ajoute plus de sable en haut du sablier, donnant l’appareil plus de temps pour travailler. Si le taux de variation de température ralentit, l’agent cesse d’ajout de sable, le sablier s’écoule par la suite, et l’agent indique à l’appareil d’aller pour dormir. Si la température dépasse un certain seuil, l’agent suppose que l’appareil est toujours impliqué dans faire cuire quelque chose et attend que la température baisse à nouveau avant d’envoyer l’ordre de sommeil.

Après cela, il y a un gros morceau de code dédié à travailler avec Xively. Il s’agit d’une classe générique, et vous pouvez apprendre plus à ce sujet, ainsi que d’autres classes pour travailler avec d’autres services web, de regarder par l’imp électrique page github webservices.

Ensuite, nous voyons l’agent d’inscription des gestionnaires d’événements pour les événements de l’appareil, tout comme nous l’avons vu dans le code de l’appareil. Le plus intéressant ici est le gestionnaire d’événements « temp » qui fait tout ce qu’il faut faire pour poster les nouvelles données de température à Xively et mettre à jour la fonction SLEEP :

En raison de comment cet appareil est câblé vers le haut, il en fait ne jamais déclencher l’alarme de batterie faible ; Cela a été inclus pour un dispositif similaire qui a été alimenté hors d’une paire de piles AA au lithium sans un régulateur entre les batteries et l’imp, donc l’imp pourrait se pencher directement sur la tension de la batterie. Le code a été laissé en juste au cas où quelqu'un obtient intrépide et construit l’un à l’intérieur du boîtier original !

Au bas du firmware agent, nous voyons une des parties plus importantes de l’agent : le gestionnaire de demandes HTTP. Ce gestionnaire d’analyse les requêtes HTTP entrantes et définit comment l’agent doit répondre.

La plupart des demandes à l’agent vont être demandes juste pour la page web, afin que les requêtes sans paramètres supplémentaires obtenir juste la page web comme une réponse. Il y a également un « crochet » ici pour des services extérieurs de l’imp d’aller pour dormir, de dire qui n’utilise pas la page web.

Enfin, l’agent instancie un objet de Client de Xively qu’il utilisera lors de l’exécution pour publier des données dans le flux de Xively, demande à l’ID de périphérique si nécessaire et démarre la minuterie d’endormissement :

Et c’est tout là est à lui !

Bon appetit chance et bon:)

Articles Liés

TempBug : thermomètre de connecté à internet

TempBug : thermomètre de connecté à internet

En janvier dernier, nous avons eu quelques problèmes avec la chaleur dans mon bureau. Plus précisément, le genre de trouble dans lequel la chaleur n'est pas de suite, vous tournez vers le haut et il toujours pas de suite. Cela se poursuivit pendant p
Horloge avec thermomètre en utilisant Arduino, i2c 16 x 2 lcd, capteur RTC DS1307 et DHT11.

Horloge avec thermomètre en utilisant Arduino, i2c 16 x 2 lcd, capteur RTC DS1307 et DHT11.

Hello! Il a été un moment j'ai n'a pas posté quelque chose sur Instructables, mais maintenant que j'ai fait un projet simple que j'ai vu sur internet sous diverses formes. J'ai réussi à générer un code à l'aide d'autres codes que j'ai trouvé sur inte
Linkit un thermomètre à viande de Wifi

Linkit un thermomètre à viande de Wifi

Il y a bien un gros oiseau dans le réfrigérateur et cassé mon thermomètre à lecture à distance. Je suppose que son temps pour ma spécialité, quelque chose d'overkill. Que diriez-vous un thermomètre de wifi que je peux contrôler sur mon iphone.Ceci ob
Arduino WiFi thermomètre (avec page web) - Arduino sans fil

Arduino WiFi thermomètre (avec page web) - Arduino sans fil

Ce dont vous avez besoinUne carte Arduino (n'importe quelle plaque compatible est OK).LM-35 (pour utiliser avec le fichier fourni, vous pouvez utiliser DS18B20 mais vous devez convertir le code source respectivement).Module de HLK-RM04 WiFi de routeu
Un infrarouge PICAXE « journalisation » thermomètre

Un infrarouge PICAXE « journalisation » thermomètre

21 juillet Edit - voir comment j'ai utilisé le thermomètre IR dans mes expériences de Laser!Intro :Vous avez déjà un de ces thermomètres IR très utiles... il suffit de pointer, tirer, et lire la température.  Ils ne sont pas grandes ?  J'ai deux.Mais
PICAXE pichet thermomètre parfait

PICAXE pichet thermomètre parfait

Parfois, stupide semble fonctionner.  Je finissais le logiciel pour un thermomètre numérique avec toutes les pièces sur l'établi, et il m'est apparu que je n'avais même pas eu toute considération d'une enceinte.  C'est inhabituel pour moi puisque je
Éblouissante signe de collecte de fonds : 140 watts de Internet connecté LEDs

Éblouissante signe de collecte de fonds : 140 watts de Internet connecté LEDs

Construire ce signe connecté internet pour aider à amasser des fonds pour une association caritative locale !Découvrez la puissance élevée LED, Arduino, Raspberry Pi & python, radios numériques, câblage & soudure et une petite menuiserie.Je l'espè
D’augmenter la distance d’un thermomètre sans fil de BBQ (rev. 2)

D’augmenter la distance d’un thermomètre sans fil de BBQ (rev. 2)

ce Instructable décrira un processus très simple pour augmenter la distance d'un thermomètre sans fil de BBQ.Alors que le processus devrait être similaire pour presque tous les thermomètres de RF, le modèle spécifique je suis piratage est un "Maveric
Thermomètre de l’Arduino + LCD I2C

Thermomètre de l’Arduino + LCD I2C

J'ai décidé d'offrir un thermomètre drôle de concept Arduino dans le cas où c'est au milieu de la nuit, les pharmacies ne fonctionnent pas, vous ne vous sentez pas bien et vous voulez vérifier la température de votre corps. Si vous avez Arduino à vos
Thermomètre en interrupteur mural

Thermomètre en interrupteur mural

Projet simpleIl s'agit d'un projet très simple sans n'importe quel microprocesseur.J'avais besoin d'indiquer et de surveiller l'humidité, la température dans certaines chambres de la maison familiale. Pour trouver le bon endroit pour installer le the
Sans fil thermomètre Nixie

Sans fil thermomètre Nixie

l'objectif de ce projet était d'apprendre à utiliser les différentes fonctions de l'atmega :• Raccordement de deux Atmegas avec une connexion Wi-Fi• Chaque Atmega a un thermomètre (DS1621) pour lire la température réelle• Utiliser le sommeil Mode d'u
Smart personnel thermomètre avec Arduino

Smart personnel thermomètre avec Arduino

Cette instructable est préparée dans le cadre de notre mission pour TfCD (technique au service du Concept Design) cours de TU Delft. Ce instructable qui suit est préparé par :Bo Koperdraat : 4209567Karthik mandon : 4501578Dans ce instructable vous ap
Thermomètre de vêtements TfCD

Thermomètre de vêtements TfCD

Ce thermomètre arduino donne des informations en couleur sur la température ambiante, accompagné d'une indication de combien vêtements tu devrait porter. Ce thermomètre mesure la température ambiante avec une thermistance et donne les informations av
Facile-à-construire digital thermomètre et hygromètre pour usage à l’intérieur

Facile-à-construire digital thermomètre et hygromètre pour usage à l’intérieur

IntroductionNiveau de température et d'humidité intérieur sont les deux principaux paramètres qui déterminent le niveau de confort pour les occupants de la chambre. Dans les principaux lieux de travail, ces paramètres sont contrôlés et maintenus à de