Термометр arduino: Термометр на Arduino Uno и DS18B20

Содержание

Arduino термометр своими руками на DS18B20 » NGIN.pro

Arduino термометр своими руками на DS18B20

Всем привет! Сегодня я собираюсь показать вам, как сделать LCD термометр с цифровым датчиком температуры DS18B20 с помощью Arduino, макетной платы и проводов. Таким образом, вы можете измерить температуру воздуха, жидкости, и температуру земли.* Выводятся данные о температуре на последовательном мониторе Arduino IDE.

Шаг 1: Информация о датчике
DS18B20 цифровой датчик температуры от Maxim IC. Пределы температур от -55 до 125 (+/- 0,5)(-67°F до +257°F). Каждый датчик имеет уникальный 64-битный серийный номер — это позволяет использовать огромное количество датчиков, которые будут использоваться на одной шине данных.
    Области применения включают в себя контроль температуры, промышленные системы, потребительские товары, термометры, или любая термочувствительная система

Шаг 2: Элементы
Для того, чтобы сделать термометр вам понадобятся следующие вещи:

    

Arduino (UNO, DUE, Micro, и т.
п ..).
    DS18B20 датчик и один резистор 4.7кОм*
    16×2 ЖК-дисплей с шиной I2C.
    Макетная плата и перемычки, чтобы соединить все вместе.* Некоторые магазины продают датчик с 4.7K резистор

Шаг 3: БиблиотекиПеред тем, как начать делать термометр, необходимо скачать и распаковать следующие библиотеки для Arduino в  Progam Files (x86) / Arduino / Библиотеки (по умолчанию)

    


  1. 1- Wire bus
  2. Dallas Temperature, it does all the calculations and other stuff
  3. Liquid Crystal I2C
Шаг 4: Последовательный термометр
Для отображения данных на мониторе последовательно подключите датчик DS18B20 к Arduino с помощью перемычек и макетной платы и не забудьте подключить или припаять 4.7K резистор между выводами 2 и 3 датчика.Затем скачайте, откройте и загрузите .ino файл, который называется — DS18B20_Serial.Если все в порядке, вы должны увидеть измеряемую температуру в Arduino IDE, как на скриншоте выше.
Скачать файл: ds18b20_serial. zip [671 b] (cкачиваний: 912) Шаг 5: ЖК-термометр

Если вы не хотите измерять температуру через последовательный монитор, то этот шаг для Вас!Подключите I2C LCD к контактам UNO, — A4 (SDA), A5 (SCL) и датчик к цифровому контакту 2. Затем скачайте и загрузите на Arduino .ino файл, который называется — DS18B20_I2C_LCD. Если все в порядке, вы увидите показания температуры на дисплее.

Скачать файл: ds18b20_i2c_lcd.zip [496 b] (cкачиваний: 1155)  

Удачи!

Arduino термометр на LM35 своими руками
WiFi Температурный датчик с использованием 4Duino-24
Индикация температуры и влажности с помощью D-duino и загрузка в ThingSpeak


Цифровой термометр DS18B20

Сегодня я расскажу, как подключить вот такой маленький, но очень точный цифровой термометр DS18B20.

Подключение этого термометра производится по шине 1 wire. Это позволяет всего по 1 проводу подключить до 127 термометров DS18B20.

  • Разберём несколько скетчей.
  • Первый как всегда – это пример из библиотеки, но с моими комментариями.
  • Научимся получать адрес датчика.
  • Подключать один или несколько датчиков температур.
  • Измерим температуру воды из чайника, а затем вскипятим датчик и посмотрим, что он нам на это скажет.
  • Подключим дополнительную библиотеку от компании Даллас.
  • И напоследок по традиции подключим датчик к дисплею НОКИА 5110.
  • Это уже не первый урок про этот дисплей, если интересно посмотрите предыдущие.

Давайте посмотрим, как датчик температуры DS18B20 будет вести себя в экстремальных условиях.
Сначала мы опустим его в кипящую воду, а потом заморозим в морозильной камере.

Как можно увидеть, что термометр работает правильно, он достаточно быстро набрал температуру в 99°C. 
Измеряемый диапазон температур от -55°C до +125°C, и мы видим, что датчик справляется с такой температурой.

Ниже схемы подключения и исходные коды проекта. Читать далее →

Запись опубликована автором admin в рубрике Проекты с метками lcd keypad shield, LM35, TMP102, датчик температуры, проект, термометр.

Простой способ поднять вебсервер на ардино с езернет модулем 28J60 и выводить на страницу температуру с датчика DS18B20, код из видео.

Читать далее →

Запись опубликована автором admin в рубрике Обзоры с метками DS18B20, ENC28J60, термометр.

В качестве примера работы с LCD модулем Nokia 5110/3310 (PCD8544) 84×48, выводим температуру и влажность с датчика DHT11. Код из видео.

Читать далее →

Запись опубликована автором admin в рубрике Обзоры с метками DHT11, LCD Nokia 5110 (PCD8544), термометр.

О том, как подключить к ардуино датчик температуры DALLAS DS18B20 и простой способ считывать показания c датчика.
Читать далее →

Запись опубликована автором admin в рубрике Обзоры с метками DS18B20, термометр.

или беспроводные датчики температуры и влажности на ардуино

Читать далее →

Запись опубликована автором admin в рубрике Обзоры с метками 433mhz, DHT11, беспроводная связь, термометр.

Метеостанция на ардуино

Читать далее →

Запись опубликована автором admin в рубрике Arduino, Проекты с метками Arduino, DS18B20, LCD ST7735S, nRF24L01, термометр.

Бюджетный GSM термометр на Arduino Nano

Внимание! Команды выделенные жирным шрифтом могут быть выполнены только с основного номера, так как отвечают за конфигурацию устройства. Команды можно отправлять через смс сообщения или вводить в командной строке монитора порта Arduino IDE.

Команды управления не чувствительны к регистру:
AddPhone — Добавить номер телефона. Всего может быть добавлено не более 9 номеров + 1 основной номер который автоматически сохраняется в память при первом звонке на устройство после сброса на заводские установки командами ResetPhone, FullResetили MemTest. То есть кто первый позвонил на устройство после его сброса на заводские установки тот и «главный», этот номер заносится в первую ячейку памяти и его невозможно изменить или удалить через смс.
Пример команды:

AddPhone:2+71234567891risp
AddPhone:3+71234567892s
AddPhone:4+71234567893sp
AddPhone:5+71234567894r

Синтаксис команды:

AddPhone — команда
: — разделитель
5 — записать в пятую ячейку памяти
+71234567890 — номер телефона
s — Параметр «SMS» — будет отправлено sms сообщение при срабатывании датчиков
r — Параметр «Ring» — будет совершен голосовой вызов при срабатывании датчиков
p — Параметр «Power» — будет отправлено sms сообщение при включении/отключении внешнего питания
i — Параметр «Info» — будет отправлено sms сообщение о включении или отключении оповещения при изменении температуры
При отсутствии параметров «s», «r», «p»,«i» телефон заносится в память, но никак не используется.


