Терморегулятор на ардуино. Терморегулятор на Arduino: создание умного термостата для дома

Как сделать терморегулятор на Arduino для управления отоплением и кондиционированием. Какие компоненты нужны для создания умного термостата. Как запрограммировать Arduino для работы термостата. Как подключить термостат к системе отопления.

Содержание

Компоненты для создания терморегулятора на Arduino

Для создания умного термостата на базе Arduino потребуются следующие компоненты:

  • Плата Arduino (например, Arduino Uno или Arduino Nano)
  • Датчик температуры (DS18B20 или DHT22)
  • Реле для управления нагревателем/кондиционером
  • ЖК-дисплей для отображения текущей температуры
  • Кнопки для настройки желаемой температуры
  • Источник питания 5В
  • Провода для соединения компонентов

Основой системы является микроконтроллер Arduino, который считывает показания с датчика температуры, сравнивает их с заданной температурой и управляет реле для включения/выключения нагревателя или кондиционера. На дисплее отображается текущая и заданная температура.

Схема подключения компонентов термостата

Схема подключения компонентов терморегулятора к Arduino выглядит следующим образом:


  • Датчик температуры DS18B20 подключается к цифровому пину 2
  • Реле подключается к цифровому пину 3
  • ЖК-дисплей подключается к пинам 4-9
  • Кнопки «+» и «-» подключаются к пинам 10 и 11 соответственно

Важно правильно подключить все компоненты согласно их спецификации. Для питания компонентов используется 5В от Arduino.

Программирование Arduino для работы термостата

Для программирования терморегулятора на Arduino потребуется написать скетч, который будет выполнять следующие функции:

  1. Считывание температуры с датчика
  2. Сравнение текущей температуры с заданной
  3. Управление реле для включения/выключения нагревателя
  4. Отображение информации на дисплее
  5. Обработка нажатий кнопок для изменения уставки

Основной алгоритм работы термостата можно представить так:

«`cpp void loop() { float currentTemp = readTemperature(); float setTemp = getSetTemperature(); if (currentTemp < setTemp - hysteresis) { turnHeaterOn(); } else if (currentTemp > setTemp + hysteresis) { turnHeaterOff(); } displayTemperature(currentTemp, setTemp); handleButtons(); delay(1000); } «`

Этот базовый алгоритм считывает текущую температуру, сравнивает ее с заданной и включает или выключает нагреватель в зависимости от разницы. Также обновляется дисплей и обрабатываются нажатия кнопок.


Подключение термостата к системе отопления

Для подключения Arduino-термостата к реальной системе отопления или кондиционирования необходимо использовать реле. Реле позволяет управлять мощной нагрузкой с помощью слаботочного сигнала от Arduino.

Схема подключения выглядит следующим образом:

  • Управляющий контакт реле подключается к цифровому выходу Arduino
  • Силовые контакты реле подключаются в разрыв цепи питания нагревателя/кондиционера
  • При подаче сигнала с Arduino реле замыкает или размыкает силовую цепь

Важно правильно подобрать реле по коммутируемому току и напряжению. Для большинства бытовых систем отопления подойдет реле на 10А 220В.

Настройка и калибровка терморегулятора

После сборки и программирования термостата на Arduino необходимо провести его настройку и калибровку. Для этого нужно выполнить следующие шаги:

  1. Проверить точность измерения температуры датчиком, при необходимости внести поправку в код
  2. Настроить гистерезис (разницу температур для включения/выключения) под конкретное помещение
  3. Откалибровать диапазон регулировки температуры кнопками
  4. Настроить частоту опроса датчика и обновления дисплея
  5. Проверить корректность работы реле и подключения к системе отопления

Правильная настройка позволит термостату точно поддерживать заданную температуру и экономно расходовать энергию на отопление или охлаждение помещения.


Расширение возможностей термостата на Arduino

Базовую версию термостата на Arduino можно дополнить различными полезными функциями:

  • Подключение к WiFi для удаленного управления
  • Добавление датчика влажности
  • Реализация недельного расписания работы
  • Ведение статистики и построение графиков температуры
  • Управление несколькими зонами отопления
  • Интеграция с умным домом

Для реализации этих функций потребуется дополнительное оборудование и усложнение программного кода. Но это позволит создать полноценную систему климат-контроля на базе недорогой платформы Arduino.

Преимущества самодельного термостата на Arduino

Создание собственного термостата на базе Arduino имеет ряд преимуществ по сравнению с готовыми решениями:

  • Низкая стоимость компонентов
  • Возможность точной настройки под конкретное помещение
  • Гибкость в программировании и добавлении новых функций
  • Возможность интеграции с другими системами умного дома
  • Образовательная ценность — изучение основ электроники и программирования

При этом самодельный термостат по функциональности может не уступать дорогим коммерческим решениям. А в некоторых случаях даже превосходить их благодаря возможности тонкой настройки.



Ардуино и микросхемы | Терморегулятор W1209 12V с релейным выходом

