Ds18B20 как подключить: Arduino и термометр DS18B20

Подключение датчиков 1-Wire DS18B20 — Wiren Board 6

Mitya


1

Подключение датчиков 1-Wire DS18B20

Добрый день.

Мне необходимо установить 8 датчиков DS18B20, для измерения температуры поверхности пола, 2 датчика DS18B20 для контроля температуры подачи теплоносителя в радиаторы и теплый пол, 2 датчика DS18B20 для контроля температуры в бойлере, и температуры на улице.

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

Вопрос первый

Правильно ли я понимаю, что возможно подключить 12 датчиков, на шину долинной до 200 метров, при параллельном подключении, с удалением от шины на 2 метра ?

Вопрос второй

Будет ли лучше использовать шину RS-485, подключая датчики DS18B20 через WB-M1W2 ?

Или подключение по шине 1-wire это надежный способ подключения ?

Вопрос третий

Могу ли я организовать вторую шину подключив плюс и минус к тем же клеммам что и первую шину, а провод для DATA подключить к W2 ?

Вопрос четвёртый

Правильно ли я понимаю, что одна пара должна быть VCC + GND, а вторая пара это DATA + свободный провод.
Будет ли лучше, подключить свободный провод который идет в паре с DATA к заземлению вместе с экраном ?

Explorerol


3

Здравствуйте! Перенес ваше сообщение в новую тему.

Mitya:

Выполнить шину длинной 100м, из экранированной витой пары

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

Mitya:

с удалением от шины на 2м

Вот тут уже сложно что-то гарантировать, нужно проверять. Большое значение начинает играть качество соединений и подключения шины. По возможности лучше разделить одну длинную линию на две, подключив часть датчиков на другой порт 1-Wire. Также для диагностики возможных проблем доступ к соединениям лучше оставить.

Mitya:

Оставить один провод в витой паре не задействованным

Подключение по витой паре следует делать так: сигнал по одной жиле пары (W1), минус питания (GND) по второй и аналогично питание: плюс питания (+5 V) по одной жиле пары, минус (GND) по второй.

Mitya:

Подключить шину напрямую к контроллеру WB, к клеммам [5v out, GND, W1]

Да, такое подключение верно.

Mitya:

Заземлить экран витой пары

Минус питания соединить с сигнальной землёй. Экран с одной стороны соединить с минусом питания.

Mitya:

Могу ли я организовать вторую шину подключив её к [5v out, GND, W2] ?

Да, можно. Все должно работать.

Если датчики находятся далеко от контроллера и нужно много ответвлений, то рекомендую рассмотреть использование модулей WB-M1W2. Сами модули подключаются по помехоустойчивой шине RS-485, к каждому модулю можно подключить 2 датчика 1-wire. Самих модулей на шине может быть до 247.

Explorerol


4

Mitya:

Вопрос первый

Правильно ли я понимаю, что возможно подключить 12 датчиков, на шину долинной до 200 метров, при параллельном подключении, с удалением от шины на 2 метра ?

200 метров — очень большая длина для шины 1-Wire. Большая вероятность нестабильной работы

Mitya:

Или подключение по шине 1-wire это надежный способ подключения ?

Сама шина не сильно помехозащищенная. При длинных линиях этот вариант не очень надежен.

Mitya


6

Explorerol:

Если датчики находятся далеко от контроллера и нужно много ответвлений, то рекомендую рассмотреть использование модулей WB-M1W2. Сами модули подключаются по помехоустойчивой шине RS-485, к каждому модулю можно подключить 2 датчика 1-wire. Самих модулей на шине может быть до 247.

Вас понял, это я и хотел узнать. Мне нужен надежный способ, буду использовать способ с WB-M1W2.

Mitya


7

В завершении этой темы, я бы резюмировал:

Mitya:

Вопрос второй

Будет ли лучше использовать шину RS-485, подключая датчики DS18B20 через WB-M1W2 ?

Или подключение по шине 1-wire это надежный способ подключения ?

Для длинных линий, а именно больше 5 метро, лучше всего использовать DS18B20 через WB-M1W2.

Mitya:

Вопрос третий

Могу ли я организовать вторую шину подключив плюс и минус к тем же клеммам что и первую шину, а провод для DATA подключить к W2 ?

Да.

Mitya:

Вопрос четвёртый

Правильно ли я понимаю, что одна пара должна быть VCC + GND, а вторая пара это DATA + свободный провод.
Будет ли лучше, подключить свободный провод который идет в паре с DATA к заземлению вместе с экраном ?

Первая пара это плюс и минус, вторая пара это DATA и заземление.
На конце соединить провод заземления (из пары DATA и заземление), минус, а так же экран витой пары.