DeletePhone — Удалить номер телефона.
Пример команды:
DeletePhone:+71234567891

Синтаксис команды:

DeletePhone — команда
: — разделитель
+71234567891 — номер телефона


EditMainPhone — Изменить параметры «s», «r», «p», «i» основного телефона, этот номер занесён в первую ячейку памяти.
Пример команды:
EditMainPhone:spri

Синтаксис команды:

EditMainPhone — команда
: — разделитель
srpi — параметры


RingTime — Длительность тревожного голосового вызова, параметр может иметь значение от 10 до 255 секунд.
Пример команды:
RingTime:40

Синтаксис команды:

RingTime — команда
: — разделитель
40 — длительность вызова составит 40 секунд, после чего будет вызван следующий абонент.


ModemID — Принудительная установка модели используемого модема. Возможные значения: 0 — автоопределение модема, 1 — M590, 2 — SIM800l, 3 — A6_Mini.
Пример команды:
ModemID:2

Синтаксис команды:

ModemID — команда
: — разделитель
2 — ID модема.


NetCheckTime — Интервал проверки регистрации модема в сети оператора в минутах, параметр может иметь значение от 1 до 60 минут. При значении 0 проверка отключена.
Пример команды:
NetCheckTime:10

Синтаксис команды:

NetCheckTime — команда
: — разделитель
10 — каждые 10 минут будет производиться поочерёдная проверка уровня сигнала сети или проверка регистрации модема в домашней сети оператора, то есть весь цикл проверки будет занимать 20 минут. В случае отсутствия сигнала или регистрации в домашней сети модем будет перезагружен.


TempCheckTime — Интервал автоматического обновления температуры, параметр может иметь значение от 1 до 60 минут.
Пример команды:
TempCheckTime:10

Синтаксис команды:

TempCheckTime — команда
: — разделитель
10 — каждые 10 минут будет производиться снятие показаний с датчика температуры.


LowTemp — Нижний порог температуры при достижении которого будет отправлено оповещение. Параметр может иметь значение от -50 до 125 и не может превышать или равняться значению параметра HighTemp.
Пример команды:
LowTemp:25

Синтаксис команды:

LowTemp — команда
: — разделитель
25 — температура


HighTemp — Верхний порог температуры при достижении которого будет отправлено оповещение. Параметр может иметь значение от -50 до 125 и не может быть меньше или равняться значению параметра LowTemp.
Пример команды:
HighTemp:60

Синтаксис команды:

HighTemp — команда
: — разделитель
60 — температура


WatchPowerTime — Время в минутах по истечении которого будет отправлено смс сообщение об отключении внешнего источника питания. Если внешнее питание будет восстановлено до истечения установленного времени, то сообщение не будет отправлено.
Пример команды:
WatchPowerTime:5

Синтаксис команды:

WatchPowerTime — команда
: — разделитель
5 — 5 минут до отправки смс сообщения


WatchPowerOn1 — включить контроль внешнего питания, смс сообщение об отключении внешнего питания будет отправлено при условии что включено оповещение при изменении температуры (GuardOn).

WatchPowerOn2 — включить контроль внешнего питания, смс сообщение об отключении внешнего питания в любом случае будет отправлено

WatchPowerOff — выключить контроль внешнего питания

BalanceNum — Изменение номера запроса баланса и обработка длины ответа запроса. Значение по умолчанию для Beeline: #100#L22.
Пример команды:

BalanceNum:#103#L24

Синтаксис команды:

BalanceNum — команда
: — разделитель
#103# — номер запроса баланса
L24 — Длина (len) пересылаемого ответа 24 символа, обрезаем спам из запроса баланса.


Reboot — перезагрузка устройства (только Arduino)

ResetConfig — сброс настроек на заводские установки

ResetPhone — удаление из памяти всех телефонных номеров

FullReset — сброс настроек, удаление из памяти всех телефонных номеров, восстановление значения по умолчанию команды BalanceNum.

GuardOn — включить оповещение при изменении температуры
GuardOff — выключить оповещение при изменении температуры

Info — проверить состояние, в ответ на это сообщение будет отправлено sms с информацией о текущей температуре, нижней и верхней границах контроля температуры, о частоте автоматического обновления температуры, и о том с какого номера было включено или выключено оповещение при изменении температуры и текущее состояние.

TestOn — включается тестовый режим.
TestOff — выключается тестовый режим.

LedOff — выключает светодиод режима ожидания.
LedOn — включает светодиод режима ожидания.

Money — запроса баланса.

ClearSms — Удалить из памяти все sms

ListPhone — вывод в монитор порта списка сохранённых в памяти телефонов

Memtest — тест энергонезависимой памяти устройства, все настройки устройства будут сброшены, аналогично команде FullReset.

ListConfig — вывод в монитор порта текущей конфигурации устройства.

Как реализовать термометр на ардуино?

Для начала, нужно определиться со способом измерения температуры.

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

Сигнал термопары очень мал, для распространенной термопары типа ТХА или К (хромель-алюмель) разница температуры в 1°С дает термоЭДС 40 мкВ. Поэтому для усиления ее сигнала нужен очень качественный прецизионный операционный усилитель с исключительно низким дрейфом, например, OP07. Кроме того, термопара измеряет разность температур, а значит, надо или стабилизировать температуру холодного спая, например, поместив его в воду со льдом, либо использовать схему компенсации, например, с использованием диода, находящегося в тепловом контакте с холодным спаем.

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

Наиболее просто использование интегральных датчиков. Классические датчики TMP35..37 просто выдают напряжение, зависящее от температуры с коэффициентом 20 мВ/°С и с начальным напряжением при 25°С 250, 750 и 500 мВ, соответственно для TMP35, TMP36 и TMP37. Не менее классический LM75 содержит внутри собственный АЦП и выдает значение темпертуры уже в готовом виде, как цифровой код по интерфейсу I2C. Стоит только подать питание (обязательно зашунтировав его керамическим блокировочным конденсатором на 1 мкФ и желательно — подав его от отдельного линейного стабилизатора, так как микросхема очень чувствительна к шумам и пульсациям по питанию), установить на линиях А0, А1 и А2 адрес, на который эта микросхема будет откликаться, соединив эти выводы с землей или питанием в соответствии с двоичным кодом адреса (висеть в воздухе они не должны! Подтяжек, как у памяти 24Схх, у нее нет!), и подключить SDA и SCL к соответствующим выводам МК.

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

Далее наша работа заключается в том, чтобы инициализировать контроллер I2C (при использовании LM75) или АЦП (во всех остальных случаях) и многократно принимать величины, зарегистрированные АЦП, функцией analogRead, усреднять их, а затем пересчитывать их в температуру (в случае LM75 используется соответствующая библиотека), а потом, в зависимости от ее значений зажигать те или иные светодиоды.

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

