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

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

Dans le cas où vous êtes curieux : prenons regarder de plus près ce qui rend le thermomètre barbecue fonctionne !

Commençons par le code de l’appareil. Il est court et simple. Il a deux emplois : collecter des relevés de température et de répondre aux touches.

Jetez un oeil à la définition de fonction pour getTemp().

Cette fonction collecte les relevés de température à intervalles réguliers. L’intervalle est défini par une constante, intervalle, en haut du fichier. Fait le premier getTemp chose est programmer elle-même d’exécuter à nouveau dans l’intervalle (secondes), en appelant imp.wakeup (intervalle, getTemp). Il planifie un rappel; l’imp peut continuer à faire d’autres choses, et dans l’intervalle en secondes, le système d’exploitation va rappeler et demandez-nous de réexécuter getTemp.

Après ordonnancement lui-même de réexécuter, getTemp lit la tension dans le milieu de la cloison de la thermistance, puis utilise une simple ajustement pour estimer la température de la courbe de le 2e ordre. Les coefficients pour l’ajustement de la courbe sont stockés en tant que constantes dans la partie supérieure du fichier (si vous regardez, vous remarquerez que nous utilisons en fait juste une ajustement linéaire de la courbe ! Mais l’ajustement de la 2e ordre est là si vous voulez l’essayer).

Ensuite, nous avons une fonction qui indique l’imp quoi faire quand il est temps d’aller pour dormir :

Cette fonction fait deux choses : tout d’abord, il configure Pin1 comme une épingle de réactivation, afin que si le bouton est enfoncé il vous réveille l’imp de sommeil profond. Deuxièmement, il raconte l’imp d’aller au sommeil profond pour tant qu’il est permis (MAXSLEEP est définie 86396 secondes en haut du fichier, il s’agit de 1 jour à moins de 4 secondes. L’appel à server.sleepfor() avertit le serveur que l’appareil se rendra pour dormir, si l’agent n’auront pas à attendre pour l’imp de disparaissent avant il réalise ce qui s’est passé.

Au-dessous, il y a une fonction de Gestionnaire d’événements de presse bouton :

Il s’agit d’une fonction intéressante. Il s’avère que, lorsque vous appuyez sur la touche du tout, l’imp appelle cette fonction tout de suite. L’imp n’attendez plusieurs secondes à se pour endormir, car vous pourriez avoir pensé de comment fonctionne le thermomètre. Au lieu de cela, l’imp appelle cette fonction immédiatement et attend de voir si l’utilisateur maintient la touche enfoncée pendant trois secondes. Si vous le faites, il s’endort. Si vous n’avez pas, il quitte la fonction et remonte à faire ce qu’il faisait avant.

Ensuite, nous voyons quelques rappels étant inscrits pour les événementsde l’agent :

Le premier gestionnaire d’ici permet à l’agent de dire à l’appareil d’aller pour dormir. Lorsque l’appareil est en marche, le maintient de l’agent un coup de œil combien température changer il est voyant et ajuste la quantité de temps, qu'il laissera l’appareil reste éveillé avant de qualifier cet événement et raconter l’appareil d’aller pour dormir pour économiser la batterie.

Le deuxième gestionnaire n’est utilisé que dans des occasions spéciales. L’agent ne sait automatiquement les ID de périphérique de l’appareil, mais elle en a besoin afin de mettre les noms de canal pour envoyer des données à Xively. Normalement, l’agent et l’appareil démarre ensemble lors du démarrage de l’agent pour la première fois, après quoi l’agent reste allumé. Cependant, parfois l’agent redémarre par lui-même, par exemple, si vous appuyez sur nouveau code à elle. Dans ce cas, l’agent a besoin d’un moyen de demander à l’appareil ce qui est son ID de périphérique - cette fonction lui donne un moyen de le faire.

Après cela, nous avons finis avec les définitions, et nous atteignons le point où le fonctionnement d’exécution proprement dit commencera lors du démarrage de l’appareil. La première chose que l’imp fait quand il démarre c’est déterminer pourquoi elle démarré. Si c’était à cause d’un réveil Pin1, l’imp fait la même chose pour cela, si vous maintenez le bouton pour l’envoyer dormir - il reste ici et attend de voir si vous maintenez le bouton. Si vous relâchez avant les 3 secondes délai d’attente, l’imp va retourner directement à dormir avant même, il se connecte à internet.

Enfin, nous instancions les objets que nous devons faire notre travail et vérifier avec l’agent, puis commencer la lecture de la température pour commencer.

Nous allons jeter un coup d’oeil sur le code de l’agent dans l’étape suivante, si vous êtes intéressé.

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