Меню

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

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

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

Что такое температура воздуха?

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

Для измерения этого показателя существует порядка 12 видов шкал. Чаще всего применяют три из них:

  • Градусы Кельвина (°К). Здесь нулю соответствует показатель абсолютного нуля, при котором движение молекул останавливается (-273,15 °С), поэтому все значения получаются со знаком «+». Этот метод применяется в метеорологии.
  • Шкалу Цельсия (°С). Раньше в ней за ноль градусов был принят показатель, при котором тает лед, а ориентиром для значения в 100 °С считался момент закипания воды. Одна сотая разницы между ними соответствовала 1 °С. Сейчас эта шкала является производной от шкалы Кельвина и за ноль принимают 273,15 К, а 100 °С определяют как 373,15 К. Разница в 1 °С и 1 К одинакова, следовательно и значение градуса в этих системах эквивалентно.
  • Градусы Фаренгейта (°F), где 1 °F приблизительно равен 1/180 разницы между температурой, при которой тает лед (+32 °F) и кипит вода (212 °F). Эта шкала применяется в США и еще в некоторых государствах.

Помимо этих шкал есть градусы Ремера, Ранкина, Делиля или Гука. Эти меры применяются редко, потому что у них специальное предназначение. Некоторые из них уже устарели.

Датчик DS18B20

DS18B20 — это популярный цифровой датчик по измерению температуры. Изготавливается в разных вариациях корпуса, особенно интересен во влагозащищённом корпусе, который значительно расширяет область применения датчика. Применяется в различных системах мониторинга температуры или узлах оборудования. Диапазон измерения температуры составляет от -55 до +125 градусов Цельсия. Погрешность датчика составляет 0.5 градуса. Датчик подключается по 1WIRE шине, поэтому возможно подключения нескольких датчиков на один пин.

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

Подключите датчики согласно схеме ниже. Для этого подсоединяем питание 5V и GND, подтягиваем питание к ПИН D3 через резистор 4.7 кОм и подключаем ногу DATA датчика. При подключении влагозащищенного датчика: красный – питание, черный – земля, а желтый/белый/синий – сигнал (DATA).

Подключение нескольких датчиков

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

Для работы с датчиком DS18B20 добавим в Arduino IDE библиотеку. Открываем менеджер библиотек и находим библиотеку DallasTemperature by Miles Burton, Tem Newsome, Guil Barros, Rob Tillaart.


Скетч

Монитор порта (консоль)

Загружаем скетч выше на плату и открываем «Монитор порта».

Источник

Подключение DS18B20 к ESP32/ESP8266

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

    Диапазон измеряемых температур -55 °

+125 °.
Напряжение питания 3.0V

1,3 USD)

  • Однопроводной интерфейс 1Wire.
  • Точность ±0.5°C в диапазоне от -10°C до +85°C.
  • Программируемое разрешение от 9 Bits до 12 Bits.
  • Уникальный 64 битный серийный номер у каждого датчика исключающий конфликты на одной шине.
  • Можно напрямую подключать к микроконтроллерам без дополнительных конвертеров.
  • Распиновка DS18B20

    Выходы у датчика в нержавейке : Red (VCC), yellow (DATA), black (GND)

    Схема подключения крайне простая. Датчик подключается к цифровому входу через резистор 4,7 К на +питания.

    Я приобретал датчики в металлических водонепроницаемых капсулах оптом, 10 шт. у этого продавца на Aliexpress. Цена

    1,3 USD за шт. с оперативной доставкой в Россию. Если время доставки не критично, то датчик можно заказать по цене порядка 1 USD у множества продавцов на Aliexpress с бесплатной доставкой.

    Получение адресов датчиков DS18B20

    Опрос датчиков DS18B20

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

    Результат работы кода опроса датчиков DS18B20:

    Разброс показаний датчиков DS18B20

    Не смотря на то, что датчики цифровые — они не калиброванные. Для примера снятие данных с 12 датчиков DS18B20 в течении 8 часов.

    Разброс показаний датчиков DS18B20

    Читайте также:  Блок датчиков температуры сажевого фильтра газель

    Как видно по графикам, разброс в показаниях составляет почти 2 градуса. Я не нашел в командах DS18B20 вариантов прописать калибровочные коэффициенты непосредственно в датчик, так что придется поправлять значения «снаружи».

    Источник

    Arduino + ESP8266. Передача показаний с двух датчиков температуры на WEB сервис http://open-monitoring.online

    О чем пойдет речь

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

    С этой статьи я начну знакомить Вас с сервисом Open Monitoring (ОМ) или просто мониторинга или системой логирования – кому как нравится. Двигаться мы будем от простого к сложному и поэтому на первом этапе предлагаю собрать простейшую метеостанцию, но сделать это на очень перспективной связке: Arduino + ESP8266 – которая в дальнейшем, я надеюсь, нам еще понадобится и мы сможем более широко раскрыть потенциал этого железа.

    В итоге получится некий (гибко настраиваемый) веб интерфейс с текущими показаниями температуры и графики, доступные с любого браузера

    // Предвидя справедливые замечания, что эту задачу можно решить с помощью одной только ESP – я с Вами соглашусь, более того, в будущем мы это сделаем, что касается этого примера, то выбор железа сделан на перспективу, как более гибкий или «массовый»…//

    Что для этого нужно

    1. Время. При наличии под руками всех компонентов, на реализацию Вы затратите от 30 минут до 1 часа своего драгоценного времени;
    2. Arduino, я в этом примере буду использовать Uno, но подойдет и Mega и Mini (я брал здесь);
    3. ESP8266, я использовал самую дешевую версию – 01 (я брал здесь), но подойдет любая с дефолтной прошивкой (поддержка AT-команд);
    4. Датчик температуры DS18B20 (я брал здесь), а лучше пару штук;
    5. Резистор 4,7кОм – 1 шт;
    6. Резистор 1кОм;
    7. Резистор 2кОм.

    (Пункты 6 и 7 для тех, кто любит что бы все было по Фен-шую, у меня работало и без них, но как мне показалось – больше греется ESP)
    Наличие зоны покрытия WiFi-маршрутизатора.

    Если заказать детали в Китайском экспресс — это обойдется Вам порядка 500 руб., если пойти в ближайший магазин радиодеталей – то в зависимости от карманного коэффициента магазина: 800-1000 руб.

    Приступим?

    Подготовка WiFi модуля ESP8266

    Обмен между Arduino и ESP происходит через последовательный порт (serial port) он же UART. Наша задача состоит в том, что бы скорость портов наших двух плат совпадала.

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

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

    • Использование USB-TTL конвертора (сейчас я пользуюсь таким, потому что как-то он попался на Aliexpress и был куплен за 50 руб. ссылка: Aliexpress);
    • Использование Arduino который у нас уже имеется.

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

    Ориентируясь, как мне кажется на более широкую аудиторию, давайте изменим базовую скорость ESP с помощью имеющейся у нас Arduino. Идея такова: нам нужно воспользоваться штатным USB-TTL (UART) преобразователем который распаян на плате arduino, а для того, что бы сам контроллер ATmega нам не мешал – мы переводим его в режим сброса одной единственной перемычкой, в общем собираем схему:

    Если уже установлена, открываем Arduino IDE, если нет, скачиваем с https://www.arduino.cc и устанавливаем. Подключаем собранную схему, ждем пока Windows установит драйвера для COM-порта и запускаем программу.

    Указываем к какому порту подключена Arduino (у меня она определилась как COM18)

    Далее открываем монитор порта и выставляем скорость 115200 (как правило, ESP в базовой прошивке настроена именно на эту скорость, если в ответ на команду Вы увидите абракадабру или вообще ничего можно попробовать 57600) и отправляем команду: AT

    В ответ ESP должна отправить OK.

    Читайте также:  Датчик давления гур пежо 407

    Если Вы получили заветное сообщение “OK”, можно изменить скорость на 9600, делается это командой: AT+UART_DEF=9600,8,1,0,0

    На этом настройка ESP8266 закончена, можно изменить скорость монитора порта на 9600 и снова отправить команду: AT, если все сделано правильно, ESP снова ответит, что все OK.

    Сборка схемы

    Добавить особо нечего, схема приведена ниже. Обратите внимание, что когда мы настраивали ESP – то ТХ соединяли с ТХ, а RX с RX. В этой схеме связи крестятся.

    На макетной плате это может выглядеть например так

    Источник

    Мой умный дом на ESP8266, часть 2

    Начало этого цикла статей находится здесь.

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

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

    ESP8266

    Микроконтроллер ESP8266 самодостаточен, легко программируется как Arduino (то есть это С++ и среда Arduino IDE), имеет на борту Wi-Fi, компактный и есть множество модификаций под разные нужды. Также есть его развитие, это ESP32, который более мощный. В общем идеальный контроллер. Недостаток лишь в напряжении питания (не пять вольт, а 3.3 вольта).

    К контроллеру ESP8266 можно по проводам (причем довольно длинным, несколько метров) можно подключать разные датчики и исполнительные устройства по таким протоколам как 1-Wire, I2C. Почему именно эти протоколы? Потому что они очень простые и популярные (спасибо Arduino).

    То есть, датчик или устройство по проводу подключается к ESP8266, который в свою очередь подключается по Wi-Fi к вашему серверу. Сервер можно писать на любом языке, например на платформе NodeJS. Но желательно использовать готовые сервера, о которых я расскажу позже. Ваш сервер позволит настроить любую логику работы умного дома.

    Например можно в электрощитке разместить ESP8266 и реле. На это реле повесить освещение. А на стене повесить ESP8266 и кнопку. При помощи кнопки включать/выключать освещение. Обработчик нажатия на кнопку находится на сервере. Еще можно несколько датчиков температуры (улица, комнаты)по проводам подключить к ESP8266. На входную водопроводную трубу можно разместить датчик расхода воды и подключить к еще одному ESP8266. Контроллер стоит от 80 рублей, так что вешать их можно до упора (где этот упор не ясно, наверное зависит от роутера и помех на частоте 2.4 ГГц).

    Компоненты умного дома

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

    Компоненты умного дома

    Слева-направо: сначала идет ваше устройство на ESP8266, далее это прошивка ESP Easy (ее ставим на ESP8266), прошивку подключаем к MQTT-брокеру (например WQTT.ru или свой брокер на своем сервере), веб-сервис WQTT.ru уже имеет подключение к Алисе (на своем брокере это подключение придется сделать самостоятельно, что в общем несложно, потому что это наша привычная работа программиста), далее сервер логики Node RED, который подключен к MQTT-брокеру и управляет всем умным домом. И в конце можно поставить Homebridge для связи умного дома с Homekit.

    Как вы наверное догадались, homebridge с голосовыми помощниками не обязательные компоненты. Главное это MQTT-брокер и Node RED. Эти два сервера вам обеспечат практический полный функционал и доступ к настройке любой логики.

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

    В качестве устройства у нас будет светодиод, который встроен в ESP8266 и сидит на пине GPIO2. Этот светодиод будет имитировать освещение в гостиной например. Также подключим кнопку, которая будет включать этот светодиод. И еще в нашем устройстве будут два датчика: DHT11 и BMP085 (влажности и барометр с термометром).

    Читайте также:  Инерционный датчик принцип работы

    В логику (которая будет хранится в Node RED) заложим управление кнопкой и светодиодом, оповещение по телеграму о резком похолодании в комнате и вывод значений датчиков в Homekit и Алису.

    Тестовое устройство

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

    Тестовое устройство

    У меня был модуль Troyka Wi-Fi (это ESP8266 в модификации ESP-12F)от магазина Амперка. Но можно использовать любой вариант ESP8266. Датчик DHT11 подключен к одному из пинов контроллера, а датчик BMP085 подключен к пинам, которые будут работать в режиме I2C-протокола (выбор пинов настраивается в прошивке ESP Easy).

    То же устройство, но в виде принципиальной схемы:

    Принципиальная схема (на детали U3 я показал встроенный светодиод)

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

    Устройство это собирается легко как Arduino, только вместо Arduino вы будете использовать ESP8266. Оно мощнее, но питание 3.3 вольта, о чем нельзя забывать. Добавите 5 вольт — сожжете его. Контроллер можно прошивать своими скриптами. Они тоже весьма простые и из них можно будет подключаться к HTTP-серверам и MQTT-брокерам. Но этот вариант мы рассмотрим позже, сейчас я предлагаю рассмотреть вариант готовой прошивки.

    Итак устройство собрано. Как прошивать рассмотрим в следующей статье. Теперь перейдем в MQTT-брокеру.

    MQTT-брокер

    Свой MQTT-брокер пока затевать не будем, а воспользуемся готовым. Веб-сервис WQTT.ru предоставляет простой MQTT-брокер по цене 200 рублей за полгода (первый месяц бесплатно, что вполне нам достаточно для экспериментов). Заходим на сайт этого сервиса https://www.wqtt.ru/ и регистрируемся. После регистрации мы молучим адрес брокера, номер порта, логин и пароль. Их мы позже пропишем в прошивке микроконтроллера и в Node RED. Все, брокером можно пользоваться сразу. Но, если вы хотите подключить Алису, то на WQTT нужно описать датчики и устройства. Это сделать легко, потому описывать не буду. У вас в итоге должна получится такая таблица:

    Таблица устройств и датчиков на wqtt.ru

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

    Думаю настало время рассказать, а что же это такое MQTT-брокер и какую роль он играет.

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

    Можно сделать так, чтобы это сообщение (точнее последнее сообщение) сохранилось на брокере. И таким образом состояние вашего умного дома будет храниться в брокере. Если вы знаете что такое MVC, то брокер это M, Node RED это C, а ваш смартфон это V. Если не знаете, то пропустите это.

    Во-вторых, кроме отправки сообщения можно на них подписываться. Все, кто подписался, будут гарантированно получать сообщения из того или иного топика. Например у нас есть топик ESP_Easy/BMP085/Temperature. Наше устройство (которое мы назвали ESP_Easy) регулярно (например каждые 5 минут) отправляет на этот топик значение температуры из датчика BMP085. А в Node RED мы создадим подписчика на этот топик и будем принимать эти сообщения. В самом подписчике мы опишем что мы хотим с этой температурой делать, например отобразить на экране смартфона в Homekit.

    В итоге, MQTT-брокер это сердце нашего умного дома. Он связывает все устройства и хранит состояние умного дома. Если его сделать доступным из интернета, то вашим умным домом можно управлять откуда угодно.

    Резюме

    Устройство у нас собрано. Пока без прошивки. Брокер настроен. Далее мы подключим Node RED, прошьем контроллер и все это соединим воедино.

    Источник

    Adblock
    detector