Предлагаемый бесконтактный термометр может измерять температуру тела человека в районе лба и записывать ее в текстовый файл на SD-карту с указанием времени и температуры.Если у человека аномальная температура тела, машина подаст звуковой сигнал.

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

Схема цепи:

Описание схемы:

Предлагаемая схема состоит из следующих компонентов и может быть собрана на печатной плате для надежной работы:

  • MLX

    не-
  • Модуль SD-карты.
  • ЖК-дисплей I2C.
  • DS3231 / DS1307 Модуль часов реального времени.
  • Ультразвуковой датчик.
  • Ардуино.
  • Зуммер 5 В постоянного тока.

Давайте кратко рассмотрим каждый модуль, представленный в проекте.

Бесконтактный датчик температуры MLX

:

MLX

— это бесконтактный датчик температуры с инфракрасным излучением, который является сердцем этого проекта. Датчик может измерять температуру объекта от -70 до +380 градусов по Цельсию, что более чем достаточно для нашего проекта, датчик может работать при температуре окружающей среды от -40 до +125 градусов по Цельсию.

MLX

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

работает на шине I2C, что упрощает взаимодействие с Arduino, и это можно сделать, просто подключив линии SDA и SCL к Arduino.

Эффективное измеряемое расстояние между объектом и датчиком составляет всего несколько сантиметров, чтобы этот датчик работал в реальных ситуациях, нам необходимо увеличить его диапазон путем калибровки/компенсации полученного необработанного значения температуры от датчика (в программном коде ).Мы постараемся понять это в более поздней части этого поста.

Модуль SD-карты:

Как правило, подключение карты micro SD напрямую к любому микроконтроллеру технически сложно, модуль адаптера карты micro SD, такой как показанный выше, упрощает эту задачу.

Этот модуль адаптера SD-карты регулирует правильное напряжение питания и напряжение сигнала для SD-карты. Этот модуль состоит из встроенного регулятора 3,3 В и микросхемы сдвига уровня, которая отвечает за преобразование сигнала 5 В от Arduino в 3.Сигнал 3В на SD-карту.

Этот модуль взаимодействует с Arduino через протокол SPI, и нам необходимо установить четыре линии связи между Arduino и этим модулем SD-карты: MISO, MOSI, SCK и CS.

Модуль часов реального времени:

В предлагаемом проекте используется модуль RTC DS3231 или DS1307 (оба совместимы) для регистрации правильного времени с температурой, когда человек сканирует свое тело с помощью этой машины.

Модуль RTC отвечает за отслеживание точного времени, он также поставляется с резервной батареей, которая поддерживает работу RTC даже при отключении основного источника питания.

Модуль RTC работает по протоколу I2C аналогично датчику температуры и также подключается к тому же проводу шины.

Как установить время на RTC:

  • Откройте Arduino IDE > File > Examples > DS1307RTC > SetTime > загрузите этот код, и открытый серийный монитор и время будут установлены на RTC.

Ультразвуковой датчик:

В проекте используется ультразвуковой датчик для измерения расстояния между датчиком MLX

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

Расстояние, на котором регистрируется измерение температуры, составляет от 12,5 см до 14 см (от датчика). Таким образом, когда кто-то приближает лоб к датчику температуры, он фиксирует показания между этими двумя фиксированными точками.

Необходимо измерять температуру на фиксированном расстоянии, поскольку значение температуры MLX

изменяется при изменении расстояния между датчиком и объектом.

MLX

должен быть установлен близко к ультразвуковому датчику, чтобы получать надежные показания температуры, как показано на изображении выше.

ЖК-дисплей I2C:

Мы используем модуль адаптера дисплея I2C, чтобы уменьшить количество проводов, соединяющих Arduino с ЖК-дисплеем, чтобы мы могли легко построить схему. Нам просто нужно подключить четыре провода: SDA, SCL, Vcc и GND, иначе мы будем подключать 16 проводов.

С помощью отвертки Phillips отрегулируйте контрастность дисплея и подключите перемычку, чтобы включить подсветку ЖК-дисплея.

Зуммер:

Зуммер 5 В постоянного тока используется в этом проекте для оповещения о высокой температуре тела звуковыми сигналами, а также для предоставления пользователю обратной связи о том, что датчик зафиксировал показания температуры.

При считывании показаний температуры зуммер издает короткий звуковой сигнал. Когда показания температуры превышают пороговую температуру, которую вы установили в коде, зуммер издает звуковой сигнал в течение 5 секунд. Когда температура тела ниже порогового значения, зуммер не издает звуковой сигнал, кроме короткого звукового сигнала во время захвата измерения.

Программный код: https://github.com/electronics-project-hub/contactrectless-Thermometer/blob/main/contactless_thermometer. txt

Прототип изображения:

После того, как вы построите схему, следующим шагом будет калибровка машины для получения правильной температуры. Это можно сделать, выполнив следующие шаги, и вам понадобится ИК-термометр в качестве эталонного термометра:

1) Загрузите код со следующими параметрами: 

Установите для параметра «calib_factor» значение 1.00 и «alert_temp» на 37.0.0.

2) Аккуратно поднесите лоб к датчику и снимите 5 показаний температуры.

3) Теперь сделайте 5 показаний температуры с помощью инфракрасного термометра.

4) Теперь рассчитайте среднее значение температуры, считанной с контура, и среднее значение температуры, считанное с ИК-термометра.

           (Temp1 + Temp 2+ …….Temp 5) / 5 = Среднее значение

5) Теперь разделите оба средних значения, как показано:

Среднее значение.Значение ИК-термометра / Среднее значение значение температуры машины = калибровочный коэффициент

6) Теперь введите рассчитанный калибровочный коэффициент в переменную «calib_factor» в программном коде и загрузите.

7) Теперь снимите несколько показаний с помощью схемы, и показания на дисплее будут близки к показаниям ИК-термометра.

8) Теперь ваша машина готова к использованию, и каждое показание температуры регистрируется в текстовом файле на SD-карте, как показано ниже:

Примечание. Содержание и изображения в этой статье предоставлены автором. .Мнения, выраженные участниками, являются их собственными, а не мнениями PCBWay. Если есть какие-либо нарушения прав на содержание или изображения, пожалуйста, свяжитесь с нашим редактором ([email protected]) для удаления.

Автор Blogthor.

Цифровой термометр на базе Arduino —

Термометры — это полезный прибор, который уже давно используется для измерения температуры. В этом проекте мы создали цифровой термометр на основе Arduino для отображения текущей температуры окружающей среды и изменений температуры на ЖК-дисплее в режиме реального времени.