Спец. Цена только для постоянных покупателей!

Количество

Терморегулятор цифровой программируемый WС1209 с одним релейным выходом адаптирован для проектов Ардуино с низким энергопотреблением и памятью настроек. Термостат также нашел широкое применение для автоматического поддержания заданного теплового режима теплиц, инкубаторов, аквариумов и т.п. Может работать как на охлаждение, так и на нагрев. В комплект терморегулятора входит 

Датчик температуры на основе NTC с сопротивлением 10KOHm. Датчик температуры NTC находится в герметичной колбе из нержавеющей стали и имеет провод для соединения с платой длиною 1 метр. Реле имеет настройку задержки срабатывания до 10 минут. Датчик температуры имеет регулировку показаний от -7 градусов до +7 градусов с шагом регулировки 0.1 градус.

Терморегулятор оснащен 3-bit индикатором для показаний и светодиодным индикатором вкл/выкл реле. Для подключения нагрузки используются контакты «К0/К1«. Питание платы подключается через контакты «12V/GND» соответственно.

Перед работой следует подключить нагрузку (с током коммутации не более 10 Ампер при 220 вольтах) к разъемам «К0-К1». Нагрузка подключается последовательно, т.е. в разрыв цепи питания управляемого прибора! Далее надо подключить питание самой платы, т.е. подать 12 вольт. После подачи питания на дисплее должна отобразится текущая температура, которую измерил выносной датчик NTC. 

Для установки нужной температуры, которую нужно отслеживать (контролировать) надо:

  • кратковременно нажать кнопку «SET» 
  • Кнопками «+» или «-» установить нужное значение
  • кратковременно нажать кнопку «SET» для подтверждения или не нажимать никакие кнопки в течение 5-ти секунд.

                                               Программирование:

Для входа в режим программирования:

  1. нажмите и удерживайте кнопку «SET» в течение 5-ти секунд. Кнопками «+» или «-» выбурите нужный пункт меню «Р0.Р6»
  2. для настройки параметра в выбранном пункте меню нажмите кратковременно кнопку «SET» и далее с помощью кнопок «+» или «-» установите нужное значение.
  3. нажмите и удерживайте кнопку «SET» в течение 5-ти секунд для сохранения настроек.
Код/Параметр Описание параметра Диапазон настройки По умолчанию
P0 Режим работы: охлаждение(Cooling)/Нагрев (Heating) C/H C
P1 Гистерезис, ℃ 0.
1—15℃
2
P2 Верхний предел поддерживаемой температуры, ℃ +110℃ +110℃
P3 Нижний предел поддерживаемой температуры, ℃ -50℃ -50℃
P4 Коррекция температуры, ℃ -7.+7 0
P5 Задержка времени вкл. реле, мин 0.10 0
P6
Верхний предел отключения, ℃/ Защита от перегрева OFF/ON (от 0 до 110) OFF

Следует отметить, что значение задержки времени включения реле (пункт «P5») может отличаться от выбранного в пределах ±50%

Показания на дисплее обозначают:

«LLL»   — не подключен датчик температуры

«HHH» — измеренная датчиком температура находится вне пределов «-50. +110″

«»    — превышение значения заданного предела в пункте «P6»

Для возвращения к заводским установкам или настройкам по умолчанию надо:

  1. отключить питание (12VDC)
  2. нажать и удерживать одновременно кнопки «+» и «-«
  3. при нажатых кнопках подать питание (12VDC)

 После выполненных действий на индикаторе должно отобразиться «888», после чего индикатор должен отобразить измеренную датчиком Температуру. 

  • Диапазон температур: от -50℃ до +110℃
  • Точность измерения: 0,1℃
  • Шаг регулировки (гистерезис): 0.1-15℃
  • Ток коммутации: макс. 5A/220VAC или 15A/14VDC (1 выход)
  • Ток потребления реле: 65mA

Термостат на ардуино в Мурманске: 500-товаров: бесплатная доставка, скидка-23% [перейти]

Партнерская программаПомощь

Мурманск

Каталог

Каталог Товаров

Одежда и обувь

Одежда и обувь

Стройматериалы

Стройматериалы

Здоровье и красота

Здоровье и красота

Текстиль и кожа

Текстиль и кожа

Детские товары

Детские товары

Продукты и напитки

Продукты и напитки

Электротехника

Электротехника

Дом и сад

Дом и сад

Мебель и интерьер

Мебель и интерьер

Промышленность

Промышленность

Сельское хозяйство

Сельское хозяйство

Все категории

ВходИзбранное

Термостат на ардуино

107

214

GY-273 для ардуино, 3-5 В

ПОДРОБНЕЕЕще цены и похожие товары

Термостат KSD301, 250 В, 10 А, нормально замкнутый, переключатель температуры 40C-135C для Arduino

ПОДРОБНЕЕЕще цены и похожие товары

288

469

Модуль реле 12В с датчиком света Ардуино XH-M131 / Комплектующие для платформы Ардуино (Arduino)

