Как сделать термометр на ардуино
Термометр с выводом данных на ЖХ-дисплей на основе Arduino Uno
В этом уроке мы покажем вам как сделать ЖК-термометр на основе Arduino UNO и аналогового температурного датчика LM35/36.
Этот проект очень хорошо подойдет для начинающих, он не требует каких-либо специальных технических навыков или навыков программирования, и вам понадобится достаточно немного времени для реализации проекта.
Шаг 1: Сбор деталей
Вот что нам нужно для создания термометра:
1x макетная плата
ЖК-дисплей 16×2
LM35 или LM36 аналоговый температурный датчик
10К потенциометр для регулировки яркости дисплея (можете использовать и 50К)
19 перемычек для подключения всего
Вы можете заказать это всё на официальной сайте Arduino или в любом интернет-магазине, который продает всё для радиолюбителей. Вы можете купить всё отдельно в следующих магазинах: Adafruit, SparkFun, Aliexpress, Banggood и т.д.
Шаг 2: Собираем схему
Затем подключите датчик к земле и к + 5 В и к Arduino, но будьте очень осторожны, потому что, если вы подключите его неправильно, датчик нагреется до 280+ C (540 F) и может повредиться. После того, как вы подключили все, переходите к следующему шагу.
Шаг 3: Программирование Arduino
Вы должны использовать один из двух скетчей ниже. Загрузите его в Arduino, используя интегрированную среду разработки IDE, которую вы можете скачать с официальной страницы Arduino.
Если вы ничего не видите на ЖК-дисплее или видите прямоугольники, поверните потенциометр против или по часовой стрелке пока не увидите, что всё очищено. Теперь у вас есть термометр и вы сможете измерять температуру воздуха вокруг вас, внутри вашего дома или снаружи.
Код 1
Код 2
В итоге у нас получился вот такой результат:
Делаем термометр на основе Arduino UNO и датчика DS18B20
В этом уроке мы будем использовать датчик температуры DS18B20 с Arduino UNO для создания термометра. Датчик DS18B20 является хорошим вариантом, когда в проекте с высокой точностью требуется хорошая реакция. Мы покажем как подключить DS18B20 к вашему Arduino UNO и отобразить данные температуры на ЖК-дисплее 16×2.
Обзор датчика DS18B20
Датчик DS18B20 взаимодействует с Arduino через 1-проводную шину. По определению для связи с Arduino требуется только одна линия данных (и земля).
Каждый DS18B20 имеет уникальный 64-битный последовательный код или адрес, который позволяет нескольким DS18B20s работать на той же однопроводной шине. Поэтому использование микропроцессора упрощает управление несколькими DS18B20, распределенными по большой площади. Приложения для этой функции включают в себя экологический контроль, системы контроля температуры в зданиях и механическом оборудовании.
Особенности DS18B20
Требования к комплектующим
Требования к оборудованию для вашего термометра достаточно стандартные, нам пригодятся:
Схема соединения
Сделайте соединения согласно приведенной ниже схеме.
Соединяем датчик и Ардуино
Соединения для ЖК-дисплея и Arduino UNO
Подключите потенциометр, как показано выше, к контакту 3 на ЖК-дисплее, для управления контрастностью.
Этот проект работает на температурах до 125° C. В случае наличия некоторого диссонанса в значении показанной температуры дважды проверьте соединения с резистором, подключенным к DS18B20. После соединения всего, что описано выше, мы можем перейти к программированию.
Исходный код для термометра
Перед загрузкой исходного кода вам нужно настроить две библиотеки, необходимые для запуска этого кода в среде Arduino.
После скачивания обеих библиотек переместите файлы в папку библиотек Arduino по умолчанию. Затем скопируйте код в IDE Arduino и загрузите его после двойной проверки правильности подключения вашего датчика.
Примерно это выглядит так:
Мы смогли измерить температуру до 100°C с помощью этого датчика! Он очень отзывчив.
После того, как вы создали проект, потестируйте устройство, погрузив датчик в горячую и холодную воду.
Как сделать термометр на Arduino при помощи DS18B20
КАК СДЕЛАТЬ ТЕРМОМЕТР НА ARDUINO ПРИ ПОМОЩИ DS18B20
Привет всем! Сегодня я расскажу, как сделать на Arduino термометр с помощью датчика температуры DS18B20.
Информация о самом датчике.
ШАГ 1.
Что нам понадобится:
ШАГ 2.
Если все сделано верно, то вы увидите измеренные значения температуры в Serial Monitor, аналогично тем, что на скриншоте.
Скачайтеиразархивируйтеих /Program Files(x86)/Arduino/Libraries
// Контакт для передачи данных подключен ко 2-му пину на Arduino
#define ONE_WIRE_BUS 2
// Настройка, позволяющая 1-Wire устройству взаимодействовать с любым 1-wire устройством
// (не только c датчиками температуры от Maxim/Dallas)
// Передаем наши 1-Wire ссылки датчику температуры
// открываем последовательный порт
Serial.println(«Dallas Temperature IC Control Library Demo»);
// вызываем sensors.requestTemperatures() для получения общей температуры
// запрос распространяется по всем устройствам, подключенным к шине
Serial.print(» Requesting temperatures. «);
Serial.print(sensors.getTempCByIndex(0)); // Почему «byIndex»?
// Вы можете подключить больше, чем одно устройство на одну шину
// 0 ссылок на первое подключенное устройство
ШАГ 3.
Если вы не хотите смотреть результаты измерений с помощью Serial Monitor, то этот вариант специально для вас!
Соедините I2C LCD с входами UNO – A4 – SDA, A5 – SCL, а датчик к цифровому входу 2. Скачайте и загрузите DS18B20_I2C_LCD.ino. Если все сделано правильно, то вы увидите значение температуры на дисплее.
Скачайтеиразархивируйтеих /Program Files(x86)/Arduino/Libraries
#define ONE_WIRE_BUS 2
//Настройка, позволяющая 1-Wire устройству взаимодействовать с любым 1-wire устройством (не только c датчиками температуры от Maxim/Dallas)
Digitrode
цифровая электроника вычислительная техника встраиваемые системы
Инфракрасный термометр на Arduino и MLX90614 своими руками
Сегодня вопрос измерения температуры стоит наиболее остро, нежели ранее. В связи со вспышкой коронавируса и общего ухудшения здоровья населения желательно измерять температуру тела как можно чаще с целью выявления заболевания на ранней стадии, причем для сторонних людей относительно возможного зараженного это делать лучше бесконтактным способом.
В этом проекте мы создадим бесконтактный ИК термометр используя Arduino и инфракрасный температурный датчик. Эта конструкция будет создана с использованием бесконтактного датчика температуры под названием MLX90614; следовательно, его можно использовать не только для измерения температуры тела, но также для измерения температуры компонентов, температуры поверхности, в системах вентиляции с подогревом и многого другого. Конечно, эти тепловые пистолеты легко доступны на рынке от известных производителей, таких как Fluke, Flir и т. д. но они довольно дорогие и, кроме того, интереснее, создавать свои собственные гаджеты.
Перед тем как приступить к проекту, важно знать, как работает датчик MLX90614. На рынке доступно много датчиков температуры, и мы широко используем датчики DHT11 и LM35 для многих применений, где необходимо измерять температуру воздуха. Но здесь для теплового пистолета нам нужен датчик, который мог бы измерять температуру конкретного объекта (не окружающей среды) без непосредственного контакта с объектом. Для этого у нас есть бесконтактные датчики температуры, которые используют лазер или ИК для расчета температуры объекта. MLX90614 – один из таких датчиков, который использует ИК-энергию для определения температуры объекта.
Датчик MLX90614 компанией Melexis Microelectronics, в него встроено два устройства: одно – инфракрасный термобатарея (датчик), а другое – устройство обработки сигналов DSP (вычислительный модуль). Он работает на основе закона Стефана-Больцмана, который гласит, что все объекты излучают инфракрасную энергию, и интенсивность этой энергии будет прямо пропорциональна температуре этого объекта. Чувствительный элемент в датчике измеряет, сколько ИК-энергии излучается целевым объектом, и вычислительный модуль преобразует ее в значение температуры с использованием встроенного 17-разрядного АЦП и выводит данные через протокол связи I2C. Датчик измеряет как температуру объекта, так и температуру окружающей среды для калибровки значения температуры объекта. Особенности датчика MLX90614 следующие.
Одним из вопросов, на который технические характеристики не дают прямого ответа, является измерение расстояния между датчиком и объектом. Значение этого расстояния задается термином Поле зрения (FOV), для нашего датчика поле зрения составляет около 80°.
Принципиальная схема подключения компонентов инфракрасного термометра довольно проста и приведена далее.
Вся схема питается от батареи 9 В через кнопку. При нажатии кнопки батарея 9 В подключается к выводу RAW Arduino, который затем регулируется до 5 В с помощью встроенного регулятора напряжения. Эти 5 В затем используется для питания модуля OLED, датчика и лазерного диода.
Для упрощения конструирования корпуса термометра можно воспользоваться 3D моделью (https://www.thingiverse.com/thing:3706609).
Программа для Arduino должна прочитать значение температуры с MLX90614 и отобразить его на OLED-дисплее. К счастью для нас, программа будет очень простой, поскольку Adafruit предоставила нам библиотеку (https://github.com/sparkfun/SparkFun_MLX90614_Arduino_Library) для удобного чтения данных с MLX90614. Полный код инфракрасного термометра на Arduino представлен далее.
Как только код Arduino будет готов, мы можем загрузить его в наше оборудование с помощью внешнего программатора TTL или платы FTDI, поскольку у Arduino pro mini нет встроенного программатора. Затем просто нажмите кнопку, чтобы активировать тепловую пушку, и вы заметите, что лазерный луч падает на объект, а температура объекта отображается на OLED-экране, как показано на следующем изображении.
Цифровой термометр на Arduino и датчике температуры LM35
Термометры – это полезные устройства, которые используются человечеством уже долгое время. В этой статье мы спроектируем цифровой термометр на базе платы Arduino Uno и датчика температуры LM35, который будет измерять температуру окружающей среды в режиме реального времени и выводить ее значение на жидкокристаллический (ЖК) дисплей 16×2.
Данное устройство условно можно разделить на три модуля: первый измеряет температуру используя температурный датчик LM35, второй конвертирует измеренное значение температуры в привычную нам шкалу Цельсия (выполняется с помощью Arduino), а третий отображает это значение температуры на ЖК дисплее. Условно весь этот процесс можно представить в виде следующей диаграммы:
Все процессы на этой диаграмме проходят под контролем Arduino. Датчик температуры LM35 используется для измерения окружающей температуры и обеспечивает при изменении температуры на 1 градус изменение напряжения на 10 мВ на своем выходном контакте. Этот факт можно достаточно просто проверить с помощью вольтметра, подсоединив Vcc к pin 1, землю (Ground) к pin 3 и выходное напряжение к контакту pin 2 датчика LM35. К примеру, если напряжение на выходе датчика LM35 равно 250 мВ, то это означает, что температура окружающей среды примерно равна 25 градусам Цельсия.
Arduino считывает выходное напряжение датчика температуры со своего аналогового контакта A0 и выполняет вычисления, направленные на конвертацию этого аналогового значения напряжения в цифровое значение температуры. После проведения вычислений Arduino передает полученное значение температуры на ЖК дисплей 16×2.
Необходимые компоненты
Arduino
В этом проекте мы используем микроконтроллер для контроля всего процесса, который размещен на плате Arduino. Некоторые называют Arduino микроконтроллером, но это не совсем так, потому что Arduino представляет собой операционную систему или начальный загрузчик, который работает на основе микроконтроллера AVR. Если говорить шире, то Arduino – это аппаратная платформа с открытым исходным кодом, которая очень удобна для реализации многих практических проектов в электронике.
Датчик температуры LM35
LM35 (купить на AliExpress) представляет собой датчик температуры с 3 контактами, который обеспечивает изменение напряжения на своем выходе на 10 мВ при изменении температуры на 1 градус Цельсия. Верхний предел измерения температуры у него составляет около 150 градусов Цельсия. На 1-й контакт датчика подается питающее напряжение, 2-й контакт – выход датчика, а на 3-й подается земля.
ЖК дисплей
ЖК дисплеи 16×2 (купить на AliExpress) широко используются в различных проектах поскольку они дешевы, легко доступны, относительно небольшие по размеру и просты в подключении. ЖК дисплей 16×2 имеет 2 строки и 16 столбцов, что означает что он состоит из 16 блоков по 5×8 точек в каждом. Он имеет 16 контактов, из которых 8 контактов для передачи данных (D0-D7) и 3 контакта для управления, которые обозначаются как RS, RW and EN. Остальные контакты используются для подачи питания, контроля яркости и подсветки.
Питание
Плата Arduino уже имеет встроенный модуль подачи питания, поэтому здесь нам необходимо только подсоединить адаптер на 9 или 12 вольт к плате, или можно запитать ее от USB-порта компьютера или ноутбука.
Работа схемы
Схема устройства представлена на следующем рисунке.
На представленной схеме ЖК дисплей 16×2 напрямую подсоединен к плате Arduino в 4-битном режиме. Контакты ЖК дисплея с обозначениями RS, EN, D4, D5, D6, D7 подсоединены к цифровым контактам Arduino 7, 6, 5, 4, 3, 2. Датчик температуры LM35 подсоединен к аналоговому контакту A0 платы Arduino.
Исходный код программы
Чтобы написать код программы для нашего цифрового термометра, мы должны написать код для Arduino, датчика температуры LM35 и ЖК дисплея 16×2. Сначала подключим библиотеку для ЖК дисплея, а затем определим контакты данных и управления для подключения ЖК дисплея и датчика температуры.
float Temperature=analog_value*factor*100
где factor=5/1023, analog_value – аналоговое значение напряжение с выхода датчика температуры.
То есть получаем код вида:
Символ градуса формируем используя стандартный метод с помощью следующего кода:
Далее представлен полный исходный код программы нашего цифрового термометра.