Его можно использовать в домах, офисах, на предприятиях и т.  д. для измерения температуры. Этот проект основан на Arduino, который взаимодействует с датчиком температуры LM35 и дисплеем 16×2. Мы можем разделить этот термометр на основе Arduino на три секции: одна измеряет температуру с помощью датчика температуры LM 35, вторая секция преобразует значение температуры в подходящие числа по шкале Цельсия, что делает Arduino, а последняя часть системы отображает температуру на ЖК-дисплее. .То же самое показано на блок-схеме ниже.

Здесь используется

Arduino Uno для управления всем процессом. Датчик температуры LM35 используется для измерения температуры окружающей среды, который дает 1 градус температуры на каждые 10 мВ изменения на его выходном контакте. Вы можете легко проверить это с помощью вольтметра, подключив Vcc к контакту 1 и заземлению к контакту 3, а выходное напряжение к контакту 2 датчика LM35. Например, если выходное напряжение датчика LM35 составляет 250 мВ, это означает, что температура составляет около 25 градусов Цельсия.

Arduino считывает выходное напряжение датчика температуры с помощью аналогового контакта A0 и выполняет расчет для преобразования этого аналогового значения в цифровое значение текущей температуры. После расчетов Arduino отправляет эти расчеты или температуру на ЖК-дисплей 16×2, используя соответствующие команды ЖК-дисплея.

Компоненты схемы

Ардуино

В этом проекте мы использовали микроконтроллер для управления всем процессом системы на плате ARDUINO.На самом деле Arduino — это не просто контроллер, поскольку у него есть операционная система или загрузчик, работающий на контроллерах AVR. Arduino — это аппаратная платформа с открытым исходным кодом, очень полезная для разработки проектов. На рынке доступно множество типов плат Arduino, таких как Arduino UNO, arduino mega, arduino pro mini, Lilypad и т. д., или вы также можете собрать одну самостоятельно.

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

LM35 представляет собой 3-контактный датчик температуры, который дает 1 градус Цельсия на каждые 10 мВ изменения. Этот датчик может измерять температуру до 150 градусов по Цельсию. 1 номер контакта датчика lm35 — Vcc, второй — выход, а третий — земля.

Подробнее: Цифровой термометр на базе Arduino

Цифровой термометр с использованием ЖК-дисплея и Arduino

В этом проекте вы научитесь делать цифровой термометр с использованием Arduino и ЖК-дисплея.


Аппаратные компоненты:

1. Arduino Uno:

Это плата микроконтроллера с открытым исходным кодом, которую можно запрограммировать в соответствии с требованиями пользователя.Плата Arduino Uno используется для сопряжения элементов ввода-вывода для построения проекта.

Плата Arduino Uno

2. Макетная плата:

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

Как пользоваться макетной платой?

Макет

3. ЖК-монитор:

Жидкокристаллический дисплей — это дисплей с электронной модуляцией, используемый для создания монохромных изображений.

ЖК-дисплей

4. Датчик температуры TMP36:

Аналоговый датчик температуры с широким диапазоном температур. Левый контакт предназначен для ввода напряжения (от 2,7 В до 5,5 В), а контакт с правой стороны — для заземления. Штырь в центре для аналогового выхода.

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

5. Резистор — 220 Ом:

Резистор представляет собой пассивный электронный компонент, оказывающий сопротивление протекающему через него току. Здесь он используется для уменьшения тока, протекающего через ЖК-дисплей.В этом проекте используется резистор 220 Ом.

Резистор 220 Ом

6. Потенциометр:

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


Потенциометр

7. Соединительные провода:

Соединительные провода имеют разъемы и контакты, которые используются для соединения различных компонентов на макетной плате.

Jump Wires


Соединения цепей: Схема в TinkerCad
  1. Первый контакт на ЖК-дисплее является контактом заземления и подключен к земле Arduino.

  2. Второй контакт на ЖК-дисплее — это контакт VCC, который подключен к 5V Arduino.

  3. V0 ЖК-дисплея к скользящему контакту (2-й контакт) потенциометра.

  4. Клемма 1 потенциометра подключена к 5В, а клемма 2 к контакту заземления.

  5. Зарегистрируйте выбор (RS) ЖК-дисплея на D12 Arduino.

  6. RW(чтение/запись) ЖК-дисплея на землю.

  7. Контакт E (включение) ЖК-дисплея к D11 Arduino.

  8. DB4 ЖК-дисплея к D5 Arduino.

  9. DB5 ЖК-дисплея на D4 Arduino.

  10. DB6 для D3 Arduino.

  11. DB7 ЖК-дисплея к D2 Arduino.

  12. Анодный контакт светодиода ЖК-дисплея к резистору 220 Ом, который, в свою очередь, подключен к источнику питания 5 В Arduino.

  13. Катод светодиода LCD на землю.

  14. Контакт питания датчика температуры TMP36 к 5В Arduino; Контакт заземления TMP36 к земле Arduino.

  15. Выход TMP36 на A0 Arduino.

Код:
 #include 


ЖК «Жидкий Кристалл» (12, 11, 5, 4, 3, 2);
инт степень;
двойная реальная степень;
Строка lcdBuffer;

недействительная установка () {

  lcd.begin(16, 2);
  степень=0;
  реальная степень=0.0;
  lcd.print("Сегодняшняя температура:");
}

недействительный цикл () {
 
  степень = аналоговое чтение (0);
  реальная степень = (двойная) степень / 1024;
  реальная степень*=5;
  реальная степень-=0,5;
  реальная степень*=100;
  lcd. setCursor(0,1);
  реальная степень = (9,0/5) * (реальная степень) + 32;
  Вывод строки = строка (реальная степень) + строка ((символ) 178) + «F»;
  lcd.print (выход);
}

 
  • Библиотека жидких кристаллов включена в код, и объявлены используемые выводы ЖК-дисплея.

  • Переменные, используемые в коде, объявлены.

  • В цикле аналоговые значения от датчика присваиваются «градусам».Оно делится на 1024 и присваивается переменной «realdegree».

  • Это значение будет варьироваться от 0 до 1, поэтому оно умножается на 5 для увеличения диапазона.

  • Чтобы получить фактическую температуру, значение реальной температуры умножается на 100.

  • Курсор устанавливается на вторую строку ЖК-дисплея.

  • Затем значение градуса Цельсия преобразуется в шкалу Фаренгейта.

  • Значение в градусах Фаренгейта отображается как вывод на ЖК-дисплее.

Рабочий:

Датчик температуры TMP36 работает как диод, т. е. температура изменяется с изменением напряжения с определенной скоростью. Здесь показания датчика отображаются на ЖК-мониторе с помощью #Arduino.

Спроектируйте приведенную выше схему в TinkerCad, введите код и смоделируйте схему.

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

Назначение BY-

NAGASHREE R NADIG

PORTLOIO R NADIG

Link- https://www.leannereCtronicsindia.com/team/nagashree-r-nadig

см. Также —

