Stap 10: De belangrijkste Voeg code toe voor de firmware
< code beginnen >
De constante waarden voor de vergelijking van de Steinhart – Hart als instellen
geboden door de toepassing van
http://www.Vishay.com/Resistors-non-linear/NTC-curve-List/
lokale openen = 0.003354016; A1
lokale constB = 0.00025698501802; B1
lokale constC = 0.0000026201306709; C1
lokale constD = 0.000000063830907998; D1
Instantiëren van de sensor met de vereiste waarden
lokale tempSensor = ThermistorCelcius (2, 10000, 4700, openen, constB, constC, constD, 0);
Maken van de output-poort voor het verzenden van temperatuur lezingen
lokale uitvoer = OutputPort ("Temp, volt, locatie", "tabel");
lokale iteratie = 0; gebruikt om te tellen van het aantal genomen monsters
lokale tempval = 0; opslaan van de opgebouwde waarde voor gemiddeld
Vangen en meld u een temperatuurmetingen elke 30s
functie capture()
{
Set timer voor de volgende opname
Voer in 0,1 seconden de tijd, de functie 'capture'
Imp.wakeup (0.1, vangen);
Output de waarde na 50 monsters verzamelen en gemiddeld
Krijgen een temperatuurmeting met behulp van de bovenstaande klasse
lokale temperatuur = tempSensor.readTemp();
Als we 50 monsters heeft opnieuw teller en output
gemiddelde waarde
Als (iteratie == 50)
{
iteratie = 0;
Maak een tabel met de sleutel: value-paren om te verzenden
lokale dTable = {}
"temp": tempval/50,
"volt": hardware.voltage(),
"ligging": "boven office switch"
}
output.set(dTable);
server.show (formaat ("verzonden:" temp':%3.1f,'volt':%3.2f ", tempval/50, hardware.voltage()));
tempval = 0;
}
anders / / anders houden verzamelen van monsters
{
iteratie ++;
tempval = tempval + temperatuur;
}
}
Geregistreerd bij de server
Imp.configure ("Wireless Thermistor", [], [uitvoer]);
Begint met het opnemen van temperatuur
Capture();
Einde van code.
< code einde >