Étape 10 : Ajouter le code principal pour le firmware
< code Commencez >
Définissez les valeurs de constante pour l’équation de Steinhart-Hart comme
fournie par l’application de
http://www.Vishay.com/Resistors-non-linear/NTC-Curve-List/
constA local = 0.003354016 ; A1
constB local = 0.00025698501802 ; B1
local constC = 0.0000026201306709 ; C1
constD local = 0.000000063830907998 ; D1
Instancier le capteur avec les valeurs requises
local tempSensor = ThermistorCelcius (2, 10000, 4700, constA, constB, constC, constD, 0) ;
Créer le port de sortie pour envoyer les relevés de température
sortie locale = OutputPort (« Temp, Volts, emplacement », "table") ;
itération locale = 0 ; utilisé pour compter le nombre d’échantillons prélevés
tempval local = 0 ; stocker la valeur cumulée moyenne pour l’ensemble
Capturer et enregistrer une température toutes les 30 s
fonction capture()
{
Réglez le minuteur pour la capture suivante
en temps de 0,1 seconde, faire la « capture » de fonction
IMP.Wakeup (0.1, capture) ;
La valeur de la production après le prélèvement d’échantillons de 50 et une moyenne de
Obtenir un relevé de température à l’aide de la classe ci-dessus
température locale = tempSensor.readTemp() ;
Si nous avons 50 échantillons, réinitialisez le compteur et la sortie
valeur moyenne
Si (itération == 50)
{
itération = 0 ;
Créez une table avec les paires de clé : valeur à envoyer
dTable locale = {}
« temp »: tempval/50,
« volt »: hardware.voltage(),
« emplacement »: "au-dessus de commutateur de central"
}
output.Set(dTable) ;
Server.Show (format ("Sent:" temp':%3.1f,'volt':%3.2f ", tempval/50, hardware.voltage())) ;
tempVal = 0 ;
}
else / / sinon continuer d’accumuler des échantillons
{
itération ++ ;
tempVal = tempval + température ;
}
}
Enregistrer avec le serveur
IMP.configure (« Wireless thermistance », [], [sortie]) ;
Commencez à capturer la température
capture() ;
Fin du code.
fin de < code >