Следуйте за нами —

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

Facebook | LinkedIn | Инстаграм | Ютуб | Веб-сайт | Gmail


Термометр ANAVI — Прошивка прошивки для термометра ANAVI из Arduino IDE [ВИДЕО]

22 апр. 2019 г.

Термометр

ANAVI — это плата для разработки с открытым исходным кодом, и одной из наиболее важных функций является возможность загрузки пользовательских прошивок, включая ваши собственные версии.На выходных я опубликовал на YouTube короткий видеоурок, как скомпилировать и загрузить в него скетч Arduino через Arduino IDE.

Требуемое аппаратное обеспечение, помимо термометра ANAVI, включает в себя: отладочный кабель USB-UART, блок питания USB и персональный компьютер. Вы можете загрузить исходный код прошивки термометра ANAVI по умолчанию с GitHub.

В каждый комплект термометра ANAVI входит отладочный кабель USB-UART с CP2102. В зависимости от операционной системы на вашем персональном компьютере может потребоваться установка дополнительных дисков.Он должен работать из коробки в дистрибутивах GNU/Linux. Подключите USB к компьютеру и подключите провода следующим образом:

ANAVI Термометр USB в UART отладочный кабель
GND GND
TX RX
RX TX

Скачать и установить Arduino IDE на ваш персональный компьютер. Это бесплатное программное обеспечение с открытым исходным кодом, доступное для дистрибутивов MS Windows, Mac OS и GNU/Linux.Запустите Arduino IDE и загрузите скетч Arduino, совместимый с термометром ANAVI.

Термометр

ANAVI питается от ESP8266, и есть несколько конфигураций, которые необходимо применить в Arduino IDE. Перейдите к Файл > Настройки . Выберите «Настройки» и в поле «URL-адреса менеджера дополнительных плат» добавьте: http://arduino.esp8266.com/stable/package_esp8266com_index.json

.

В Arduino IDE выберите Tools > Board: Generic ESP8266 Module . Установите размер флэш-памяти на 4M (1M SPIFFS).Скорость загрузки составляет 115200. Настройте точный порт USB для последовательного отладочного кабеля, подключенного к вашему компьютеру.

Выберите Инструменты > Управление библиотеками . Появится менеджер библиотек Arduino. Установите все необходимые библиотеки и их точные версии. Со временем, по мере разработки прошивки по умолчанию, могут быть добавлены новые библиотеки. Пожалуйста, обратитесь к файлу README, чтобы получить актуальный список всех библиотек, которые должны быть установлены для прошивки по умолчанию.

В Arudino IDE нажмите Verify/Compile.Если есть какие-либо ошибки, пожалуйста, проверьте, установлены ли все необходимые библиотеки и их точные версии. Если исходный код успешно скомпилирован, перейдите к следующему шагу прошивки.

В Arduino IDE нажмите «Загрузить». Нажмите и удерживайте кнопку RESET на термометре ANAVI. Не отпуская кнопку RESET, подключите источник питания 5 В к разъему microUSB термометра ANAVI. Пожалуйста, сделайте , а не . Отпустите кнопку RESET, пока загрузка не будет завершена.Повторяю, пожалуйста, не отпускайте кнопку RESET, пока не увидите в Arduino IDE, что загрузка выполнена на 100%.

После этого вы можете запустить последовательный монитор в Arduino IDE и убедиться, что прошивка успешно работает. Вы можете использовать тот же подход для загрузки пользовательской прошивки в термометр ANAVI.

Подробнее смотрите видео и руководство пользователя.

Тем временем мы также опубликовали на GitHub простой скетч Arduino для подключения к ThingsSpeak.ком через MQTT. Подробности о Thingspeak.com мы расскажем в отдельной статье. Еще раз спасибо за поддержку и помощь в воплощении в жизнь этого проекта с полностью открытым исходным кодом!

С уважением,
Леон

(PDF) Проектирование и разработка бесконтактного термометра на базе Arduino

Том 11, выпуск 1 ∙Январь-июнь 2020 г. 59

Проектирование и разработка бесконтактного термометра на базе Arduino

Бесконтактный термометр

1Md.Абдулла Аль Мамун, 2*Мохаммад Аламгир Хоссейн,

3M. Мунтасир Рахман, 4Md. Ибрагим Абдулла, 2Md. Шамим Хоссейн

1 Бакалавр наук, 2 Доцент, 3 Доцент, 4 Профессор

Факультет компьютерных наук и инженерии

Исламский университет, Куштия, Бангладеш

* Автор-корреспондент: [email protected] iu.ac.bd

2 Аннотация. В нынешних ситуациях социальное дистанцирование

является наиболее важным фактом. Кроме того, фактом является то, что

первым симптомом пациента с COVID-19 является высокая температура тела

.Причина, по которой измерение

температуры тела является наиболее важным, но необходимо

поддерживать социальное дистанцирование. В то время как традиционные термометры

не могут гарантировать социальное дистанцирование,

, где наш разработанный бесконтактный термометр может

измерять температуру на дисплее, используя Arduino

unoR3 в качестве основного устройства управления, а также

MLX

в качестве инфракрасного (ИК) ) термометр

датчик

.В результате, по сравнению с традиционным термометром

, он показывает сильные стороны, такие как удобное считывание

, широкий диапазон измерения температуры

и точность, когда температура

отображается в цифровом виде. Кроме того,

будет использоваться повсеместно из-за его простоты в обращении.

Ключевые слова— ИК, термометр, Arduino, UNO

Бесконтактный термометр, MLX

.

I. ВВЕДЕНИЕ

В последнее время мир движется к плохой

ситуации из-за коронавирусной болезни (COVID-

19).Где большая часть страны в огромной степени

страдает от этой болезни, а все

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

термометр представляет собой термометр, определяющий

температуру по части теплового излучения

, которое иногда называют излучением черного тела, испускаемым

измеряемым объектом. Иногда их называют

лазерными термометрами, так как лазер используется, чтобы помочь

нацелить термометр, или бесконтактными термометрами

или температурными пистолетами, чтобы описать способность устройства

измерять температуру на расстоянии.Инфракрасные

термометры могут использоваться для выполнения широкого спектра функций контроля температуры. Несколько приведенных примеров

включают проверку механического или

электрического оборудования на предмет температуры и горячих точек,

измерение температуры пациентов в больнице

без прикосновения к ним, проверку нагревателя или печи

температуры, калибровку и контроль, проверку

для горячих точек при тушении пожаров, контроль материалов

в процессах, связанных с нагревом или охлаждением [1].

Традиционный

термометр, который в настоящее время разрабатывается и используется для измерения

температуры тела от объектов, представляет высокий риск для всех

из-за близкого контакта, который находится на небольшом

расстоянии от пострадавших людей. В этом случае бесконтактные термометры

можно использовать везде

, например, в нормальных или опасных местах. Например,

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

