Ds18B20 термометр – Работа с датчиком температуры DS18b20. Делаем термометр — Как подключить — AVR project.ru

Термометр на DS18B20. AVR для начинающих.

Термометр на AtMega8 и DS18B20.

Необходимые компоненты:

  1. AtMega8-16PU.

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

  3. Wh2602 или аналоги.

  4. Резистор 4.7кОм.

  5. Источник питания 5в.

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

Сегодня мы соберем простейший термометр, показания которого будут выводиться на LCD Wh2602. Датчиком температуры выступит DS18B20, который подключается к микроконтроллеру по однопроводному интерфейсу 1-wire.

Обозначение выводов DS18B20:

Схема устройства:

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

Чтение показаний температуры осуществляется по однопроводному интерфейсу 1 wire. Для удобства работы была написана простейшая библиотека на языке ассемблера.

Проект для Atmel Studio.

Проект для Atmel Studio (12 MHz)

В итоге получаем:


Любое копирование, воспроизведение, цитирование материала, или его частей разрешено только с письменного согласия администрации MKPROG.RU. Незаконное копирование, цитирование, воспроизведение преследуется по закону!

mkprog.ru

Термометр на микросхеме DS18B20 для компьютера

Датчик температуры 18B20 представляет собой микросхему в корпусе TO-92. На первый взгляд его не отличить от обычного транзистора. У датчика всего три вывода. Вывод с номером 1 — это «земля», питание подключается к выводу 3, а цифровой сигнал температуры снимается с ножки 2. Микросхема соединяется с ведущим устройством (у нас это будет компьютер) посредством довольно простого протокола, который называется 1-Wire, что переводится с английского как «один провод». Таким образом информация передается по одному сигнальному проводу. Но конечно, нам необходимо 3 провода для того, чтобы подключить датчик.

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

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

Кроме всего прочего, приставку можно использовать для проверки работоспособности датчиков 18B20 перед использованием из в ваших самоделках и для определения уникального кода датчика (его серийного номера). Это иногда бывает нужно, чтобы подключить к микроконтроллеру несколько таких датчиков по одной линии 1-Wire.
   

Схема представляет собой устройство согласования шины 1-Wire датчика с портом RS232 компьютера. В схеме всего несколько деталей. Функции ключей выполняют два транзистора типа 2N7002. Это очень распространенные и исключительно дешевые MOSFET транзисторы в SMD корпусе. Эти транзисторы в мире полевиков являются чем-то вроде народного КТ315 в мире советских биполярных транзисторов. Они используются в миллионах радиолюбительских конструкций и в огромном количестве различной промышленной радиоэлектронной техники. Если вы захотите собрать эту схему на макетной плате из выводных компонентов, то транзисторы 2N7002 можно заменить аналогом в корпусе TO-92, не менее распространенным и легендарным 2N7000. Ссылки на детали я помещу в конце статьи. Стабилитрон применен выводной, любого типа, на напряжение в районе 5 вольт.

    
Печатная плата устройства рассчитана на установку SMD транзисторов и резисторов, и разъема DB9, предназначенного для установки на печатную плату. В качестве панельки для датчика 18B20 используется панелька для 6-выводных микросхем DIP6.

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

    

  
Специально для данной статьи я развел печатную плату в программе DipTrace.
   

musbench.com

Делаем цифровой электронный термометр на основе DS18B20.

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

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

Данный цифровой электронный термометр собран на микроконтроллере ATtiny 2313. Датчиком температуры служит изделие DS18B20 от компании Dallas Semiconductors. Характеристики термометра видны на фото, поэтому повторять их не будем.

Для проверки работоспособности цифрового термометра подключаем его к лабораторному блоку питания и подаем напряжение, ну скажем, 12В (допустимо от 7 до 15В). Эталонных измерителей температуры у меня нет ( да и не нужны они), поэтому сравниваем показания цифрового термометра с обычным бытовым.

Как видно, показания очень близки- почти 19°С на спиртовом термометре, и 18,8°С на цифровом.

Такой точности цифрового термометра более чем достаточно для  бытовых нужд.

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

Отсюда сразу два важных вывода:

  1. Цифровой термометр в целом, и датчик температуры в частности исправны;
  2. Морозильная камера в холодильнике обеспечивает заявленную производителем температуру))).

Поскольку испытательный этап успешно закончен, приступим к окончательной сборке термометра.

Для корпуса цифрового термометра был выбран валявшийся без дела пластиковый корпус от советского радиоконструктора ( набора) Старт-7176 « Часы электронные». Сами  мною собранные часы из этого набора где-то еще тоже валяются.

Корпус имеет наружные размеры ШхВхГ- 140мм х 90мм х 30мм. Внутренние размеры, соответственно, чуть меньше.

