Вывод информации на ЖК дисплей

Нужные элементы

Датчики:

Дисплей:

Рекомендую сразу брать дисплей с уже припаянным I2C модулей, выйдет дешевле и не надо будет паять

Схема подключения

Как работать с датчиками DHT-NN разбирались в статье чуть ранее.

Для подключения дисплея будем использовать подключение по I2C, для тех кому википедии не достаточно, то есть видео

Для разных плат могут использовать разные порты, для более детальной информации нужно смотреть описание платы. Вот небольшой перечень распространенных плат

Наименование платы

SDA

SCL

Arduino Uno

A4

A5

Arduino Nano

A4

A5

Arduino Micro

2

3

Arduino Mega 2560

20

21

Arduino Leonardo

2

3

Arduino Due

20

21

ESP-12E (8266)

D2

D1

Схема подключения датчика и дисплея:

Схема подключения

Написание кода

Для работы с LCD дисплеем нам потребуется библиотека LiquidCrystal_I2C, можно установить аналогичным способом или при использовании PlatformIO можно добавить в файл platformio.ini зависимость от данной библиотеки и она будет скачена в автоматическом режиме.

lib_deps =
https://github.com/johnrickman/LiquidCrystal_I2C.git

Теперь пришло время доработать наш код и добавить отображение температуры на дисплей

#include <Arduino.h>

#include <DHT.h>
#include <LiquidCrystal_I2C.h>

DHT dht(2, DHT11);
LiquidCrystal_I2C lcd(0x27,16,2);

byte tempChar[] = {0x07,0x05,0x07,0x00,0x00,0x00,0x00,0x00};

void setup() {
    Serial.begin(9600);
    dht.begin();

    lcd.init();
    lcd.backlight();
    lcd.createChar(0, tempChar);
}

void loop() {
    delay(1000);

    float h = dht.readHumidity();
    float t = dht.readTemperature();
    if (isnan(h) || isnan(t)) {
        Serial.println("Не удается считать показания");
        return;
    }

    //Выводим показания на дисплей
    lcd.setCursor(0,0);
    lcd.print("Humidity: " + String(h) + "%");
    lcd.setCursor(0,1);
    lcd.print("Temp: "+ String(t) + " C");
    lcd.setCursor(12, 1);
    lcd.write(0);

    Serial.print("Влажность: ");
    Serial.print(h);
    Serial.print("%\tТемпература: ");
    Serial.print(t);
    Serial.println(" °C");
}

Загружаем прошивку на плату и проверяем работу. Примерно вот так это выглядит у меня

Termometer photo with lcd display

Last updated

Was this helpful?