в исследовательских лабораториях.Кроме того, в области медицины

, где измерение температуры тела сильно инфицированного/обожженного пациента

является небезопасным и ненадежным. В

в этом месте очень полезен бесконтактный термометр

. Легко, безопасно и точно измерять температуру

. В этой статье мы описываем принцип изготовления бесконтактных термометров

. В

эта система включает Arduino UNO, датчик температуры MLX

, OLED-дисплей и аккумулятор в качестве источника питания

для обеспечения разработанной системы

.В нашем термометре широкий от -70 до

380˚C диапазон измерения температуры с

точностью 0,5˚C [1]. Система цифрового дисплея

для вывода температуры проста и

экономична, надежна в эксплуатации и безопасна для окружающей среды

.

Этот документ организован следующим образом: Во-первых,

раздел II объясняет принципы проектирования. Во-вторых,

раздел III описывает блок-схему, блок-схему и схему

.В-третьих, в разделе IV обсуждаются

Результат и Выход разработанной системы.

Окончательное заключение делается в разделе V.

II. ПРИНЦИПЫ КОНСТРУКЦИИ

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

для измерения температуры. С другой стороны

нашему термометру не нужен контакт для измерения температуры

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

и OLED-дисплей подключены к Arduino

UNO [2].Два компонента подключены к аналоговому выводу

Arduino UNO [3]. Когда

Arduino — цифровой термометр — Robo India || Учебники || Изучите Ардуино |

Robo India объясняет, как сделать цифровой термометр с помощью датчика DHT.
1. Введение

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

В этом уроке мы сделали цифровой термометр для отображения текущей температуры и влажности, используя DHT с Arduino.

Подключенный ЖК-дисплей будет отображать текущую температуру и влажность в помещении.

2. Необходимое оборудование
3. Соединение
4. Программирование

Вы можете скачать этот эскиз Arduino отсюда.

 //Руководство Robo India по цифровой температуре и влажности
//Необходимое оборудование: DHT и ЖК-дисплей 16X2
//  https://www.roboindia.com/tutorials 

#include "DHT.h"
# определить DHTTYPE DHT11
#define dhtPin 2                  // dht с выводом D2 (Arduino)
  DHT  dht(dhtPin, DHTTYPE);
#include 
#include <  LiquidCrystal_I2C  .h>

  LiquidCrystal_I2C  LCD (0x3F, 20, 4); // УСТАНОВИМ I2C-адрес
byte DegreeSign[8] =                // код для создания символа степени
 {
 0b00111,
 0b00101,
 0b00111,
 0b00000,
 0b00000,
 0b00000,
 0b00000,
 0b00000
 };
недействительная установка ()
{
 ЖК.в этом();
 ЖК-подсветка(); // включает подсветку.
 ЖК.очистить(); // Очищает ЖК-дисплей
 lcd.createChar(1, градусзнак);
 lcd. setCursor(0,0);
 lcd.print("Робо Индия");
 lcd.setCursor(0,1);
 lcd.print("Термометр");
 ЖК.очистить();
 дхт.начать();
 задержка(5000);
}


пустой цикл ()
{
 float h = dht.readHumidity(); // считать влажность
 float t = dht.readTemperature(); // чтение температуры
 задержка(100);
 
 ЖК.очистить();
 lcd.setCursor(0,0); // отображение на ЖК-дисплее
 ЖК.печатать("Температура");
 lcd.setCursor(9,0);
 ЖК-принт (т);
 жк.запись(1);
 ЖК-дисплей.print("С");
 lcd.setCursor(0,1);
 lcd.print("Влажность");
 lcd.setCursor(9,1);
 ЖК-принт (ч);
 lcd.print ("%");
 задержка(1000);
}


 
5. Выход

ЖК-дисплей отображает текущую и точную температуру и влажность в помещении. Скорость изменения может быть запрограммирована в коде.

Если у вас есть какие-либо вопросы, напишите нам по адресу [email protected]ком

С уважением и благодарностью
Команда разработчиков контента 
Robo India
https://roboindia. com

Измерение температуры с помощью Arduino — 5 датчиков

Сегодня мы рассмотрим пять различных датчиков, которые можно использовать для измерения температуры с помощью Arduino.

Все эти устройства недороги и просты в использовании.

Введение

При разработке проектов на основе микроконтроллеров, таких как Arduino, часто желательно иметь возможность измерять температуру.Есть много причин, по которым вы хотели бы это сделать.

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

Или вы можете просто создать свой собственный цифровой термометр.

Каждое из этих приложений для измерения температуры имеет свои требования. Регистратору данных вашей метеостанции понадобится что-то точное. Для некоторых приложений управления технологическим процессом может потребоваться датчик, который можно погружать в жидкость или работать при температуре выше точки кипения воды. Приложение для переключения вентиляторов не требует ничего сверхточного, но также может потребоваться измерение влажности.

Сегодня мы рассмотрим пять различных датчиков, которые можно использовать для измерения температуры с помощью Arduino.

Пять датчиков

Мы рассмотрим следующие пять датчиков:

  • DHT22 — Этот недорогой датчик также измеряет влажность.Он имеет последовательный цифровой выход и может легко использоваться с большинством микроконтроллеров.
  • AM2320 — во многом похож на DHT22, но для связи используется шина I2C.
  • TMP36 – калиброванный датчик с линейным аналоговым выходом и широким диапазоном измерений.
  • LM35 — аналогичен TMP36, более точен, но немного сложнее в использовании, если вам нужно измерить отрицательную температуру.
  • MCP9808 — очень высокоточный модуль измерения температуры с программируемым выходом сигнала тревоги.

Ни одно из этих устройств не является особо дорогим, и все они довольно просты в использовании с Arduino, тем более что для работы с ними доступно несколько библиотек.

Давайте рассмотрим их один за другим.

ДХТ22

DHT22 — очень популярный датчик температуры и влажности. Это двоюродный брат DHT11, у него улучшенное разрешение по сравнению с его родственником, а также он может измерять отрицательную температуру.

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

DHT22 имеет рабочий диапазон от -40 до 8-0 градусов Цельсия и точность в пределах 5%. Он может измерять влажность в диапазоне от 20 до 100 процентов.

Он может питаться постоянным напряжением от 3 до 5 вольт, что делает его пригодным как для 3,3-вольтовых, так и для 5-вольтовых логических устройств.

Вот распиновка DHT22:

Обратите внимание, что используются только три контакта из четырех, контакт 3 не подключен.

DHT22 также упакован как AM2302 (не путать со следующим датчиком в нашем списке).

Соединение DHT22 Arduino

Подключить DHT22 к Arduino или любому подобному микроконтроллеру довольно просто, поскольку устройство имеет только один выходной контакт, который можно подключить к любому доступному цифровому порту ввода-вывода.

Вот как я подключил датчик для своего эксперимента:

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

DHT22 Код Arduino

