Как подключить DHT11 DHT22 к ардуино и вывести через I2C дисплей 16х2
Vložit
- čas přidán 8. 11. 2016
- Измерение температуры и влажности с помощью 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
Спасибо за видео! Все получилось без особых проблем!
Огромное спасибо самое информативное видео!!!!!!!
Всё работает Спасибо!!!!
ура.. я нашёл твою работу спустя 3 года...
скачиваю
Пожалуйста)
@@Makchip собрал её на arduino uno, но она громоздка, потом искал этот скетч и сборку и вот только сегодня нашёл.. теперь соберу на arduino pro, и можно будет её с собой носить или встроить куда нибудь...
@@Makchip если не сложно,можно где 9 пин,выключить и вписать без 9 пмна
хотелось увидеть проект с добавлением датчика давления bmp180, в инете таких проектов нет.
подскажите как добавить реле для влажности вентилятором.
А этот скеч подойдёт к матрице max 7219 если нет то не могли бы вы написать её для 4 штук в горизонталь а то я так и немогу научиться. Заранее спасибо
я можно мерять температуру с трёх датчиков и выводить в интернет, чтоб можно было включить подогрев так же дистанционно?
А можно ли сделать часы на ws2812b c датчиком dht11 и модулем времени ds3231. Я сделал просто часы но немогу датчик dht11 , датчик освещенности , датчик движения и кнопки для настройки времени приладить. Согласен что много хочу но всё-таки))))
привет,полезное видео,всё подробно и ясно. а как к этой схеме подключить реле?чтобы с помощью датчика Dht22 при определённой влажности и температуре срабатывало подключённое реле(с вентилятором например), и показания выводились на дисплей. я недавно начал изучать ардуино и со скетчами пока не очень)
Чуть переписать код надо)
Здравствуйте, а я хочу подключить два датчика и что бы на дисплеи 16×2 i2c отображалось показаниЯ температуры и влажности сразу от двух датчиков
Просто подключаешь 2 датчика и выводишь их на дисплей в разном месте
как выводить поочередно значения влажности и температуры? или в бегущей строке?
Через loop
Привет, только благодаря твоему видео разобрался как нормально подключить датчики, но проблема в том, что температура и влажность теперь не соответствуют действительности, начал рыться в библиотеках, ничего не понял. Как решить проблему?
Проблема в самих датчиках, они неточные, особенно DHT11
Привет! не подскажешь, как подключить I2C дисплей 128х64 ?
Привет! Еще не добрался до такого дисплея, но думаю что смысл такой же только библиотека другая.
привет вы не подскажите почему на Инициализация выдает ошибку lcd.begin(); // Инициализация lcd
измени бегин на lcd.init()
Не могу нигде найти информацию, как подключить и вывести два dht датчика?
Просто прописывание пин на второй датчик , и добавляете на дисплей в любое удобное место. Либо можно несколько датчиков подключить по I2C
почему так?
exit status 1
Error compiling for board Arduino/Genuino Uno.
Если используется китайская ардуинка, то нужно драйвер ch30 установить.
Все работает, кроме подсветки. Почему она не горит?
нужно поставить перемычку на самом дисплее если нужна 100% яркость, либо прописать яркость в скетче
А как это этот дисплей отображает кириллицу?
реально отображает, не из таблицы контроллера lcd а из скетча набор из точек пикселей отображающих знак который там введён.
Не хватает еще команды на включение подсветки lcd.backlight() после строки lcd.init(). Иначе не загорается подсветка и ничего не видно на дисплее. После чего крутим подстроечный резистор и ловим нормальное изображение.
Спасибо. Благодаря вам у меня заработало.
Здраствуйте, мне пишет "Ошибка компиляции для плат Arduino Uno", что делать?
попробуйте вместо инициализация lcd где написано "begin" написать "init"
У платы конвертера на обороте есть подстроечник можно выставить подсветку сколько нужно. Строку lcd.begin(); меняем на lcd.init(); следующая строка lcd.backlight(); И будет вам счастье.
а где брать i2c_scan
крот с киркой это просто скетч
Не сказал что надо подключить дисплей к ардуино, земля к земле, а питание к 5 вольтам, скетч не работает, ругается на строчку: "lcd.begin(); // Инициализация lcd" , с скобки надо поставить: "16, 2". И даже после этого, скетч в плату загружает, но экран ничего не показывает. Дисплей светится, но ничего не показывает...
Посмотрите вписали ли здесь >> LiquidCrystal_I2C lcd(0x27, 16, 2);
Invent покрутил подстроечным резистором сзади, появилась нижняя строка заполненная белыми прямоугольниками...
lcd.begin() меняй на lcd.init();
менял я lcd.begin() меняй на lcd.init();,не помагает
@@Makchip Такая же история. на дисплее нижняя строка квадратики светятся. Ошибок в скетче не показывает ро и показаний с датчика нет.
Влажность: na%
Температура: 0. C
как исправить?
можно скетч
vk.com/docs-18769153
Здраствуйте, у меня выйдет на экране 1602 только первый цифр валжности и температуры и после этого точка и выйдет процент и знак градуса. Как можно показать два цифры
float h = dht.readHumidity(); ошибка этой строчки
#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);
а где скетч
В описании к видео есть ссылка!
У меня проблема😢показывает влажность 11
Температура 54
Когда у мен дома влажносоь 40
Температура 23
тоже самое
значение температуры очень завышено, а влажность наоборот.. не понял, в чем проблема?
хах, мне помогло в скетче заменить строчку 11. У меня датчик dht 11, а в скетче 22 стоял)
'lcd' does not name a type-у меня вот что выдает((
короче не пашет все перепробовал
Возможно ошибка в коде, дисплей через I2C подключен?
Vladimir -уже разобрался,нашел програмку где можно писать скетч с помощью блок схем-FLProg называется ,потратил где то пол часа,и все заработал без изменения подключения через I2C
а можно скетч с модулем часов? за ранее благодарен. serghttp@yandex.ru
Присоединяюсь к пожеланию. Допустим основной экран - это часы (DS3231) и c интервалом в 1 мин с задержкой на 5 сек. выводить данные с DHT11. К примеру на каждой 50 секунде выводить данные на экран на 5 секунд.
а как это программно сделать?
При запуске мониторинга порта в I2C Sacn пишет ерунду prntscr.com/e9jzu7
ошибка компиляции платы
Драйвер устанавливали для arduino китайского?
@@Makchip все разобрался , только подсветки нет вообще и перемычку ставил все так же и остаётся не светится
У меня вообще подсветки дисплеея нет. информацию выводит, а подсветки нет
победил. заменил строчку. lcd.begin(); на lcd.init(); // Инициализация lcd
и
добавил lcd.backlight(); //включаем подсветку lcd
зарвботало.
уже работает
lcd.init(); // Инициализация lcd
lcd.backlight(); //включаем подсветку lcd
у меня тоже не работало пошевелил провод подсветки и заработало походу провод плохо обжат был
у меня фигню показывает 87 градусов
#define DHTTYPE DHT11 // DHT22 установи свой датчик, который используешь.
Даже дизлайка жалко.
Не библиотек нечего не объяснил как к чему