ПОДРОБНЕЕЕще цены и похожие товары

1-канальное реле ардуино — Low Level

ПОДРОБНЕЕЕще цены и похожие товары

Термостат KSD301, 250 В, 10 А, нормально замкнутый, переключатель температуры 40C-135C для Arduino

ПОДРОБНЕЕЕще цены и похожие товары

SW-420, датчик вибрации для Arduino-проектов Тип: датчик

ПОДРОБНЕЕЕще цены и похожие товары

702

878

Arduino / Терморегулятор программируемый W3230 24В, Arduino

ПОДРОБНЕЕЕще цены и похожие товары

138

150

Датчик температуры и влажности Ардуино (I2C) SI7021 Тип: канальный активный датчик температуры и

ПОДРОБНЕЕЕще цены и похожие товары

Терморегулятор KSD301, 250 В, 10 А, для Arduino

ПОДРОБНЕЕЕще цены и похожие товары

227

271

Терморегулятор цифровой светодиодный 10-220 В перем. Тока, XH-W3001, для Arduino

ПОДРОБНЕЕЕще цены и похожие товары

Терморегулятор KSD301, 250 В, 10 А, для Arduino

ПОДРОБНЕЕЕще цены и похожие товары

427

890

Arduino Pro/Терморегулятор программируемый W1209 Тип управления: электронное

ПОДРОБНЕЕЕще цены и похожие товары

1 951

2439

Arduino/Термо-гигростат программируемый STC-3028-220 Производитель: Thermo

ПОДРОБНЕЕЕще цены и похожие товары

KY-019 Ардуино реле 1-канальное

ПОДРОБНЕЕЕще цены и похожие товары

104

130

Arduino/Термостат герметичный KSD9700-90-NС Тип: корпус

ПОДРОБНЕЕЕще цены и похожие товары

Arduino / Терморегулятор DMT01 220В 10A 2200Вт, Arduino

ПОДРОБНЕЕЕще цены и похожие товары

Терморегулятор Arduino SSR 40DA, 24-380 В, 40-250 В, 1 SSR-40

ПОДРОБНЕЕЕще цены и похожие товары

104

130

Arduino/Термостат герметичный KSD9700-45-NС Тип: корпус

ПОДРОБНЕЕЕще цены и похожие товары

Электронные модули (arduino) RUICHI EM-501 Тип: датчик

ПОДРОБНЕЕЕще цены и похожие товары

426

533

Arduino/Терморегулятор программируемый W1209 Тип управления: электронное

ПОДРОБНЕЕЕще цены и похожие товары

730

1217

WiFi Digital Thermostat DC6-30V -99 -999 K-type Thermocouple High Temperature Controller LCD Display 1-way Relay Switch

ПОДРОБНЕЕЕще цены и похожие товары

2-канальное реле ардуино

ПОДРОБНЕЕЕще цены и похожие товары

Arduino MKR Zero

ПОДРОБНЕЕЕще цены и похожие товары

Arduino MKR Vidor 4000 Тип: плата

ПОДРОБНЕЕЕще цены и похожие товары

26 690

Смеситель для ванны и душа с термостатом Am. Pm Sense (F7550000) Тип смесителя: Термостат, Длина

В МАГАЗИНЕще цены и похожие товары

75 180

Встраиваемый термостатический смеситель для душа ALEXIA 3627S на 3 выхода

В МАГАЗИНЕще цены и похожие товары

39 290

Смеситель для ванны и душа с термостатом, монтируемый в стену Am.Pm Gem (F9085500) Тип смесителя:

В МАГАЗИНЕще цены и похожие товары

119 180

Душевая система с термостатом и тропическим душем для ванны KUATRO 4754RK250

В МАГАЗИНЕще цены и похожие товары

2 страница из 18

Программируемый терморегулятор W1209 DC — ProGDron.com

Модели 3D на сайте Graf4D.xyz***Модели 3D на сайте Graf4D.xyz***Модели 3D на сайте Graf4D.xyz

 Программируемый терморегулятор предназначен для контроля температуры в диапазоне от — 50 С до + 110 С. Он может работать в паре с нагревателем или охладителем. Программируемый терморегулятор оснащен трехразрядным LED диплеем, светодиодным индикатором включения реле, тремя кнопками управления, разъемом для подключения внешнего термодатчика,клеммами К0\К1 для подключения нагрузки и +12 V/GND для питания платы терморегулятора.На LED дисплее отражается текущая измеряемая температура.

Подготорвка к работе

Подключите источник питания 12 V постоянного напряжения к контактам +12 V (плюс 12V) GNG (минус 12V)

Подключите нагрузку к контактам К0 иК1 (подключается в разрыв цепи питания упавляемого прибора (последовательное подключение))

После подачи питания 12 V на контакты +12 V и GND, на  LED дисплее отразится текущая температура, измереная выносным датчиком температуры.

Установка и настройка заданой температуры

