Подключение датчика температуры LM35 к веб-серверу на ESP32


В этом проекте мы соединим датчик температуры LM35 с платой ESP32 чтобы сделать цифровой термометр. Чтобы не задействовать дисплей для отображения значения температуры, как это пришлось бы делать, к примеру, при подключении датчика LM35 к плате Arduino, здесь мы воспользуемся возможностями ESP32 для создания веб-сервера. Ранее мы аналогичный проект рассматривали на основе модуля ESP8266. Также на нашем сайте мы рассматривали подключение датчика LM35 к микроконтроллеру AVR.

Подключение датчика температуры LM35 к веб-серверу на ESP32

Веб-сервер представляет показания температуры непосредственно на веб-странице, доступ к которой возможен через любой стандартный веб-браузер. Такой подход не только модернизирует метод отображения, но и позволяет осуществлять удаленный мониторинг температуры по локальной сети.

Датчик температуры LM35 — это аналоговый датчик, выходной сигнал которого пропорционален температуре в градусах Цельсия. Он обеспечивает диапазон измерения температуры от -55°C до +150°C с точностью +/- 0,75°C. Этот широкий диапазон и высокая точность делают LM35 отличным выбором для различных приложений измерения температуры.

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

  1. Модуль ESP32 (купить на AliExpress).
  2. Датчик температуры LM35 (купить на AliExpress).
  3. Макетная плата.
  4. Соединительные провода.

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158

Датчик температуры LM35

Датчик температуры LM35

Серия LM35 — это точные датчики температуры с выходным напряжением, линейным по отношению к температуре по шкале Цельсия, что устраняет необходимость вычитания постоянного напряжения для масштабирования по шкале Цельсия в отличие от датчиков, откалиброванных по шкале Кельвина. Он достигает типичной точности ±0,25°C при комнатной температуре и ±0,75°C в диапазоне от -55°C до 150°C без внешней калибровки.

Распиновка датчика температуры LM35

Его экономичность обеспечивается подгонкой и калибровкой на уровне пластины. Низкий выходной импеданс LM35, линейный выход и встроенная калибровка облегчают взаимодействие со схемой. Он работает от одного или двух источников питания, потребляя всего 60 мкА, что сводит самонагрев к минимуму до менее 0,1°C в неподвижном воздухе.

Особенности датчика

  1. Откалиброван непосредственно в градусах Цельсия.
  2. Линейный при масштабном коэффициенте 10,0 мВ/°C.
  3. Гарантированная точность 0,5°C (при 25°C).
  4. Рассчитан на полный диапазон температур от -55°C до 150°C.
  5. Подходит для удаленного применения.
  6. Низкая стоимость благодаря обрезке на уровне пластины.
  7. Работает от 4 до 30 вольт.
  8. Потребление тока менее 60 мА.
  9. Низкий самонагрев, 0,08°C всасывание воздуха
  10. Нелинейность всего 0,25°C.
  11. Низкоомный выход, 0,1 Ом для нагрузки 1 мА.

Принцип работы датчика температуры LM35

Входной и выходной интерфейсы LM35

Датчик температуры LM35 работает на основе линейного масштабного коэффициента, определяемого как +10 милливольт (мВ) на градус Цельсия. Это означает, что при каждом увеличении выходного сигнала на 10 мВ с выходного контакта датчика (Vout) показания температуры увеличиваются на 1°C. Например, если датчик выдает 100 мВ на Vout, это соответствует температуре 10°C. Эта линейность справедлива и для отрицательных температур; выходной сигнал -100 мВ указывает на -10°C.

Схема датчика температуры LM35

Функциональность датчика вытекает из его внутренней конструкции, включающей два транзистора со значительной разницей в площади эмиттера. Один транзистор имеет в десять раз большую площадь эмиттера, чем другой, что приводит к десятикратной разнице в плотности тока, учитывая, что через оба протекает один и тот же ток. Это несоответствие создает напряжение на резисторе R1, пропорциональное абсолютной температуре, что дает выходной сигнал, который почти линейный в рабочем диапазоне. Любые незначительные отклонения от линейности корректируются специальной схемой, которая регулирует слегка изогнутую зависимость напряжения от температуры.

Усилитель в схеме обеспечивает соответствие напряжения на базе одного транзистора (Q1) значению пропорциональной абсолютной температуре (PTAT) путем сравнения выходов двух транзисторов. Затем другой усилитель преобразует это напряжение PTAT, представляющее абсолютную температуру в градусах Кельвина, в показания в градусах Фаренгейта или Цельсия в зависимости от конкретной модели датчика (LM34 для Фаренгейта, LM35 для Цельсия).

Схема проекта

Схема подключения датчика температуры LM35 к модулю ESP32 представлена на следующем рисунке.

Схема подключения датчика температуры LM35 к модулю ESP32

  • Подключите VCC LM35 к 5 В (Vin) на ESP32.
  • Подключите вывод GND LM35 к выводу GND на ESP32.
  • Наконец, подключите Vout (выход) LM35 к одному из аналоговых входных контактов ESP32 (например, GPIO33 ).

