Термостат на ардуино ds18b20: 403 Forbidden — Apache

Содержание

Датчик температуры 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 датчиков на одну линию. Еще одной фишкой есть возможность подключения по схеме фантомного питания, когда вместо трех, используется два провода (питание и данные). Земля не подключается.

Отправка температуры через SMS (GSM) и Arduino. – RobotChip

/*

Тестировалось на Arduino IDE 1.8.5

Дата тестирования 24.10.2020г.

*/

#include <SoftwareSerial.h>                 // Подключаем библиотеку SoftwareSerial

#include <OneWire.h>                        // Подключаем библиотеку OneWire

#include <DallasTemperature. h>              // Подключаем библиотеку DallasTempature

SoftwareSerial mySerial(3, 2);              // Выводы SIM800L Tx & Rx подключены к выводам Arduino 3 и 2

char incomingByte;

String inputString;

int relay_1 = A0;                           // Вывод управления реле 1

int relay_2 = A1;                           // Вывод управления реле 2

#define ONE_WIRE_BUS A2                      // Указываем, к какому выводу подключена DQ

OneWire oneWire(ONE_WIRE_BUS);

DallasTemperature sensors(&oneWire);

  

void setup()

{

   pinMode(relay_1, OUTPUT);                 // Установим вывод как выход

   digitalWrite(relay_1, HIGH);              // Устанавливаем высокий уровень

   pinMode(relay_2, OUTPUT);                 // Установим вывод как выход

   digitalWrite(relay_2, HIGH);              // Устанавливаем высокий уровень

   Serial.begin(9600);                  

   mySerial. begin(9600);

while(!mySerial.available()){               // Зацикливаем и ждем инициализацию SIM800L

    mySerial.println(«AT»);                  // Отправка команды AT

    delay(1000);                             // Пауза

    Serial.println(«Connecting…»);          // Печатаем текст

    }

    Serial.println(«Connected!»);            // Печатаем текст

    mySerial.println(«AT+CMGF=1»);           // Отправка команды AT+CMGF=1

    delay(1000);                             // Пауза

    mySerial.println(«AT+CNMI=1,2,0,0,0»);   // Отправка команды AT+CNMI=1,2,0,0,0

    delay(1000);                             // Пауза

    mySerial.println(«AT+CMGL=\»REC UNREAD\»»);

}

void loop()

{  

   if(mySerial.available()){                  // Проверяем, если есть доступные данные

       delay(100);                            // Пауза

      while(mySerial.available()){            // Проверяем, есть ли еще данные.   

      incomingByte = mySerial.read();         // Считываем байт и записываем в переменную incomingByte  

      inputString += incomingByte;            // Записываем считанный байт в массив inputString  

     }  

       delay(10);                             // Пауза        

       Serial.println(inputString);           // Отправка в «Мониторинг порта» считанные данные

       inputString.toUpperCase();             // Меняем все буквы на заглавные  

 

       if (inputString.indexOf(«ON_1») > -1){ // Проверяем полученные данные, если ON_1 включаем реле 1

        digitalWrite(relay_1, LOW);      

        sms(String(«Relay 1 — ON»), String(«+7xxxxxxxxxx»));

        delay(50);}

    

       if (inputString.indexOf(«OFF_1») > -1){ // Проверяем полученные данные, если OFF_1 выклюем реле 1  

        digitalWrite(relay_1, HIGH);      

        sms(String(«Relay 1 — OFF»), String(«+7xxxxxxxxxx»)); // Отправка SMS      

        delay(50);}

      

       if (inputString. indexOf(«ON_2») > -1){ // Проверяем полученные данные, если ON_2 включаем реле 2

        digitalWrite(relay_2, LOW);      

        sms(String(«Relay 2 — ON»), String(«+7xxxxxxxxxx»));  // Отправка SMS    

        delay(50);}

      

       if (inputString.indexOf(«OFF_2») > -1){     // Проверяем  полученные  данные, если OFF_2 выключаем реле 2

        digitalWrite(relay_2, HIGH);      

        sms(String(«Relay 2 — OFF»), String(«+7xxxxxxxxxx»)); // Отправка SMS    

        delay(50);}

      

       if (inputString.indexOf(«TEMP_1») > -1){     // Проверка полученные данные, если TEMP_1 отправляем температуру

        sensors.requestTemperatures();    

        float temp = sensors.getTempCByIndex(0);  

        Serial.print(sensors.getTempCByIndex(0));

        sms(String(temp), String(«+7xxxxxxxxxx»)); // Отправка SMS    

        delay(50);}

      

       if (inputString.indexOf(«TEMP_2») > -1){     // Проверка полученные данные, если TEMP_2 отправляем температуру

        sensors. requestTemperatures();    

        float temp2 = sensors.getTempCByIndex(1);  

        Serial.print(sensors.getTempCByIndex(1));      

        sms(String(temp2), String(«+7xxxxxxxxxx»)); // Отправка SMS    

        delay(50);}

    

       if (inputString.indexOf(«OK») == -1){    

        mySerial.println(«AT+CMGDA=\»DEL ALL\»»);      

        delay(1000);}    

        inputString = «»;}

 

}

void sms(String text, String phone)  // Процедура Отправка SMS

{

   Serial.println(«SMS send started»);

   mySerial.println(«AT+CMGS=\»» + phone + «\»»);

   delay(500);

   mySerial.print(text);

   delay(500);

   mySerial.print((char)26);

   delay(500);

   Serial.println(«SMS send complete»);

   delay(2000);

}

arduino

Аппаратная платформа, основанная на простой плате ввода/вывода и среды разработки Processing. Удачное решение, для желающих освоить микроконтроллеры.

Arduino IDE — введение

В этом видео уроке я постараюсь помочь начинающим в настройке Arduino IDE. Здесь мы рассмотрим, как настроить Arduino IDE, прошить собственно сам Arduino, прошить в МК бутлоадер и как найти .hex файл скомпилированного скетча.

Автор: talibanich

0 0
[0]

Подключаем нагрузку к Arduino

О подключении мощной нагрузки к Arduino через MOSFET-транзистор. Управление вентилятором при помощи ШИМ. Увеличение частоты ШИМ на Arduino. Создание простой системы управления кулером в зависимости от температуры (применен DS18B20)

Автор: video

0 0
[0]

Обзор Touch-дисплея Nextion. Часть 2

Обзор Touch-дисплея 4.3″ Nextion компании ITEAD с краудфандинговой платформы indiegogo. Подключение к Arduino по UART-интерфейсу, функции рисования при помощи команд в среде Nextion IDE, передача команд от нажатия кнопок на дисплее в Arduino.

Автор: video

0 0
[0]

Управляем нагрузками через Android-смартфон при помощи Arduino

Простой проект для повторения: управление любыми нагрузками с Android-смартфона при помощи Arduino (или любым МК) через Bluetooth. Что понадобится приобрести: Любой клон Arduino, в проекте использовался Arduino Nano (2$), Bluetooth Serial модуль (3$), Опционально Шилд реле (2$)

Автор: video

0 0
[0]

Измеряем пульс с помощью Arduino

В данном видеоролике из Arduino, инфракрасного светодиода и фототранзистора, собран прибор для оптического измерения пульса. Рассмотрены методы программной обработки зашумленных сигналов, в том числе и медианный фильтр. Полученный прибор умеет выводить мгновенное, медианное и среднее значения пульса на LCD дисплей и в последовательный порт.