Камнем преткновения оказался выбор источника питания. Имелось три варианта:

  1. Батарейка на 9В;
  2. Внешний сетевой источник питания;
  3. Встроенный во внутрь сетевой источник питания.

От  применения батарейки в качестве источника питания отказался сразу, учитывая тот факт, что цифровой термометр потребляет ток до 40 мА. Батарейки надолго не хватит при таком токе.

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

И решение нашлось!

Перебирая свой радиолюбительский хлам обратил внимание на зарядное устройство от старого мобильного телефона Samsung. Шильдик на нем информировал о том, что зарядка выдает напряжение 5В при токе до 1А. По току все было с запасом, а вот пяти вольт напряжения было недостаточно. Пришлось вскрывать корпус зарядного устройства, с целью посмотреть- а нельзя ли как-нибудь повысить выходное напряжение…

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

Вид со стороны элементов.

Видна маркировка микросхемы, на которой собрана зарядка- SC1009PN. Обратите внимание, что у этой микросхемы отсутствует ножка №6. Это сделано для того чтобы высокое напряжения на ножке №5 не прошивало на рядом расположенные другие ножки микросхемы (это сказал Гугл).

С обратной стороны на платке размещены пара десятков элементов в SMD исполнении, среди которых выделяется своими размерами оптрон РС817 и шестиногая микросхема с двухбуквенной маркировкой.

Поиск  даташита на SC1009PN ничего не дал. Знающие люди пишут что это-специфическая заказная микросхема. Есть аналог-TNY264P.

Удалось найти принципиальную схему на подобное зарядное устройство

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

А вот на TSM1051 даташит имеется в сети. Можно видеть типовую схему включения

Из даташит’а следует, что данная микросхема специально разработана для применения в подобных устройствах. Но, самое важное, выходное напряжения источника питания на данной микросхеме можно менять в некоторых пределах, изменяя номиналы резисторов делителя  R1 и R2(см. типовую схему включения), или R10 и  R11,  R14 ( см. схему зарядки выше).Это как раз то, что нам нужно.

Поиск резисторов  делителя напряжения на конкретной плате показал, что искомый резистор имеет маркировку R15 рядом с микросхемой TSM1051 и соответствует резистору R1 на типовой схеме включения.

Номинал данного резистора был 820 Ом. Методом подбора номинала данного резистора в сторону увеличения ( кажется, до 1,8 кОм) выходное напряжения было поднято с 5 до 8,5 В.

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

Сборка почти закончена

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

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

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

Для защиты датчика наружной температуры от механических повреждений делаем вот такой контейнер из кусочка трубки. К трубке прикреплен кронштейн для закрепления контейнера на стене ( либо где удобно) в месте защищенном от прямых солнечных лучей и  атмосферных осадков.

Датчик DS18B20 помещаем внутрь трубки

Выключатель питания закреплен на боковой стенке

Осталось проверить в работе…

Температура наружного воздуха

Температура внутри помещения

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

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

P.S. Когда наступят морозы-добавлю фото замера отрицательной температуры наружного воздуха.

Обновление от 30 ноября 2016 года.  Утро, мороз…Вот как отображает термометр отрицательную температуру:

www.myhomehobby.net

Термометр на датчике DS18B20 — Меандр — занимательная электроника

Читать все новости

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

       Рис 1. Принципиальная схема и внешний вид электронного термометра на DS-18B20

Инструкция по сборке термометра

Рис 1. Установка диода U2 (1N5817)

Рис 2. Установка диода U4 (1N5817)

Рис 3. Установка стабилитрона U1 (BZX55C3V9)

Рис 4. Установка стабилитрона U3 (BZX55C6V2)

Рис 5. Установка резистора R1 (CF-0,125 1,5кОм) и пропайка общего провода

Рис 5. Установка разъема для подключения датчика *

Рис 7. Установка конструкции в корпус разъема DB9-F

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

  • Temp Keeper — программа для наблюдения температуры, автор Pavel V. Vorobyov
  • Temp Control — программа для наблюдения температуры и управления внешней нагрузкой, автор Medfather Inc.

Возможно, Вам это будет интересно:

meandr.org

Электронный термометр с выносным датчиком DS18B20 на микроконтроллере Attiny2313

В данной статье проведем обзор цифрового термометра, построенного на микроконтроллере Attiny2313, снабженного выносным цифровым датчиком DS18B20. Пределы измерения температуры составляет от  -55 до +125 градусов Цельсия, шаг измерения температуры составляет 0,1 градус. Схема очень простая, содержит минимум деталей и ее запросто можно собрать своими руками.

Описание работы схемы термометра

Самодельный электронный термометр с выносным датчиком построен на всем известном микроконтроллере Attiny2313. В роли температурного датчика выступает микросхема DS18B20 фирмы Dallas. В схеме термометра можно применить до 8 цифровых датчиков. Микроконтроллер взаимодействует с DS18B20 по протоколу 1Wire.

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

Для прошивки микроконтроллера Attiny2313 необходимо выставить фьюзы следующим образом (для программы CodeVision AVR):

 

Скачать файлы прошивки и печатной платы (1,0 Mb, скачано: 5 425)

Источник : www.radiokot.ru

www.joyta.ru

ds18b20 / Поиск по тегам / Сообщество EasyElectronics.ru

Решил написать заметку про убийцу вариант замены всеми полюбившегося датчика ds18b20.
Все мы знаем ds18b20 — это цифровой датчик температуры, который позволяет делать замеры с достаточно высокой точностью и обмениваться данными с окружающим миром по протоколу 1 wire. И все хорошо в этом датчике, да вот только протокол 1 wire не всегда реализован в железе МК и как часто это бывает, приходится городить свой трехколесный или же пользоваться сторонними либами. При этом больше всего обидно, когда нам нужно сделать устройство, которое питается от батарейки и должно работать миллисекунды, а потом засыпать на часы, а для банального замера температуры приходится общаться с датчиком, тратить на это клоки МК, ждать и «засорять» флеш и RAM кодом, который можно было бы использовать более оптимально.
Читатель может возразить — так можно поставить термопару или другой аналоговый прибор и замерять через АЦП — и будет прав, но при этом возрастает количество элементов на схеме и плате, а так же всегда есть шанс ошибиться при монтаже и т.д.
И вот на помощь нам пришла компания Texas instruments которая разработала цифровой датчик LMT01, который по своим характеристикам не уступает народному ds18b20, а в некоторых случаях его даже превосходит (даташит).
Но самое главное — у датчика всего две ноги, они же служат ему питанием и коммуникацией с внешним миром. А коммуникация у него проста как двери — подаем на него питание и через мгновение датчик начинает дрыгать ногой. Сколько раз дрыгнул — столько и насчитал единиц температуры! Один «дрыг» = 0.0625°С. т.е. нам нужно всего-то подключить одну ногу к МК, подать в нужный момент на него питание и посчитать сколько раз датчик дёрнет за нашу ногу. Как считать — думаю что тут уже каждый сам для себя придумает. Самый простой способ — прерывание на ноге. Способ посложнее — подсчет таймером. Согласитесь — просто до неприличия. Даже примеры коды приводить смысла нет.
Длинна проводников, которыми он может быть подключен к МК может достигать двух метров, тут конечно не сравнить с шиной 1 wire но это не сильно критический минус.

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

Ну и для тех кому лень лезть в даташит немного характеристик:

Основные характеристики:
Корпус: TO-92/LPG(2)
Тип датчика: Цифровой
Диапазон измеряемых температур: -50…150 С
Точность измерения ±: 0,5 С
Разрешение: 0,0625 С

UPD:
Для сравнения с ds18b20:
Только включил и через 54мс получаем температуру, ничего не нужно отправлять, инициализировать и конфигурировать.
Время получения данных о температуре максимум 50мс. при 150 C, минимум 0мс при -50С.
Итого суммарное время получения макс. 104мс.
В далласе при двуногом подключении нужно выдерживать интервалы из даташита, для 12 бит это уже 750мс. + время на отправку команд для измерения и чтение данных.
Ну и разница в потреблении питания миллиамперы у далласа против микроампер у LMT01.
Так же, для некоторых специфических задач можно получать непрерывное измерение температуры со интервалом 104мс если не отключать датчик…

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

Простая схемка подключения. В ДШ есть и другие.

we.easyelectronics.ru

Wi-Fi термометр на ESP8266 + DS18B20 всего за 4$ / Хабр

В последнее время всё большую популярность набирают Wi-Fi модули на основе ESP8266. Я тоже решил приобщиться к прекрасному, задумав реализовать термометр, отдающий данные по HTTP. Итак, поехали.

Hardware

ESP8266
Для проекта пойдет любой из модулей от ESP-01 до ESP-11, у меня были ESP-03 (стоимость ~ $3):

Особенно приглянулись:
ESP-01 — удобен для прототипирования (есть разъем под макетку), но выведен всего 1 GPIO;
ESP-03 — много выводов, плюс керамическая антенна;
ESP-07 — то же самое что и ESP-03 + экран и разъем под внешнюю антенну.

DS18B20

Как вариант, можно купить уже с проводом и в герметичном корпусе.

Питание 3.3В
Необходим источник питания как минимум на 200мА.

USB-UART
Для прошивки и отладки. Я использовал преобразователь на основе CP2102

Подключение