Мы будем использовать библиотеку Adafruit, чтобы упростить работу с DHT22. На самом деле нам понадобятся две библиотеки, а библиотека DHT зависит от еще одной.

Вам нужно будет открыть диспетчер библиотек в Arduino IDE и найти следующие две библиотеки:

  • Библиотека датчиков Adafruit DHT. Эта библиотека позволяет легко работать с DHT22, а также с DHT11 и DHT21.
  • Унифицированная библиотека датчиков Adafruit — это «главная библиотека», которая используется с рядом библиотек датчиков Adafruit.Если вы работали над некоторыми из экспериментов, которые я представил ранее, возможно, вы уже установили эту библиотеку.

После установки библиотек мы можем запустить пример скетча для тестирования нашего датчика.

Откройте меню «Файл», а затем откройте Примеры . Прокрутите подменю вниз, пока не окажетесь в разделе примеров из пользовательских библиотек .

Найдите Библиотеку датчиков DHT и выделите ее. Вы увидите два эскиза.Выберите скетч DHT_Unified_Sensor.

<ВСТАВЬТЕ ЭСКИЗ DHT_UNIFIED_SENSOR>

Этот скетч считывает температуру и влажность с датчика DHT и отображает их на последовательном мониторе. Для работы с DHT22 вам нужно раскомментировать строку, чтобы определить DHTTYPE как DHT22 . Вы можете обнаружить, что он уже раскомментирован.

Если вы не используете контакт 2 в качестве входа DHT22, обязательно отредактируйте значение DHTPIN .

На эскизе показано, как легко считывать показания датчика DHT с помощью библиотеки.Все, что вам нужно сделать, это создать объект, представляющий датчик, а затем вызвать событие. Событие будет содержать как влажность, так и температуру, которые вы затем сможете извлечь и использовать в своем коде.

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

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

Это не самый точный датчик, который вы можете купить, но он прост в использовании и выполняет работу в большинстве некритических приложений. Добавление влажности — приятная особенность.

АМ2320

AM2320 — это датчик, внешне похожий на DHT22, но и с аналогичными характеристиками. Он отличается от DHT22 тем, что использует шину I2C для связи со своим хостом.

Этот датчик работает в диапазоне температур от -40 до 80 градусов Цельсия с заявленной точностью 3%. Он работает при напряжении питания от 3,1 до 5,5 вольт, что делает его пригодным для использования с большинством микроконтроллеров.

I2C-адрес устройства — 0x5C, его нельзя изменить. Имеет следующую распиновку:

AM2320 не имеет внутренних подтягивающих резисторов для шины I2C. Вы можете использовать внутренние подтягивающие резисторы вашего микроконтроллера или использовать собственные резисторы.

  • Контакт 1 — VDD — Напряжение питания.
  • Контакт 2 — SDA — Линия последовательных данных I2C.
  • Контакт 3 — Земля — Земля
  • Контакт 4 — SCL — Линия синхронизации I2C.

AM2320 Подключение Arduino

Поскольку он использует шину I2C, подключение AM2320 к Arduino довольно просто. Вот схема, которую я использовал.

Подтягивающие резисторы, которые я использовал, были 3,3 кОм, но любое значение от 2.От 2K до 10K должно работать нормально.

Аналоговый контакт A4 — это линия Arduino SDA, а контакт A5 — это соединение SCL.

После подключения можно скачать еще одну библиотеку для упрощения работы с датчиком температуры и влажности AM2320.

Библиотека Arduino AM2320 и эскиз

Как и в случае с предыдущим датчиком, мы будем использовать библиотеку от Adafruit для работы с датчиком. Эта библиотека Adafruit AM2320 значительно упрощает работу с этим устройством.

Найдите библиотеку Adafruit AM2320 и установите ее в своей среде IDE с помощью диспетчера библиотек.После его установки вы можете запустить пример скетча, включенного в библиотеку, который называется basic_am2320 .

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

<ВСТАВИТЬ БАЗОВЫЙ AM2320>

Это, наверное, самое простое, что может быть в наброске.

Он вызывает обе библиотеки, а затем создает объект с именем am2320 . Объект инициализируется во время Setup, а затем в Loop вызываются библиотеки функций readTemperature и readHumidity.Результат отображается на последовательном мониторе.

Следует отметить, что библиотека Arduino Wire для I2C НЕ использовалась в этом скетче. Библиотека Adafruit AM2320 имеет встроенную функцию подключения I2C.

Загрузите скетч, откройте серийный монитор и наблюдайте за показаниями температуры и влажности. Вы можете сравнить их с показаниями, полученными ранее от DHT22. Когда я сделал это, я обнаружил, что температура была довольно близкой, но влажность сильно различалась между двумя датчиками.

Этот датчик будет полезен, если вы хотите сохранить некоторые контакты ввода-вывода и когда вы уже используете I2C.

TMP36 и LM35

TMP36 и LM35 упакованы в корпуса T)92, что делает их похожими на маленькие транзисторы. Они также доступны в корпусах для поверхностного монтажа (SMD).

Эти устройства отличаются от других датчиков температуры, с которыми мы работаем сегодня, тем, что они обеспечивают откалиброванный аналоговый выход, который увеличивается на 10 мВ на каждый градус Цельсия повышения температуры.

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

ТМП36

  • Работает в диапазоне напряжений от 2,7 до 5,5 вольт. Это делает TMP36 идеальным компаньоном для большинства микроконтроллеров.
  • Температурный диапазон от -40 до 125 градусов Цельсия, пригодный для использования до 150 градусов Цельсия.
  • Точность с точностью до 2 градусов Цельсия
  • Имеет смещение 500 мВ, позволяющее измерять отрицательную температуру.

Существует также TMP37, рабочий диапазон которого составляет всего 10–100 градусов Цельсия.

ЛМ35

  • Работает в диапазоне напряжений от 4 до 30 вольт, что делает его непригодным для использования с микроконтроллерами на 3,3 вольта.
  • Температурный диапазон от -55 до 150 градусов Цельсия.
  • Точность с точностью до 0,5 градуса Цельсия.
  • Для считывания отрицательной температуры этому устройству требуется отрицательное напряжение смещения.

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

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

  • LM335 – данные о температуре пропорциональны градусам Кельвина.
  • LM34 — данные о температуре пропорциональны градусам по Фаренгейту.

Распиновка TMP36 и LM35

Оба устройства имеют три соединения и имеют одинаковые выводы.

Вы можете использовать эти устройства напрямую с чувствительным вольтметром для отображения температуры.И микроконтроллер, который имеет аналого-цифровой преобразователь (АЦП), такой как Arduino, также является отличным инструментом измерения.

Поскольку TMP36 обеспечивает как положительные, так и отрицательные показания температуры, не требуя отрицательного напряжения, я буду использовать его в своем эксперименте.

Плата TMP36 для Arduino

