Система термостатирования на Arduino с гистерезисом: практическое руководство
Компоненты и материалы
| Компонент | Описание | Кол-во |
|---|---|---|
| Arduino 101 | Микроконтроллер | 1 |
| DHT22 Датчик температуры | Точное измерение температуры и влажности | 1 |
| Перемычки | Для соединений | 1 |
| Светодиод | Индикация состояния (зеленый/красный) | 2 |
| Резистор 10 кОм | Pull-up для DHT22 | 1 |
| Резистор 330 Ом | Ограничение тока для светодиодов | 2 |
| DFRobot LCD Button Shield | Экран с кнопками управления | 1 |
| Беспайковая макетная плата | Для прототипирования | 1 |
Приложения и сервисы
- Arduino IDE
О проекте
Суть проекта
Демонстрация работы системы термостатирования с гистерезисом.

Компоненты (фото)

Принцип термостатирования
Моделируется ситуация:
- Система запускает, показывает температуру.
- При достижении 25°C включается зеленый светодиод (кондиционер) — охлаждение.
- При снижении до 23°C кондиционер выключается (красный светодиод).
- Цикл повторяется при новом нагреве.
Видео работы прилагается.
Код
Temperature control (Arduino)
/*By Alexis Santiago Allende */ /*Last update: 12/03/2017*/
#include "DHT.h"
#include <LiquidCrystal.h>
#define DHTPIN 12
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
boolean a=LOW, b=HIGH;
float h=0, t=0;
const int ledPin = 3;
const int ledPin2 = 2;
long previousMillis = 0;
long interval = 2000;
void setup() {
lcd.begin(16, 2);
lcd.setCursor(0,0);
pinMode(ledPin, OUTPUT);
pinMode(ledPin2, OUTPUT);
dht.begin();
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin, LOW);
lcd.print("Tempera:");
lcd.setCursor(0,1);
lcd.print("Humedad:");
}
void loop() {
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > interval) {
previousMillis = currentMillis;
h = dht.readHumidity();
t = dht.readTemperature();
lcd.setCursor(10,0);
lcd.print(t);
lcd.setCursor(10,1);
lcd.print(h);
if(t >= 25 && a == LOW) {
digitalWrite(ledPin, HIGH);
digitalWrite(ledPin2, LOW);
a = HIGH; b = LOW;
} else if(t <= 23 && b == LOW) {
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin, LOW);
a = LOW; b = HIGH;
}
}
}
Схемы
Производственный процесс
- Цифровые кости на Arduino: генератор случайных чисел с LCD-дисплеем и кнопкой
- Умные шторы: автоматическое управление светом на Arduino с солнечной энергией
- Умная копилка: управление монетоприёмником на Arduino Nano
- Arduino Power Control Center: N-FET, P-FET, реле и RTC
- Логгер температуры и влажности на Arduino с DHT11 и Ethernet Shield
- Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
- Строим Iron Man на Arduino: компоненты, сенсоры и пошаговый гайд
- Простой ИК-датчик препятствий на Arduino: ИК-светодиод и фотодиод
- Find Me: Умный поисковик вещей на Arduino и Bluetooth
- Сборка функционального 3D-печатного манипулятора на Arduino: пошаговое руководство