Автор: video

0 0
[0]

Подключаем энкодер к ардуино

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

Автор: video

0 0
[0]

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

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

Автор: video

0 0
[0]

Схема подключения датчика температуры ds18b20 к arduino

3. 9 / 5 ( 10 голосов )

DS18B20 представляет собой стандартный температурный датчик, разработанный и изготовленный на цифровой основе. Его очень просто эксплуатировать за счет простоты конструкции, а также его адаптивных возможностей к работе с Arduino Processing LCD.

Главными его преимуществами являются:

  • Наличие всего одного контакта для получения полезного сигнала. Это дает возможность подключения огромного количества идентичных сенсоров DS18B20 к одному Arduino Processing LCD.
  • Цифровая система функционирования.
  • Возможность подключения огромного количества идентичных сенсоров к одному пину Arduino Processing LCD.

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

Все датчики типа DS18B20 имеют несколько форм-факторов, которые могут существенно облегчить работу с ними. Право выбора самого форм-фактора всегда, само собой, остается за клиентом. Сегодня на рынке преобладают 3 варианта этой продукции, а именно: 8Pin SO (150 mils), 8Pin µSOP и 3Pin TO92. Информация, которую мы почерпнули, свидетельствует о том, что китайские производители также предлагают приобрести датчик 3Pin TO92, снабженный специальной влагозащитной оболочкой. Это даст вам возможность погружать аппарат в жидкость, использовать во время плохой погоды и в других случаях. У всех сенсоров всегда имеется 3 выходных контакта: черного, красного и белого цветов. Они соответствуют значениям GND, Vdd и Data соответственно.

Дополнительное удобство эксплуатации DS18B20 для Arduino Processing LCD обеспечивается тем, что он может быть подключен к электросети через белый контакт. В этом случае вы будете использовать всего пару контактов вместо тех трех, которые требуются для нормального подключения. Датчик способен функционировать при напряжении в сети от 3 до 5,5 Вольт, а также фиксировать изменения температуры, если она находится в диапазоне от -55 до плюс 125 по Цельсию. Погрешность, которую может выдавать термостат при измерении температуры, составляет 0,5 градуса по Цельсию.

Очень приятным обстоятельством при использовании датчика DS18B20 для Arduino Processing LCD является то, что параллельно к одному аппарату можно подключить до 127 датчиков DS18B20 одновременно.

Трудно представить себе ситуацию, в которой это может потребоваться. Но если установить, например, один датчик в холодильнике, а другой — в морозилке, это будет весьма полезно. Опять же в таком случае у вас останется просто огромное количество свободных пинов для «Ардуино».

Что нужно, чтобы настроить работу датчика DS18B20 для Arduino Processing LCD

Из программного обеспечения вам в обязательном порядке потребуются:

  • Программа Arduino IDE.
  • База данных OneWire library, примечательная тем, что она значительным образом упрощает работу как с самим Arduino, так и со всеми датчиками, включая DS18B20.
  • Скетч.

Программу «Ардуино» можно скачать с ее официального сайта — там есть ее последняя версия в открытом доступе.

База данных OneWire Library может быть скачана на OneWireProjectPage. При этом желательно загружать к себе на компьютер самую свежую ее версию.

Программа Arduino IDE

Из оборудования вам в обязательном порядке потребуются:

  • Nano-датчик для измерения температурных показателей DS 18B20 в количестве минимум одного экземпляра.
  • Контроллер «Ардуино».
  • Термостат.
  • Коннекторы в количестве 3 штук.
  • Плата для монтажных работ.
  • Кабель, который будет обеспечивать подключение «Ардуино» к вашему компьютеру посредством USB-соединения.

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

Nano-датчик температуры DS 18B20

Подключение датчика DS 18B20 к Arduino Processing LCD

Чтобы правильно произвести подключение датчика к системе «Ардуино», необходимо действовать в соответствии со следующим алгоритмом:

  • Черный контакт температурного датчика нужно подключить к GND-системе «Ардуино».
  • Красный контакт температурного датчика нужно подключить к +5V системы «Ардуино».
  • Красный контакт температурного датчика может быть подключен к любому свободному цифровому пину в системе «Ардуино».
  • Подключить к внешней обвязке системы специальный резистор на 4,7 килоома.

Полная схема подключения датчика температуры DS 18B20 к системе Arduino Processing LCD показана на изображении ниже.

Схема подключения датчиков температуры DS 18B20 к системе Arduino

Установка базы данных OneWireLibrary

После успешной закачки архива с базой данных на свой компьютер, ее необходимо импортировать в систему «Ардуино». В панели управления программой необходимо выбрать следующие пункты Sketch – «Импортировать базу данных» — «Добавить базу данных». После этого — выбрать скачанный вами на персональный компьютер архив. Если вы столкнулись с непредвиденными трудностями во время импорта базы данных в систему, следует более тщательно ознакомиться с инструкцией по управлению базами данных в «Ардуино».

Загрузка скетча в систему

Как правило, нужный скетч всегда есть в базе данных OneWireLibrary в категории «примеры». Вам нужно перейти в панели управления программой по такому алгоритму: “Файл” — “Примеры” — OneWire и выбрать пример, который будет содержать название подключаемого датчика температуры.

Эта функция используется для того, чтобы в базу данных могла поступать информация обо всех датчиках температуры DS 18B20 и отображаться на мониторе системы «Ардуино».

Какой тип питания выбрать

Все датчики температуры типа DS 18B20 для Arduino Processing LCD могут работать в обычном или так называемом «паразитном» режиме. При этом если обычный режим подключения предусматривает нормальное функционирование всех 3 коннекторов, то «паразитический» — только 2. Что бы получать правильную и точную информацию со всех датчиков, нужно выбрать правильный режим питания в скетче:

  • чтобы воспользоваться «паразитным» режимом, необходимо ввести dswrite (0x44,1) в 65-й строке;
  • обычным режимом — ввести dswrite (0x44) в 65-й строке.

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

Подключение термодатчика DS18b20 к программе Arduino

Как подключить несколько датчиков температуры DS 18B20 одновременно

Подключение нескольких датчиков температуры типа DS 18B20 к Arduino Processing LCD возможно. Это обеспечивается базой данных OneWirelibrary, способной считывать всю информацию со всех подключенных устройств одновременно.

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

Если же вы собрались подсоединять больше десятка датчиков DS 18B20, могут быть проблемы с их точностью. В таком случае можно установить резистор (сопротивление — примерно 100 Ом) между белым контактом на аппарате «Ардуино» и белым контактом на каждом датчике.

Автор, специалист в сфере IT и новых технологий.

Получил высшее образование по специальности Фундаментальная информатика и информационные технологии в Московском государственном университете имени М.В. Ломоносова. После этого стал экспертом в известном интернет-издании. Спустя время, решил попробовать писать статьи самостоятельно. Ведет популярный блог на Ютубе и делится интересной информацией из мира технологий.

Загрузка…

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

    В прошлой статья я объяснил, что работа программы Mega&Nano для Ардуино, строится на событиях.

Если с дискретными сигналами все вроде понятно, то как быть с  термометров, датчиков влажности, АЦП и временем?

— Да все просто!

  Для того чтобы привести к единичному событию, такой параметр как температура, надо выбрать диапазон и задать для него событие TH (выше порога) или TL(ниже порога).

Пример: Нам нужно включать выход Out1 при температуре ниже 23 °
С, т.е. мы сделаем термостат c термометром 
ds18b20 и нагревательным элементом подключенным к выходу 1.

