Контроль температуры на ардуино: Климат-контроль на Arduino [Амперка / Вики]

Содержание

Климат-контроль на Arduino [Амперка / Вики]

Проекты на Arduino и Slot Shield

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

Контроллер получает данные с цифрового датчика температуры и влажности DHT-11 и показывает их на четырёхсегментном дисплее. Для управления электроприборами используются мини-реле.

Что потребуется

Видеоинструкция

Внимание!

Работа с высоким напряжением опасна для вашего здоровья и жизни. На плате существуют области, прикосновение к которым приведёт к поражению электрическим током. Это винты контактных колодок и места пайки выводов контактных колодок и реле. Не работайте с платой, если она подключена к бытовой сети. Для готового устройства используйте изолированный корпус.

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

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

Как собрать

Установите Troyka Slot Shield на Iskra Neo

Возьмите датчик температуры DHT-11 и вставьте в правый верхний слот.

Поверните два мини-реле на 90 градусов против часовой стрелки и вставьте их в свободные слоты верхнего ряда.

Переверните Quad Display на 180 градусов и вставьте в левый и центральный слоты нижнего ряда.

Если у вас старый модуль семисегментного индикатора (у него всего три ноги и расположены они слева), схема сборки устройства, скетч и библиотеки будут отличаться. Мы выложили их ниже, в ответах на часто задаваемые вопросы.

Скетч

Прошейте контроллер скетчем через Arduino IDE.

climate-controlSPI.ino
// библиотека для работы с датчиком DHT11
#include <TroykaDHT.h>
// Подключаем библиотеку для работы с дисплеем
#include <QuadDisplay2.h>
 
// номер цифрового пина реле 1
#define RELAY_1_PIN  A4
// номер цифрового пина реле 2
#define RELAY_2_PIN  A2
 
// создаём объект класса DHT11 и передаём номер пина к которому подключён датчик
DHT dht(4, DHT11);
 
QuadDisplay qd(9);
 
// переменная для хранения состояние системы
// а именно какую информацию выводить на дисплей
// температуру или влажность
bool state = true;
 
// переменная для хранения показателя температуры окружающей среды
float temperature = 0;
// переменная для хранения показателя влажности окружающей среды
float humidity = 0;
 
long currentMillis = 0;
void setup()
{
  // открываем последовательный порт для мониторинга действий в программе
  Serial.begin(9600);
  qd.begin();
  // начало работы с датчиком DHT11
  dht.begin();
  // назначаем 2 пина в режиме выхода
  pinMode(RELAY_1_PIN, OUTPUT);
  pinMode(RELAY_2_PIN, OUTPUT);
  currentMillis = millis();
}
 
void loop()
{
 
  // если прошёл заданный интервал времени 
  // считывам показания датчика
  if (millis() - currentMillis > 3000) {
    state = !state;
    currentMillis = millis();
    dht.read();
  }
 
  switch (dht.getState()) {
    // всё OK
    case DHT_OK:
      // считываем показания температуры и влажности с датчика
      temperature = dht.getTemperatureC();
      humidity = dht.getHumidity();
      // выводим показания температуры или влажности
      // переключать результаты можно кнопкой
      if (state) {
        qd.displayTemperatureC(temperature);
      } else {
        qd.displayHumidity(humidity);
      }
      break;
    // если ошибка выводим на дисплей «Err»
    default:
      qd.displayDigits(QD_NONE, QD_E, QD_r, QD_r);
      break;
  }
  // если температура превысила 35 градусов
  if (temperature > 35) {
    // включаем реле 1
    digitalWrite(RELAY_1_PIN, HIGH);
  } else {
    // иначе выключаем реле
    digitalWrite(RELAY_1_PIN, LOW);
  }
  // если влажность стала менее 20 %
  if (humidity < 20) {
    // включаем реле 2
    digitalWrite(RELAY_2_PIN, HIGH);
  } else {
    // иначе выключаем реле 2
    digitalWrite(RELAY_2_PIN, LOW);
  }
  // ждём 1 секунду
  delay(1000);
}

Где скачать необходимые библиотеки и как их установить?

У моего модуля QuadDisplay всего три ноги и расположены они слева. Можно ли использовать его в этом проекте?

Да, модуль можно использовать, но скетч, библиотеки и схема сборки отличаются.

Вставьте QuadDisplay в левый нижний слот

Прошейте контроллер скетчем через Arduino IDE.

climate-control.ino
// библиотека для работы с датчиком DHT11
#include <TroykaDHT.h>
// Подключаем библиотеку для работы с дисплеем
#include <QuadDisplay.h>
 
// номер цифрового пина реле 1
#define RELAY_1_PIN  A4
// номер цифрового пина реле 2
#define RELAY_2_PIN  A2
// номер цифрового пина дисплея
#define DISPLAY_PIN  11
 
// создаём объект класса DHT11 и передаём номер пина к которому подключён датчик
DHT dht(4, DHT11);
 
// переменная для хранения состояние системы
// а именно какую информацию выводить на дисплей
// температуру или влажность
bool state = true;
 
// переменная для хранения показателя температуры окружающей среды
float temperature = 0;
// переменная для хранения показателя влажности окружающей среды
float humidity = 0;
 
long currentMillis = 0;
void setup()
{
  // открываем последовательный порт для мониторинга действий в программе
  Serial.begin(9600);
  // начало работы с датчиком DHT11
  dht.begin();
  // назначаем 2 пина в режиме выхода
  pinMode(RELAY_1_PIN, OUTPUT);
  pinMode(RELAY_2_PIN, OUTPUT);
  currentMillis = millis();
}
 
void loop()
{
  // если прошёл заданный интервал времени
  if (millis() - currentMillis > 3000) {
    state = !state;
    currentMillis = millis();
    dht.read();
  }
  switch (dht.getState()) {
    // всё OK
    case DHT_OK:
      // считываем показания температуры и влажности с датчика
      temperature = dht.getTemperatureC();
      humidity = dht.getHumidity();
      // выводим показания температуры или влажности
      if (state) {
        displayTemperatureC(DISPLAY_PIN, temperature);
      } else {
        displayHumidity(DISPLAY_PIN, humidity);
      }
      break;
    // если ошибка выводим на дисплей «Err»
    default:
      displayDigits(DISPLAY_PIN, QD_NONE, QD_E, QD_r, QD_r);
      break;
  }
  // если температура превысила 35 градусов
  if (temperature > 35) {
    // включаем реле 1
    digitalWrite(RELAY_1_PIN, HIGH);
  } else {
    // иначе выключаем реле
    digitalWrite(RELAY_1_PIN, LOW);
  }
  // если влажность стала менее 20 %
  if (humidity < 20) {
    // включаем реле 2
    digitalWrite(RELAY_2_PIN, HIGH);
  } else {
    // иначе выключаем реле 2
    digitalWrite(RELAY_2_PIN, LOW);
  }
  // ждём 1 секунду
  delay(1000);
}

Скачайте и установите библиотеку для работы с «трёхногим» дисплеем.

Датчик температуры Arduino DS18B20: описание, применение, схема подключения

Приборы для измерения – это самый необходимый компонент для плат Arduino. Для замеров температуры используется компоненты с отличающимися друг от друга характеристиками. Датчик DS18B20 используют для замеров температур воды, потому как одна из популярных его модификаций обрамлена герметичным корпусом.

Что представляет собой DS18B20?

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

Датчик подключается через 3 выхода:

  1. Первый – питание VDD (красный).
  2. Второй – данные DQ (желтый или другой цвет).
  3. Третий – земля GND (черный).

Из-за возможности реализации схемы с фантомным питанием, можно подключить датчик через два провода: DQ и VDD. Но по-хорошему, лучше подобного подключения избегать. Также, к основной плате Arduino можно подключить на один пин выходы DQ с двух сенсоров.

