Урок 7. Термометр на базе DS18B20 и OLED дисплея 128X64
Для термометра отлично подходит датчик температуры DS18B20 . Он позволяет измерять температуру в домашних, так и в уличных условиях, потому что исполнен с водонепроницаемом корпусе. В качестве дисплея будем использовать матрицу 0.96 128X64 OLED .
Для создания термометра нам понадобятся следующие компоненты:
Для реализации проекта нам необходимо установить сразу несколько библиотек:
1) OLED дисплей подключаем к arduino следующим образом:
Arduino Uno | Экран 0.96 128X64 OLED |
---|---|
5V | VCC |
GND | GND |
Pin 9 | SCL |
Pin 8 | SDA |
Для удобства подключения можно использовать макетную плату.
2) Датчик температуры DS18B20 подключается к arduino следующим образом.
Распиновка для влагозащитного датчика DS18B20 с метровым проводом:
Arduino UNO | Влагозащитный датчика DS18B20 |
---|---|
5V | Красный провод ( 5V) |
GND | Черный провод (GND) |
Pin 10 | Желтый провод (Сигнальный) (Необходимо подтянуть резистором 4,7кОм к 5V ) |
В случае, если Вы будете использовать не влагозащитный датчик в корпусе to92 .(Датчик температуры DS18B20 в корпусе TO-92)
Теперь необходимо записать скетч в arduino Скачать пример.
Источник
Урок 16. Подключение датчика DHT11 к Arduino UNO. Выводим температуру и влажность на LCD 1602 I2C дисплей
В этом уроке мы рассмотрим самый популярный датчик температуры DHT11. Научимся считывать показания датчика и выводить на LCD 1602 I2C дисплей.
Нам понадобится:
Для реализации проекта нам необходимо установить библиотеки:
Схема подключения:
Этом уроке к arduino uno будет подключено два модуля, датчик температуры и влажности DHT11 и символьный дисплей LCD1602 IIC/I2.
1) Датчик DHT11 с помощью которого будем получать данные о температуре и влажности окружающей среды, подключается следующим образом.
DHT11 | Arduino |
---|---|
1 контакт | 5V |
2 контакт | Pin 2 |
3 контакт | Через резистор 10 kOm к 5V |
4 контакт | GND |
2) Теперь подключаем символьный дисплей LCD1602 IIC/I2C к Arduino uno, на который будет выводиться информация о температуре и влажности.
Arduino | LCD1602 IIC/I2C | Цвет проводов на фото |
GND | GND | Черный |
5V | VCC | Красный |
A4 | SDA | Коричневый |
A5 | SCL | Серый Не забудьте установить библиотеки указанные в начале урока. Демонстрация работы:
Источник Arduino и термометр DS18B20ОписаниеDS18B20 – высокоточный цифровой датчик температуры. Основные характеристики:
В наборе идёт датчик в герметичном исполнении со стандартным гнездом (шаг 2.54 мм) для подключения ПодключениеДатчик имеет следующие назначения пинов: Датчик подключается к любому цифровому пину Arduino, но пин должен быть подтянут к питанию резистором 4.7 кОм. На один пин можно подключить несколько датчиков DS18B20. В рамках набора GyverKIT резистор на 4.7 кОм можно заменить двумя резисторами на 10 кОм (есть в комплекте), подключенными параллельно: БиблиотекиДля этого датчика есть несколько библиотек:
В примерах на этом сайте мы будем использовать microDS18B20, так как она в несколько раз легче и проще в использовании, чем официальная. Библиотека идёт в архиве к набору GyverKIT, а свежую версию всегда можно установить/обновить из встроенного менеджера библиотек Arduino по названию microDS18B20. Краткая документация находится по ссылке выше, базовые примеры есть в самой библиотеке. ПримерыБиблиотека позволяет работать по схеме “один датчик – один пин”, в которой адрес датчика получать не нужно. Достаточно подключить и использовать: Каждый датчик имеет свой уникальный адрес. Его можно прочитать следующим образом: Данный код выводит в порт адрес текущего подключенного датчика. Зная адреса датчиков, можно подключить несколько штук на один пин и обращаться к ним в коде следующим образом: Источник Измеритель температуры и влажности на контроллере Arduino c отображением значений на LCD дисплееНедавно я начал изучать программирование микроконтроллера Arduino. После того, как я выполнил несколько базовых упражнений (мигание светодиодом, работа с дискретными и аналоговыми входами, вывод информации на ЖК дисплей и т.д.) мне захотелось сделать какое нибудь полезное устройство для дома. Я решил сделать измеритель температуры и влажности в комнате, с индикацией параметров на ЖК дисплее. Также я сделал адаптивную подсветку дисплея, которая меняет яркость в зависимости от уровня освещенности в комнате. Это позволяет уменьшить энергопотребление устройства, и тем самым увеличить срок службы батарейки. В проекте я использовал следующие комплектующие: 2. Дисплей LCD1602 c модулем поддержки протокола I2C. Для того чтобы уменьшить число проводов и упростить подключение дисплея, я решил подключать его через протокол I2C, для этого я к LCD дисплею припаял специальный модуль преобразователь. « 3. Датчик температуры и влажности DHT11. Он позволяет определять влажность от 20-80% и температуру от 0-50˚С. Датчик имеет 4 вывода, но используется только 3. Между выводом питания и выводом данных должен быть установлен резистор 10кОм. Я использовал уже готовый датчик, смонтированный на плате, с подключенным резистором, поэтому можно смело подключать его к плате Arduino. « 4. Фоторезистор. Подключается к плате Arduino с подтяжкой к GND, через резистор 10кОм. Схема подключения следующая: Фоторезистор подключается к аналоговому входу А0 платы Arduino. Линия данных датчика DHT11 подключается к дискретному выводу 2, вывод питания подключается к +5В Arduino, соответственно вывод GND подключаем в земле платы Arduino. LCD дисплей подключается к питанию платы, вывод SDA подключается к А4, вывод SCL к А5. Линия управления яркостью подсветки подключается к выводу 9, на котором формируется ШИМ сигнал. Ниже представлен исходный код: Скомпилировав данный код, получаем вот такое работающее устройство: В дальнейшем планирую сделать еще какие-нибудь интересные и более сложные устройства на Arduino. Также я сделал видеоролик, где показал как работает устройство: Источник Выводим температуру и влажность помещения на LCD I2C дисплей. Подключение датчика DHT11 к Arduino UNOЯ продолжаю свое увлечение электроникой. Буквально вчера пришла посылка с моим набором для изучения Arduino UNO — конечно же сразу захотелось что-нибудь собрать. Немного поигравшись с мигающими светодиодами, я решил протестировать остальное содержимое набора. Выбор пал на ЖК-дисплей и датчик температуры и влажности DHT11. Очень хотелось вывести показания датчика не только на экран монитора, но и на дисплей. Убив несколько часов на поиск и изучение статей по данной теме, я так и не смог заставить все работать нужным образом. Все готовые решения содержали ошибки или недомолвки, либо применялись другие компоненты — дисплей показывал что угодно, но только не температуру и влажность. Поскольку метод «с наскока» не удался, пришлось не просто копировать готовый код, а разбираться в том, как он работает. Но в итоге я все же смог получить нужную программу (ссылка на скачивание в конце статьи) и загрузить ее в микроконтроллер, ура: Хочу отметить, что я не писал весь код с нуля — часть взята из тестовых файлов входящих в состав библиотек, часть — из найденных статей, что-то переделал я сам. В общем, это некая компиляция, приведенная к работающему состоянию. Датчик DHT11 очень неточный, поэтому использовать его в качестве источника информации для каких-то серьезных систем я бы не советовал, но для учебных целей он очень даже подходит. Ниже я подробно расскажу как повторить данную конструкцию (если кому-то захочется) и приведу текст скетча для Arduino IDE. На картинке приведен вид спереди и сзади. Как можно увидеть, мой экземпляр снабжен интерфейсом I2C (маленькая платка на задней стороне). Данный интерфейс очень упрощает подключение дисплея к Arduino — нужно использовать всего 4 контакта: GRD — минус питания («земля») Без I2C подключение LCD дисплея осуществляется несколько сложнее. Датчик DH11 так же имеет 4 контакта, при этом один из них вообще не используется. Мой дачик уже расположен на платке, на которой сразу установлен дополнительный резистор (который требуется для нормальной работы датчика) и выведено 3 ножки: Левая подписана как S — с нее поступает сигнал, правая — «-», ну а средняя получается «+» на нее подается питание. NB! Перед монтажом схемы и внесением в нее каких-либо изменений обязательно отключайте питание всех элементов, иначе можно их банально сжечь — потом будет жалко.
Сборка на этом закончена, осталось прошить микроконтроллер. В данном коде используются библиотеки DHT и LiquidCrystal_I2C, которые не входят в стандартный пакет Arduino IDE. В сети множество разных библиотек с такими же названиями. И несмотря на их схожесть, не со всеми версиями данный код работает. Чтобы вам не тратить свое время и нервы на поиск рабочего варианта, я прикладываю к данной статье архив, в котором содержатся данные библиотеки и сам скетч для Arduino IDE. Библиотеки надо разархивировать и поместить в папку C:\Program Files (x86)\Arduino\libraries после чего перезапустить программу Arduino IDE. Я думаю, что опытные разработчики найдут к чему придраться в данном коде (например, здесь нет обработчика ошибок), но на данном этапе, для меня главное, что он работает. Если вы будете применять детали схожие с моими, должно заработать и у вас. Конечно, рекомендую не просто скопировать, но и попытаться понять за что отвечает каждая строчка кода (комментарии в коде сильно в этом помогут). Быстрые результаты в любом деле это не цель, а всего лишь мотивация, которая должна подталкивать вас копать глубже. Помните об этом! =) Источник ➤ Adblockdetector |