Собранная на макетной плате конструкция проекта

Для выполнения соединений может пригодиться макетная плата, позволяющая использовать соединительные провода для легкого подключения LM35 к ESP32 без пайки.

Исходный код программы для считывания значений температуры с LM35

Давайте рассмотрим код для считывания показаний температуры с датчика температуры LM35 с использованием платы ESP32. ESP32 использует другой подход к аналоговому считыванию по сравнению с Arduino, учитывая его рабочее напряжение 3,3 В и возможность калибровки показаний АЦП для более точного измерения напряжения.

Для ESP32 расчет температуры немного адаптирован с учетом его характеристик:

Температура (°C) = Напряжение (мВ) / 10
Эта формула основана на свойстве LM35 выдавать линейное увеличение напряжения на 10 мВ на каждый градус Цельсия при повышении температуры. ESP32 считывает аналоговое значение с LM35, калибрует это показание для получения напряжения в милливольтах (используя функции калибровки АЦП), а затем делит его на 10 для преобразования этого напряжения в соответствующую температуру в градусах Цельсия.

Следующий код считывает данные о температуре с датчика LM35, подключенного к ESP32, и вычисляет температуру как в градусах Цельсия, так и в градусах Фаренгейта. Затем он выводит эти показания температуры на последовательный монитор каждую секунду, что позволяет осуществлять мониторинг выходных данных датчика в реальном времени.

Загрузите код на плату ESP32. Затем откройте Serial Monitor (окно монитора последовательной связи) после завершения загрузки.

Тестирование считывания температуры с датчика LM35 в окне монитора последовательной связи

Последовательный монитор покажет значение температуры как в градусах Цельсия, так и в градусах Фаренгейта.

Отображение показаний датчика температуры LM35 на веб-сервере ESP32

Вместо отображения показаний температуры на последовательном мониторе давайте создадим веб-страницу, на которую ESP32 каждую секунду отправляет показания температуры LM35. ESP32 подключается к сети Wi-Fi и размещает веб-сервер, доступный по его IP-адресу. Он отображает обновления температуры в реальном времени и предлагает конечную точку JSON («/readTemp») для получения последних показаний температуры.

Эта веб-страница предназначена для отображения показаний температуры как в градусах Цельсия, так и в градусах Фаренгейта. Стилизованная с помощью CSS для чистого и удобного интерфейса, она имеет адаптивный макет, который подстраивается под мобильные экраны. Веб-страница динамически обновляет данные о температуре каждую секунду с помощью JavaScript, без необходимости обновлять страницу вручную.

Основной .ino-файл

Откройте новый скетч в Arduino IDE и сохраните следующий код под любым именем.

В этих строках измените SSID и пароль Wi-Fi на свои.

Это единственное изменение, которое вам нужно сделать для этого скетча.

Файл html.h

Откройте другой скетч и вставьте следующий HTML-код в редактор скетчей. Сохраните файл под именем «html.h» в той же папке, где находится основной ino- файл.

В менеджере плат выберите используемую вами плату ESP32. Затем выберите 'COM' порт. Наконец, вы можете нажать кнопку загрузки, чтобы загрузить код на плату.

После завершения загрузки кода откройте Serial Monitor (окно монитора последовательной связи). Вы увидите, как ESP32 подключается к сети Wi-Fi, используя учетные данные в коде. После подключения Serial Monitor покажет значение температуры в градусах Цельсия и Фаренгейта. Он также выведет IP-адрес ESP32.

Тестирование работы веб-сервера на ESP32 в окне монитора последовательной связи

Перейдите в веб-браузер и введите скопированный IP-адрес. После ввода IP-адреса ESP32 в веб-браузер и нажатия Enter вы будете перенаправлены на домашнюю страницу веб-сервера ESP32. Эта страница, как определено в HTML-коде в вашем скетче ESP32, будет отображать данные о температуре, полученные с датчика LM35.

Тестирование работы веб-сервера на ESP32 в веб-браузере (часть 1)

Вы увидите показания температуры в реальном времени в градусах Цельсия и Фаренгейта, визуально представленные в удобном для пользователя формате. Температура на веб-странице будет обновляться с заданными интервалами, обеспечивая мониторинг температуры в реальном времени без необходимости вручную перезагружать страницу.

Тестирование работы веб-сервера на ESP32 в веб-браузере (часть 2)

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

Кроме того, для более интерактивных или управляемых данными приложений доступ к конечной точке «/readTemp» по тому же IP-адресу (например, http:// [ESP32_IP_Address] /readTemp) вернет последние показания температуры в формате JSON.

Вывод показаний температуры в формате JSON

Эта функция может быть особенно полезна для интеграции данных о температуре в другие приложения или службы, которым требуются данные в реальном времени в программируемом формате.

(Проголосуй первым!)
Загрузка...
30 просмотров

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *