Меню

Дисплей с датчиком температуры arduino

Урок 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 – высокоточный цифровой датчик температуры. Основные характеристики:

  • Диапазон: -55.. 125 °C
  • Точность: 0.5 °C
  • Разрешение: 9.. 12 бит (0.48.. 0.06 °C)
  • Питание: 3-5.5V
  • Период выдачи результата:
    • 750 мс при точности 12 бит
    • 94 мс при точности 9 бит
  • Интерфейс связи: 1-Wire (OneWire)
  • Корпус: TO-92, SOIC-8 или герметичное исполнение

В наборе идёт датчик в герметичном исполнении со стандартным гнездом (шаг 2.54 мм) для подключения

Подключение

Датчик имеет следующие назначения пинов:

Датчик подключается к любому цифровому пину Arduino, но пин должен быть подтянут к питанию резистором 4.7 кОм. На один пин можно подключить несколько датчиков DS18B20.

В рамках набора GyverKIT резистор на 4.7 кОм можно заменить двумя резисторами на 10 кОм (есть в комплекте), подключенными параллельно:

Библиотеки

Для этого датчика есть несколько библиотек:

  • “Официальная” библиотека DallasTemperature.h, для работы которой также понадобится библиотека OneWire.h.
  • Наша библиотека microDS18B20

В примерах на этом сайте мы будем использовать 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 — минус питания («земля»)
VCC — питание +5V
SDA — линия данных
SLC — линия синхронизации

Без I2C подключение LCD дисплея осуществляется несколько сложнее.

Датчик DH11 так же имеет 4 контакта, при этом один из них вообще не используется. Мой дачик уже расположен на платке, на которой сразу установлен дополнительный резистор (который требуется для нормальной работы датчика) и выведено 3 ножки:

Левая подписана как S — с нее поступает сигнал, правая — «-», ну а средняя получается «+» на нее подается питание.

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

  • S на A0
  • + на +5V
  • — на GND
  • SDA на A4
  • SLC на A5
  • VCC на +5V (на Arduino UNO такой pin всего один и там уже обосновался провод питания идущий от датчика, поэтому лучше соединить VCC дисплея с «+» датчика (например джампером) или использовать для одного из устройств внешнее питание)
  • GND на GND Arduino («земли» на UNO как раз две, так что тут никаких проблем)

Сборка на этом закончена, осталось прошить микроконтроллер.
Вот код скетча:

В данном коде используются библиотеки DHT и LiquidCrystal_I2C, которые не входят в стандартный пакет Arduino IDE. В сети множество разных библиотек с такими же названиями. И несмотря на их схожесть, не со всеми версиями данный код работает. Чтобы вам не тратить свое время и нервы на поиск рабочего варианта, я прикладываю к данной статье архив, в котором содержатся данные библиотеки и сам скетч для Arduino IDE. Библиотеки надо разархивировать и поместить в папку C:\Program Files (x86)\Arduino\libraries после чего перезапустить программу Arduino IDE.

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

Быстрые результаты в любом деле это не цель, а всего лишь мотивация, которая должна подталкивать вас копать глубже. Помните об этом! =)

Источник

Читайте также:  Кислородный датчик тойота виста ардео 3s fse
Adblock
detector