Explorerol


8

Mitya:

Первая пара это плюс и минус, вторая пара это DATA и заземление.

Сделайте лучше так: первая пара — плюс питания (+5 V) и минус питания (GND), вторая пара — W1 и минус питания (GND). Я не совсем правильно написал в предыдущем сообщении, исправил.

На одном из концов соединить минус питания, экран и заземление (если оно есть). Если заземление нет или на нем присутствуют сильные помехи, то можно не подключать.

Остальное правильно.

system

Closed


9

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

Автоматика управления отоплением дома своими руками, ч.4. Подключение датчиков температуры DS18B20

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

При монтаже датчиков температуры я использовал кабель «витая пара», каким прокладывают компьютерные сети. В этом кабеле 8 разноцветных жил, скрученных попарно. Во-первых, это оказалось очень удобным для выполнения соединений с возвратом, а во-вторых — кабель «витая пара» как раз очень хорош для таких целей, снижая количество наведенных помех.

 

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

 

У кабеля четыре пары: синий и белосиний, коричневый и белокоричневый, розовый и белорозовый, зеленый и белозеленый. Все провода бело- использую под общий провод. Провод коричневый — Data на входе, синий — питание на входе. На выходе: Data — зеленый, питание — розовый.

 

На другом конце кабеля «с возвратом» подключаю датчик по указанной схеме, т.е., все белые — общий, зеленый и коричневый — Data, синий и розовый — питание.

 

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

 

Но вот кабели раскинуты, датчики подпаяны. Как их закреплять? Вопрос неоднозначен, если задаваться целью измерения температуры с точностью до десятых градусов. Собственно, датчик так и меряет, но он меряет свою температуру. А измерение температуры датчика и температуры воды в трубе — далеко не одно и то же.

 

Казалось бы, чего тут сложного? Приклеил датчик к трубе — и он будет измерять температуру воды в трубе. Разве не логично? Логично. Но неверно. Во-первых, сама поверхность трубы уже дает погрешность, ведь она омывается воздухом, температуру которого не всегда равна температуре воды. Во-вторых, что самое важное, датчик прижат к трубе только одной поверхностью. Остальные — опять же омываются воздухом и температура самого датчика получается вовсе не равной температуре поверхности трубы.

 

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

 

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

 

Я же не термостат собираю для научных экспериментов, у меня просто система управления отоплением частного дома. Да и при программировании системы ничто не мешает мне учитывать эту разницу, что я, собственно и сделал. Например, в прихожке у меня разница показаний датчика и градусника (один от другого в 2-х миллиметрах) — 1,3 градуса. Градусник показывает 24, а датчик — 22,7. Кто из них врет — разве важно? Хотя, я больше все таки цифровому датчику доверяю.

Что еще по датчикам? Вроде все. Ага, вот еще: не спеши датчики сразу все на место прикручивать/приматывать. Определять их потом будет непросто. Пусть пока в воздухе висят, чтобы потом, когда запустишь при настройках «Поиск датчиков» и все они будут определены, можно было ладонями изменять их температуру и давать имена в системе.

Система ведь датчики определит по их серийным номерам и вывалит тебе список этих серийников. Откуда она знает, что вот этот серийник принадлежит датчику возле унитаза, а вот этот — датчику под кроватью? Вот тогда заползешь под кровать, подогреешь датчик ладошками, подышишь на него, а супругу попросишь посмотреть на список датчиков. И узнаешь среди всех, у которого температура поднялась. И узнаешь, какой у него серийный номер, да и название ему присвоишь: Кровать!

Учебное пособие по датчику температуры DS18B20 с Arduino и ESP8266

Ребята, как дела! Акарш из CETech.

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

Ближе к концу этого руководства мы будем соединять DS18B20 с Arduino и ESP8266 для отображения температуры. В случае Arduino температура будет отображаться на последовательном мониторе, а для ESP8266 мы будем отображать температуру на веб-сервере.

Давайте начнем с веселья.

Получите печатные платы для вашего проекта, изготовленные

Чтобы получить печатные платы для вашего проекта, изготовленные онлайн, вы должны проверить ​OurPCB.

Они используют надежные компоненты, полученные от аккредитованных поставщиков, таких как Arrow, Avnet, Future Electronics и т. д., и предлагают разумные цены, что в конечном итоге максимизирует размер прибыли пользователя. Специализируясь на многослойной технологии и технологии Rigid-flex, их приоритетом является поддержание высоких стандартов качества.

Наша печатная плата ориентирована на заказы малого и среднего объема и предлагает очень конкурентоспособную цену для объема от 1 до 100 кв. метров. Вам просто нужно загрузить файлы в любом из доступных форматов (Gerber, .pcb, .pcbdoc или .cam), и прототипы печатных плат будут доставлены к вашему порогу.

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

Сравнение различных типов датчиков температуры

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

Основные точки сравнения:

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

2. DS18B20 выдает данные размером 9-12 бит, а DHT11 выдает данные размером 8 бит.

3. DS18B20 показывает только температуру, тогда как DHT11 может использоваться для получения температуры, а также влажности.

4. DS18B20 охватывает более широкий диапазон температур по сравнению с DHT11, а также имеет лучшую точность по сравнению с DHT (+ 0,5 градуса по сравнению с + 2 градуса для DHT11).

5. Когда дело доходит до ценообразования, эти датчики имеют небольшую разницу между собой, так как два разных варианта DS18B20, проводного типа и корпус TO92, стоят около 1 и 0,4 доллара, а цена DHT11 составляет около 0,6 доллара.

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

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

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

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

Для этого шага нам потребуются: Arduino UNO, датчик температуры DS18B20 (упакованный тип или пакет TO92, любой доступный) и резистор 4,7 кОм.

Датчик DS18B20 имеет 3 провода: черный, красный и желтый. Черный — для GND, красный — для Vcc, а желтый — для сигнального контакта 9.0003

1. Подключите контакт GND или черный провод датчика к GND.

2. Подключите контакт Vcc или красный провод датчика к источнику питания 5 В.

3. Подключите сигнальный контакт или желтый провод к 5V через резистор 4,7 кОм, а также подключите этот сигнальный контакт к цифровому контакту № 12 Arduino.

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

Кодирование Arduino для отображения температуры

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

1. Подключите плату Arduino UNO к ПК.

2. Отсюда перейдите в репозиторий Github для этого проекта.

3. В репозитории GitHub вы увидите файл с именем « Basic code », откройте этот файл, скопируйте код и вставьте его в Arduino IDE.

4. Выберите правильную плату и COM-порт на вкладке «Инструменты» и нажмите кнопку загрузки.

5. После загрузки кода откройте Serial Monitor и выберите правильную скорость передачи данных (9).600 в нашем случае), и вы сможете увидеть температуру, измеренную DS18B20.

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

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

На этом этапе мы будем подключать DS18B20 к модулю ESP8266 для получения температуры.

Для этого шага нам понадобится = модуль ESP8266, резистор 4,7 кОм и датчик температуры DS18B20 (корпусного типа или TO9).2 пакета, что есть в наличии).

Соединения для этого шага аналогичны соединениям, сделанным с помощью Arduino.

1. Подключите контакт GND или черный провод датчика к GND.

2. Подключите контакт Vcc или красный провод датчика к источнику питания 3,3 В.

3. Подключите сигнальный контакт или желтый провод к 3,3 В через резистор 4,7 кОм, а также подключите этот сигнальный контакт к GPIO12, который является контактом D5 модуля.

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

Настройка Arduino IDE

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

1. Перейдите в меню «Файл» > «Настройки»

2. Добавьте http://arduino.esp8266.com/stable/package_esp8266com_index.json в URL-адреса менеджера дополнительных плат.

3. Выберите Инструменты > Доска > Диспетчер плат

4. Найдите esp8266 и затем установите плату.

5. Перезапустите IDE.

Кодирование ESP8266 для отображения температуры

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

1. Перейдите в репозиторий Github для этого проекта отсюда.

2. В Репозитории вы увидите код с именем » ESP8266 Температурный веб-сервер ». Вам просто нужно скопировать этот код и вставить его в Arduino IDE.

3. После вставки кода измените SSID и пароль в коде на идентификатор вашей сети Wi-Fi. На вкладке «Инструменты» выберите правильную плату и COM-порт, а затем нажмите кнопку «Загрузить». язык, написанный там и ниже, будет присутствовать IP-адрес. Вам нужно скопировать этот IP-адрес, так как это адрес веб-сервера, который будет отображать температуру.

Готово

Когда код загружен и получен IP-адрес. Откройте веб-сервер, используя этот IP-адрес

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

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

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

Вот и все для демонстрации.

Датчик температуры Arduino DS18b20 — Pi My Life Up

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

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

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

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

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

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

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

Полный список снаряжения вы можете найти ниже.

Рекомендуется

Дополнительно

  • 3 резистора 100 Ом
  • Красный светодиод
  • Зеленый светодиод
  • Желтый светодиод

Видео

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

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

Adblock удаляет видео? Поддержите нас, подписавшись на наш сервис без рекламы.