Подключаем питание на ESP8266. На ногу CH_PD так же подаем плюс.
Внимание! У кого модули не ESP-01, необходимо подать GPIO15 — GND; GPIO2 -3.3V. У ESP-01 это уже сделано. RX и TX подключаем к USB-UART преобразователю для прошивки и отладки кода:

Подключаем DS18B20 к ESP8266. Если смотреть на маркировку: левая — земля, средняя — сигнал (GPIO12 на ESP-03), если у вас ESP-01, подключайте к GPIO0, правая — питание(3.3V). Между питанием и сигнальной линией желательно подключить резистор 4.7 кОм (у меня работает и с 10 кОм):

thingspeak.com

Регистрируемся на thingspeak.com, создаем канал, копируем оттуда 16-символьный ключ. Он нам пригодится для отправки данных о температуре в облако.
Прошивка NodeMCU

NodeMCU — это прошивка, позволяющая запускать Lua скрипты на ESP8266. Качаем последний NodeMCU Flasher и запускаем его.
Подключаем GPIO0 на землю. Выбираем нужный COM порт и скорость 74880 или 115200 (как я понимаю, у некоторых версий ESP8266 бутлоадер работает на 74880). Нажимаем Flash и передергиваем питание на ESP8266. Если прошивка не запускается, проверяем корректность подключения RX,TX, запустив PuTTY на скорости 74880. В момент подачи питания в консоль должна валится строка вроде «ets Jan 8 2013,rst cause:1, boot mode:(1,0)«. После корректной прошивки отключаем GPIO0 от земли:

Заливка Lua скриптов и запуск

Скачиваем и запускаем LuaLoader. Выбираем COM-порт и скорость 9600, если нет соединения — пробуем передернуть питание у модуля ESP8266. Проверяем соединение, нажав на кнопку ChipID. В консоль должен вывестись идентификатор чипа.
= node.chipid()
10371968

Заливаем нужные файлы (кнопка UploadFile):

1. ds18b20.lua — библиотека для взаимодействия с DS18B20;
2. httpsender.lua — наш скрипт, читающий данные температуры и отправляющий их на thingspeak.com. Не забываем заменить YOURAPIKEY на свой ключ.
gpio=6 — в случае подключения датчика к GPIO12, в случае GPIO0 — gpio=3 (таблица):

gpio = 6
require('ds18b20')
ds18b20.setup(gpio)

function sendData()
t=ds18b20.read()
print("Temp:"..t.." C\n")
-- conection to thingspeak.com
print("Sending data to thingspeak.com")
conn=net.createConnection(net.TCP, 0) 
conn:on("receive", function(conn, payload) print(payload) end)
-- api.thingspeak.com 184.106.153.149
conn:connect(80,'184.106.153.149') 
conn:send("GET /update?key=YOURAPIKEY&field1="..t.." HTTP/1.1\r\n") 
conn:send("Host: api.thingspeak.com\r\n") 
conn:send("Accept: */*\r\n") 
conn:send("User-Agent: Mozilla/4.0 (compatible; esp8266 Lua; Windows NT 5.1)\r\n")
conn:send("\r\n")
conn:on("sent",function(conn)
                      print("Closing connection")
                      conn:close()
                  end)
conn:on("disconnection", function(conn)
                                print("Got disconnection...")
  end)
end

-- send data every 60000 ms to thing speak
tmr.alarm(0, 60000, 1, function() sendData() end )

3. init.lua — скрипт инициализирующий WiFi и запускающий httpsender.lua. Не забываем прописать свои SSID и пароль для WiFi:

print("Setting up WIFI...")
wifi.setmode(wifi.STATION)
--modify according your wireless router settings
wifi.sta.config("SSID","SSIDPASSWD")
wifi.sta.connect()
tmr.alarm(1, 1000, 1, function() 
if wifi.sta.getip()== nil then 
print("IP unavaiable, Waiting...") 
else 
tmr.stop(1)
print("Config done, IP is "..wifi.sta.getip())
dofile("httpsender.lua")
end 

Итог:

Планы

Это первый опыт работы с ESP8266. В планах попробовать следующее:

1. Найти альтернативу thingspeak. Графики хочется двигать и масштабировать. Может, кто-то знает аналоги?
2. Датчик влажности (возможно, DHT22). Вроде уже есть в стандартных библиотеках.
3. Датчик CO2 на основе датчика K-30.
4. Управляемый рассвет без дополнительного контроллера, управление с ESP8266. Вдохновила публикация «Искусственный рассвет».

Используемые материалы

За основу взят текст «Low cost WIFI temperature (DS18B20) data logger based on ESP8266 with connectivity to thingspeak.com». Код для DS18B20 почему-то отказался работать, пришлось перейти на стандартную библиотеку ds18b20.lua.

habr.com