Для установки температуры контроля кратковремено нажмите кнопку SET, после чего кнопками + или — установите заданую температуру, и еще раз нажмите кнопку SET, или же не нажимайте никаких кнопок в течение 5 секунд.

Программирование

Для входа в режим программирования удерживайте, в течение 5 секунд кнопку SED, после чего кнопками + или — выберите код параметра меню (Р0…Р6) из тарлицы Меню терморегулятора. Далее, для настройки параметра, нажмите кнопку SET и кнопками + или — измените значение параметра. Для сохранения настроек нажмите и удерживайте кнопку SET,  или же не нажимайте никаких кнопок в течение 5 секунд.

Индикация

LED дисплей ортажает следующие значения LLL-датчик не подключен, ННН- температура вне диапазона ( меньше -50 С или больше 110 С) — превышение пределов заданых в параметре Р6

Сброс параметров в заводские установки

Сброс параметров в заводские установки(настройки по умолчанию)

отключите питание

нажмите и удерживайте кнопки + и —

Подайте питание на терморегулятор. На LED дисплее появится надпись 888, после чего отразится текущая температура.

 

 
 Схема термостата с управляющим контроллером STM8S003F3P6

 

Управляющий контроллер STM8S003F3P6

Датчик температуры и питание контроллера — стабилизированные 5,0В на AMS1117 -5. 0

 

 
 Схема подключения к 220 V

 

 
 Схема подключения к 12 V

 

 

 

 

 

 

  • Module

 

 

 

 

  • BananaPRO
  • Arduino Robot
  • BeagleBone
  • BananaPi
  • Raspberry Pi
  • org/Article»> Cubietech
  • Shield
  • Module
  • Orange Pi Plus
  • Pi PC
  • Linux Armbian
  • Arduino

Курс ArtCAM

Содержание

Введение в ArtCAM

Интерфейс ArtCAM

Работа с моделями

Работа с векторами

Работа с рельефами

Обработка моделей

Обновление ArtCAM

 

Знакомство с программой

Создание объектов

Работа с цветом и заливками

Работа с текстом

Эффекты и модификация объектов

Растровые изображения

Линзы

 

 

Знакомство с интерфейсом Photoshop

Создание и выделение объектов

Обработка изображений

Цвета и стили

Работа со слоями

Использование фильтров

Обработка и печать документов

Настройка параметров программы

 

Термостат на основе Arduino

На этот раз мы собираемся собрать Термостат на основе Arduino, датчика температуры и реле.

Вы можете найти его на GitHub

Этот термостат дает вам возможность управлять несколькими устройствами для контроля температуры. В моем случае я установил два вентилятора на чердаке, чтобы охлаждать его летом. Окон нет, поэтому пришлось принудительно проветривать. Первый вентилятор включается, когда температура достигает 35 градусов, второй – более 45.

Вы можете управлять любым разумным количеством юнитов, все это настраивается. У вас также есть доступ к базовой статистике за последние две недели:

Время работы всей системы:

Время включения каждого реле:

Статистика за 14 дней (или более, настраивается):

Статистика за 7-й день:

Конфигурация

Вся конфигурация хранится в Config.h. Вы можете изменить PIN-коды, управляющие реле, кнопками, входом для считывания температуры, пороговыми значениями или таймингами.

Аппаратное обеспечение

Кнопки

Две кнопки предназначены для навигации по меню, а третья сбрасывает статистику. Они сохраняются в EEPROM (Storage.cpp) один раз в сутки. Пины, назначенные кнопкам, можно найти в Config.h.

Настройка реле

Предположим, что мы хотим иметь 3 реле:

  • ID:0, PIN: 1, уставка температуры: 20
  • ID:1, PIN: 10, уставка температуры: 30
  • ID :2, PIN-код: 11, Уставка температуры: 40

Во-первых, вы должны убедиться, что выбранный вами PIN-код еще не занят. Все выводы можно найти в Config.h , они определяются переменными, начинающимися с DIG_PIN .

Необходимо отредактировать Config.h и настроить PIN-коды, пороги и количество реле. Очевидно, что некоторые свойства уже существуют, поэтому вам нужно просто их отредактировать.

github:9503d8daa5dc1b926f744e2daf9e00a8

Теперь нам нужно настроить реле и контроллер, это происходит через RelayDriver.cpp

github:ea0556e9d2e76f2bc0b35bbdfeb2306a

Choosing Controller

There two controllers available Hysteresis and PID

Hysteresis Controller

It’s the one chosen in the example above, it has few additional configurations:

github:1389192ea6166166efd810f400c0a709

RELAY_DELAY_AFTER_SWITCH_MS указывает время ожидания переключения следующего реле. Представьте, что конфигурация из нашего примера начнет работать в 40-градусной среде. Это приведет к одновременному включению всех трех реле. В конечном итоге это может привести к высокому энергопотреблению — в зависимости от того, чем вы управляете, электрический двигатель, например, потребляет больше энергии при запуске. В нашем случае переключение реле происходит следующим образом: первое реле включается, подождите 5 минут, включается второе, подождите 5 минут, включается третье.