Схема Arduino DS18B20

Схема датчика Arduino DS18B20 довольно проста, и если вы не хотите, чтобы светодиоды просто не включались в эту часть схемы.

Ниже я кратко опишу датчик температуры, однако остальное оборудование довольно простое и не требует объяснений.

Если вы читали мое руководство по DS18B20 с Raspberry Pi, то вы точно знаете, что это за устройство. Для тех, кто не знает, DS18B20 — это цифровой датчик температуры, способный считывать температуру с точностью до 0,05 °C.

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

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

Теперь приступим к сборке схемы.

1. Сначала подключите контакт 3v3 от Arduino к положительной шине, а контакт заземления — к шине заземления на макетной плате.

2. Теперь поместите датчик DS18B20 на макетную плату.

3. Поместите резистор 4,7 кОм между положительным проводом (красный провод) и выходным проводом (белый провод) датчика.

4. Затем поместите провод от положительного вывода (красный провод) к положительной шине 3 на 3.

5. Подсоедините провод от выходного провода к контакту № 5 на Arduino. Поместите провод от провода заземления (черный провод) к шине заземления.

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

7. Поместите провод от шины заземления к шине заземления на противоположной стороне макетной платы.

8. Поместите 3 светодиода на макетную плату. (Красный, желтый и зеленый)

9. Подключите резистор 100 Ом к каждому светодиоду и подключите его к шине заземления.

10. Теперь подключите провод от следующих контактов Arduino: контакт 2 к зеленому светодиоду, контакт 3 к желтому светодиоду и, наконец, красный к контакту 4.

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

Установка поддержки для одного провода

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

Это довольно простой процесс, который я сейчас вам проведу.

1. Во-первых, скачайте последнюю версию библиотеки One Wire, скачать ее можно здесь. (Зеркало)

2. После загрузки откройте скетч.

3. Здесь перейдите к эскизу , включите библиотеку , а затем добавьте библиотеку .zip .

4. Теперь должно быть написано что-то вроде Библиотека добавлена ​​в библиотеки. Отметьте меню «включить библиотеку» .

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

6. Этот процесс добавит #include вверху вашего файла и будет добавлен в Arduino при следующей загрузке.

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

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

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

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

1. Сначала загрузите библиотеку датчика температуры Dallas, ее можно скачать отсюда. (Зеркало)

2. Теперь, когда он загружен, войдите в приложение Sketch и повторите шаги, которые мы делали ранее.

3. Перейти к эскизу , включить библиотеку , а затем добавить библиотеку .zip .

4. Теперь должно быть написано что-то вроде Библиотека добавлена ​​в библиотеки. Проверьте меню «включить библиотеку» .

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

6. Это автоматически добавит #include вверху скрипта. Библиотека будет синхронизирована с вашим Arduino, когда вы ее загрузите.

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

Arduino DS18B20 Код

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

Если вы хотите скачать код, вы можете найти его на GitHub.

Для начала нам нужно включить заголовки OneWire и dallasTemperature , чтобы мы могли использовать их в коде. Они уже должны быть там, если вы выполнили шаги, описанные выше.

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

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

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

Затем мы создаем объект OneWire, используя наш контакт, который мы определили ранее (5). Если у вас есть большое количество однопроводных датчиков, рекомендуется разделить их на несколько контактов. Для каждого датчика создайте новый объект Onewire, например, OneWire oneWirePin2(temp_sensor2) ;

Теперь мы создаем наш объект датчика температуры Далласа, передав ссылку OneWire в класс.

В нашей функции настройки мы активируем последовательный интерфейс Arduino, чтобы мы могли отслеживать выходные строки в коде. Здесь также нам нужно настроить наши светодиоды, чтобы все они действовали как выходы. Наконец, мы вызываем sensor.begin() , это настроит наш датчик, чтобы мы могли начать запрашивать у него данные.

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

Затем мы сохраняем значение из sensor.getTempCByIndex(0) в переменную температуры. Если вы хотите получить температуру по Фаренгейту, просто измените C на F. Например, sensor.getTempFByIndex(0) . Кроме того, 0 относится к тому датчику, от которого мы хотим получить информацию. 0 = первый датчик, если у вас есть второй датчик, то это будет 1.

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

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

Наконец, мы также делаем задержку на 500 мс перед повторным циклом выполнения процесса.

Устранение неполадок

Если вы столкнетесь с какой-либо проблемой, вы обнаружите, что обычно есть несколько вещей, которые могут пойти не так. Я просто перечислю некоторые проблемы, с которыми вы можете столкнуться.

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

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

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