Connect multiple DS18B20 to one bus.

Sdílet
Vložit
  • čas přidán 6. 09. 2024
  • Hello! DS18B20 - one of the most common sensors. This sensor is very cheap and at the same time has a good temperature measurement accuracy. In this video, we will look at how you can connect several sensors to one line, and most importantly, how to programmatically distinguish them from each other.
    Sketch: drive.google.c...
    How to connect DS18B20 to Arduino: • Датчик температуры DS1...
    Useful links:
    DS18B20: ali.pub/2t4evc
    DS18B20 In sealed housing: ali.pub/21s0u3
    WeMos D1 Mini Pro: ali.pub/2j9qwb
    ESP8266 ESP-12f: ali.pub/2t4epb
    DHT22 sensor: ali.pub/2t4eq3
    AM2320 sensor: ali.pub/2t4eqo
    RTC DS1307 module: ali.pub/2t4et7
    BMP280 sensor: ali.pub/2t4eud
    Solar Panel 5V 4.5W: ali.pub/2gllam
    Solar panels: ali.pub/2glli0
    Cheapest Arduino Mini Pro for DIY: ali.pub/1ny2z4
    The most convenient cashback:
    LetyShops: goo.gl/Ev5XgI
    The most profitable cashback:
    Ecomerce: goo.gl/3dDc2w