RHC_RELAY_MIN_SWITCH_MS определяет гистерезис, это минимальная частота изменения состояния конкретного реле. После включения он будет оставаться включенным как минимум в течение этого периода времени, игнорируя изменения температуры. Это весьма полезно, если вы управляете электродвигателями, так как каждое переключение негативно влияет на время жизни.

ПИД-регулятор

Это дополнительная тема. Внедрение такого контроллера — простая задача, а поиск правильных настроек амплитуды — отдельная история.

Чтобы использовать ПИД-регулятор, необходимо изменить initRelayHysteresisController(…..) на initRelayPiDController(….) и найти для него правильные настройки. Как обычно, вы найдете их в Config.h

Я реализовал простой симулятор на Java, чтобы можно было визуализировать результаты. Его можно найти в папке: pidsimulator .

Ниже вы можете увидеть симуляции для двух контроллеров PID и P. PID не является абсолютно стабильным, потому что я не применял никакого сложного алгоритма для нахождения правильных значений.

На обоих графиках требуемая температура установлена ​​на 30 (синий). Текущая температура указывает строку чтения. Реле имеет два состояния ВКЛ и ВЫКЛ. При включении температура падает на 1,5, при выключении повышается на 0,5.

Дизайн программного обеспечения

Шина сообщений

Различные программные модули должны взаимодействовать друг с другом, надеюсь, не обоими способами 😉

Например:

  • модуль статистики должен знать, когда конкретное реле включается и выключается,
  • нажатие кнопки должно изменить содержимое дисплея, а также приостановить службы, которые потребляют много циклов ЦП, например, считывание температуры с датчика,
  • через некоторое время показания температуры должны быть обновлены,
  • и т. д. …

Каждый модуль подключен к шине сообщений и может регистрироваться на определенные события и может создавать любые события.

Например, нажатие кнопки «Далее» приводит к следующему потоку:

У некоторых компонентов есть задачи, которые необходимо периодически выполнять. Мы могли бы вызывать их соответствующие методы из основного цикла, так как у нас есть шина сообщений, необходимо только передать правильное событие:

LIBS

Для компиляции Thermostat необходимы следующие библиотеки: //github.com/maciejmiklas/ArdLog.git

Питание Arduino с помощью термостата

Спросил

Изменено 3 года, 2 месяца назад

Просмотрено 192 раза

Итак, я хочу сделать контроллер термостата на основе Arduino. Я хорошо разбираюсь в семантике, стоящей за этим, есть только одна деталь, которую я хочу убедиться, что я правильно понял: Power

Я знаю, что питание американского термостата составляет 24 В переменного тока, но я не уверен, как преобразовать его в 12 В 0,5 А постоянного тока, который Ардуино хочет. Я хотел бы сделать это эффективно, а не генерировать массу тепла в процессе. Я даже не знаю, сколько ампер «24 В переменного тока», это единственная спецификация, которую я могу найти для мощности термостата.

Я нашел преобразователи 24 В переменного тока в 12 В постоянного тока (предназначенные для камер наблюдения) в Интернете, но большинство из них рассчитаны на 1,5 А, и я бы беспокоился о том, чтобы поджарить Arduino. Я не уверен, вытягивает ли Arduino столько, сколько ему нужно, или он попытается вытянуть полные 1,5 А и разрушит себя. Я также не знаю, являются ли они относительно энергоэффективными.

Я вообще надеюсь, что кто-то уже шел по этому пути, так что мне не придется изобретать велосипед.

3

Я даже не знаю, сколько ампер «24VAC»

Именно так, потому что это номинальное напряжение (24 В переменного тока), а информация о допустимом токе отсутствует.

Я нашел преобразователи 24 В переменного тока в 12 В постоянного тока (предназначенные для камер наблюдения) в Интернете, но большинство из них рассчитаны на 1,5 А, и я бы беспокоился о том, чтобы поджарить Arduino. Я не уверен, вытягивает ли Arduino столько, сколько ему нужно, или он попытается вытянуть полные 1,5 А и разрушит себя

Arduino, как полупроводник, будет потреблять только тот ток, который ему нужен. Какой ток ему нужен, определяется ядром процессора (например, находится ли он в спящем режиме или нет), активированными периферийными устройствами (АЦП и т. д.) и устройствами с внешним питанием через контакты Arduino + 5 В или + 3,3 В.

Типичное энергопотребление платы Arduino, на которой запущен скетч (без режима пониженного энергопотребления и без внешних устройств), составляет около 20 мА, то есть 0,020 А.