Решение: Для начала визуализация, что бы понимать как выбирается диапазон, в нашем случае зададим две точки 23 °С и 25 °С:

Программа написана таким образом, что в зависимости от текущей температуры произойдет одно из событий:

  1.  ТxL — если температура меньше или равна 23 °С;
  2.  TxH — если температура больше или равна 25 °С;
  3. ну и третий вариант не произойдет ни какого события если температура больше 23 °С и меньше 25 °С, но это не значит что нельзя обработать это событие.

Теперь я покажу, как это запрограммировать:

  1. Определимся с каким датчиком мы работаем.

Пусть будет термометр №1.

   2. Зададим диапазон для нашего события, т.к. мы контролируем температуру ниже 23 °С, то наше событие T1L (1-номер термометра ds18b20)


Наш диапазон от 23 °С до 25 °С.

   3. Привязываем событие к выходу контроллера Ардуино.

Здесь мы фактически записываем состояние события T1L в порт Out1 (выход 1).

Вот так, всего три простых действия и у нас рабочий термостат 😉

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

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

Как настроить гистерезис мы рассмотрим в следующем уроке.

Работа с опцией термостат в ESP8266

Ниже находится устаревшая документация на проект. Актуальный конструктор прошивки и документация находится на сайте https://wifi-iot.com

Проект умного модуля на базе ESP8266 поддерживает опцию термостата. Эту опцию для её появления в прошивке необходимо включить в конструкторе прошивки. Поддерживается 3 раздельных профиля термостата, но по запросу через обратную связь их количество можно увеличить. Хотя опция и называется термостат, но поддерживает все датчики, включая влажность, освещенность, подключенные и включенные в прошивке.

 Простейшая настройка термостата

В настройках необходимо задать номер устанавливаемого термостата, температуру включения и температуру выключения термостата , указать датчик и GPIO на котором будет находится исполняющее устройство. На примере скриншота температура включения установлена 30 градусов, выключения — 32 по датчику DHT22 (температура). Дсостояния GPIO при выключенииля активации термостата необходимо его включить нажав кнопку OFF.

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

Не рекомендуется вручную изменять состояние управляемого GPIO — это собъет логику управления.

Управление термостатом по времени. Включение/выключение


Для управления термостатом по времени необходимо установить в прошивке планировщик заданий (Scheduler).

Для включения термостата по времени необходимо выбрать  пункт termostat в поле mode. Указать время, дни недели. В GPIO NUM указываем номер термостата, а в state ставим 1 для того чтобы включить термостат. Для выключения термостата все аналогично, но в поле state ставим 0.

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

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

Управление термостатом по времени. Установка температуры

Для установки другой температуры по времени необходимо выбрать пункт termo set согласно номеру требуемого термостата, остальные настройки аналогичны предыдущему абзацу. Устанавливаем в GPIO NUM границу включения, а в State — границу выключения термостата. Добавляем аналогично другую запись на другом профиле планировщика заданий для установки другой температуры.

 

 

Управление термостатом через SMS GSM модули

settermoX Y Z — Установка параметров указанного термостата. Где X — номер термостата. Y и Z  —  нижняя и верхняя граница.

gettermoX — Чтение параметров указанного термостата. Где X — номер термостата.

Программируемый терморегулятор на плате Arduino Uno Текст научной статьи по специальности «Электротехника, электронная техника, информационные технологии»

УДК 621.396

ПРОГРАММИРУЕМЫЙ ТЕРМОРЕГУЛЯТОР НА ПЛАТЕ ARDUINO UNO

Р. Е. Кирпиченко Научный руководитель — И. Н. Карцан

Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31

E-mail: [email protected]

Уделяется внимание контролю над температурой и разработке программируемого терморегулятора.

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

PROGRAMMABLE TEMPERATURE REGULATOR ON PLATH ARDUINO UNO

R. E. Kirpichenko Scientific Supervisor — I. N. Kartsan

Reshetnev Siberian State Aerospace University 31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation E-mail: [email protected]

In this work the attention is paid to control over temperature and development of a programmable temperature regulator.

Keywords: temperature regulator, temperature condition, the operating teams.

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

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

Важность соблюдения температурного режима можно аргументировать влиянием температуры на полупроводниковые элементы. Электропроводность полупроводников сильно зависит от окружающей температуры. При очень низкой температуре, близкой к абсолютному нулю (-273° С), полупроводники не проводят электрический ток (так как не имеют свободных электронов), а с повышением температуры, их сопротивляемость току уменьшается (с повышением температуры связь валентных электронов с атомами ослабевает и некоторые из них, вследствие теплового движения, могут покидать атомы). Иначе говоря, при наиболее низкой температуре полупроводники обладают диэлектрическими свойствами, а при более высокой — проводниковыми [1].

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

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

Актуальные проблемы авиации и космонавтики — 2017. Том 1

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

Рис. 1. Плата Arduino Uno

Проекты устройств, основанные на Arduino, могут работать самостоятельно или взаимодействовать с программным обеспечением на компьютере [2].

Снятие значений температуры выполняется датчиком DS18B20. DS18B20 цифровой термометр с программируемым разрешением, от 9 до 12-bit, которое может сохраняться в EEPROM (Electrically Erasable Programmable Read-Only Memory) памяти прибора. DS18B20 обменивается данными по 1-Wire шине и при этом может быть, как единственным устройством на линии, так и работать в группе (рис. 2). Все процессы на шине управляются центральным микропроцессором.

Рис. 2. Схема восстановления сигналов 1-проводной шины датчиков DS18B20

Диапазон измерений от -55 до +125 °С и точностью 0,5 °С в диапазоне от -10 до +85 °С. Каждый В818Б20 имеет уникальный 64-битный последовательный код, который позволяет, общаться с множеством датчиков В818Б20 установленных на одной шине. Такой принцип позволяет использовать один микропроцессор, чтобы контролировать множество датчиков В818Б20, распределенных по большому участку. Приложения, которые могут извлечь выгоду из этой особенности, включают системы контроля температуры в зданиях, и оборудовании или машинах, а также контроль и управление температурными процессами [3].

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

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

Для индикации значений температуры на отведенных датчиках и статусах подачи питания на охладительные и нагревательные устройства в работе использован 4-хстрочный LCD дисплей Winstar Wh2604A (рис. 3).

Рис. 3. LCD дисплей Winstar Wh2604A

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

Библиографические ссылки

1. Савельев И. В. Курс общей физики. Т. 3. М. : Наука, 1987. С. 257-258.

2. Платформа разработки электронных устройств Arduino [Электронный ресурс] // URL: http://arduino.ru (дата обращения 12.03.2017).

3. Чернов Г. DS18B20. Русское описание работы с датчиком температуры : техн. описание. Днепропетровск : Магетекс, 2009. С. 1-3.

© Кирпиченко Р. Е., 2017

совцик / термостат: цифровой термостат (Arduino + DS18B20 + дисплей + кнопки)

GitHub — совцик / термостат: цифровой термостат (Arduino + DS18B20 + дисплей + кнопки)

Этот репозиторий заархивирован владельцем. Теперь он доступен только для чтения.

Цифровой термостат (Arduino + DS18B20 + дисплей + кнопки)

Файлы

Постоянная ссылка Не удалось загрузить последнюю информацию о фиксации.

Тип

Имя

Последнее сообщение фиксации

Время фиксации