Komentáře • 113

  • @user-ip3uy6qv5y
    @user-ip3uy6qv5y Před 5 lety +2

    Полезная информация, теперь можно попробовать создать термометр дом-улица. :-)

  • @user-zb4ig2li2t
    @user-zb4ig2li2t Před 4 lety +1

    Ваш видосик помог моему проектику.
    СПАСИБО ОГРОМНОЕ !

  • @saidgusainov6252
    @saidgusainov6252 Před 5 lety +2

    Как всегда все понятно.Спасибо.

  • @DjleonLeon
    @DjleonLeon Před 5 lety +10

    С меня диз. Причина ардуино не задаёт адрес датчику! (он прописан на заводе) => никак нельзя задать датчику адрес! Таким образом автор не решил задачу поставленную в начале видео...

    • @UCanDo
      @UCanDo  Před 5 lety +1

      И да и нет. Имеется в виду не серийный номер прописанный в датчике, а адрес (индекс), датчика, который присваивается датчику программой. При старте Ардуино, программа производит поиск и присваивает каждому найденному датчику свой адрес (индекс, номер, называйте так как вам удобно). То есть, допустим, при старте было найдено два датчика.
      Один с серийным номером: 0x28, 0xFF, 0x23, 0x29, 0x21, 0x17, 0x4, 0xC1
      Второй с серийным номером: 0x28, 0xFF, 0x7E, 0x0, 0x21, 0x17, 0x4, 0x5B
      и вот тут и начинается путаница. Программа может задать первому датчику адрес "0", а второму датчику адрес "1", а может и наоборот. Именно этот "адрес" я и имел в виду.
      Вот, посмотрите этот пример: czcams.com/video/eQAMgzAHUNM/video.html

    • @DjleonLeon
      @DjleonLeon Před 5 lety +1

      @@UCanDo если называть вещи не своими именами, то да -любой символ это адрес.... Но кажется мне это не правильно.

    • @vladimirkudiyarov2936
      @vladimirkudiyarov2936 Před 5 lety

      Простите, но не нужно вводить несведущих в заблуждение. Леонид всё верно Вам указал. АДРЕС - установлен производителем, а нумеруете Вы их самостоятельно.

    • @egorshichenko1744
      @egorshichenko1744 Před 5 lety

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

    • @vladimirkudiyarov2936
      @vladimirkudiyarov2936 Před 5 lety

      Коммент Леонида не о методе выбранном автором, чтобы узнать серийники датчиков, а его неверной формулировке

  • @user-dg9ld4ks1h
    @user-dg9ld4ks1h Před 5 lety

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

    • @UCanDo
      @UCanDo  Před 5 lety

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

  • @dimuabelkaSuper
    @dimuabelkaSuper Před 5 lety +4

    Спасибо большое 💣

  • @SanSan-xe4hz
    @SanSan-xe4hz Před 4 lety

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

    • @guggiwert1796
      @guggiwert1796 Před 4 měsíci

      Да, но у него дома холодно, можешь скинуть ему денег на карту для разогрева или нет?

  • @user-yj5yi4cx2l
    @user-yj5yi4cx2l Před 5 lety

    Спасибо! А второй мне было интересно, как работает пожарная сигнализация в нескольких квартирах. Теперь я понимаю.

  • @alexasino70
    @alexasino70 Před 5 lety +2

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

    • @UCanDo
      @UCanDo  Před 5 lety

      тоже вариант :)

  • @gennadiygps2186
    @gennadiygps2186 Před 4 lety

    Полезная информация, теперь можно попробовать создать термометр дом-улица. :-) Респект !!!

    • @UCanDo
      @UCanDo  Před 4 lety +2

      Посмотрите мои последние видео. Я начал делать погодную станцию, может что-то полезное увидите.

    • @guggiwert1796
      @guggiwert1796 Před 4 měsíci

      ​@@UCanDoюкандо, а разве что так можно , чтоб сразу и на улице и дома показывал температуру?

    • @UCanDo
      @UCanDo  Před 4 měsíci

      @@guggiwert1796 да, можно.

  • @user-fs3jb2mk9m
    @user-fs3jb2mk9m Před 3 lety +1

    Спасибо большое,все получилось.

    • @user-fs3jb2mk9m
      @user-fs3jb2mk9m Před 3 lety

      Добрый день.У Вас случайно нет проекта озвучки температуры на двух датчиках и dfplayer mini?

  • @ruslan.zhumabai
    @ruslan.zhumabai Před 5 lety +1

    Отличное видео. Обещали снимать. Сделали. Не забудьте следуюший раз про интерфейса one wire рассказать. Разницу хочу узнать с rs485.

    • @UCanDo
      @UCanDo  Před 5 lety

      Это очень отличные друг от друга интерфейсы, которые между собой не имеют ничего общего. По этому рассматривать оба интерфейса в одном видео - не самый лучший вариант. Есть хорошие статьи описывающие работу с этими интерфейсами. Вот на пример:
      ipc2u.ru/articles/prostye-resheniya/otlichiya-interfeysov-rs-232-rs-422-rs-485/
      radiokot.ru/articles/13/

  • @analgetic911
    @analgetic911 Před 5 lety

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

    • @UCanDo
      @UCanDo  Před 5 lety

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

    • @analgetic911
      @analgetic911 Před 5 lety +1

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

  • @user-ee3pw3bb4c
    @user-ee3pw3bb4c Před 5 lety +1

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

  • @user-ck5hm6io3k
    @user-ck5hm6io3k Před 4 lety

    Чётко и ясно!

  • @ArduBlock
    @ArduBlock Před 3 lety

    Круто / большое спасибо )

  • @filippogermi1618
    @filippogermi1618 Před 3 lety

    good job, did you tried to use DS18B20 with ESP01? I'm trying but meet lot of problem. (apologies i can understand Russian but not write)

    • @UCanDo
      @UCanDo  Před 3 lety

      Hey!
      No, I have not used DS18B20 with ESP01. I just don't have an ESP01. But I connected DS18B20 to ESP8266. Everything worked fine: czcams.com/video/xCad3Q1Egrc/video.html

  • @lazizochilov736
    @lazizochilov736 Před 2 lety

    Здравствуйте как можно взять скеч на arduino dallas 18b20 потключить несколька датчик

  • @poysoriona1457
    @poysoriona1457 Před 3 lety

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

  • @Ardbot
    @Ardbot Před 5 lety

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

    • @UCanDo
      @UCanDo  Před 5 lety +3

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

  • @user-xw1ez8ig2k
    @user-xw1ez8ig2k Před 3 lety

    Есть опыт работы с восьмью датчиками, тоже их прописывал.

  • @paparazzibird6706
    @paparazzibird6706 Před 2 lety

    Привет! Огромное спасибо за видео, собрал для двух датчиков, всё отлично! Появился вопрос, может Вы знаете в чём может быть дело. Подключил к ардуино уно ethernet shield w5100 сделал простой веб сервер, он работает, затем внедрил в него скетч для датчиков, и вот что странно, при подключённом шилде, данные с датчиков не приходят (пишет -127 и всё), а если шилд физически отключить от ардуино, то с этим же скетчем всё работает (вижу по монитору порта) показания с датчиков корректные. Прозванивал пины, все звонятся нормально, питание тоже идёт, как с шилдом, так и без него. И даже пробовал внешнее питание 9В подключать, думал нехватает из за питания шилда.

    • @UCanDo
      @UCanDo  Před 2 lety

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

    • @paparazzibird6706
      @paparazzibird6706 Před 2 lety

      @@UCanDo Тоже об этом подумал, но в спецификации указано что он использует только SPI разъём. Всё равно спасибо, буду дальше искать причину.

  • @user-vi2wp3gs5y
    @user-vi2wp3gs5y Před 4 lety

    Всё хорошо. Спасибо.

  • @----Alex---
    @----Alex--- Před 5 lety +1

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

    • @UCanDo
      @UCanDo  Před 5 lety +1

      Можно, конечно и так :)

    • @tor7860
      @tor7860 Před 5 lety

      @@UCanDo а потом уже переименовываем? (то есть можно обойтись без процедуры с копированием адресов?)

    • @UCanDo
      @UCanDo  Před 5 lety +1

      Да, можно, если датчиков 2-3. Но если их больше то времени уйдет на много больше чем если бы сразу узнать их адреса.

  • @sergeytos4719
    @sergeytos4719 Před 3 lety

    Доброе время суток уважаемый. Хотелось бы узнать, почему данный датчик перестаёт работать уже на 5ти метрах экранированного специализированного провода. Вот это можете объяснить?

    • @sergeytos4719
      @sergeytos4719 Před 3 lety

      И да. Как в полевых условиях вывести на дисплей сканирование шины OneWire?

    • @UCanDo
      @UCanDo  Před 3 lety

      Если на 5-им метрах перестаёт работать, то Проблема либо в кабеле, либо в питании.
      У меня до датчика 10 метров. Работает уже 8 лет стабильно

    • @sergeytos4719
      @sergeytos4719 Před 3 lety

      @@UCanDo Не пойму как может быть что то с кабелем - он новый!

    • @UCanDo
      @UCanDo  Před 3 lety

      Элементарно: наводки и т.д. Попробуйте поставить электролитический конденсатор возле датчика

  • @ruslanmachuzhak2504
    @ruslanmachuzhak2504 Před 3 lety

    Спасибо

  • @igor0242
    @igor0242 Před 5 lety

    Почему из всех адресов вы указали на какой-то один? Порт выдал целый набор адресов же.

    • @UCanDo
      @UCanDo  Před 5 lety +1

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

  • @user-gc2ep6wj4f
    @user-gc2ep6wj4f Před 3 lety

    Почему у меня скеч выдает ошибку 'D4' was not declared in this scope?

    • @UCanDo
      @UCanDo  Před 3 lety

      А для какой платы вы делаете компиляцию?

    • @user-gc2ep6wj4f
      @user-gc2ep6wj4f Před 3 lety

      @@UCanDo для любой выдает эту ошибку. Убрал букву 'D' и все заработало

  • @poweredbysergey
    @poweredbysergey Před 5 lety +1

    Cool

  • @user-hd7hq4lf4y
    @user-hd7hq4lf4y Před 4 lety

    Доброго всем. Имею аналогичную схему подключения с 4-мя датчиками. Общая длина шлейфа 9 метров. При работе устройства начали переодически "отваливаться" датчики. Возвращают ошибку -127 (обычно "нет питания" или "датчик не отвечает") Так вот вопрос, как бороться и можно ли как-то программно сбрасывать датчики на ходу? (возникла ошибка - перезапустил)

    • @UCanDo
      @UCanDo  Před 4 lety

      Добрый день. У меня датчик выведен на улицу, длинна провода тоже около 9 метров. Подключал 3-мя проводами. В таком режиме работает уже более 4-х лет.
      Давно это было. Надо вспомнить...
      для стабильной работы нужно Подключение по 3-м проводам, не по двум! Дальше, для стабильности работы, на конец провода нужно установить электролитический конденсатор по-большое емкостью. Ещё нужно возле каждого датчика установить подтягивающий резистор на 4.7 - 10 кОм.

    • @user-hd7hq4lf4y
      @user-hd7hq4lf4y Před 4 lety

      @@UCanDo резисторы возле каждого датчика? Вы не путаете? Конденсатор в конце у меня стоит на 0.01 мкф. Схема по 3 проводам.

    • @UCanDo
      @UCanDo  Před 4 lety

      В конце провода нужно поставить конденсатор на 200 - 1000 микрофарад (электролитический), для стабилизации питания.
      Да, резистор нужно ставить возле каждого. Но сопротивление резисторов нужно расчитать. При параллельном соединении сопротивление резисторов уменьшается. Нужно расчитать так, чтобы после установки резисторов общее сопротивление было около 4.7 кОм.
      Такая конструкция необходима из-за длинного провода.

    • @user-hd7hq4lf4y
      @user-hd7hq4lf4y Před 4 lety

      Благодарю, будем пробовать.

  • @les12001
    @les12001 Před 4 lety

    Здравствуйте, как эта шина называется?

    • @UCanDo
      @UCanDo  Před 4 lety +1

      Добрый день.
      1-Wire или One-Wire

  • @user-xw1ez8ig2k
    @user-xw1ez8ig2k Před 3 lety

    Пишу с ака жены, а вот 120 датчиков как пометить? Забодаешься их прописывать.

    • @UCanDo
      @UCanDo  Před 3 lety

      Да, есть такое...

    • @user-gc2ep6wj4f
      @user-gc2ep6wj4f Před 3 lety

      120 датчиков забадаешься подключать не то что прописывать ))

    • @user-xw1ez8ig2k
      @user-xw1ez8ig2k Před 3 lety

      @@user-gc2ep6wj4f нет, если надо есть принцип - самоделки по заводским быстросъемным датчикам. Сам делал год назад.

  • @Agritreid
    @Agritreid Před 5 lety

    Какое количество датчиков так можно подключить ?

    • @UCanDo
      @UCanDo  Před 5 lety +1

      Больше 120-ти. Если не ошибаюсь, 127

    • @Agritreid
      @Agritreid Před 5 lety +1

      @@UCanDo 127 датчиков можно через один зеленый проводок подключить ? Я правильно понял ?

    • @UCanDo
      @UCanDo  Před 5 lety +1

      Да, все верно.

  • @RVBlondinchik
    @RVBlondinchik Před 3 lety

    Есть необходимость узнать mac адреса нескольких десятков таких датчиков. Насоветуйте как.

    • @UCanDo
      @UCanDo  Před 3 lety

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

  • @----Alex---
    @----Alex--- Před 5 lety

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

    • @UCanDo
      @UCanDo  Před 5 lety +1

      Относительно камеры точно не подскажу. Как вариант - попробовать подключить web камеру через USB. Еще вариант - ip камера.
      Относительно датчиков... Датчики должны быть к чему-то подключены, на пример Ардуино, или ESP8266, а дальше донные должны передаваться на планшет либо через блютуз, либо через интернет (MQTT).
      У меня на канале есть несколько примеров получения данных на телефон (или на планшет).

    • @----Alex---
      @----Alex--- Před 5 lety

      Спасибо сейчас посмотрю

  • @guggiwert1796
    @guggiwert1796 Před 4 měsíci

    Земляк, у тебя дома холодно, да?

    • @UCanDo
      @UCanDo  Před 4 měsíci

      Для вас 21 - это холодно? Как по мне, холодно это когда 14 градусов….

    • @guggiwert1796
      @guggiwert1796 Před 4 měsíci +1

      @@UCanDo я про ту малюююсенькую "зону комфорта" в 10-15 градусов, 15 уже прохладно, 28 уже жарковато, а на солнце живут же создания, которым нормально при той температуре!!

    • @UCanDo
      @UCanDo  Před 4 měsíci

      @@guggiwert1796 100%

  • @user-rw8yf9ij1j
    @user-rw8yf9ij1j Před 4 lety

    Как колибровать 5 датчиков ds18

    • @user-rw8yf9ij1j
      @user-rw8yf9ij1j Před 4 lety

      ?

    • @UCanDo
      @UCanDo  Před 4 lety

      Что значит калибровать? Они и так откалиброванны

  • @user-pw2vi4dl6q
    @user-pw2vi4dl6q Před 2 lety

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

    • @UCanDo
      @UCanDo  Před 2 lety

      Да без проблем! Только для начала ответьте не простой вопрос: как Ардуино определит какой датчик к чему относится? Допустим есть 5 датчиков, подключённых на одну линию, датчики расположены в разных местах. Допустим в 5-ти разных комнатах. Как Ардуино узнает какой датчик к какой комнате относиться? При включении Ардуино каждому датчику назначает свой индекс, какой индекс будет у какого датчика - не известно. Индекс назначается случайно. А это значит что при включении индексы меняются, и тот датчик что был 5-м становится 2-м, а 1-й 3-им. Никогда не получится точно знать какому датчику какой индекс соответствует. А значит никогда не получится сделать так чтобы Ардуино автоматически понимала какой датчик в какой комнате находится. Это касается датчиков, находящихся на одной линии.
      Выходов из этой ситуации два:
      1) каждый датчик устанавливать на отдельную линию (отдельный пин)
      2) указывать в скетче адрес датчика (прописанный на заводе) и указывать какой адрес какому датчику-расположению соответствует

    • @user-ur3rc5po9d
      @user-ur3rc5po9d Před 9 měsíci

      @@UCanDo упорядочивать датчики по адресам, чтобы первый был всегда первым, а пятый - всегда пятым? до момента замены датчиков конечно :)

    • @UCanDo
      @UCanDo  Před 9 měsíci

      @@user-ur3rc5po9d, в момент замены придется перепрошивать Ардуино, указав новый датчик.
      Датчики DS18B20 крайне надежные. За мои 10-11 лет практики ни один не вышел из строя.

  • @f33net
    @f33net Před 5 lety

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

    • @UCanDo
      @UCanDo  Před 5 lety

      Речь не о том что кому лучше. Конечно, можно отдельный датчик на отдельную ногу.

  • @user-jq3zf2eb3m
    @user-jq3zf2eb3m Před 5 lety

    czcams.com/video/2oiZ0RSUkvA/video.html вы наверно меня не понили у меня есть тоже токой караблик я хачу зделать как на видео когда открывается бункер диоды моргали.я не могу понять какие мекросхему туда нужны мне бы схему

    • @UCanDo
      @UCanDo  Před 5 lety

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

  • @electronicsengineer-ru

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

    • @UCanDo
      @UCanDo  Před 5 lety

      Видео как раз таки об этом: узнаем серийный номер (прошитый на заводе) для того чтобы не путаться.
      Если этого не сделать, то Ардуино будет обращаться к датчикам по индексу (я его в видео назвал "адресом": 0, 1, 2, 3...) а вот какому датчику какой индекс будет присвоен - это уже не известно.

  • @f33net
    @f33net Před 5 lety

    А втыкнуть все сразу, хоть 10, опросить адреса, полапать пальцами по очереди и потом список адресов отсортировать опять религия не позволила? :) А ещё крутые пацаны записывают номер порядковый в энергонезависимую память датчика, потом опрашивают весь список адресов на шине и сортируют его по тому номеру, за одно кричат, если что-то не в порядке с датчиком и какой-то номер выпал. Ну, и главное - заводской адрес датчика микротекстом выбит на сигналmной ноге датчика - в мелкоскопе выдно... :)))

    • @UCanDo
      @UCanDo  Před 5 lety

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

    • @f33net
      @f33net Před 5 lety +1

      Микроскоп слабый... Там же вдоль ноги длинный номер не напишешь, да и припоем замажется, оно на выходе из корпуса поперёк написано мелко-мелко... :)))

  • @paparazzibird6706
    @paparazzibird6706 Před 2 lety

    Спасибо, было полезно.