Также обратите внимание, что когда вы подаете +12 В постоянного тока на контакт VIN, он поступает на линейный регулятор напряжения, который преобразует избыточное напряжение в тепло, сохраняя при этом ток прежним. Официальный Arduino Uno (не китайский клон!) имеет NCP1117ST50T3G, который представляет собой линейный регулятор от 6,5 В до 20 В (рекомендуемый предел: 12 В) до 5 В с I_out минимум 1 А, типичный 1,5 А (также обратите внимание, что I_out примерно равен I_in, сам регулятор требует незначительного тока). Клоны могут использовать более дешевый (и худший) регулятор напряжения. Также обратите внимание, что эта выходная мощность может быть недостижима без радиатора на регуляторе; поскольку избыточное напряжение преобразуется в тепло, преобразование +12 В в +5 В при 1 А создает (12 В-5 В) * 1 А = 7 Вт тепла (мощности). Пакет не может выдержать это очень долго, и регулятор отключается из-за встроенной тепловой защиты.

Вкратце можно сказать, что подключить к Arduino более мощный блок питания не проблема. Arduino потянет то, что ему нужно для питания себя и всего остального, на контакты +5 В и +3,3 В, если это находится в пределах ограничений регулятора напряжения.

Эти видеоролики могут помочь вам разобраться в линейных регуляторах напряжения: https://www.youtube.com/watch?v=GSzVs7_aW-Y https://www.youtube.com/watch?v=giGRrODKJSE

Если вы Если вы просто запускаете Arduino и несколько компонентов с низким энергопотреблением, питание регулятора напряжения Arduino 12 В будет в порядке. Однако, если источник питания от 24 В переменного тока до 12 В постоянного тока не регулируется, он вполне может выдавать более 12 В.

Если ваша система Arduino потребляет большой ток от стабилизатора 5 В, она будет выделять много тепла и может перегреться. Что еще вы используете от линий Arduino 5V и 3.3V?

Понижающий блок питания был бы хорошим выбором для этой установки.

Вот пример, который должен работать очень хорошо:

Изображение на этом источнике говорит об этом будет работать с 8-35В, так что есть лот «выкручивается» в своем напряжении питания. Даже если дверной звонок потребляет достаточно тока, чтобы 24 В переменного тока упало до 12 В переменного тока, пока звонит дверной звонок, источник питания все равно должен поддерживать нормальную работу Arduino.

(Вы можете подать регулируемое напряжение 5 В от этого источника напрямую на USB-вход на Arduino)

Это источник с очень высокой эффективностью, который будет тратить очень мало энергии в виде тепла. Вам не нужно ничего, кроме этого.

2

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Обязательно, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie

.

Термостат Arduino: Часть 1. Введение

Наша первая крупная разработка в области домашней автоматизации — управляемый Arduino термостат для нашей квартиры, подключенный к Интернету. Наш блок HVAC (отопление, вентиляция и кондиционирование воздуха) не имеет подключения для внешнего термостата, поэтому мы не могли просто купить Nest и подключить его. И, конечно же, гораздо интереснее создавать и настраивать собственную систему, одновременно изучая микроконтроллеры! Мы хотели поделиться с вами нашим проектом; хотя это не пошаговое руководство, мы надеемся, что в нем достаточно подробностей, чтобы вдохновить вас на ваши собственные проекты домашней автоматизации!

Мы слышали об Arduino некоторое время после посещения нашей первой NYC World Maker Faire несколько лет назад, и мы решили, что это идеальный проект для его использования. По сути, Arduino — это недорогой микроконтроллер, который можно запрограммировать как очень простой компьютер для проверки входных данных, таких как кнопки и датчики, запуска некоторой логики и управления выходными сигналами, такими как освещение и двигатели. Система термостата, например, будет использовать датчик температуры в качестве входа для принятия решения о том, должен ли HVAC быть включен или выключен, а также серводвигатель и выход для физического управления блоком HVAC. Arduino сам по себе не имеет возможности подключения к Интернету, но к нему можно легко подключить дополнительные компоненты, добавляющие возможности Ethernet или WiFi.

Наш блок HVAC управляется ручкой, которая включает или выключает блок, с несколькими настройками вентилятора (высокий, средний, низкий). Вторая ручка помогает контролировать степень нагрева или охлаждения, включая и выключая передачу тепла. Это не очень эффективно, потому что вентилятор работает все время, и, поскольку вы не можете установить температуру, вам в основном нужно угадать, насколько далеко повернуть ручку, чтобы получить желаемое количество тепла или охлаждения. Мы хотели построить систему, которая позволила бы нам устанавливать температуру, как термостат, а также позволяла бы нам управлять системой удаленно (потому что кому нужно пройти через всю комнату, чтобы включить и выключить устройство?). Если бы он был подключен к Интернету, мы бы даже позволили включить систему, прежде чем вернуться домой, чтобы квартира была уже теплой, когда вы возвращаетесь домой в эти холодные зимние ночи.

На данный момент наша система имеет следующие функции:

  1. Измеряет и отображает текущую температуру в градусах Цельсия и Фаренгейта.
  2. Механически включает и выключает блок HVAC с помощью ручки на внешней стороне блока в ответ на прямую команду включения/выключения или для поддержания заданной температуры.
  3. Сообщает о температуре и состоянии в веб-интерфейс.
  4. Принимает команды через веб-интерфейс.

