Sidewalk: The IoT network from Amazon
08.05.2024
Elektronik | Funk | Software
Der Technik-Blog
Sample code from the PT100 temperature measurement project with the Arduino. This sample code prints the measured temperature values in the serial monitor.
//More information about this project can be find here: https://www.aeq-web.com/pt100-temperature-sensor-arduino-r-u-converter/ const int pt100Pin = A0; // Define PT100 input pin const float offset = -0.00; // Offset (depending on the line resistance) // Define known points (voltage & temperature) const float voltages[] = { 0.079, 0.56, 1.04, 1.99, 2.95 }; // Voltages in Volts const float temperatures[] = { 0, 25.0, 50.0, 100.0, 150.0 }; // Temperatures in Celsius const int numPoints = sizeof(voltages) / sizeof(voltages[0]); // Linear interpolation float interpolate(float x, float x0, float x1, float y0, float y1) { return y0 + (y1 - y0) * (x - x0) / (x1 - x0); } // Calculate temperature from voltage float calculateTemperature(float voltage) { // Set to 0°C if voltage is higher than max. known point if (voltage > voltages[numPoints - 1]) { return 0; } // Find limits for interpolation int i = 0; while (voltage > voltages[i + 1] && i < numPoints - 1) { i++; } // Interpolate between limits return interpolate(voltage, voltages[i], voltages[i + 1], temperatures[i], temperatures[i + 1]); } void setup() { Serial.begin(9600); } void loop() { int sensorValue = analogRead(pt100Pin); float voltage = sensorValue * (5.0 / 1023.0); float temperature = calculateTemperature(voltage)+offset; Serial.print("Voltage: "); Serial.print(voltage, 3); Serial.print("V, Temperature: "); Serial.print(temperature, 1); Serial.println("°C"); delay(1000); }
Every day hundreds of meteorological radiosondes fall from the sky. In this article we convert a radiosonde into a GPS tracker for APRS, RTTY & CW
read moreTTN Payload Decoder for Zenner Easy Protect LoRaWAN Smoke Detector (RWM3)
read moreAEQ-WEB © 2015-2024 All Right Reserved