Виды датчика:

  1. 8-Pin SO (150 mils) — DS18B20Z+
  2. 8-Pin µSOP — DS18B20U+
  3. 3-Pin TO-92 — DS18B20+

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

На рисунке изображен даллас DS18B20+ в герметичном корпусе

Характеристики:

  1. Диапазон измерения температур -55 °С до +125 °С.
  2. Погрешность максимум 0,5 °C, без дополнительной калибровки при t от -10 °С до +85° С).
  3. Питание 3,3-5 В.
  4. Для соединения с Arduino UNO необходимо 3 контакта.
  5. К одной линии связи доступно подключение вплоть до ста двадцати семи датчиков, потому как датчик содержит собственный 64-битный код в постоянной памяти.
  6. Каждый датчик имеет персонализированный серийный номер.
  7. Протокол 1-Wire используется для передачи информации.
  8. Доступно подключение через два провода напрямую к линии связи по схеме фантомного питания. Но такой режим не рекомендуется использовать при температурах от 100° С, так как нет гарантий правильных замеров в таких условиях.
  9. Два вида памяти — статическая память с произвольным доступом или полупроводниковая оперативная память (SRAM) и энергонезависимая память EEPROM.
  10. В EEPROM записываются два однобайтовых регистра контроля TH, TL, по которым можно верхний и нижний предел диапазона температур.

Применение

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

  • 9 бит – 0,5С;
  • 10 бит — 0,25С;
  • 11 бит — 0,125С;
  • 12 бит — 0,0625С.

Порядок работы датчика:

  1. При подключении источника питания, DS18B20 будет находится в начальном состоянии.
  2. Затем, подается команда «преобразование температуры» на Arduino UNO для замера t.
  3. Результат, полученный от датчика, сохранит свое значение в двух байтах регистра t, а сам элемент схемы вернется с начальное состояние.
  4. При работе схемы через внешнее питание, микроконтроллер регулирует состояние конвертации.
  5. При выполнении команды линия находится в низком состоянии, а закончив – переходит в высокое.

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

В оперативную память сохраняются:

  • 1-2 байты – данные измеряемой температуры;
  • 3-4 байты – пределы изменения t;
  • 5-6 байты – резерв;
  • 7-8 байты – нужны для точных замеров t;
  • 9 байт — циклический избыточный код, устойчивый к помехам;

Подключение датчика

Для подключения в схеме обязательно должен присутствовать резистор «Подтяжки», сопротивлением 4,7 кОм. Соединение происходит по интерфейсу 1-Wire по шине данных.

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

Для соединения нужно:

  1. DS18B20 – 1 штука.
  2. Ардуино УНО – 1 штука.
  3. Резистор 4,7 кОм.
  4. Макетная плата под пайку.
  5. Коннекторы.
  6. USB-кабель для соединения с ПК.

Нормальная схема включения одного датчика.

Подключайте по представленной выше схеме. Учитывайте, что DQ можно подключить к аналоговому пину ввода / вывода A1 (еще называют цифровой A15). Резистором притяните линию данных к питанию, как показано на схеме макетной платы.

Вот как схема выглядит в реальной жизни.

Фантомная схема включения одного датчика

Следует помнить, что подключение датчика температуры DS18B20 к Ардуино с фантомным питанием сказывается на быстродействии и стабильной работе датчика. Не рекомендуется применение этого варианта включения в схему без крайней нужды.

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

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

Программная часть

Скачать библиотеку для работы с датчиком и другими устройствами на 1-Wire, можно на Github по ссылке. Для установки, загрузите архив с сервера и разархивируйте по адресу «Мои документы» – «Ардуино» – «libraries» или другое место, где вы ее разместите.

Виды скетчей и библиотек

Для написания программы можно использовать несколько библиотек:

  1. OneWare – основная, с помощью которой можно использовать самые простые скетчи для работы одного или нескольких датчиков, подключённых по нормальной и фантомной схеме питания.
  2. DallasTemperature — Рекомендуется использовать библиотеку для комфортного взаимодействия с устройствами, особенно если их подключается к плате несколько. Некоторые моменты в логике с помощью библиотеки можно упростить.

В скетчах применяется только первая или две библиотеки в паре. Чтобы запустить работу измерителя температуры, запустите Ardiuino IDE, скопируйте в него код и загрузите в контроллер.

Три варианта скетчей для обработки и считывания данных с датчика можете скачать по ссылке.

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

Применяется программируемый датчик Ардуино в различных задачах, в том числе в схемах для умных домов. С помощью легко настраиваемого сенсора можно решать, как простые, так и сложные задачи:

  1. Определение t воды в аквариуме для рыб. Особенно актуальный способ в летнюю жару. Сенсор среагирует на показатель, который оказался за пределами нормы и оповестит вас об этом по каналам связи. Естественно, можно подвязать дополнительное действие при нагревании воды, например, запускать Аэрацию.
  2. Оповещение о нагретой воды в бойлере. При достижении определенной t в бойлере, на компьютер, или подключенный LCD-дисплей вам поступит уведомление. Можно с схему добавить реле, которое будет отключать бойлер. Конечно, современные водонагревающие устройства могут оснащаться автоматикой и термостатом, но часто с помощью дополнительных датчиков реализуются более сложные системы управления умным домом, чем автономная автоматика водонагревателя.
  3. Замер температуры в холодильной витрине. Комплект из нескольких датчиков на достаточно простой схеме может замерять и выдавать температуру в каждой секции витрины. Выставленный диапазон значений может указывать, когда температура вышла за пределы нормы и уведомлять о нарушениях стационарного режима.
  4. Замер точного градуса воды в чайнике. Выпитый натощак стакан теплой воды помогает запустить желудок. При этом нужно выпить подогретую до температуры тела воду. Самодельный термодатчик способен решить подобную задачу, определив градус с точностью до 0,5 °С.
  5. Определение температуры воды в ванной, джакузи, бассейне. Набирая воду для водных процедур, нужно, чтобы она была комфортной. С помощью терморегулятора Arduino можно определить комфортный уровень и подобрать нужный градус для себя. Дополнительно, пороговыми значениями температуры можно реагировать на снижение или увеличения t воды и держать все время воду подогретой.
Естественно, датчик можно использовать и в системах для промышленности: водонагревательные станции, морозильные комнаты, замеры t вязких веществ на предприятиях.

Заключение

Цифровой датчик DS18B20 работающий в паре с Arduino UNO (или платами NANO и MEGA) по своим характеристикам может использоваться для решения серьезных задач, где нужны точность замеров, измерение температуры жидкости и мониторинг нужного градуса жидкости в температурном диапазоне.

Особенностью данного датчика является собственная память и содержание в ней 64-битного кода, позволяющего подключать вплоть до 127 датчиков на одну линию. Еще одной фишкой есть возможность подключения по схеме фантомного питания, когда вместо трех, используется два провода (питание и данные). Земля не подключается.

Мониторинг температуры через интернет. Урок 1.

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

Как работает система мониторинга температуры?

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

Рис. 1. Технология передачи данных

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

Измеренные значения температуры передаются устройством на сервер, где сохраняется в базу данных (БД). В ответ сервер присылает устройству команду для управления реле, которая так же хранится в его БД.

Пользователь, подключаясь к серверу через браузер, получает от него текущее значение температуры, а нажимая на кнопку включения/ выключения реле с помощью web-интерфейса, он отсылает соответствующую команду управления реле на сервер.

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

Что представляет собой передающее устройство?

Посмотрим на структурно-функциональную схему устройства:

Рис. 2. Структурно-функциональная схема передающего устройства

Контроллер – это «мозговой центр» системы. Он управляет процессом обмена данными с датчиком температуры, работой модема и состоянием выходного реле.

