Ничего не найдено :(
    В гостях у Самоделкина! » ИИ » Самоделки от ИИ » Термометр на Arduino с датчиком DS18B20 и LCD 1602

    Термометр на Arduino с датчиком DS18B20 и LCD 1602

    Этот скетч позволяет измерять температуру с помощью цифрового датчика DS18B20 и выводить её на LCD-дисплей 1602 (I2C).

    Необходимые компоненты:

    • Плата Arduino (Uno, Nano и др.)

    • Датчик температуры DS18B20 (водонепроницаемый или в TO-92 корпусе)

    • LCD-дисплей 1602 с интерфейсом I2C

    • Резистор 4.7 кОм (для датчика DS18B20)

    • Провода


    Скетч

    #include <OneWire.h>           // Библиотека для работы с 1-Wire
    #include <DallasTemperature.h> // Библиотека для DS18B20
    #include <LiquidCrystal_I2C.h> // Библиотека для LCD 1602 (I2C)
    
    // Настройка LCD (адрес I2C, размер дисплея)
    LiquidCrystal_I2C lcd(0x27, 16, 2);  
    
    // Пин для датчика DS18B20
    #define ONE_WIRE_BUS 2  
    
    // Настройка OneWire и DallasTemperature
    OneWire oneWire(ONE_WIRE_BUS);  
    DallasTemperature sensors(&oneWire);  
    
    void setup() {
      Serial.begin(9600);  // Инициализация Serial-порта
      lcd.init();         // Инициализация LCD
      lcd.backlight();    // Включение подсветки
      sensors.begin();    // Инициализация датчика температуры
    }
    
    void loop() {
      sensors.requestTemperatures();  // Запрос температуры
      float tempC = sensors.getTempCByIndex(0);  // Получаем температуру в °C
    
      // Вывод на LCD
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Temperature:");
      lcd.setCursor(0, 1);
      lcd.print(tempC);
      lcd.print(" C");
    
      // Вывод в Serial Monitor (опционально)
      Serial.print("Temperature: ");
      Serial.print(tempC);
      Serial.println(" °C");
    
      delay(1000);  // Обновление раз в секунду
    }

    Как это работает?

    • Библиотеки:

      • OneWire – для работы с интерфейсом 1-Wire (к которому подключён DS18B20).

      • DallasTemperature – упрощает работу с датчиком.

      • LiquidCrystal_I2C – управление LCD через I2C (экономит пины Arduino).

    • Настройка:

      • Датчик DS18B20 подключается к пину 2 (можно изменить).

      • LCD 1602 I2C обычно имеет адрес 0x27 (может быть 0x3F, проверьте сканером I2C).

    • Измерение температуры:

      • sensors.requestTemperatures() – отправляет запрос датчику.

      • sensors.getTempCByIndex(0) – получает температуру в °C (если датчик один, индекс 0).

    • Вывод данных:

      • На LCD: первая строка – заголовок, вторая – температура.

      • В Serial Monitor (для отладки).


    Подключение компонентов

    DS18B20:

    • Красный (VDD)5V

    • Чёрный (GND)GND

    • Жёлтый (DQ)Пин 2 + 4.7 кОм к 5V (подтяжка)

    LCD 1602 (I2C):

    • GNDGND

    • VCC5V

    • SDAA4 (Uno) / SDA (Nano)

    • SCLA5 (Uno) / SCL (Nano)


    Улучшения скетча

    • Добавьте второй датчик (измените индекс в getTempCByIndex(1)).

    • Графический вывод – можно использовать OLED-дисплей и библиотеку U8g2.


    Этот скетч полезен для мониторинга температуры в теплицах, аквариумах или системах умного дома. ????????

    Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.
    Подборки: Термометр

    Умная система полива растений на Arduino с датчиком влажности почвы

    0
    Идея
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    0
    Описание
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    0
    Исполнение
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    Итоговая оценка: 0.0 из 10 (голосов: 0 / История оценок)

    Добавить комментарий

    Привет, Гость!


    Зарегистрируйтесь

    Или войдите на сайт, если уже зарегистрированы...

    Войти

    Добавьте самоделку

    Добавьте тему

    Онлайн чат

    Последние комментарии

    Все комментарии