#include <math.h> // Подключаем библиотеку для работы с математическими функциями
#include <Servo.h> // Подключаем библиотеку для работы с сервоприводом
const int relayPin = 8;
const int sensorPin = A0;
const float BETA = 3950; // Бета-коэффициент термистора
Servo myServo; // Создаем объект для работы с сервоприводом
void setup() {
Serial.begin(9600); // Запуск серийного монитора
pinMode(relayPin, OUTPUT); // Реле на выход
myServo.attach(9); // Подключаем сервопривод к пину 9
}
void loop() {
int analogValue = analogRead(sensorPin); // Считываем данные с термистора
float celsius = 1 / (log(1 / (1023.0 / analogValue - 1)) / BETA + 1.0/ 298.15) - 273.15; // Формула для расчета температуры
// Вывод данных в серийный монитор с указанием единиц измерения
Serial.print("Temperature: ");
Serial.print(celsius);
Serial.println(" °C");
// Управление реле и сервоприводом
if (celsius > 30) {
digitalWrite(relayPin, HIGH); // Включить реле
myServo.write(0); // Повернуть сервопривод на 90 градусов
} else {
digitalWrite(relayPin, LOW); // Выключить реле
myServo.write(90); // Вернуть сервопривод в начальное положение (0 градусов)
}
delay(1000); // Задержка 1 секунда для плавного считывания данных
}