Датчик температуры DS18B20 по команде от контроллера производит замер температуры и передаёт полученные показания контроллеру.

GPRS модем SIM900 передаёт значение температуры, полученное от датчика, на сервер и получает в ответ команду для управления реле. Работой модема управляет контроллер. По его командам SIM900 подключается к GPRS, открывает HTTP-соединение, передаёт запросы и получает от сервера ответы. Кроме того контроллер управляет включением/выключением и перезагрузкой модема.

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

Плата Arduino Mega

Контроллер Arduino Mega был выбран не случайно. Он обладает всеми необходимыми характеристиками: достаточным объёмом оперативной памяти для выполнения операций с получаемыми через интернет текстовыми данными, несколькими аппаратными последовательными портами для организации обмена с модемом и вывода отладочной информации на терминал.

Рис. 3. Плата Arduino Mega

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

Подключение модема SIM900 к Arduino

Модем SIM900 выполняет связующую роль между контроллером передающего устройства и удалённым сервером.

Рис. 4. GPRS-модем SIM900

Плата модема совместима с платой контроллера. SIM900 соединяется с платой Arduino Mega с помощью разъёмов и получает от неё питание. Для работы модема необходима сим-карта любого оператора, обеспечивающая  уверенный доступ к сети интернет в той местности, где будет работать передающее устройство.

Информационный обмен между Arduino Mega и модемом происходит по последовательному порту, использующему две линии связи (принимающую и передающую). Кроме того, контроллер может программно включать и выключать модем, подавая определённые последовательности импульсов на вход «PWRKEY» SIM900.

Рис. 5. Интерфейс связи контроллера и модема

Питание модуля SIM900 коммутируется через реле перезагрузки модема (одно из реле на релейном модуле).

Рис. 6. Управление аппаратной перезагрузкой модема с помощью контроллера

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

Подключение датчика температуры DS18B20 к Arduino

Для измерения температуры используется цифровой датчик DS18B20.

Рис. 7. Датчик температуры DS18B20

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

Рис. 8. Подключение датчика температуры к контроллеру

Подключение модуля реле к Arduino

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

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

Рис. 9. Релейный модуль

Релейный модуль состоит из двух реле. Одно из них будет выполнять функцию выходного реле (рис.10), а другое пригодится, чтобы организовать аппаратную перезагрузку модема (рис.6).

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

Рис. 10. Подключение выходного реле к контроллеру

Реле имеет нормально-закрытый (НЗ) и нормально-открытый (НО) контакты. При появлении управляющего сигнала на входе In1 оба контакта меняют своё состояние на противоположное.

Заключение

На этом пока всё! Надеемся, что было интересно! В следующем уроке мы перейдём от теории к практике и соберём передающее устройство. До скорой встречи на LAZY SMART! Чтобы не пропустить новую статью, вступай в нашу группу Вконтакте, а также подписывайся на наш канал YouTube.


Вентилятор с контролем температуры на базе Arduino

Обзор

Система вентиляторов с регулируемой температурой на базе Arduino, посредством сбора данных о температуре DS18B20, передает данные в Arduino, регулирует рабочий цикл с помощью ШИМ для управления скоростью двигателя, управляет двигателем через схему привода, а счетный модуль двигателя получает скорость двигателя и отображает ее с помощью LCD1602.

дизайн


На высоком уровне напряжение равно U, а коэффициент заполнения равен, тогда среднее напряжение за один цикл равно, поэтому чем больше коэффициент заполнения, тем выше скорость двигателя постоянного тока. Используемый двигатель постоянного тока выдает 41 импульс за один оборот.Если частота одного импульса составляет fHz, скорость двигателя составляет: v = f / 41 * 60 об / мин.

аппаратный дизайн

Схема измерения температуры: в этой конструкции DS18B20 подключен к выводу 10 Arduino для измерения температуры.

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

Модуль приводного двигателя: эта конструкция использует 9 портов Arduino для вывода импульсов ШИМ и управляет двигателем постоянного тока через 8550 для реализации регулировки скорости вращения вентилятора с регулируемой температурой. Когда температура окружающей среды увеличивается, рабочий цикл увеличивается, поэтому скорость увеличивается, а когда температура снижается, скорость становится медленнее.Поскольку 8550 является низкочастотным, вам нужно уделять внимание программированию.

разработка программного обеспечения






LiquidCrystal lcd(12, 11, 7, 6, 5, 4);// Устройство с одной шиной, изначально подключенное к одной шине
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
Servo myservo;    // Определение сервообъектов, до восьми 
double x;// Входящее значение датчика температуры
int Speed;
int Speeds;
int speedss;
unsigned long period;
unsigned char flag=0;
int M=3;
void setup() {
  pinMode(9,OUTPUT);
  pinMode(3,INPUT);
  Serial.begin(9600);        
  attachInterrupt(0, freqDetect, RISING);
  Serial.begin(9600);
  Serial.println("Dallas Temperature IC Control Library Demo");
  sensors.begin();
  lcd.begin(16, 2);
}

void loop() {
 // Получаем температуру
  sensors.requestTemperatures();
  Serial.print("Temperature for the device 1 (index 0) is: ");
  Serial.println(sensors.getTempCByIndex(0));
  delay(1000);  
  lcd.setCursor(0, 0);
  lcd.print(sensors.getTempCByIndex(0));
 // Контроль скорости
  x=1024/10*(sensors.getTempCByIndex(0)-25);// Температура от 25 до 35
  speedss= map(x, 0, 1023, 0, 180);
  Speeds=180-speedss;
  analogWrite(9,Speeds);
 // Измеряем скорость и отображаем  
if(1==flag)
  {
    noInterrupts();
    flag=0;
    Speed=60000000/(41*period);
    Serial.println(Speed);
    Serial.print(" r/min");
    interrupts();
    delay(1000);
     lcd.setCursor(0, 1);
     lcd.print("     ");
     lcd.setCursor(0, 1);
     lcd.print( Speed);
     delay(1000);
  }
}
 // Период измерения
void freqDetect()
{
  static unsigned long lastTime;
  period = micros()-lastTime;
  flag=1;
  lastTime = micros();
}

результат




v=411/41*60=601 r/min

Цифровой датчик температуры Arduino

Описание

Цифровой датчик температуры (рисунок 1), входящий в состав ARDUINO SENSOR KIT, предназначен для контроля температуры воздуха в помещении. Определяет превышение температурой установленного порога и одновременно позволяет грубо оценивать величину температуры. Пороговое значение настраивается точно, но для точного измерения температуры и для сборки электронного термометра используют другой датчик. Цифровой датчик температуры состоит из платы, на которой смонтированы 4 порта подключения к плате Arduino, терморезистор, подстроечный резистор и двойной компаратор (LM393). Регулятором чувствительности (переменным резистором) можно настраивать чувствительность датчика, определяя в каких случаях он будет срабатывать.

Рисунок 1 — Цифровой датчик температуры Arduino.

Терморезистор является воспринимающим элементом датчика. Он соединен со входом микросхемы компаратора. С помощью подстроечного резистора выполняется настройка порога срабатывания компаратора (устанавливается температурный порог). При превышении температурой установленного порога на выходе D0 будет высокий уровень напряжения. Если температура мала, то на выходе D0 низкий уровень. Данный датчик может отправлять как цифровой, так и аналоговый сигнал. Технические характеристики цифрового датчика температуры представлены в таблице.

Таблица – Технические характеристики цифрового датчика температуры Arduino.

ПараметрЗначение
Номинальное рабочее напряжение5 В
Точность± 0.5 °C
Рабочая температураот 0 °C до 70 °C
Габаритные размеры43 мм x 16 мм x 15 мм
Подключение модуля пассивного зуммера

Распиновка цифрового датчика температуры представлена на рисунке 2.

