Как подключить DHT11 DHT22 к ардуино и вывести через I2C дисплей 16х2
Измерение температуры и влажности с помощью Arduino и DHT22, или DHT11, и выводом этой информации на дисплей
Программа для заливки скетчей www.arduino.cc/en/Main/Software
Плата Arduino UNO ali.pub/jdov9 или NANO ali.pub/m1yes
DHT11 с резистором ali.pub/0kerx без ali.pub/l7kuv
DHT22 с резистором ali.pub/xlvi9 без ali.pub/b0ydo
Резисторы 10 кОм ali.pub/c15ve
Провода ali.pub/j7wy3
Дисплей 16х2 с I2C модулем ali.pub/1hir4
Блок 5 вольт ali.pub/oitnv
I2C сканер doc-18769153_438790310
Скетч doc-18769153_438790358
Группа вк makchip
Библиотека DHT doc-18769153_438790507
Библиотека LiquidCrystal-I2C doc-18769153_438790487
Пікірлер: 73
Спасибо за видео! Все получилось без особых проблем!
Огромное спасибо самое информативное видео!!!!!!!
хотелось увидеть проект с добавлением датчика давления bmp180, в инете таких проектов нет.
ура.. я нашёл твою работу спустя 3 года... скачиваю
@Makchip
3 жыл бұрын
Пожалуйста)
@Balthazar_lien
3 жыл бұрын
@@Makchip собрал её на arduino uno, но она громоздка, потом искал этот скетч и сборку и вот только сегодня нашёл.. теперь соберу на arduino pro, и можно будет её с собой носить или встроить куда нибудь...
@user-nj3yn6ez7s
3 жыл бұрын
@@Makchip если не сложно,можно где 9 пин,выключить и вписать без 9 пмна
подскажите как добавить реле для влажности вентилятором.
А этот скеч подойдёт к матрице max 7219 если нет то не могли бы вы написать её для 4 штук в горизонталь а то я так и немогу научиться. Заранее спасибо
я можно мерять температуру с трёх датчиков и выводить в интернет, чтоб можно было включить подогрев так же дистанционно?
Всё работает Спасибо!!!!
А можно ли сделать часы на ws2812b c датчиком dht11 и модулем времени ds3231. Я сделал просто часы но немогу датчик dht11 , датчик освещенности , датчик движения и кнопки для настройки времени приладить. Согласен что много хочу но всё-таки))))
привет,полезное видео,всё подробно и ясно. а как к этой схеме подключить реле?чтобы с помощью датчика Dht22 при определённой влажности и температуре срабатывало подключённое реле(с вентилятором например), и показания выводились на дисплей. я недавно начал изучать ардуино и со скетчами пока не очень)
@Makchip
2 жыл бұрын
Чуть переписать код надо)
Здравствуйте, а я хочу подключить два датчика и что бы на дисплеи 16×2 i2c отображалось показаниЯ температуры и влажности сразу от двух датчиков
@stanislawshabranskiy6949
2 жыл бұрын
Просто подключаешь 2 датчика и выводишь их на дисплей в разном месте
как выводить поочередно значения влажности и температуры? или в бегущей строке?
@myhome24
Жыл бұрын
Через loop
Привет, только благодаря твоему видео разобрался как нормально подключить датчики, но проблема в том, что температура и влажность теперь не соответствуют действительности, начал рыться в библиотеках, ничего не понял. Как решить проблему?
@Makchip
7 жыл бұрын
Проблема в самих датчиках, они неточные, особенно DHT11
Привет! не подскажешь, как подключить I2C дисплей 128х64 ?
@Makchip
7 жыл бұрын
Привет! Еще не добрался до такого дисплея, но думаю что смысл такой же только библиотека другая.
привет вы не подскажите почему на Инициализация выдает ошибку lcd.begin(); // Инициализация lcd
@user-hi8ul2wo5t
6 жыл бұрын
измени бегин на lcd.init()
Не могу нигде найти информацию, как подключить и вывести два dht датчика?
@Makchip
4 жыл бұрын
Просто прописывание пин на второй датчик , и добавляете на дисплей в любое удобное место. Либо можно несколько датчиков подключить по I2C
У меня проблема😢показывает влажность 11 Температура 54 Когда у мен дома влажносоь 40 Температура 23
почему так? exit status 1 Error compiling for board Arduino/Genuino Uno.
@Makchip
3 жыл бұрын
Если используется китайская ардуинка, то нужно драйвер ch30 установить.
Все работает, кроме подсветки. Почему она не горит?
@Makchip
3 жыл бұрын
нужно поставить перемычку на самом дисплее если нужна 100% яркость, либо прописать яркость в скетче
Не сказал что надо подключить дисплей к ардуино, земля к земле, а питание к 5 вольтам, скетч не работает, ругается на строчку: "lcd.begin(); // Инициализация lcd" , с скобки надо поставить: "16, 2". И даже после этого, скетч в плату загружает, но экран ничего не показывает. Дисплей светится, но ничего не показывает...
@Makchip
7 жыл бұрын
Посмотрите вписали ли здесь >> LiquidCrystal_I2C lcd(0x27, 16, 2);
@den48rus
7 жыл бұрын
Invent покрутил подстроечным резистором сзади, появилась нижняя строка заполненная белыми прямоугольниками...
@user-hi8ul2wo5t
6 жыл бұрын
lcd.begin() меняй на lcd.init();
@user-lf4nr4rx7g
5 жыл бұрын
менял я lcd.begin() меняй на lcd.init();,не помагает
@ALADDIN_68
5 жыл бұрын
@@Makchip Такая же история. на дисплее нижняя строка квадратики светятся. Ошибок в скетче не показывает ро и показаний с датчика нет.
Здраствуйте, мне пишет "Ошибка компиляции для плат Arduino Uno", что делать?
@user-ep1lm9yo4t
3 жыл бұрын
попробуйте вместо инициализация lcd где написано "begin" написать "init"
А как это этот дисплей отображает кириллицу?
@Balthazar_lien
6 жыл бұрын
реально отображает, не из таблицы контроллера lcd а из скетча набор из точек пикселей отображающих знак который там введён.
Не хватает еще команды на включение подсветки lcd.backlight() после строки lcd.init(). Иначе не загорается подсветка и ничего не видно на дисплее. После чего крутим подстроечный резистор и ловим нормальное изображение.
@metodogringo6100
Жыл бұрын
Спасибо. Благодаря вам у меня заработало.
#include // Добавляем необходимые библиотеки #include #include "DHT.h" #define DHTPIN 5 // пин для сигнала поступающего с датчика #define DHTTYPE DHT22 // DHT 11 DHT dht(DHTPIN, DHTTYPE); const int SVET = 9; byte degree[8] = // кодируем символ градуса { B00111, B00101, B00111, B00000, B00000, B00000, B00000, }; byte U[8] = // буква У { B10001, B10001, B10001, B10001, B01111, B10001, B01110, }; byte P[8] = // буква П { B11111, B10001, B10001, B10001, B10001, B10001, B10001, }; byte L[8] = // буква Л { B00111, B01001, B10001, B10001, B10001, B10001, B10001, }; byte J[8] = // буква Ж { B10101, B10101, B10101, B01110, B10101, B10101, B10101, }; byte MZ[8] = // Ь { B10000, B10000, B10000, B11110, B10001, B10001, B11110, }; LiquidCrystal_I2C lcd(0x27, 16, 2); // Задаем адрес и размерность дисплея Здесь адрес вписываете свой! void setup() { lcd.begin(); // Инициализация lcd lcd.createChar(5, degree); lcd.createChar(6, P); lcd.createChar(2, L); lcd.createChar(3, J); lcd.createChar(7, MZ); lcd.createChar(8, U); pinMode (SVET, OUTPUT); analogWrite(SVET, 255); Serial.begin(9600); dht.begin(); } void loop() { analogWrite(SVET, 100); // Wait a few seconds between measurements. delay(2000); // Reading temperature or humidity takes about 250 milliseconds! // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor) float h = dht.readHumidity(); // Read temperature as Celsius float t = dht.readTemperature(); // Read temperature as Fahrenheit // Выводим показания влажности и температуры lcd.setCursor(8, 0); lcd.write((byte)7); lcd.setCursor(7, 0); lcd.print("T"); lcd.setCursor(6, 0); lcd.print("C"); lcd.setCursor(5, 0); lcd.print("O"); lcd.setCursor(4, 0); lcd.print("H"); lcd.setCursor(3, 0); lcd.write((byte)3); lcd.setCursor(2, 0); lcd.print("A"); lcd.setCursor(0, 0); lcd.print("B"); lcd.setCursor(1, 0); lcd.write((byte)2); lcd.setCursor(13, 0); // Устанавливаем курсор на 13 символ lcd.print(h,1); lcd.setCursor(15, 0); lcd.print("%"); lcd.setCursor(0, 1); lcd.print("TEM EPAT PA"); lcd.setCursor(3, 1); lcd.write((byte)6); lcd.setCursor(8, 1); lcd.write((byte)8);
Влажность: na% Температура: 0. C как исправить?
Здраствуйте, у меня выйдет на экране 1602 только первый цифр валжности и температуры и после этого точка и выйдет процент и знак градуса. Как можно показать два цифры
а где брать i2c_scan
@Makchip
7 жыл бұрын
крот с киркой это просто скетч
float h = dht.readHumidity(); ошибка этой строчки
У платы конвертера на обороте есть подстроечник можно выставить подсветку сколько нужно. Строку lcd.begin(); меняем на lcd.init(); следующая строка lcd.backlight(); И будет вам счастье.
можно скетч
@Makchip
5 жыл бұрын
vk.com/docs-18769153
а можно скетч с модулем часов? за ранее благодарен. serghttp@yandex.ru
@user-is1st2ob5g
7 жыл бұрын
Присоединяюсь к пожеланию. Допустим основной экран - это часы (DS3231) и c интервалом в 1 мин с задержкой на 5 сек. выводить данные с DHT11. К примеру на каждой 50 секунде выводить данные на экран на 5 секунд.
@CEPO3A
7 жыл бұрын
а как это программно сделать?
При запуске мониторинга порта в I2C Sacn пишет ерунду prntscr.com/e9jzu7
'lcd' does not name a type-у меня вот что выдает((
@user-lf4nr4rx7g
5 жыл бұрын
короче не пашет все перепробовал
@VladimirMakarov66
5 жыл бұрын
Возможно ошибка в коде, дисплей через I2C подключен?
@user-lf4nr4rx7g
5 жыл бұрын
Vladimir -уже разобрался,нашел програмку где можно писать скетч с помощью блок схем-FLProg называется ,потратил где то пол часа,и все заработал без изменения подключения через I2C
а где скетч
@Makchip
7 жыл бұрын
В описании к видео есть ссылка!
У меня вообще подсветки дисплеея нет. информацию выводит, а подсветки нет
@user-cv3vl4mq2k
7 жыл бұрын
победил. заменил строчку. lcd.begin(); на lcd.init(); // Инициализация lcd и добавил lcd.backlight(); //включаем подсветку lcd зарвботало.
@DaniusLengvinasDLL
6 жыл бұрын
уже работает lcd.init(); // Инициализация lcd lcd.backlight(); //включаем подсветку lcd
@user-bt3ev9hc4o
4 жыл бұрын
у меня тоже не работало пошевелил провод подсветки и заработало походу провод плохо обжат был
ошибка компиляции платы
@Makchip
2 жыл бұрын
Драйвер устанавливали для arduino китайского?
@nikolaytalakolnik4800
2 жыл бұрын
@@Makchip все разобрался , только подсветки нет вообще и перемычку ставил все так же и остаётся не светится
у меня фигню показывает 87 градусов
@user-nm4br2ut6c
Жыл бұрын
#define DHTTYPE DHT11 // DHT22 установи свой датчик, который используешь.
Даже дизлайка жалко.
Не библиотек нечего не объяснил как к чему