Полное решение для термостата 🙂

  • расширяемый для дополнительных датчиков и реле
  • настраиваемый режим охлаждения / нагрева
  • настраиваемая температура
  • Активное реле
  • анимировано на экране + светодиод может использоваться для отображения активности
  • Используемое реле
  • подходит для переключения до 100 В постоянного тока, но для предполагаемой работы используется контактор 24 В постоянного тока + (например.грамм. Moeller) для управления мощными устройствами / двигателями

См. (Https://github.com/sovcik/thermostat/blob/master/usage_diagram.png)

  1. крепление датчика температуры
  2. подключить ЧЕРНЫЙ кабель от реле термостата к источнику питания 24 В постоянного тока
  3. подключите КРАСНЫЙ кабель от реле термостата к стороне VCC катушки контактора 24 В постоянного тока
  4. подключить кабель заземления источника питания 24 В постоянного тока к стороне заземления катушки контактора 24 В постоянного тока
  5. подключить источник питания 5VDC к термостату (разъем mini USB)
  6. настроить термостат на желаемые параметры
  1. Нажмите и отпустите обе кнопки одновременно, чтобы войти в режим конфигурации
  2. Нажмите и отпустите обе кнопки, чтобы выбрать, что нужно настроить: температуру или режим работы.Настраиваемый элемент мигает.
  3. Подождите 10 секунд, чтобы выйти из режима конфигурации. Изменения автоматически сохраняются в EEPROM.

Около

Цифровой термостат (Arduino + DS18B20 + дисплей + кнопки)

ресурсов

Лицензия

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

Пример термостата центра управления Arduino

Требуемое оборудование:

  • Arduino UNO
  • w5100 Экран Ethernet
  • 2 датчика температуры DS18B20
  • Винтовой экран
  • 4-канальная плата реле
  • Перемычки проводов Dupont вилка-розетка, розетка-розетка
  • и (или) Экран датчика (для упрощения подключения и выполнения инструкций)

Необходимое оборудование без подключенных датчиков температуры DS18B20.

СКАЧАТЬ WINDOWS

СКАЧАТЬ LINUX UBUNTU (17.04, 32bit)

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

Архивный файл Arduino Control Center, распакуйте и запустите приложение, переносимость без установки.

Настройте Arduino Uno с экраном Ethernet для использования:

Настроить входы и выходы:
  • Дважды щелкните список контактов (или щелкните правой кнопкой мыши и выберите «Настроить контакт») и добавьте датчик DS18B20 (2 раза, контакты D6 и D7.
  • Дважды щелкните список контактов (или щелкните правой кнопкой мыши — «Настроить контакт») и добавьте реле (4 раза, контакты A0-A3, см. изображение)
  • Щелкните правой кнопкой мыши на реле и установите правило срабатывания для термостата
  • Предварительный просмотр правила срабатывания
  • Если вы реле платы (как в этом примере) запускаете реле с LOW, вы можете Выход INVERT для отображения реального состояния реле

Требуемое оборудование с подключенными датчиками температуры DS18B20 и платой реле:

  • Релейная плата: A0-A3, аналоговые контакты будут установлены как цифровые выходы, если вы установите контакт как DIGITAL
  • DS18B20 контакт данных (DQ): первый D6, второй D7

VCC и GND для датчиков подключаются к экрану датчика V и контакты G (если вы используете сенсорный экран или зависит от того, какое оборудование вы используете).

Настройка и запуск серверов HTTP и UDP:

Создание правил для реле:
  • Щелкните правой кнопкой мыши на выходе (реле) и выберите пункт меню «Редактор правил».
  • Создать правило с доступными датчиками DS18b20.
  • Отметка правила на выходе (реле). ) image
  • Войти на веб-страницу
  • Предварительный просмотр созданной конфигурации в Интернете
  • Toogle ретранслирует по сети. Если устройство Arduino имеет последовательное и сетевое соединение, последовательное соединение имеет более высокий приоритет

Arduino Программируемый пользователем термостат Проекты

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

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

Что такое Ардуино?

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

Новые возможности для случайных мастеров

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

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

Термостат.

Питер Дазли / Банк изображений / Getty Images

Этот проект термостата, сделанный своими руками, является одним из самых простых решений термостата на базе Arduino и идеально подходит для новичка. Он использует однопроводной датчик температуры Dallas DS18B20 и простую комбинацию светодиодов и ЖК-дисплеев для индикации температуры и состояния термостата. Релейный экран обеспечивает выходы, которые взаимодействуют с домашней системой HVAC. Если вы не хотите добавлять какие-либо сетевые функции или сложные функции к термостату Arduino, то этот проект предоставляет основы для любого проекта термостата.

Эрнесто р. Ageitos / Getty Images

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

Ель / Диана Рэттрей

Домашние системы HVAC — не единственные системы, для которых требуется термостат.Холодильники также обычно управляются с помощью термостата. Если ваш холодильник вызывает проблемы из-за неисправного термостата, этот проект холодильника Arduino может предложить решение. В проекте используется тот же датчик температуры Далласа, что и в проекте Simple DIY Thermostat Project, упомянутом выше, обеспечивающий управление компрессором на задней панели холодильника. Более поздние обновления предусматривают добавление экрана Ethernet для регистрации температуры и состояния компрессора.

Термометр.Майкл Филлипс / E + / Getty Images

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

Спасибо, что сообщили нам об этом!

Расскажите, почему!

Другой Недостаточно подробностей Сложно понять

Построить домашний термостат с Raspberry Pi

Мы с женой переехали в новый дом в октябре 2020 года. Как только стало холодно, мы обнаружили некоторые недостатки старой системы отопления дома (включая одну зону нагрева, которая была ). всегда включен). В нашем предыдущем доме были термостаты Nest, и нынешняя установка была не такой удобной.В нашем доме несколько термостатов, и у одних было запрограммированное расписание обогрева, у других — другие расписания, а у некоторых вообще не было.

Пришло время перемен, но в доме есть некоторые ограничения:

  • Он был построен в конце 1960-х годов после реконструкции в 90-х годах.
  • Отопление гидронное (плинтус горячая вода).
  • Имеет шесть термостатов для шести зон нагрева.
  • К каждому термостату идут только два провода (красный и белый).

Купить или построить?