Рисунок 2 – Распиновка цифрового датчика температуры Arduino.

Для его подключения потребуются:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • провода типа «папа-мама»;
  • цифровой датчик температуры;
  • USB кабель для подключения платы Arduino к персональному компьютеру с установленной средой Arduino IDE.

Схема подключения цифрового датчика температуры к плате Arduino представлена на рисунке 3.

Рисунок 3 – Подключение цифрового датчика температуры к Arduino UNO.

Схемы подключения цифрового датчика температуры к микроконтроллерам Arduino Uno, Arduino Nano или Arduino Mega принципиально ничем не отличаются.
Подключается цифровой датчик температуры к Arduino Uno следующим образом:

  • GND — GND;
  • VCC — 5V;
  • AO, аналоговый выход – к пину A0;
  • DO, цифровой выход – к пину 10.

Как правило к плате Arduino подключается один из выходов AO или DO.
После сборки электрической схемы, необходимо загрузить управляющую программу (скетч) в микроконтроллер. Затем можно открыть монитор порта и понаблюдать за получаемыми датчиком значениями.

Применение

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

LM393 Цифровой датчик температуры модуль температуры измерений модулей для Arduino

Материал: PCB Цвет: Голубой Размер: 32 * 14 мм Вес: 10G. ИСПОЛЬЗУЕТ: Определение температуры, датчик контроля температуры, температуры окружающей среды обнаружение Пакет включает в себя:

1/3/5/10Piece температурного датчика модуль

Возможности модуля: 1. NTC термистор датчик принимается, с хорошей чувствительностью 2. Выход компаратора, чистый сигнал, хорошие волны, сильная способность управлять автомобилем, над 15mA. 3. Оснащен потенциометр для настройки значения температуры обнаружения клапан 4. Рабочее напряжение 3.3 v-5v 5. Форма выпуска: цифровой импульсный выход (0 и 1) 6. Отверстия для болтов фиксированной предоставляются для облегчения установки 7. Малый размер PCB: 3.2 см x 1.4 см 8. Используется компаратор напряжения LM393 Инструкции модуля 1. Термистора модуль чувствительны к температуре и обычно используется для определения температуры окружающей среды; 2, через для регулировки потенциометра, можно изменить порог обнаружения температуры (я.e., контроль температуры), такие, как необходимость контроля температуры окружающей среды – 50 градусов, в то время как модуль соответствующей температуры окружающей среды на зеленый свет, делать вывод высокого уровня, ниже заданной температуры, высокий уровень производства, не зеленый свет; 3. Выходной конец ДУ может быть напрямую связано с Однокристальные микро-ЭВМ, и высокого и низкого уровня могут быть обнаружены одночиповых микрокомпьютер, с тем чтобы обнаружить изменения температуры окружающей среды. 4. Выходной терминал может непосредственно диск релейный модуль магазина, формируя таким образом регулятор температуры для управления рабочей температуры соответствующего оборудования, или подключить вентилятор для охлаждения, и т.д.. 5. Температурный диапазон обнаружения этого модуля является 20-80 градусов Цельсия; 6. Этот модуль может также быть заменены датчики температуры с проводами для контроля температуры воды, емкость для воды, и т.д. Список продуктов: Температурный датчик температуры датчика модуль модуль модуль

Тип товара: Датчики

SHome — умный дом | N.E.C.O

Это приложение также позволяет нам контролировать температуру и влажность, для этого мы используем датчик температуры и влажности DHT22.
Датчик подключается к Arduino и результаты измерения температуры и влажности отправляются  в приложение. Если мы хотим изменить скетч Arduino, чтобы адаптировать его к другому датчику, мы должны знать в каком формате отправляются данные, чтобы приложение могло их прочесть. Чтобы приложение получило данные от arduino, мы должны следовать следующему формату:
Например, значение температуры составляет 25,5, а предел температуры  22, значение влажности – 75,5, а предел влажности – 65, значит мы должны отправить следующее: <25,5 / 22 / 75,5 / 65/1 / 1>. Первое значение должно быть “<“, затем “температура”, затем “/”, затем “предел температуры”, затем “/”, затем “влажность”, затем “/”, затем “2”, если контроль влажности активирован, или “1”  если контроль влажности выключен, затем « / », затем « 2 », если контроль температуры активирован, или « 1 », если контроль температуры выключен.

Например, если мы отправляем следующие значения «<25,5 / 22 / 65,5 / 65 / 2/2>», это означает, что приложение покажет температуру 25,5 ° С, влажность 65,5%, предел влажности и температуры будут активированы. Если мы отправим «<25,5 / 25 / 65,5 / 65 / 1/1>», контроль влажности будет отключен, и контроль температуры будет отключен. Если вы не знаете, как программировать Arduino, не беспокойтесь, просто скачайте скетч  написанный мной и подключите все по схеме. Я просто хотел объяснить детали для тех, кто любит делать свои собственные модификации, но другие могут использовать готовый скетч и схему которую вы найдете ниже. Если у нас уже все подключено мы должны увидеть температуру и влажность в приложении. Чтобы увидеть температуру на главном экране убедитесь, что индикатор состояния подключения горит зеленым. Если индикатор зеленый нажмите кнопку температуры, и откроется новый экран.
Если мы все сделали правильно, мы должны увидеть текущую температуру. Ниже указателя температуры находится индикатор предела температуры, красного цвета; если он красный, это означает что контроль температуры отключен; если мы нажмем этот индикатор ограничения температуры, на Arduino будет отправлена ​​команда для активации контроля температуры, и когда контроль будет активирован в Arduino, Arduino отправит подтверждение, и если все работает хорошо индикатор ограничения температуры станет желтым , Если мы хотим отключить контроль температуры, просто снова нажмимем индикатор ограничения температуры. Мы делаем то же самое с контролем влажности. Значение в индикаторе предела температуры / влажности показывает, когда управляющий контакт деактивирован. Пример: если у нас есть значение «25Cº» в индикаторе ограничения температуры, это означает, что, когда температура достигнет 25ºC, вывод 12 Arduino будет деактивирован, а если температура упадет примерно от 2ºC до 20ºC, он снова активируется. Если у нас есть красный индикатор контроля температуры, контакт 12 будет постоянно отключен. То же самое происходит с влажностью, только во влажности, вывод, который будет деактивирован, является выводом 11. Я объясню, что это значит: предположим, что мы хотим поддерживать температуру на уровне + 25Cº, мы должны подключить к выводу 12 модуль реле для Arduino и в приложении мы устанавливаем ограничение 25Cº. Реле активирует нагреватель или что-то, что будет обогревать помещение, и когда температура достигнет установленного нами предела, контакт 12 будет отключать реле до тех пор пока температура не упадет около 2ºC, в этот момент нагреватель снова будет активирован, таким образом температура останется на значении которое мы установили в приложении. То же самое происходит с влажностью. Чтобы убедиться, что arduino сохранил значение, мы должны следить за тем, чтобы предел температуры перестал мигать. Когда мы начинаем нажимать кнопку «вверх» или «вниз» для изменения предела температуры, предел температуры начинает мигать и не прекращается, пока приложение «SHome» не получит подтверждение того что значение сохранено правильно. Таким образом, если при нажатии кнопки «Сохранить» индикатор ограничения температуры перестанет мигать, мы знаем, что значение сохранено правильно.

Код контроллера температуры

Arduino и рабочий

Контроллер температуры — это устройство, используемое для регулирования температуры объекта, пространства внутри контейнера или комнаты и т. Д. Он работает путем измерения температуры окружающей среды с помощью термодатчика и управления механизмом нагрева или охлаждения для поддержания заданной температуры. диапазон.

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

Здесь термистор NTC используется для измерения температуры, см. Измерение температуры с помощью термистора Arduino и NTC. И вентилятор, и нагреватель управляются с помощью модуля реле 5 В, цифровой вывод Arduino подает сигнал на модули реле. Таким образом, в цепи можно использовать любой нагревательный или охлаждающий механизм с внешним источником постоянного или переменного тока; убедитесь, что номинальная нагрузка не превышает номинал релейного модуля.

Управление нагревателем (Устройство нагрева)

Поддерживает температуру выше минимальной.

Это устройство управления нагревателем полезно для поддержания температуры выше определенного предела. То есть температура всегда будет поддерживаться выше минимального уровня. Нагреватель остается выключенным, если температура выше минимального значения, и включается только тогда, когда значение температуры падает до минимального значения (в коде значение «нагреватель_на_температуре»), затем нагреватель запускается и остается включенным до тех пор, пока значение температуры не будет установлено. достигает значения до оптимального уровня («нагрев_выкл_температура»).

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

Код

 const int Heating_out = 2;
int Ro = 50, B = 3950, Rseries = 10;
float To = 298,15;
внутренняя температура включения нагревателя = 50, температура выключения нагревателя = 55;

void setup () {
  pinMode (нагреватель_выход, ВЫХОД);
}

void loop () {
  float Vi = analogRead (A0) * (5.0 / 1023,0);
  float R = (Vi * Rseries) / (5 - Vi);
  float T = 1 / ((1 / To) + ((log (R / Ro)) / B));
  поплавок Tc = T - 273,15;
  // с плавающей точкой Tf = Tc * 9.0 / 5.0 + 32.0;
  if (Tc <= нагреватель при_температуре) {
    // Включаем нагреватель_out
    digitalWrite (нагреватель_выход, ВЫСОКИЙ);
  }
  иначе, если (Tc> = нагрев_выкл_температура) {
    // Выключаем нагреватель_out
    digitalWrite (нагреватель_выход, НИЗКИЙ);
  }
  задержка (1000);
}
 

Значения температуры в приведенном выше коде даны в градусах Цельсия «Tc» для использования по Фаренгейту «Tf», которая прокомментирована в коде.Здесь, в коде, нагреватель включен и выключен при 50 ° C и 55 ° C соответственно. Следовательно, нагреватель будет включаться на время повышения температуры до 55 ° C и выключаться во время отвода тепла с 55 ° C до 50 ° C.

Управление вентилятором (система охлаждения)

Всегда поддерживает температуру ниже максимальной.

Управление вентилятором находится прямо напротив нагревателя. Здесь вентилятор пытается ограничить повышение температуры выше максимального значения.

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

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

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

Код

 const int fan = 3;
int Ro = 50, B = 3950, Rseries = 10;
float To = 298,15;
int fan_off_temperature = 28, fan_on_temperature = 32;
void setup () {
  pinMode (вентилятор, ВЫХОД);
}

void loop () {
  float Vi = analogRead (A0) * (5.0 / 1023,0);
  float R = (Vi * Rseries) / (5 - Vi);
  float T = 1 / ((1 / To) + ((log (R / Ro)) / B));
  поплавок Tc = T - 273,15;
  if (Tc> = 34) {
    // Включаем вентилятор
    digitalWrite (вентилятор, ВЫСОКИЙ);
  }
  иначе, если (Tc <= 31) {
    // Выключаем вентилятор
    digitalWrite (вентилятор, НИЗКИЙ);
  }
  задержка (1000);
 

Здесь в коде температура выключения вентилятора составляет 28 ° C, а температура включения - 32 ° C. Нагреватель будет выключен, пока температура не достигнет 32 ° C, и включится, пока значение температуры не снизится с 32 ° C до 28 ° C.

Управление нагревателем и вентилятором

Отрегулируйте температуру в оптимальном диапазоне.

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

Код

 const int нагреватель = 2, вентилятор = 3;
int Ro = 50, B = 3950, Rseries = 10;
float To = 298.15;
int оптимум = 25, вариация = 2;
void setup () {
  pinMode (нагреватель, ВЫХОД);
  pinMode (вентилятор, ВЫХОД);
}

void loop () {
  float Vi = analogRead (A0) * (5.0 / 1023.0);
  float R = (Vi * Rseries) / (5 - Vi);
  float T = 1 / ((1 / To) + ((log (R / Ro)) / B));
  поплавок Tc = T - 273,15;
  // Для оптимальной температуры 25 и вариации 2.
  // Управление нагревателем
  if (Tc <= (оптимум - вариация)) {
    // Меньше или равно 23: нагреватель ВКЛ.
    digitalWrite (нагреватель, ВЫСОКИЙ);
  } else if (Tc> = оптимальный) {
    // Больше или равно 25: нагреватель ВЫКЛ.
    digitalWrite (нагреватель, НИЗКИЙ);
  }
  //Управление вентилятором
  if (Tc> = (оптимум + вариация)) {
    // Больше или равно 27: вентилятор включен
    digitalWrite (вентилятор, ВЫСОКИЙ);
  } else if (Tc <= оптимальный) {
    // Меньше или равно 25: вентилятор выключен
    digitalWrite (вентилятор, НИЗКИЙ);
  }
  задержка (1000);
}
 

Здесь прибор всегда старается поддерживать температуру на оптимальном уровне.В коде оптимальное значение составляет 25 ° C, а отклонение составляет ± 2 ° C.

Максимум = оптимальный + вариация

Минимум = оптимум - вариация

(максимум + минимум) / 2 = оптимально

Таким образом, если температура равна или ниже 23 ° C, нагреватель включается и выключается, когда температура достигает 25 ° C. Точно так же, если температура выше или равна 27 ° C, вентилятор включается и выключается, когда температура падает до 25 ° C. Таким образом, допускается отклонение от оптимальной температуры только на ± 2 ° C.

(PDF) Система автоматического контроля температуры с использованием Arduino

Nagendra et al. представил дизайн и реализацию датчика температуры

на базе Arduino, который также использовался для измерения уровня влажности [4]. Канишак и др.

представил тематическое исследование систем контроля температуры с использованием микроконтроллера,

TRIAC и мостовых выпрямителей [5]. Vaibhav et al. реализована система регулирования скорости

по изменению температуры; для изменения измерения температуры использовалась система контроля температуры

.ШИМ и программное обеспечение для моделирования использовались для проектирования оборудования и моделирования на компьютере [6]. Теофилус и др. представили

тестирование механизма контроля температуры с помощью системы Atmel Atmega 8385

и датчика температуры LM35 [7].

Kiranmai et al. также предложила систему контроля температуры, и было заявлено, что

очень полезен для приложений, связанных с Интернетом вещей (IoT). Однако приложение реального времени

для любого такого приложения не тестировалось [8].Singhala et al.

исследовал нечеткую систему контроля температуры, которая была полностью основана на моделировании

, и никакой аппаратной реализации достичь не удалось. Предложенная система

была очень простой и эффективной, но аппаратная реализация и реальная реализация

остаются в качестве будущей работы [9].

Мухаммад [10] разработал ПИД-регулятор и реализовал его на виртуальной лабораторной платформе

LabVIEW компании National Instruments. Было высказано предположение, что аппаратная реализация

на базе Arduino даст очень релевантные и подходящие результаты

для контроля температуры.Samil et al. использовали концепцию ШИМ и

отображали значения температуры с помощью ЖК-дисплеев [11]. Masstor et al. sug-

представил пример системы сигнализации, основанной на измерении температуры и влажности.

Был предложен модуль GSM / GPRS, управляемый Arduino, но измерение температуры

не было точным в системе [12]. Окпагу и др. предложила разработку

системы контроля температуры для системы инкубатора яиц с использованием датчиков, контроллеров PID

, ЖК-дисплеев, двигателей постоянного тока и системы управления вентиляторами.Это очень важный тип инкубаторной системы

, потому что становится важным контролировать эмбрион

и его рост, и, следовательно, контроль температуры и мониторинг играют важную роль в этой системе [13].

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

. Датчик освещенности, датчик температуры и аппаратное обеспечение Arduino

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

, предложенная для мониторинга окружающей среды для использования в больницах [14]. Merean et al.

предложила проектирование и разработку системы дистанционного контроля температуры

. Работа на основе Arduino направлена ​​на обеспечение жизнеспособного решения для психического мониторинга и ухода за средой

[15].

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

мониторинга, исследователями не предпринимался, в основном, по температуре в

фокусе исследования.Мы предлагаем систему управления Arduino и аппаратную систему управления температурой

, в основном выделяя мониторинг и измерение температуры.

Автоматическая система контроля температуры с использованием Arduino 221

APMonitor / arduino: Лаборатория контроля температуры процесса

Модульная портативная лаборатория для обучения управлению процессами

Лаборатория контроля температуры BYU Arduino разработана как модульное, портативное и недорогое решение для практического обучения управлению процессами.Тепловая мощность регулируется путем регулирования напряжения на транзисторе. Термистор измеряет температуру. Энергия с выхода транзистора передается датчику температуры за счет теплопроводности и конвекции. Лаборатория интегрирована в небольшой экран печатной платы, который можно установить на любой микроконтроллер, совместимый с Arduino или Arduino. Затем можно программно управлять экспериментами с помощью Python через USB-соединение.

Основные характеристики

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

  • Разница между ручным и автоматическим управлением
  • Пошаговые тесты для генерации динамических данных для эмпирического моделирования
  • Динамическое моделирование на основе первых принципов
  • Динамическое согласование данных
  • Настроить оценщик движущегося горизонта
  • Настройте ПИД-регулятор
  • Настройка прогнозирующего контроллера модели
  • Объединить MHE и MPC

Начало работы

Инструкции по настройке системы и началу работы с лабораторной работой см. В разделе «Начало работы».

Модули курса

Включены следующие примеры модулей

Ступенчатый тест

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

Регрессия

Демонстрирует использование регрессии в Python для подгонки моделей первого и второго порядка и моделей ARX к собранным данным.

Вкл_Выкл_Контроль

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

ПИД-регулирование

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

Оценка движущегося горизонта

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

Прогностический контроль модели

Демонстрирует расширенное управление желаемой уставкой с помощью Model Predictive Controller.

MHE и MPC

Сочетает MHE для онлайн-оценки параметров модели с расширенным контролем MPC для достижения желаемой уставки.

Веб-сайт курса

Для получения дополнительной информации и обучающих видеороликов посетите страницу лаборатории контроля температуры Arduino на веб-сайте курса BYU Process Dynamics and Control.

Поддержка Matlab

MATLAB должен быть установлен и настроен с дополнительным пакетом, как показано здесь для MATLAB 2017b. Это позволяет MATLAB подключаться к устройству Arduino с помощью команды a = arduino . Файлы MATLAB и модели Simulink доступны для тестирования основных функций нагревателей и датчиков.

Автоматический контроль температуры с Arduino

Посмотреть видеоурок, часть 1:

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

Рисунок 1: Блок-схема автоматического регулирования температуры

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

Контролируемой зоной может быть небольшое растение, дом или любое место или устройство, требующее контролируемой температуры, например, инкубатор (яйцо). На рисунке 1 показана блок-схема проектируемой системы. Желаемая настройка температуры вводится с клавиатуры и сохраняется в энергонезависимой памяти Arduino в EEPROM, чтобы сохранить настройки даже во время сброса системы или выключения питания.

Температура помещения измеряется аналоговым датчиком температуры, для этого используется прецизионный датчик температуры на интегральной схеме LM35.

Arduino непрерывно считывает температуру и сравнивает ее с желаемым значением. Если желаемое значение выше, чем измеренное значение, то включается обогреватель для обогрева участка. Нагреватель выключается при достижении желаемой температуры. Если, с другой стороны, измеренное значение выше требуемого, тогда включается вентилятор, чтобы охладить зону до достижения требуемой температуры. На ЖК-дисплее постоянно отображается измеренная температура.

На рисунке 2 показана принципиальная схема проекта.Микросхема прецизионного аналогового датчика температуры LM35 подключена к выводу аналогового входа A0. ЖК-дисплей 16 × 2, клавиатура 3 × 4 и два реле используются и подключаются, как показано на рисунке 2. Клавиша « * » на клавиатуре используется для доступа к меню настроек, а клавиша « # » используется. to Введите (сохраните) настройку в Arduino EEPROM. Нагреватель и вентилятор управляются с помощью транзисторов и реле, подключенных к контактам D4 и D3 Arduino соответственно.

Во время запуска на ЖК-дисплее отобразится: «Автоматический контроль температуры», через 2 секунды, если эталонная температура не установлена, программа перейдет в режим настройки и предложит пользователю ввести эталонную температуру и сохранить ее в Arduino EEPROM.Но если эталонная температура уже установлена, программа сразу перейдет в рабочий режим, отображая эталонную температуру и фактическую температуру.

Рисунок 2: Автоматический контроль температуры с использованием принципиальной схемы Arduino

В этом проекте используется код

для Arduino. Flowcode - это расширенное графическое программирование для встраиваемой разработки, предварительные знания программирования для Flowcode не требуются, он упрощает все для новичков.

Подробнее читайте в статье:

Начало работы с Flowcode для Arduino

Важно:

Номиналы клемм реле должны зависеть от мощности нагревателя и вентилятора.Если вы решите использовать нагреватель и вентилятор 220 В, используйте соответствующие реле, которые могут выдерживать это напряжение и ток. Не используйте высокое напряжение на реле, если оно подключено к макетной плате, это очень опасно, мы используем макетную плату в этой демонстрации, потому что мы используем низкое напряжение 12 В и 5 В.

Низкое напряжение постоянного тока катушки должно быть предпочтительно 5 В и с низким током, чтобы транзистор BC108 мог работать, или вы можете использовать другой транзистор. Пожалуйста, соблюдайте меры предосторожности, так как 220 В (или 110 В, если вы живете в США) очень опасно. Если вы никогда раньше не работали с высоким напряжением, обратитесь за помощью, не пытайтесь делать это самостоятельно.

Купите компоненты, используемые в этом проекте, в нашем Интернет-магазине

Системная панель 3D

Рисунок 3: Блок-код автоматического регулирования температуры 3D Системная панель

Блок-схема основного потока

Рисунок 4: Основная блок-схема автоматического регулирования температуры

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

Пожалуйста, посмотрите видео ниже, чтобы узнать, как создавать макросы в Flowcode.

Вам может быть интересно: Система автоматического контроля температуры с использованием PIC с компилятором MPLAB XC8

Вам может быть интересно: Система автоматического контроля температуры с использованием PIC с mikroC Pro для PIC-компилятора

Вас может заинтересовать: Автоматическая система контроля температуры с использованием PIC с кодом потока для PIC

Посмотреть видеоурок, часть 2:

Посмотреть видеоурок, часть 3:

Проектирование

Рисунок 5: Автоматический контроль температуры на макетной плате

Как мы уже упоминали выше, пожалуйста, не используйте высокое напряжение на реле на макетной плате, это очень опасно, мы используем макетную плату в этой демонстрации, потому что мы используем низкое напряжение 12 В и 5 В.Никогда не пытайтесь использовать 220 В или 110 В.

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

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

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

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

Теперь вы можете получить SMT-Stencil всего за 10 долларов за 1 день! Всего 5 долларов США за 10 1-2 слоев печатной платы и всего 30 долларов за сборку SMT с БЕСПЛАТНОЙ доставкой по всему миру.Пожалуйста, нажмите на изображение ниже для получения дополнительной информации или посетите их на https://www.pcbway.com/

Если вам понравилась эта статья, то, пожалуйста, подпишитесь на наш канал YouTube для видеоуроков. Вы также можете найти нас в Twitter и Facebook (пожалуйста, поставьте лайк на нашей странице или подпишитесь на нас, чтобы получать больше обновлений).
Если у вас есть вопросы, задавайте их на форуме или в комментариях на YouTube.

Вы можете загрузить полные файлы проекта (проект Flowcode, файлы схемы Proteus Schematic) ниже здесь.Все файлы заархивированы, вам нужно будет их распаковать (для распаковки файлов загрузите бесплатную версию утилиты Winzip).

Arduino Flowcode Project: автоматическое управление температурой Arduino Flowcode

Схема Arduino Proteus

: автоматическое управление температурой Arduino Flowcode Proteus

Simulink Temperature Control Lab (TCLab) с Arduino - Обмен файлами

The Temperature Control Lab - это настраиваемое устройство Arduino для обучения машинному обучению и управлению процессами.Настраиваются два нагревателя и светодиод. Два датчика температуры имеют многовариантный и динамический отклик на изменения нагревателя. Термохромный пигмент становится розовым, когда он горячий, и черным, когда он остывает. Лаборатория Simulink предоставляет данные, так что теория и методы подкрепляются конкретными и осязаемыми примерами. Студентам и преподавателям доступны учебные материалы благодаря усилиям многих профессоров. TCLab также доступен на Amazon.

Домашняя страница TCLab: https://apmonitor.com/heat.htm
Amazon: https: // www.amazon.com/TCLab-Temperature-Control-Lab/dp/B07GMFWMRY

Национальный научный фонд спонсировал отчет о соответствии академической среды и промышленности химической инженерии ожиданиям новых выпускников. В отчете указывается на сильную потребность промышленности в практическом понимании управления процессами и системной динамики. Отзывы отрасли также указали на то, что нужно уделять больше внимания переводу теории на практику таким образом, чтобы это можно было масштабировать для больших классов. Преподаватели из 40 университетов приняли лабораторию, в первую очередь, для обучения динамике процессов и управлению.Отдельным лицам и инструкторам было роздано более 1900 лабораторных наборов.

Дополнительная информация (видео): https://youtu.be/E5747TUHVmQ

Цитировать как

Джон Хеденгрен (2021 г.). Лаборатория контроля температуры Simulink (TCLab) с Arduino (https://www.mathworks.com/matlabcentral/fileexchange/72489-simulink-tempera-control-lab-tclab-with-arduino), MATLAB Central File Exchange. Проверено 17 августа 2021 г. .

Hedengren, J.Д., Мартин, Р. А., Кантор, Дж. К., Руэл, Н., Лаборатория контроля температуры для динамики и контроля, Ежегодное собрание AIChE, Орландо, Флорида, ноябрь 2019 г. Резюме: https://apm.byu.edu/prism/uploads /Members/AIChE_2019_TCLab.pdf Оливейра П.М., Хеденгрен Д.Д., Эксперимент по ПИД-регулированию в лаборатории температуры APMonitor для студентов бакалавриата, 24-я конференция IEEE по новым технологиям и автоматизации производства (ETFA), 10-13 сентября 2019 г., Сарагоса, Испания. Препринт: https://apm.byu.edu/prism/uploads/Members/Oliviera_ETFA_2019.pdf Росситер, Дж. А., Джонс, Б. Л., Поуп, С., Хеденгрен, Д. Д., Оценка и демонстрация лабораторного комплекта Take Home, Приглашенная сессия: демонстрация и стендовая сессия, 12-й симпозиум МФБ по достижениям в области контрольного образования, 7-9 июля 2019 г. Филадельфия, Пенсильвания, США. Препринт: https://apm.byu.edu/prism/uploads/Members/IFAC_ACE_2019_Rossiter.pdf

Автоматический контроль температуры с Arduino

Посмотреть видеоурок, часть 1:


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

Рисунок 1: Блок-схема автоматического регулирования температуры

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

Контролируемой зоной может быть небольшое растение, дом или любое место или устройство, требующее контролируемой температуры, например, инкубатор (яйцо). На рисунке 1 показана блок-схема проектируемой системы.Желаемая настройка температуры вводится с клавиатуры и сохраняется в энергонезависимой памяти Arduino в EEPROM, чтобы сохранить настройки даже во время сброса системы или выключения питания.

Температура помещения измеряется аналоговым датчиком температуры, для этого используется прецизионный датчик температуры на интегральной схеме LM35.

Arduino непрерывно считывает температуру и сравнивает ее с желаемым значением. Если желаемое значение выше, чем измеренное значение, то включается обогреватель для обогрева участка.Нагреватель выключается при достижении желаемой температуры. Если, с другой стороны, измеренное значение выше требуемого, тогда включается вентилятор, чтобы охладить зону до достижения требуемой температуры. На ЖК-дисплее постоянно отображается измеренная температура.

На рисунке 2 показана принципиальная схема проекта. Микросхема прецизионного аналогового датчика температуры LM35 подключена к выводу аналогового входа A0. Используются ЖК-дисплей 16 × 2, клавиатура 3 × 4 и два реле, которые подключаются, как показано на рисунке 2.Клавиша « * » на клавиатуре используется для доступа к меню настроек, а клавиша « # » используется для ENTER (сохранения) настройки в Arduino EEPROM. Нагреватель и вентилятор управляются с помощью транзисторов и реле, подключенных к контактам D4 и D3 Arduino соответственно.

Во время запуска на ЖК-дисплее отобразится: «Автоматический контроль температуры», через 2 секунды, если эталонная температура не установлена, программа перейдет в режим настройки и предложит пользователю ввести эталонную температуру и сохранить ее в Arduino EEPROM.Но если эталонная температура уже установлена, программа сразу перейдет в рабочий режим, отображая эталонную температуру и фактическую температуру.

Рисунок 2: Автоматический контроль температуры с использованием принципиальной схемы Arduino

В этом проекте используется код

для Arduino. Flowcode - это графическое программирование с мировым именем для встраиваемых систем, для работы с Flowcode не требуется никаких предварительных знаний в области программирования, он упрощает все для новичков.

Подробнее читайте в статье:

Начало работы с Flowcode для Arduino

Важно:

Номиналы клемм реле должны зависеть от мощности нагревателя и вентилятора.Если вы решите использовать нагреватель и вентилятор 220 В, используйте соответствующие реле, которые могут выдерживать это напряжение и ток. Не используйте высокое напряжение на реле, если оно подключено к макетной плате, это очень опасно, мы используем макетную плату в этой демонстрации, потому что мы используем низкое напряжение 12 В и 5 В.

Низкое напряжение постоянного тока катушки должно быть предпочтительно 5 В и с низким током, чтобы транзистор BC108 мог работать, или вы можете использовать другой транзистор. Пожалуйста, соблюдайте меры предосторожности, так как 220 В (или 110 В, если вы живете в США) очень опасно. Если вы никогда раньше не работали с высоким напряжением, обратитесь за помощью, не пытайтесь делать это самостоятельно.

Вы можете купить компоненты, используемые в этом проекте, в нашем Интернет-магазине

Системная панель 3D

Рисунок 3: Блок-код автоматического регулирования температуры 3D Системная панель

Блок-схема основного потока

Рисунок 4: Основная блок-схема автоматического регулирования температуры

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

Пожалуйста, посмотрите видео ниже, чтобы узнать, как создавать макросы в Flowcode.

Вам может быть интересно: Система автоматического контроля температуры с использованием PIC с компилятором MPLAB XC8

Вам может быть интересно: Система автоматического контроля температуры с использованием PIC с mikroC Pro для PIC-компилятора

Вас может заинтересовать: Автоматическая система контроля температуры с использованием PIC с кодом потока для PIC

Посмотреть видеоурок, часть 2:


Посмотреть видеоурок, часть 3:

Проектирование

Рисунок 5: Автоматический контроль температуры на макетной плате

Как мы уже упоминали выше, пожалуйста, не используйте высокое напряжение на реле на макетной плате, это очень опасно, мы используем макетную плату в этой демонстрации, потому что мы используем низкое напряжение 12 В и 5 В.Никогда не пытайтесь использовать 220 В или 110 В.

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

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

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

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

Теперь вы можете получить SMT-Stencil всего за 10 долларов за 1 день! Всего 5 долларов США за 10 1-2 слоев печатной платы и всего 30 долларов за сборку SMT с БЕСПЛАТНОЙ доставкой по всему миру.Пожалуйста, нажмите на изображение ниже для получения дополнительной информации или посетите их на https://www.pcbway.com/

Вы можете загрузить полные файлы проекта (проект Flowcode, файлы схемы Proteus Schematic) ниже здесь. Все файлы заархивированы, вам нужно будет их распаковать (для распаковки файлов загрузите бесплатную версию утилиты Winzip).

Arduino Flowcode Project: автоматическое управление температурой Arduino Flowcode

Схема Arduino Proteus

: автоматическое управление температурой Arduino Flowcode Proteus

Головка 3D-принтера

и контроллер температуры мата с использованием Arduino [130500-I]

Введение: для 3D-закрепления различных нитей (ABS, PLA и т. Д.) Требуется удивительно точная температура для экструзии для получения наилучших результатов.Затем, даже при использовании определенного типа, разные цвета могут работать лучше при разных температурах. Я преобразовал фрезер X2 в фрезерный станок с ЧПУ. Не участвует в этом проекте!

Вступление:

Для 3D-пинтинга различные нити (ABS, PLA и т. Д.) Требуют удивительно точной температуры для экструзии для получения наилучших результатов. Тогда даже при использовании определенного типа разные цвета могут лучше работать при разных температурах.

Я преобразовал фрезер X2 в фрезерный станок с ЧПУ.Не участвует в этом проекте!

Однако для превращения этого в 3D-принтер требуется только печатающая головка и регулятор температуры ... Поэтому мне понадобился небольшой регулятор температуры, чтобы точно контролировать температуру печатающей головки, а также температуру мата или базовую температуру для печатного проекта.

Этот контроллер, по крайней мере, позаботится о температуре.

Используя немного Arduino Micro, OLED-дисплей, термистор (ы) и нагревательные элементы, у меня есть рабочий пример макета.

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

Конструкторские ворота (без специального заказа)

  1. Модульный или расширяемый - легко адаптируется для других целей.
  2. Доступный и простой в сборке - использование стандартного Arduino, подключаемого к печатной плате, устраняет необходимость в навыках и инструментах SMD.
  3. Простота использования - поверните ручку, и температура будет установлена.Визуальная обратная связь по параметрам.
  4. Подробно с данными - помогает точно настроить требования к типу нити / цветовой температуре с получением фактических результатов.

Основные характеристики

1 - с ПИД-управлением

Я использую контур ПИД-регулирования для управления заданной температурой печатающей головки и мата с помощью ШИМ-переключения MOSFET и, следовательно, нагревательного элемента 12 В / 40 Вт. Она устанавливается в пределах 0,5 градуса от заданной температуры! Я использую потенциометр, чтобы установить целевую температуру - ее легко набрать целевую температуру.

2 - Датчик - DHT или термистор

Каналы могут использовать либо датчик DHT (например, DHT22), либо термистор.

Уравнение Стейнхарта-Харта для термистора

Что касается термистора, то это стеклянный шарик 100K, и я использую уравнение Стейнхарта-Харта для расчета температуры по термистору и контуру ПИД-регулирования с тремя наборами параметров ПИД. Мне пришлось использовать небольшую программу на Java, чтобы определить три коэффициента, не желая использовать длинную таблицу поиска.Я добавил вентилятор для ПК, чтобы контролировать превышение температуры.

3 - Лесозаготовки

Температура и параметры PID отправляются через USB-кабель на ПК для записи, возможно. С помощью порта расширения шину I2C можно использовать для взаимодействия с другими устройствами. В качестве альтернативы можно использовать модуль сети, Wi-Fi или XBee.

4 - Дисплей

На OLED-дисплее отображается текущая температура головки, целевое значение и отклонение, последние самые высокие и самые низкие температуры с момента включения (или нажатия кнопки сброса статистики) В правом верхнем углу показаны используемые параметры ПИД-регулятора (установить x из 3)

3 - Агрессивный - далеко от заданной температуры

2 - Нормальный - приближается к цели

1 - Чувствительный - в цель

На дисплее попеременно отображается Ch2 и Ch3 каждые 5 секунд.

На фото дисплея ПИД-регулятора показана информация для канала 2. Вверху слева находится счетчик, показывающий, что контроллер не зависает - в этом случае сторожевой таймер перезапустит его. Затем Ch2 (или Ch3), вверху справа в [] - текущий этап ПИД (1 из 3).

Температура, влажность (при использовании DHT), целевая температура с [разницей],

и статистика High и Low.

Сделать:

Я вообще не специалист по управлению процессами, и контур ПИД-регулирования можно значительно улучшить.На данный момент требуется около 5 минут, чтобы температура установилась на цели, и начальное превышение, возможно, слишком велико. Кто-нибудь с опытом PID?

Графическая библиотека, которую я использовал, не сосуществует с библиотекой автонастройки PID. Вызывает хаос с дисплеем ....

Окончательная версия: Версия 4.1

Сейчас у меня достаточно рабочих прототипов разных версий и все.

Поскольку у меня были проблемы с модулем WizNet, заставляющим его работать с Arduino Micro.В любом случае, сжатие графики, IP и PID оставляло очень мало бит для расширения.

Итак, этот ПИД-регулятор выполняет только ПИД-регулирование. Это 2-канальный модуль с ШИМ-управлением с OLED-дисплеем, шиной расширения и заголовком I2C.

Можно использовать термисторы (с помощью коэффициентов Стейнхарта-Харта) или датчики DHT22.

OLED-дисплей можно настроить в режиме SPI или I2C. Я решил использовать его в режиме SPI - он не использует стандартную библиотеку SPI Ardiono и использует определенные контакты.Это оставляет шину I2C для связи с миром.

Большинство важных запасных контактов также доступны на заголовке, если у кого-то есть особые потребности или другие планы. Контакты I2C также доступны на меньшем заголовке.

Этот регулятор температуры будет частью 1 решения из 3 частей. Этот модуль работает как отдельная единица. Часть 2 - это преобразователь уровня I2C, а часть 3 - Raspberry Pi с веб-сервером и базой данных для статистики и управления графическим интерфейсом.

Далее - удаленная связь

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

Используя Raspberry Pi, mySQL, rrd, php и Apache, можно получить доступ к статистике и изменить параметры - возможно, не требуется для 3D-печати, но это полезно для других приложений контроллера температуры.Я начал писать программу, но она еще не готова. Pi будет просто опрашивать контакты I2C и получать или устанавливать текущую температуру, таким образом имея дело с конкретными расписаниями или циклами, например, теплее между 3 и 4 часами утра.

Сеть

Pi может легко обеспечить сетевое подключение через Ethernet или подходящий беспроводной ключ. Итак, это и стек IP отсортированы.

Шина I2C

Связь между Pi и модулями контроллера температуры будет через I2C.Помимо вопроса о разном напряжении на шине между Pi и Arduino, также необходима изоляция. Теоретически тогда должна быть возможность добавлять другие контроллеры (или ведомые устройства I2C) и управлять ими.

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

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