Вот короткое видео, показывающее систему в действии:

Построенная нами система состоит из четырех основных компонентов:

  1. Физический интерфейс с HVAC
  2. Аппаратное обеспечение Arduino
  3. , не включая интерфейс с HVAC
  4. Программное обеспечение Arduino (эскиз)
  5. Веб-интерфейс

В этом посте мы дадим обзор каждого из этих компонентов. В будущих постах мы надеемся, что сможем более подробно остановиться на каждом из них.

1. Физический интерфейс с HVAC

Вместо подключения к проводке внутри панели управления или к источнику питания блока HVAC мы решили создать механический интерфейс для управления блоком снаружи. Это позволяет нам избежать работы с высоковольтным переменным током и позволяет легко восстановить блок HVAC до его первоначального состояния. Этот механический интерфейс, очевидно, зависит от того, как спроектирован блок ОВКВ, в то время как остальная часть проекта практически не зависит от конструкции фактического блока. Наш блок HVAC управляется ручкой, которая крепится к валу квадратного сечения. Это удачно, потому что серводвигатель можно использовать для вращения вала непосредственно на той же оси. Сервопривод — это двигатель, который может определять свое собственное положение вращения, поэтому вы можете настроить его на поворот в указанное положение. Это хорошо работает для нас, потому что мы хотим повернуть вал в указанные положения включения и выключения.

Все, что нам нужно – это способ соединения сервопривода с валом. Хотя мы могли бы просто приклеить звуковой сигнал непосредственно к ручке, это помешало бы нам восстановить ОВКВ в исходное состояние. Таким образом, мы напечатали на 3D-принтере пластиковую ручку с квадратным отверстием, которую можно было навсегда прикрепить к рупору сервопривода. Поскольку геометрия не была сложной, мы быстро спроектировали ее в бесплатном программном обеспечении Autodesk 123D Design. Поскольку у нас нет 3D-принтера (пока), мы загрузили дизайн в сервис Shapeways, который печатает ваш дизайн на 3D-принтере из любого материала, который вы выберете, и отправляет его вам. На правом изображении выше показан серводвигатель, соединенный с управляющим валом HVAC.

Чтобы удерживать сервопривод на месте и создавать противодействующий крутящий момент при вращении сервопривода, мы временно использовали картон, чтобы прижать его к краям выреза в корпусе HVAC. В будущем мы создадим более надежное и элегантное крепление для сервопривода, но пока это работает.

Вот видео сервопривода в действии:

2. Аппаратное обеспечение Arduino

Для нашего прототипа мы использовали плату, совместимую с Arduino Uno, в основе которой лежит микросхема контроллера ATmega328. Мы также использовали экран Ethernet, который является дополнительной платой, обеспечивающей доступ к проводному Интернету. Мы выбрали Ethernet, потому что его проще настроить, чем WiFi, и он более надежен, что лучше подходит для начальных экспериментов.

В нашем проекте мы использовали следующие дополнительные компоненты. Многие из них поступили из Интернета или Tinkersphere, магазина хобби для роботов и электроники в Нижнем Ист-Сайде Нью-Йорка.

  • Датчик температуры DHT11 (также измеряет влажность)
  • Последовательный светодиодный матричный модуль 8×8 со встроенной микросхемой драйвера MAX7219 для отображения заданной и текущей температуры
  • Кнопка для ручного управления системой для включения или выключения
  • RGB-светодиод для индикации онлайн-статуса
  • Светодиод для индикации состояния включения/выключения HVAC
  • Переключатель SPST для включения и выключения отображения температуры
  • Макетная плата, провода, резисторы для светодиодов, разъем постоянного тока для адаптера переменного тока

Сервопривод получает питание непосредственно от адаптера переменного тока, а не от Arduino, поскольку количество тока, которое может подавать Arduino, ограничено, а для поворота вала ручки требуется приличный крутящий момент.

Для того, чтобы датчик температуры располагался дальше от HVAC, мы обрезали 3,5 мм удлинительный аудиокабель (который имеет 3 провода, соответствующие 3 разъемам, которые необходимы датчику DHT11) рядом с гнездовым концом. Обрезанный конец короткого отрезка с гнездом подключается непосредственно к плате, а обрезанный конец длинного отрезка с вилкой имеет припаянный к нему датчик. Таким образом, в будущем, если мы построим корпус для проекта, датчик температуры можно будет подключить к разъему сбоку корпуса, как наушники подключаются к компьютеру.

Хотя система будет иметь веб-интерфейс, мы решили, что ей также потребуется физический интерфейс, показывающий температуру и допускающий ручное управление, чтобы нам не приходилось постоянно выходить в интернет. Мы использовали кнопку, позволяющую блокировать управление, чтобы включить или выключить HVAC без термостатического контроля. Мы использовали светодиодную матрицу 8 × 8 для отображения текущей и заданной температуры в градусах Цельсия и Фаренгейта в цикле, который можно отключить с помощью переключателя.