Я хотел «умное» управление термостатом для всех зон нагрева (расписания, автоматика, дома / в гостях и т. У меня было несколько вариантов, если я хотел купить что-то готовое, но у всех есть недостатки:

Вариант 1: гнездо или Ecobee

  • Это дорого: ни один интеллектуальный термостат не может обрабатывать несколько зон, поэтому мне понадобится по одной для каждой зоны (~ 200 долларов * 6 = 1200 долларов).
  • Это сложно: мне пришлось бы перемотать провод термостата, чтобы получить печально известный провод C, который обеспечивает постоянное питание термостата.Провода от 20 до 100 футов каждый, внутри стены, и может быть прикреплен скобами к стойкам.

Вариант 2: термостат с батарейным питанием , такой как термостат Sensi WiFi

  • Батареи хватает всего на месяц или два.
  • Он не поддерживает HomeKit в режиме работы от батареи.

Вариант 3: Стандартный термостат , но существует только один (своего рода): Honeywell TrueZONE

  • Старый и плохо поддерживаемый (выпущен в 2008 году).
  • Это дорого — более 300 долларов только за контроллер, и вам нужен шлюз RedLINK для работы некачественного приложения.

И победитель…

Вариант 4: Сделай сам!
Я решил создать свой собственный многозонный интеллектуальный термостат, который назвал ThermOS.

  • Централизовано у печи (нужно одно устройство, а не шесть).
  • Использует существующие провода термостата, встроенного в стену.
  • Совместимость с HomeKit, автоматизация, планирование, дома / в гостях и т. Д.
  • Anddddd это… весело? Ага, весело… я думаю.

Оборудование ThermOS

Я знал, что хочу использовать Raspberry Pi. Поскольку они стали такими недорогими, я решил использовать Raspberry Pi 4 Model B 2 ГБ. Я уверен, что смогу обойтись с Raspberry Pi Zero W, но это будет для будущей версии.

Вот полный список деталей, которые я использовал:

Имя Кол. Акций Цена
Raspberry Pi 4 Модель B 2 ГБ 1 29 долларов.99
Raspberry Pi 4 официальный источник питания 15 Вт 1 $ 6,99
Макетная плата для внутренних линий 400 1 2,99 долл. США
Внутренний 8-канальный релейный модуль 5 В для Arduino 1 8,99 долл. США
Внутренняя перемычка DuPont 20 см (3 шт.) 1 $ 4,99
Датчик температуры DS18B20 (оригинальный) от Mouser.com 6 6,00 долл. США
3-контактные клеммные колодки с винтовыми зажимами (упаковка из 40 шт.) 1 7,99 долл. США
RPi GPIO модуль клеммной колодки для Raspberry Pi 1 $ 17,99
Измерительные провода с зажимом типа «крокодил» (10 шт.) 1 $ 5,89
Провод термостата Southwire 18/2 (50 футов) 1 10 долларов США.89
Термоусадочная пленка 1 $ 4,99
Макетная плата для пайки (5 шт.) 1 $ 11,99
Кронштейны для монтажа на печатной плате (50 шт.) 1 7,99 долл. США
Пластиковый корпус / корпус 1 $ 27.92

Я начал рисовать схему оборудования на draw.io и понял, что мне не хватает некоторых важных знаний о печи.Я открыл боковую панель и нашел понижающий трансформатор, который берет электрическую линию 120 В и делает ее 24 В для системы отопления. Если ваша система отопления похожа на мою, вы увидите множество перемычек между клапанами зоны Taco. Терминал 3 на Taco перепрыгивает через все клапаны моей зоны. Это потому, что не имеет значения, сколько клапанов открыто / открыто — он просто управляет циркуляционным насосом. Если открыта любая комбинация от одного до пяти клапанов, она должна быть включена; если нет открытых клапанов, он должен быть выключен… просто!

По своей сути термостат — это просто переключатель.Как только термистор (датчик температуры) внутри термостата определяет более низкую температуру, переключатель замыкается и замыкает цепь 24 В. Вместо того, чтобы устанавливать термостат в каждой комнате, в этом проекте все они размещаются рядом с печью, так что все шестизонные клапаны могут управляться релейным модулем, использующим шесть из восьми реле. Raspberry Pi действует как мозг термостата и независимо управляет каждым реле.

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

Датчик температуры DS18B20 «1-wire» оказался отвечающим всем требованиям:

  • Он имеет точность +/- 0,5 ° C или 0,9 ° F.
  • Он использует протокол «1-Wire» для передачи данных.
  • Что наиболее важно, DS18B20 может использовать режим «паразитного питания», когда ему требуется всего два провода для питания и данных.Предупреждаем … почти все DS18B20 — подделки. Я купил несколько (надеясь, что они настоящие), но они не работали, когда я попытался использовать паразитную силу. Затем я купил настоящие на Mouser.com, и они отлично работали!

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

Я все еще нахожусь в процессе «приведения в порядок» настенных креплений для датчика температуры, но я прошел через несколько изменений в 3D-печати, и я думаю, что почти готов.

Программное обеспечение ThermOS

Как обычно, написать логику было не так уж и сложно.Однако выбор архитектуры и фреймворка приложения был запутанным многодневным процессом. Я начал с оценки проектов с открытым исходным кодом, таких как PiHome, но он полагался на определенное оборудование. и был написан на PHP. Я фанат Python и решил начать с нуля и написать свой собственный REST API.

Поскольку интеграция HomeKit была настолько важна, я решил, что в конечном итоге напишу плагин HomeBridge для ее интеграции. Я не знал, что существует целый фреймворк Python HomeKit под названием HAP-Python, который реализует вспомогательный протокол.Это помогло мне получить подтверждение концепции, работающей и управляемой через приложение Home на моем iPhone в течение 30 минут.

Остальная часть «временной» логики относительно проста, но я хочу выделить часть, которую я изначально пропустил. Мой код работал несколько дней, и я работал с оборудованием, когда заметил, что мои реле включаются и выключаются каждые несколько секунд. Этот «короткий цикл» не обязательно вреден, но определенно неэффективен. Чтобы этого избежать, я добавил пороговое значение, чтобы температура переключалась только тогда, когда она +/- 0.5C °.

Вот пороговая логика (отладку резиновой утки можно увидеть в комментариях):

 

# проверяем, что нам нужен нагрев.
if self.target_state.value == 1:
# если тепловое реле уже включено, проверьте, не превышает ли порог
# если выше, выключите .. если все еще ниже, оставьте
, если GPIO. input (self.relay_pin):
если self.current_temp.value - self.target_temp.value> = 0.5:
status = 'НАГРЕВ ВКЛ - ТЕМПЕРАТУРА ВЫШЕ ВЕРХНЕГО ПОРОГА, ВЫКЛЮЧАЕТСЯ'
GPIO.output (self.relay_pin, GPIO.LOW)
else:
status = 'HEAT ON - TEMP IS BELOW TOP THRESHOLD, KEEPING ON'
GPIO.output (self.relay_pin, GPIO.HIGH)
# если тепловое реле еще не установлено включено, проверьте, не ниже ли порога
elif not GPIO.input (self.relay_pin):
if self.current_temp.value - self.target_temp.value <= -0.5:
status = 'HEAT OFF - TEMP IS НИЖЕ НИЖНЕГО ПОРОГА, TURNING ON '
GPIO.output (сам.relay_pin, GPIO.HIGH)
иначе:
status = 'HEAT OFF - KEEPING OFF'

И я достиг своей конечной цели — иметь возможность управлять всем этим со своего телефона.

Я кладу термос в коробку для завтрака

Мое доказательство концепции было довольно запутанным.

Имея в наличии программное обеспечение и общую конструкцию оборудования, я начал выяснять, как упаковать все компоненты в более прочную и безупречную форму. Одной из основных моих проблем при постоянной установке было использование макета с перемычками DuPont.Я заказал несколько паяемых макетов и плату для вывода клемм (спасибо @arduima за контакты Raspberry Pi GPIO).

Вот как выглядел паяемый макет с креплениями и корпусом в процессе.

И вот он, установлен в котельной.

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


Изначально это было опубликовано на Medium и переиздается с разрешения.

Датчики температуры

? Регистрация для Arduino: какой датчик выбрать?

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

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

  • Датчик термистора
  • Датчики DHT и AHT
  • Водонепроницаемый датчик температуры
  • Барометрический датчик
  • Датчик газа

Все эти датчики доступны для покупки в нашем интернет-магазине! — Seeed Studio Bazaar, активатор оборудования IoT.

Как видите, некоторые из датчиков являются частью нашей системы Grove.

Grove — это модульная стандартизованная система для создания прототипов соединителей, в которой для сборки электроники используется подход строительных блоков. По сравнению с системой на основе перемычек или пайки, ее проще подключать, экспериментировать и строить, что упрощает систему обучения! Чтобы узнать больше о системе Grove, посетите нашу вики!


Какой датчик температуры выбрать для Arduino?

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

Термистор: Термистор — это сочетание терминов термистор и резистор. В конечном счете, это резистор специального типа , который зависит от температуры. Это означает, что сопротивление резистора изменяется в зависимости от температуры. Термисторы очень точны и экономичны для измерения неэкстремальных температур (~ -40 ° C — 100 ° C).Термисторы могут регистрировать только данные о температуре, поэтому это лучший выбор, если вы ищете экономичный и надежный способ регистрации данных о неэкстремальных температурах.

DHT и AHT: Датчики DHT и AHT работают одинаково. Датчики AHT — это новая и улучшенная версия датчиков DHT. Эти датчики состоят из двух основных частей — термистора и емкостного датчика влажности . Это означает, что датчики DHT и AHT могут регистрировать не только данные о температуре, но и о влажности.Затем внутри этих датчиков есть еще один чип для преобразования аналогового сигнала от датчиков в цифровые сигналы. По сути, это термисторный датчик с дополнительным датчиком влажности. Если вы ищете экономичный и надежный способ регистрации данных как о неэкстремальных температурах (~ -40 ° C — 80 ° C), так и о влажности, это лучший выбор. Датчики DHT также являются самыми популярными среди пользователей Arduino.

Водонепроницаемые датчики: Водонепроницаемые датчики температуры также доступны для контроля температуры воды.Эти датчики могут регистрировать более широкий диапазон температур (~ -50 ° C — 120 ° C).

Прочие:

Барометрические датчики: Барометрические датчики могут регистрировать данные как о давлении, так и о температуре.

Датчики газа: Датчики температуры, способные регистрировать данные о температуре, влажности, давлении и газе.

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

Итак, давайте посмотрим, какие датчики температуры наиболее популярны в каждой категории!


Датчик термистора

Grove — Датчик температуры (2,90 $)
  • В датчике температуры Grove используется термистор для определения температуры окружающей среды.
  • Обнаруживаемый диапазон этого датчика составляет -40ºC — 125ºC , а точность составляет ± 1,5ºC

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


Датчики DHT и AHT

Grove — Датчик температуры и влажности (DHT11) (5,90 $)
  • DHT11 — это базовый сверхдорогой цифровой датчик температуры и влажности.
  • DHT11 — самый популярный модуль температуры и влажности для Arduino и Raspberry Pi благодаря своим многочисленным преимуществам.
    • Например. Низкое энергопотребление и отличная долговременная стабильность. Относительно высокая точность измерения может быть получена при очень низких затратах.
  • Our Grove — Датчик температуры и влажности — это высококачественный недорогой цифровой датчик температуры и влажности, основанный на новом модуле DHT11.
    • Он имеет вывод цифрового сигнала с одной шиной через встроенный АЦП, что экономит ресурсы ввода / вывода платы управления.
  • Он имеет диапазон влажности от 5% до 95% относительной влажности с ± 5% , а также диапазон температур от -20 ℃ до 60 ℃ с ± 2% .

Как уже упоминалось, в нашем датчике температуры и влажности Grove используется обновленная версия DHT11. Так в чем разница?

Датчик температуры-влажности-DHT22 (AM2302) (4,99 доллара США)
  • Цифровой модуль измерения температуры и влажности AM2302 представляет собой комбинированный датчик температуры и влажности с откалиброванным цифровым выходным сигналом.
  • Датчик состоит из емкостного чувствительного элемента и высокоточного элемента измерения температуры, подключенного к высокопроизводительному 8-разрядному микроконтроллеру.
    • Таким образом, продукт обладает такими преимуществами, как отличное качество, сверхбыстрый отклик, сильная защита от помех и высокая стоимость.
  • Датчик DHT22 имеет сверхкомпактный размер, чрезвычайно низкое энергопотребление и с дальностью передачи сигнала более 20 метров , что делает его очень универсальным с точки зрения применения.
  • Продукт также легко подключается с помощью 3 выводов (интерфейс с одной шиной). Если вы хотите подключить датчик более длинным проводом, вы можете просто добавить подтягивающий резистор.
  • DHT22 имеет диапазон влажности от 0% до 100% относительной влажности с ± 2% и диапазон температур от -40 ℃ до 80 ℃ с ± 0,5% .

Grove — Датчик температуры и влажности Pro (DHT22 / AM2302)
  • Часть системы Grove, есть еще один датчик температуры с модулем DHT22.
  • Отличие заключается в том, что этот датчик имеет коммутационную плату с разъемом Grove. Это упрощает подключение к щитам, совместимым с Seeeduino или Grove.Большое удобство, ура! R
  • Этот датчик также имеет диапазон влажности от 0% до 100% относительной влажности с ± 2% и диапазон температур от от -40 ℃ до 80 ℃ с ± 0,5% .

Эти датчики DHT идеально подходят для домашних проектов, таких как метеостанции, системы автоматического контроля окружающей среды, тестирование / проверка оборудования, системы мониторинга фермы / сада и многое другое!

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

Grove — Датчик температуры и влажности промышленного класса AHT20 I2C
  • Этот датчик температуры, выпущенный в начале 2020 года, основан на модуле AHT20 от Aosong, также создателя DHT11 и DHT22.
  • Новые внутренние компоненты AHT20 позволяют улучшить его характеристики по сравнению с датчиками предыдущего поколения.
  • AHT20 имеет диапазон влажности 0% — 100% с точностью относительной влажности ± 2% и диапазон температур -40 ℃ — 85 ℃ с точностью ± 0,3 ℃ .

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


Водонепроницаемый датчик температуры

Однопроводный датчик температуры (DS18B20) (7 долларов США.50)
  • DS18B20 — это цифровой термометр, который обеспечивает измерение температуры от 9 до 12 бит по Цельсию.
  • Имеет функцию сигнализации с энергонезависимой программируемой пользователем верхней и нижней точкой срабатывания.
  • Это однопроводный датчик температуры длиной 2 м с водонепроницаемым зондом и длинной проволокой , подходящий для иммерсивного определения температуры .
  • Он широко используется и задокументирован для использования с Arduino.
  • Чтобы этот датчик заработал, вам нужно добавить дополнительное сопротивление , чтобы он заработал, что мы и сделали, настроив его на порт Grove и предварительно смонтировав сопротивление внутри, чтобы вы могли использовать его как обычный датчик Grove. .
    • Это делает его легко подключаемым однопроводным датчиком температуры для Seeeduino, который основан на Arduino и совместим со всеми платформами Arduino.
  • Некоторые особенности этого датчика DS18B20 включают
    • Водонепроницаемый
    • Требуется только один провод для интерфейса данных
    • Совместимость с Grove
    • Принимает источник питания от 3,0 В до 5,5 В
    • Широкий диапазон температур от от -55 ° C до + 125 ° C
    • Высокая точность ± 0.5 ° C (от -10 ° C до + 85 ° C)

Поскольку этот датчик температуры DS18B20 является водонепроницаемым с широким диапазоном температур и высокой точностью, он очень подходит для проектов на открытом воздухе или для измерения температуры жидкости. Некоторые проекты включают приготовление пищи Sous Vide, солнечный котел и многое другое. Однако DS18B20 использует протокол 1-Wire Dallas, который требует некоторого кодирования, чтобы заставить его работать . Это делает его немного менее удобным для новичков.

Вы можете заглянуть в другой наш блог о DS18B20, чтобы узнать больше об этом датчике!


Барометрический датчик

Grove — Датчик барометра (BMP280) (8 долларов.90)
  • Датчик BMP280 — это датчик атмосферного давления, специально разработанный Bosch для мобильных приложений.
    • Он отличается высокой точностью, линейностью, а также долговременной стабильностью и высокой устойчивостью к ЭМС.
  • Датчик барометра Grove BMP280 построен на основе Bosch BMP280, недорогого и высокоточного датчика окружающей среды, который измеряет температуру и барометрическое давление.
  • Давление воздуха можно измерить в диапазоне от 300 гПа до 1100 гПа с ± 1.0 гПа абсолютная точность. Что касается температуры, датчик отлично работает для температур от –40 ℃ до 85 ℃ с точностью ± 1 ℃ .
  • Благодаря высокой точности измерения атмосферного давления, высота может быть рассчитана так же, как барометрическое давление и высота обратно пропорциональны. Высота может быть измерена с точностью до ± 1 метра.
  • Еще одна замечательная особенность этого модуля заключается в том, что вам даже не нужно беспокоиться о конфликтах I2C, поскольку он предоставляет интерфейсы I2C и SPI .Чтобы использовать SPI, просто отпаяйте контактные площадки на задней панели. Если вы используете I2C, плата также предоставляет 2 адреса I2C, которые вы можете выбрать по своему усмотрению.

Grove — Датчик окружающей среды (BME280) (17,00 $)
  • Датчик BME280 — это встроенный датчик окружающей среды, разработанный специально для мобильных приложений, где размер и низкое энергопотребление являются ключевыми ограничениями при проектировании.
  • Они имеют те же функции, что и вышеупомянутый BMP280, но не полностью идентичны.
  • Устройство сочетает в себе отдельные высокоточные датчики давления, влажности и температуры с высокой линейностью, рассчитанные на низкое потребление тока, долгосрочную стабильность и высокую устойчивость к электромагнитной совместимости.
  • Датчик окружающей среды Grove (BME280) построен на базе Bosch BME280.
  • Grove BME280 обеспечивает точное измерение не только атмосферного давления и температуры, но и влажности окружающей среды.
    • Давление воздуха можно измерить в диапазоне от 300 гПа до 1100 гПа с ± 1.0 с точностью гПа, в то время как датчик отлично работает для температур от — 40 ℃ до 85 ℃ с точностью ± 1 ℃ . Что касается влажности, то можно получить значение влажности с погрешностью не более 3% .
  • Подобно BMP280, он может измерять высоту с точностью ± 1 метра, что также делает его точным высотомером.
  • Кроме того, вам не нужно беспокоиться о конфликтах I2C, поскольку он предоставляет интерфейсы I2C и SPI .

Так в чем их отличия?

  • Grove BMP280 похож на Grove BME280, и их характеристики почти такие же, поэтому люди часто путаются.
  • Модель BMP280 может измерять только температуру и давление воздуха , а модель BME280 может измерять влажность в дополнение к температуре и давлению воздуха .
  • Из-за этой разницы, BMP280 намного дешевле, чем BME280 .
  • Если вы хотите измерять только атмосферное давление, мы рекомендуем Grove BMP280. Однако, если вы хотите более полно контролировать окружающую среду, мы рекомендуем Grove BME280.

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


Датчик газа

Grove — Датчик температуры, влажности, давления и газа (BME680) (20 долларов.50)
  • BME680 является расширением существующего семейства датчиков окружающей среды Bosch Sensortec. BME680 впервые объединяет высоколинейные и высокоточные датчики газа, давления, влажности и температуры, где датчик газа в BME680 может обнаруживать широкий спектр газов для измерения качества воздуха для личного благополучия.
  • Датчик температуры, влажности, давления и газа Grove (BME680) основан на модуле BME680. Функция 4-в-1 интегрирована в такой небольшой модуль, что позволяет очень удобно применять его на устройствах IoT или GPS.
  • Он отличается низким энергопотреблением , широким диапазоном измерения и имеет дополнительный выход, который позволяет независимо включать / отключать отдельные датчики влажности, давления и газа.
  • Газы, которые может обнаруживать BME680, включают летучие органические соединения (ЛОС) из красок (таких как формальдегид), лаков, средств для удаления краски, чистящих средств, мебели, офисного оборудования, клея, клея и спирта.
  • Узнайте больше подробностей и технических характеристик BME680 ниже!

Некоторые виды использования и применения BME680 включают безопасность окружающей среды, бытовую (качество воздуха в помещении), бытовое применение (домашняя автоматизация и управление), прогноз погоды, улучшение GPS (например.грамм. улучшение времени до первого исправления, точный расчет, определение уклона) и многое другое!


Сводка

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

) Датчик окружающей среды (BMP ) , Влажность, давление 3,0 50 50 3,0 50 50 От 3 до 5 В
Датчик Термистор DHT11 DHT22 (AM2302) AHT20 Однопроводной датчик температуры (DS18B20) Grove — Датчик барометра (BMP
Grove — Датчик температуры, влажности, давления и газа (BME680)
Измерения Температура Температура, влажность Температура, влажность Температура, влажность Температура Температура, давление Температура, влажность, давление, газ
Протокол связи Однопроводный (интерфейс с одной шиной). Однопроводный (интерфейс с одной шиной). Однопроводный (интерфейс с одной шиной). I2C One-Wire (интерфейс с одной шиной). I2C, SPI I2C, SPI I2C, SPI
Напряжение питания от 3,3 до 5 В от 3,3 до 5 В от 3,0 до 6 В от 3,0 до 6 В от 3,3 до 5 В от 3,3 до 5 В от 3,3 до 5 В
Диапазон измерения температуры от -40 ° C до 125 ° C от -20 ℃ до 60 ℃ от -40 ° C до 80 ° C от -40 ° C до 85 ° C от -55 ° C до 125 ° C от -40 ° C до 85 ° C от -40 ℃ до 85 ℃ -40 ℃ до 85 ℃
Точность измерения температуры ± 1.5 ° C ± 2% ± 0,5% ± 0,3 ℃ ± 0,5 ° C ± 1 ° C ± 1 ℃ ± 1 ° C
Диапазон других измерений и Точность Диапазон влажности: от 5 до 95% Точность влажности: ± 5% Диапазон влажности: от 0 до 100% Относительная влажность Точность: ± 2% Диапазон влажности: от 0 до 100% Точность влажности: ± 2% Диапазон атмосферного давления: 300 — 1100 гПа Точность барометрического давления: ± 1.0 гПа Диапазон атмосферного давления: 300 — 1100 гПа Точность барометрического давления: ± 1,0 гПа Диапазон влажности: 0% — 100% Точность относительной влажности: ± 3% Диапазон атмосферного давления: 300-1100 гПа Точность барометрического давления: ± 1,0 гПа Диапазон влажности: 0 % — 100% относительная влажность Точность: ± 3% газовый датчик ЛОС (например, этанол, спирт, оксид углерода)
Цена 2,90 долл. .90 17,00 $ 20,50 $

Что вы думаете об этом списке датчиков температуры? У вас есть еще один датчик температуры, который вы хотите добавить в этот список? Дайте нам знать в разделе комментариев ниже!

Следите за нами и ставьте лайки:

Теги: датчики температуры Arduino, bme280, BME280 Arduino, BME680, bme680 arduino, bmp280, bmp280 arduino, DHT11, DHT11 Arduino, DHT22, DHT22 Arduino, ds18B20, DS18B20 Arduino, термистор

Продолжить чтение

Интернет-термостат

Arduino (Nanode) альфа-версия

Здесь, в Голландии, в последнее время похолодало.Это первая зима, в которой я реально могу контролировать центральное отопление в моем доме. Кроме того, я впервые должен сам оплачивать расходы на электроэнергию. Чтобы сэкономить деньги, жить более комфортно и сохранить окружающую среду, мне нужен был хороший термостат. Можно сказать, термостат 2.0.
Это должно было контролироваться через Интернет. Он должен задокументировать исторические ценности для более глубокого понимания. Nest делает именно это. Это отличный продукт. Но это 250 долларов. И пока недоступен даже в США. И я мерзну, когда прихожу домой.

Так что мне пришлось построить его самому. Ниже представлен прототип первого альфа-этапа, запускающий тест. Он основан на великолепной платформе Arduino, воплощенной в наноде. Сверху находится щит Grove от студии Seeed для упрощения прототипирования с реле, контролирующим нагрев. (Во время теста реле является самим нагревательным элементом.) В макетную плату подключен цифровой датчик температуры DS18B20 OneWire.

И образец из моего канала Pachube:

Обратите внимание, что температура колеблется, но остается относительно стабильной около 22 градусов по Цельсию.Мне любопытно посмотреть, будет ли это так, когда я подключу его к своему центральному отоплению. Еще многое предстоит сделать, прежде чем я смогу назвать это «гнездом с открытым исходным кодом», но для меня основные функции здесь.

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

Вот основная информация о скетче:

Nanode + Pachube + датчик температуры DS18B20 + реле = термостат, управляемый через Интернет

Код

в значительной степени опирается на следующие эскизы Arduino:
EtherShield ENC, пример ReadPachube
PacubeV3_WithoutNode от WickedDevice
Библиотека температур Далласа и ее примеры

Характеристики:
DHCP
DNS
Измерение температуры по сети

Todo:
PID control
Local Override
Failsafe (нет соединения, странные данные,…)
Neater Температура, полученная от pachube («Z,»)
Pachube нормальные температуры (нет * 100; вместо этого поплавки)
Timing (программирование) ( еще лучше: самостоятельное программирование)

Схема:
Nanode или Arduino с экраном Ethernet ENC
Реле на контакте 5
Датчик температуры OneWire (DS18B20) на контакте 4

Скачать эскиз




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

Учебное пособие по интерфейсу Arduino DS18B20 | Как измерить температуру

В этом проекте мы узнаем об однопроводном цифровом датчике температуры DS18B20 и о том, как работает интерфейс Arduino DS18B20.

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

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

Связанный проект: Цифровой термометр на базе Arduino

Обзор датчика температуры DS18B20

DS18B20 — это датчик температуры 1-Wire (однопроводной) производства Maxim Integrated. Он обеспечивает измерения температуры в градусах Цельсия с разрешением от 9 до 12 бит.

Датчик температуры DS18B20 обменивается информацией через интерфейс 1-Wire или шину 1-Wire, систему, разработанную Dallas Semiconductor.В интерфейсе 1-Wire для связи требуется только один провод (ну, технически вам нужно два провода: один провод данных и один провод GND).

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

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

Ниже приведены некоторые из основных характеристик цифрового термометра DS18B20.

  • Использует интерфейс 1-Wire, которому требуется только один провод для передачи данных.
  • Программируемое разрешение от 9 до 12 бит.
  • Он может измерять температуру в диапазоне от -55 0 C до +125 0 C.
  • Доступен в различных корпусах, таких как TO-92, 8-контактный SO и 8-контактный µSOP.

Схема контактов DS18B20

На следующем изображении показана схема контактов цифрового датчика температуры DS18B20 в его корпусе TO-92.

Описание контактов датчика температуры DS18B20

Как вы можете видеть на приведенной выше схеме контактов, датчик DS18B20 состоит из трех контактов, а именно: V DD , DQ и GND.

V DD : Это контакт блока питания. При использовании паразитного режима питания он должен быть заземлен (подробнее об этом позже).

DQ: Это контакт ввода / вывода данных. Это штифт с открытым стоком, и его нужно тянуть ВЫСОКО. Обеспечивает питание в паразитном режиме питания.

GND: Это контакт заземления.

Блок-схема DS18B20

На следующем рисунке показана функциональная блок-схема датчика температуры DS18B20. Он состоит из схемы источника питания, 64-битного ПЗУ, контроллера памяти, основного датчика температуры и области электронного блокнота, в которой есть регистр температуры и несколько других регистров для хранения конфигурации и триггеров высокого и низкого уровня сигналов тревоги.

64-битное ПЗУ хранит уникальный серийный код устройства.Цифровой выходной сигнал датчика температуры сохраняется в 2-байтовом регистре температуры блокнота. Блокнот также состоит из 1 байта для регистра триггера высокого уровня сигнала тревоги, регистра запуска сигнала низкого уровня и регистра конфигурации каждый.

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

Питание датчика DS18B20

Есть два способа включить датчик DS18B20. Один из способов — это традиционный способ подключения внешнего источника питания к выводу V DD датчика. В этой операции нет ничего особенного.

Второй способ включения датчика DS18B20 — вот что интересно. Второй способ питания датчика называется режимом Parasite Power Mode, в котором нет необходимости во внешнем источнике питания.

В режиме паразитного питания DS18B20 потребляет питание от вывода DQ, когда на нем установлен ВЫСОКИЙ уровень. Когда на шине 1-Wire высокий уровень, он питает DS18B20. Когда на шине низкий уровень заряда, накопленный в паразитном конденсаторе мощности (C PP ) питает датчик. В режиме паразитного питания вывод V DD подключен к GND.

Взаимодействие DS18B20 с Arduino

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

Принципиальная схема интерфейса Arduino DS18B20

На следующем изображении показана принципиальная схема интерфейса Arduino DS18B20.

Необходимые компоненты
  • Arduino UNO
  • DS18B20 Цифровой датчик температуры
  • ЖК-дисплей 16 × 2
  • Потенциометр 10 кОм
  • Резистор 4,7 кОм (1/4 Вт)
  • Резистор 330 Ом (1/4 Вт)
  • 5 мм LED
  • Соединительные провода
  • Макетная плата
  • Блок питания
Схема контура

Конструкция интерфейсной схемы Arduino DS18B20 очень проста.Все, что вам нужно, это подключить V DD и GND датчика к + 5V и GND и подключить контакт DQ датчика к любому из контактов цифрового ввода / вывода (он подключен к контакту 8 цифрового ввода / вывода. ).

Вывод DQ подтягивается ВЫСОКОЕ с помощью резистора 4,7 кОм.

Поскольку нам нужно просматривать измеренную температуру, я подключил простой ЖК-дисплей 16X2 к Arduino.

Код

Код проекта приведен ниже. Вам необходимо скачать две библиотеки для Arduino: OneWire и DallasTemperature.Вы можете загрузить эти библиотеки по следующим ссылкам: Загрузить библиотеку OneWire и Загрузить библиотеку температуры Dallas .

Оставить комментарий

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