В этом руководстве рассказывается, как считывать показания с нескольких датчиков температуры DS18B20 посредством микросхемы ESP32 с помощью среды разработки Arduino IDE.
Мы покажем, как к одной шине данных ESP32 подключить несколько датчиков, установим необходимые библиотеки и приведём простой пример, который вы сможете использовать в своих проектах. Эта инструкция подходит также для плат семейства ESP8266 и различных платформ Arduino.
14 комментариев. Оставить новый
Здравствуйте!
Все сделал по Вашему примеру.
При подключении датчиков к GPIO15 код компилируется, но нода не прошивается.
Если на момент прошивки к пину ничего не подключено – прошивается. После прошивки можно подключиться.
С другими пинами все работает сразу.
Но у меня свободны GPIO 01, 03 и 16. А с ними, хотя и прошивается, но не работает.
Что делать?
Да, перед прошивкой лучше отключить периферию. Для смены пина просто измените его в скетче и залейте новый скетч.
Подцепи на D7 – Gpio13
#define ONE_WIRE_BUS 13
Спасибо за пример. Есть данные, на каком расстоянии будут работать датчики? Пяток можно подключить?
Здравствуйте! Подключить можно и десяток, по расстоянию лучше поищите в спецификациях на протокол 1Wire
как настроить трансляцию с этих двух датчиков в BLYNK ? Помогите пожалуйста! С одного настроил, с двух не получается 🙁
Еще актуально? Могу скинуть код.
актуально если не трудно скиньте
усли не трудно скиньте помогите начинающим разобратся
Работают 30 датчиков на 5 пинах(2-9шт). трассы до 40м. кабеля UTP и ПУНП
не все устойчиво :(, но задача не критичная – переспрашиваю.
сначала нарисовал на arduino nano, потом захотелось видеть картинку удаленно – по WiFi поднял Web сервер на ESP32.
не все датчики работают от 3.3в, бывают глюки. Датчик надо запитывать от 5в – тогда всегда будет стабильное считывание
Доброго всем дня друзья!
Столкнулся с такой ошибкой: “cannot declare variable ‘server’ to be of abstract type ‘WiFiServer'”
Ругается на строчку “WiFiServer server(80);”
Пытался менять библиотеку на другие, последняя была скачана с GitHub и все равно ошибка вываливается. Может кто то сталкивался с подобным? Как решали, поделитесь, пожалуйста
А где переменная с температурой?
Здравствуйте, в этом примере мы не сохраняем температуру в переменную, а сразу выводим её в монитор порта в строчке
Serial.print(sensors.getTempC(sensor1));
и т.д.Если вам нужно сохранить значение в переменную, то вы можете сделать это так:
float temp1 = sensors.getTempC(sensor1);
.