3. Эскиз Arduino

Чтобы запрограммировать Arduino на то, что нам нужно, мы пишем программу или эскиз на модифицированной форме C/C++, используя бесплатную Arduino IDE (интегрированную среду разработки) на компьютере. Затем скетч компилируется и загружается на плату Arduino через USB-кабель. Он запускается автоматически при включении платы. В отличие от компьютера здесь нет ни операционной системы, ни многозадачности. Эскизы намного проще и меньше, чем обычная компьютерная программа. В популярной модели Arduino Uno всего 32 КБ пространства для программ и 2 КБ ОЗУ! Тем не менее, сила Arduino заключается в легкости, с которой скетч взаимодействует с внешним миром благодаря легкому доступу к контактам GPIO (ввод и вывод общего назначения) на плате.

В основе большинства проектов домашней автоматизации лежит очень простая логика, поэтому мощности Arduino более чем достаточно для управления проектами такого типа. Логика термостата очень проста. Если температура в помещении ниже установленной температуры, включите обогрев. Если температура в помещении выше установленной температуры плюс определенный порог, выключите обогрев. И было бы просто наоборот для охлаждения.

Добавление некоторых наворотов, таких как связь с веб-сервером, усложняет скетч, но самое замечательное в такого рода проектах то, что вы можете добавлять по одной функциональности за раз; нет необходимости планировать весь проект заранее.

Вот основная схема нашего эскиза. Мы надеемся, что сможем провести более подробный анализ в следующем посте. Мы использовали следующие библиотеки: dht11 для датчика температуры, Servo для управления сервоприводом, SPI и UIPEthernet для экрана Ethernet, SimpleTimer для запуска кода с заданными интервалами и LedControl для светодиодного матричного дисплея.

Основная функция термостата выполняет следующие функции: повторное подключение к Интернету при необходимости, считывание текущей температуры с датчика, проверка сервера на наличие новой команды, выполнение логики термостата (включение или выключение системы ОВКВ в зависимости от температуры) , отправлять текущую температуру и состояние системы на сервер и отображать текущую температуру на светодиодном матричном дисплее.

Функция настройки подключается к Интернету и устанавливает таймер для вызова основной функции термостата (см. выше) каждую минуту. Функция петли проверяет кнопку, которая позволяет вручную включать или выключать устройство, а также переключатель, который включает и выключает отображение температуры на светодиодной матрице.

4. Веб-интерфейс

Мы хотим иметь возможность контролировать и контролировать систему через Интернет. Это позволяет нам установить термостат или просто включить или выключить HVAC без необходимости вставать и идти до блока. Это также позволяет нам начать обогревать квартиру еще до прихода домой!

Arduino с доступом в Интернет можно настроить как сервер или клиент. Используя Arduino в качестве сервера, мы будем отправлять ему HTTP-запросы GET или POST напрямую для управления системой, и он будет обслуживать пользовательский интерфейс для нашего браузера в виде HTML. Тем не менее, мы решили использовать Arduino в качестве клиента, запрашивая команды и отправляя их статус на размещенный веб-сервис. Таким образом, веб-сервер является посредником между нашим браузером и Arduino. Эта конструкция имеет преимущества, заключающиеся в том, что не нужно настраивать статический IP-адрес для Arduino, обеспечивая большую функциональность (поскольку веб-сервер имеет гораздо большую вычислительную мощность, чем сама Arduino) и позволяя нам работать над обновлениями пользовательского интерфейса без необходимости удалить и перепрограммировать Arduino.

В настоящее время мы настроили Arduino для передачи текущей температуры и состояния системы (включено или выключено, ручное управление или управление термостатом) на сервер один раз в минуту. В то же время он будет запрашивать сервер, чтобы узнать, есть ли новая команда. Простая веб-страница предоставляет интерфейс, к которому мы можем получить доступ с любого компьютера или смартфона, что позволяет нам видеть температуру и статус, а также изменять установленную температуру или включать или выключать ее.

Будущие направления

Есть некоторые функции, которые мы планируем реализовать в будущем:

  1. Улучшение веб-интерфейса, включая разработку приложения для смартфона
  2. Переход с Arduino Uno на Arduino Nano или другую уменьшенную версию Arduino, а также с макетной платы на припаянную перфорированную плату
  3. Создание более прочного крепления для сервопривода и корпуса для электроники
  4. Добавлена ​​возможность устанавливать запрограммированное время с разной температурой — сейчас наши графики не совпадают от одного дня к другому, поэтому это не важно для нас

Уже на этом этапе мы наслаждаемся нашим первым проектом домашней автоматизации Arduino DIY! Возможность включать и выключать тепло до прихода домой делает жизнь в квартире намного более комфортной, равно как и возможность Arduino поддерживать постоянную температуру без необходимости вставать и включать и выключать устройство вручную.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *