TempBug : thermomètre de connecté à internet (7 / 7 étapes)

Étape 7: Creuser dans le Code

IMP firmwares sont rédigés dans un langage orienté objet appelé écureuil, qui ressemble et se sent un peu comme javascript. Écureuil s’exécute dans une machine virtuelle sur le dessus de l' imp OS à l’intérieur de l’imp, erreurs d’exécution ne sera pas frapper votre appareil en mode hors connexion, et vous avez accès à un grand nombre de fonctionnalités intéressantes axées sur les OS, comme dans la mémoire tampon d’entrée périodique et simple une ligne API pour définir GPIO ou communiquer avec les périphériques.

Pour jeter un oeil à tous les choses que vous pouvez faire dans votre firmware imp, découvrez l’imp électrique QAnywhere et imp électrique travaillé page d’exemples. Pour voir quelles broches peuvent faire quoi, Découvrez la imp broche mux.

Notre code ici est assez simple. Voici notre procédure d’exploitation de base :

  • Définissez des constantes
  • Définissez une classe pour notre capteur de température
  • Instancier notre classe pour créer un objet de capteur de température
  • Lire le capteur de température
  • L’agent envoie le datapoint
  • Annexe nous réveiller un peu et le faire tout de nouveau

L’une des constantes sur les lignes 8 et 9 regarder un peu inquiétants, mais ils sont simples. Ce sont les paramètres pour votre thermistance - vous pouvez les trouver sur la feuille de données pour la thermistance que vous utilisez. Si vous utilisez la thermistance, j’ai lié au plus tôt, vous pouvez même garder les paramètres déjà définis ici.

Lignes 20 à 71 sont une définition de classe - c’est essentiellement un ensemble d’instructions pour savoir comment faire différentes choses importantes avec une thermistance, comme lire la température. Cela vient directement de github - c’est une pièce agréable et modulaire du code afin qu’elle puisse facilement être réutilisée.

Après cela, nous avons juste besoin de définir notre logique de haut niveau. Sur les lignes de 79 à 83, nous configurons les deux goupilles que nous utilisons. Me souviens de quand nous avons construit l’appareil - une des broches est une tigepermettent , qui permettra aux courant de circuler à travers la thermistance quand il est bas. L’autre axe est notre broche d’entrée analogique, dont nous allons utiliser pour lire la tension dans l’ensemble de la thermistance.

Sur la ligne 86, nous demandons à notre définition de classe de plus tôt pour créer un objet de thermistance. Cet objet prend les constantes que nous avons mis plus tôt et a des méthodes qui permettent de lire la température en degrés Celsius ou Fahrenheit.

Les lignes 88 à 96 sont où la magie opère - nous activer le capteur, effectuer une lecture, envoyez-le à l’agent et désactiver le capteur à nouveau pour économiser la batterie.

Et enfin, programmer un réveil en quinze minutes. Nous irons au sommeil profond pendant ce temps, économiser de la batterie :

C’est le microprogramme du périphérique - nous allons jeter un oeil à l' agent. Vous avez déjà vu la part de l’agent - nous avons mis les lignes Sparkfun clé publique et clé privée 6 et 7 de l’agent plus tôt. Au-dessous, nous avons une autre définition de classe ; celui-ci définit les méthodes permettant d’interagir avec un flux de données Sparkfun.

Lignes 62 à 65 ans sont un peu vraiment intéressant de code - il s’agit de l’hameçon utilisé par l’agent pour recevoir les nouvelles données sur la température de l’appareil. Cela se fait en inscrivant un agent « rappel » avec agent.on. Cela dit, « lorsque l’appareil vous envoie un événement appelé « temp », appeler la fonction suivante avec les données marquées avec cette étiquette ». Retour à ligne 95 du micrologiciel, nous constatons que nous avons envoyé les données indiquées « temp » avec une fonction appelée « agent.send ». C’est où que les données sont allés !

Enfin, nous voyons l’agent d’accomplir deux choses quand il commence tout d’abord en cours d’exécution. Le premier : il envoie un message de journal pour nous faire savoir qu’elle a commencé et qu’il est prêt à obtenir des données. Deuxièmement, il instancie un objet de flux de données Sparkfun avec la classe nous avons défini précédemment, nous laisser utiliser les méthodes de ces classes pour envoyer des données vers Sparkfun comme elle vient.

L’agent ne pas redémarrer ou dormir ; Il commence la première fois, l’appareil démarre avec ce modèle et continue de s’exécuter pour toujours, chaque datapoint nouvelle de manutention lorsqu’il arrive en appelant le rappel « device.on ». C’est le cerveau de l’appareil dans le nuage !

C’est le firmware ! Profitez de votre nouveau thermomètre connecté à Internet.

Articles Liés

IMP cuisinier : thermomètre de barbecue Internet-Connected

IMP cuisinier : thermomètre de barbecue Internet-Connected

lorsque j'étais enfant, nous faire cuire nos vacances Turquie ou rôti avec un de ces thermomètres peu de pop-up qui vous juste coller dans l'oiseau, qui s'ouvre (sans doute) lorsque l'oiseau est terminé ou au moins sécuritaire de le consommer. Nous a
Arduino Nano: À l’aide de DS1820/DS18S20 Maxim un fil thermomètre sonde Module

Arduino Nano: À l’aide de DS1820/DS18S20 Maxim un fil thermomètre sonde Module

J'ai reçu beaucoup de demandes pour le tutoriel de thermomètre OneWire Maxim DS1820/DS18S20 , alors voici le premier telle Instructable.Dans le suivant Instructables, je démontrerai comment travailler avec plusieurs thermomètres connectés à la broche
Arduino Nano : Lecture DS1820/DS18S20 Maxim un fil thermomètre adresse avec Visuino

Arduino Nano : Lecture DS1820/DS18S20 Maxim un fil thermomètre adresse avec Visuino

OneWire Maxim DS1820 DS18S20 / / DS18B20 sont des thermomètres très populaires et pour une bonne raison. Plusieurs thermomètres peuvent être connectés et même propulsés par seulement 2 fils. J'ai déjà posté Instructable sur comment se connecter et li
Arduino Nano : Lire plusieurs DS1820/DS18S20 Maxim un fil thermomètres avec Visuino

Arduino Nano : Lire plusieurs DS1820/DS18S20 Maxim un fil thermomètres avec Visuino

Une des raisons pour lesquelles les Thermomètres DS18B20 OneWire Maxim DS1820 DS18S20 / / si populaire est que plusieurs thermomètres peuvent être connectés et même propulsés par seulement 2 fils. J'ai déjà posté Instructables sur comment se connecte
Dispositif d’impression : l’imprimante thermique de Imp électrique, sans fil, connecté à internet

Dispositif d’impression : l’imprimante thermique de Imp électrique, sans fil, connecté à internet

imprimantes thermiques ont obtenu (encore) très populaires dans les derniers mois ; beaucoup de gens semble être tout à fait intéressé à avoir des infos pertinentes sautent vers le haut sur une petite bobine de papier thermique au lieu de dans les al
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
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
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