Вот подключение TMP36 к Arduino.

Обратите внимание на подключение 3,3-вольтового выхода Arduino к входу AREF (аналоговый опорный сигнал).Это сделано для уменьшения диапазона внутреннего АЦП Arduino, чтобы мы могли получить лучшее разрешение при наших измерениях.

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

TMP36 Код Arduino

В отличие от последних нескольких датчиков мы напишем собственный код для использования этого датчика. Это очень просто и не требует библиотек.

Вот код, который мы можем использовать для отображения температуры на последовательном мониторе:

<ВСТАВЬТЕ КОД TMP36>

Код очень простой, так как все, что мы делаем, это считываем аналоговое напряжение с датчика и преобразовываем его в температуру.

Главное, что следует отметить в этом скетче, это то, что мы не используем стандартные 5 вольт в качестве эталона для аналого-цифровых преобразователей в Arduino. Вместо этого мы используем напряжение, подаваемое на контакт AFEF (аналоговый опорный сигнал), то есть на контакт 3.3 вольта от внутреннего регулятора напряжения Arduino.

Если бы у вас было откалиброванное аналоговое напряжение чуть ниже 3,3 вольта, оно бы работало еще лучше. Другим способом повышения точности может быть измерение фактического напряжения AREF и использование этого значения для определения aref_voltage .

Мы считываем значение с аналогового входа и выводим значение 10-битного аналого-цифрового преобразователя на последовательный монитор. Затем мы вычисляем фактическое напряжение, которое мы считываем, и также печатаем его. Наконец, мы используем напряжение для определения температуры.

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

Загрузите скетч в Arduino и попробуйте. Когда я это сделал, я заметил, что температура поднялась, когда я взялся за датчик, тепла моего тела было достаточно, чтобы поднять ее.

TMP36 и LM35 — очень точные датчики температуры. Если вам требуется максимальная точность, то LM35 — лучший выбор, однако для большинства приложений TMP36 достаточно точен и имеет то преимущество, что может отображать отрицательную температуру, не требуя отрицательного напряжения смещения.

И если вам нужна точность, вы можете взглянуть на наш следующий датчик.

МСР9808

Во многих отношениях я оставил лучшее напоследок.

MCP9808 — это очень высокоточный датчик температуры, использующий шину I2C. Устройство можно перевести в «спящий режим» между показаниями, что делает его энергопотребление практически нулевым.

Я использовал модуль MCP9808 от Adafruit.

Устройство имеет следующие характеристики:

  • Диапазон от -40 до 125 градусов Цельсия.
  • Точность с точностью до 0,25 градуса Цельсия.
  • Работает в диапазоне напряжений от 2,7 до 5,5 В, что делает его подходящим практически для любого микроконтроллера или микрокомпьютера.
  • Использует шину I2C и имеет восемь выбираемых адресов. Базовый адрес 0x18.
  • Имеет внутренние подтягивающие резисторы I2C (10K).
  • Имеет программируемый выход предупреждения, который можно настроить на срабатывание при заданной пользователем температуре.
  • Выводит показания как в градусах Цельсия, так и в градусах Фаренгейта.

Распиновка MCP9808

Модуль формы Adafruit имеет следующие соединения:

  • VDD — это подключение питания.
  • GND — Земля.
  • SCL — часы I2C.
  • SDA — данные I2C.
  • Предупреждение — Программируемый выход предупреждения с открытым коллектором.
  • A0, A1, A2 — контакты выбора адреса I2C.

Модуль поставляется со штекерным разъемом Dupont, который можно припаять, если вы хотите использовать его на макетной плате без пайки.

MCP9808 Устройство для подключения Arduino

MCP9808 — это устройство I2C со встроенными подтягивающими резисторами 10 кОм, поэтому подключить его к Arduino очень просто.

Если вы хотите поэкспериментировать с выходом оповещения, вам потребуется использовать подтягивающий резистор или использовать внутренние подтягивающие резисторы Arduino. Я не буду использовать функцию оповещения в своих тестах.

MCP9808 Эскиз Arduino

Adafruit снова спасает положение благодаря библиотеке, что неудивительно, поскольку я использую модуль Adafruit. Их библиотека делает работу с MCP9808 очень простой. Найдите в Менеджере библиотек «MCP9080» и выберите Adafruit MCP9808 Library .

В отличие от предыдущих библиотек, эта не требует использования унифицированной библиотеки датчиков Adafruit.

После установки новой библиотеки откройте скетч mcp9808test , который поставляется вместе с ним

<ВСТАВЬТЕ ТЕСТ-СХЕМУ MCP9808>

Библиотека действительно упрощает работу с датчиком tsi advanced. Вам также потребуется загрузить библиотеку Arduino Wire, чтобы общаться по I2C, эта библиотека встроена в вашу среду разработки Arduino.

Эскиз начинается с загрузки библиотек и определения объекта, представляющего датчик.

Обратите внимание на комментарии в коде, иллюстрирующие, как изменить адрес I2C. Если ни один из контактов A0, A1 или A2 не переведен в ВЫСОКИЙ уровень, адрес датчика равен 0x18.

Скетч также устанавливает режим разрешения на максимальное значение, равное «3». Снова обратите внимание на комментарии, которые объясняют, как более высокие разрешения увеличивают время выборки сенсора.

Чтение температуры в градусах Цельсия или Фаренгейта так же просто, как вызов функций readTempC или readTempF .

Обратите внимание, как датчик усыпляется между показаниями. Это значительно снижает потребление тока, что делает этот датчик идеальным для приложений с батарейным питанием.

Загрузите скетч в Arduino, откройте последовательный монитор и наблюдайте за показаниями. Они очень точны. Еще раз я провел «пальцевый тест», чтобы посмотреть, как показания увеличиваются в ответ на тепло моего тела.

Если ваша конструкция требует высокоточного измерения температуры, вы действительно не ошибетесь, выбрав MCP9808.

Заключение

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

.

(градусы Цельсия x 1,8) + 32 = градусы Фаренгейта

Как мы видели, существует множество датчиков температуры для Arduino и других микроконтроллеров и микрокомпьютеров. Они различаются по типу интерфейса, диапазону температур, требованиям к напряжению и точности.

Независимо от области применения, вы обязательно найдете устройство, которое сделает работу быстро и недорого.

Довольно горячая вещь, если вы спросите меня!

 

Ресурсы

 

Код для этой статьи — в удобном ZIP-файле.

Статья в формате PDF — PDF-версия этой статьи, подходящая для печати и использования в вашей мастерской.

 

Родственные

Краткий обзор

Название статьи

Измерение температуры с помощью Arduino

Описание

В этой статье вы узнаете, как использовать пять различных датчиков температуры с Arduino.Научитесь использовать датчики температуры DHT22, AM2320, TMP36, LM35 и MCP9808.

Author:

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

Ваш адрес email не будет опубликован.