- move code for all devices in dedicated folder - move code for gateway in the root folder
37 lines
858 B
C++
37 lines
858 B
C++
#pragma once
|
|
|
|
#include "TempSensor.h"
|
|
|
|
#define TEMP_POSITIVE PIN_B3
|
|
#define TEMP_PIN A2
|
|
|
|
class Tmp36Sensor : public TempSensor {
|
|
int temperature;
|
|
public:
|
|
Tmp36Sensor(short id) :
|
|
TempSensor(id) {
|
|
}
|
|
|
|
void setup() override {
|
|
analogReference(INTERNAL);
|
|
pinMode(TEMP_POSITIVE, OUTPUT);
|
|
digitalWrite(TEMP_POSITIVE, LOW);
|
|
}
|
|
|
|
bool readTemp() override {
|
|
digitalWrite(TEMP_POSITIVE, HIGH);
|
|
delay(10);
|
|
int reading = analogRead(TEMP_PIN);
|
|
digitalWrite(TEMP_POSITIVE, LOW);
|
|
|
|
float voltage = reading * (1100 / 1024.0);
|
|
float temperatureC = (voltage - 500) / 10;
|
|
temperature = roundf(temperatureC * 10);
|
|
return true;
|
|
}
|
|
|
|
void sendValues(bool voltage) override {
|
|
voltage ? sendTempAndVoltage(temperature) : sendTemp(temperature);
|
|
}
|
|
};
|