Ардуино термометр: Страница не найдена | АрдуиноПлюс

Содержание

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


Аналоговый термометр с Arduino

Компоненты:

  1. Arduino Nano R3 (аналог Arduino Uno, но имеет меньший размер) × 1
  2. Датчик температуры DS18B20 × 1
  3. Аналоговый вольтметр 0-5В DVC × 1

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

 

Руководство 

Шаг 1: Собираем все части

 

Шаг 2: Датчик температуры DS18B20

 

DS18B20 — это цифровой датчик, который точно измеряет температуру в диапазоне от -10 °C до + 85 °C. Это очень простой в использовании компонент. Имеет интерфейс One-Wire, поэтому нужно только подключить один провод. Основные характеристики: простота использования и точность.

Шаг 3: Аналоговый вольтметр постоянного тока 0-5В

 

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

Шаг 4: Как управлять вольтметром с Arduino

 

Сначала давайте посмотрим, как управлять вольтметром с Arduino. Мы подключаем положительную сторону вольтметра к цифровому выводу 9, а отрицательную – к GND. Arduino Uno не предлагает цифро-аналоговый преобразователь, и мы должны использовать один из выводов ШИМ, чтобы записать аналоговое значение на цифровой вывод Arduino. Цифровые контакты, поддерживающие ШИМ, имеют символ ~ рядом с ними.

Чтобы отправить значение вольтметру, мы используем команду analogWrite и записываем значение от 0 до 255. Если мы записываем 0, вольтметр показывает 0 В, а если мы записываем 255, вольтметр показывает 5 В.

Шаг 5: Построение аналогового термометра

 

Давайте теперь преобразовать вольтметр в термометр. Сначала нужно подключить датчик DS18B20. Мы подключаем контакт со знаком «–» к GND Arduino, контакт со знаком «+» к 5 В, а сигнальный контакт — к цифровому выводу 2. Вот и все.

Теперь предстоит работа с вольтметром. Для этого нужно открутить винты и снять металлическую пластину. Затем необходимо создать собственное изображение для измерительного прибора. Это можно сделать в любом графическом редакторе. Теперь все, что нужно сделать, — это распечатать картинку и приклеить её на место. Наш аналоговый термометр готов!

Шаг 6: Код проекта и тестирование

Для корректной работы нужна библиотека DallasTempera.

 

 

Если всё сделать правильно, то аналоговый термометр будет работать правильно.

Трёхзонный термометр на ардуино с индикацией пиковых температур. | DIY

Добрый день! В прошлых статьях мы уже разобрались как адресно собирать показания с нескольких датчиков температуры и выводить их на дисплей. Сегодня попробуем найти полезное применение полученным навыкам и разработаем трёхзонный термометр. К примеру это будет улица, дом и балкон, ну или любые нужные вам зоны. Проект можно масштабировать, ведь датчиков может быть и больше. Но просто показ температур мы делали и в прошлой статье, сегодня же усложним проект вычислениями и показом пиковых температур в каждой зоне. Это очень полезная функция, например когда с утра нужно узнать была ли ночью минусовая температура на улице или на балконе. Добавим в проект две кнопки, первая будет переключать показ данных на дисплее, а вторая будет сбрасывать показания пиковых температур на текущие. Также предусмотрим автоматический сброс пиковых температур раз в сутки.

Комплектующие:

  • аналог arduino nano
  • OLED-дисплей SSD1306
  • 3 датчика DS18B20
  • резистор 4,7 кОм
  • 2 резистора 10 кОМ
  • 2 кнопки
  • макетная плата

Подробности о работе с дисплеем, а также все необходимые библиотеки мы разбирали здесь. Дисплей, конечно, маловат для такого проекта, но другого под рукой нет и придется как то ужаться. Все о работе датчиков DS18B20 по шине 1-Wire, нужные библиотеки и скетч для считывания кода датчика мы разбирали здесь.

Трёхзонный термометр на ардуино с индикацией пиковых температур.

Дисплей подключаем к А4 и А5, так как только эти выводы могут работать с I2C и запитываем его от 3,3 В. Кнопки подключаем по схеме выше к D2 и D3, так как только эти выводы работают с прерываниями на arduino nano, но об этом позже. Датчики можно подключить к любому оставшемуся пину, я выбрал D4 и запитываем их от 5В, не забываем соединить +5В и информационный выход резистором 4,7 кОм. У меня получилась такая временная конструкция:

Трёхзонный термометр на ардуино с индикацией пиковых температур.Трёхзонный термометр на ардуино с индикацией пиковых температур.Трёхзонный термометр на ардуино с индикацией пиковых температур.

При включении, по умолчанию, на дисплей будет выводится текущая температура во всех трех зонах и названия этих зон. При нажатии первой кнопки будет происходить смена информации на более подробную по каждой зоне ( её название, текущая температура с точностью одного знака после запятой, минимальная и максимальная температура за период в целочисленном виде). Нажатие второй кнопки будет обнулять период за который фиксируется максимальная и минимальная температура, также предусмотрен автоматическое обнуление через сутки после включения или нажатия второй кнопки. В первом варианте скетча работа с кнопками была реализована стандартным способом, но так как скетч нагружен сбором информации, её обработкой и выводом, то выполнялся довольно долго и кнопки работали не совсем так как хотелось. Быстрое нажатие не переключало режимы, нужно было немного подержать кнопку, это связано с долгой работой скетча и не совпадением времени физического нажатия и программного опроса кнопки. Пропала даже необходимость задержки для устранения дребезга контактов кнопки. Получалось, что все работает, но не комфортно. Чтобы это устранить в окончательном варианте скетча добавим опрос первой кнопки в прерывании и именно поэтому нужно было подключать её к D2 или D3. Вторую кнопку решено было оставить как есть, срабатывание при удержании нам на руку, это будет как защита от случайного нажатия. Далее сам скетч с подробным описанием внутри:

Трёхзонный термометр на ардуино с индикацией пиковых температур.Трёхзонный термометр на ардуино с индикацией пиковых температур.Трёхзонный термометр на ардуино с индикацией пиковых температур.Трёхзонный термометр на ардуино с индикацией пиковых температур.Трёхзонный термометр на ардуино с индикацией пиковых температур.

Скачать скетч.

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

По умолчанию.

По умолчанию.

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

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

Второе нажатие, этот датчик побывал в стаканах.

Второе нажатие, этот датчик побывал в стаканах.

Третье нажатие, этот датчик также опускали в стаканы.

Третье нажатие, этот датчик также опускали в стаканы.

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

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

#diy #arduino #ардуино #электроника для начинающих #программирование #электротехника #своими руками #arduino nano #микроконтроллеры #технологии

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

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

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

127 термометров DS18B20.

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

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

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

В видео я измерил, какая же температура в чашке чая. Для этого я вскипятил чайник и налил кипяток в чашку. Вы думаете, наверное, что там тоже 100°C? А вот и нет там всего лишь 78°C. 

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


  
С +24°C до — 15°C температура опускалась целых 11 минут.
Поэтому я здесь ускорил процесс чтобы не долго не ждать.
Все примеры показанные в видео можно скачать по ссылкам в описании к видео.
Они хорошо прокомментированы и доступны для повторения даже людям далёким от программирования.

Дальше я расскажу про этот датчик и про примеры подробнее.
Каждый датчик  может работать с разрешением от 9 до 12 бит. Что это такое и на что влияет я расскажу дальше в уроке.
Измеряемый диапазон температур от -55°C до +125°C .
Точность датчика 0.5°C в диапазоне температур от –10°C до +85°C. В другом диапазоне точность меньше.
По умолчанию установлена температура в Цельсиях.
Для вывода температура на дисплей я использовал  НОКИА 5110. Я неоднократно использовал этот недорогой экранчик. Посмотреть можно в предыдущих видео.

Теперь давайте рассмотрим сам датчик DS18b20.

Датчик выпускается в различных корпусах, но самый распространённый это датчик в корпусе ТО-92. Он похож на транзистор поэтому не перепутайте.

Каждый такой датчик температуры имеет свой уникальный 64 битный код. Который позволяет обращаться к конкретному датчику если их много и все они подключены всего по одному проводу.
Вы можете использовать 127 термометров и подключить их всего на 1 пин контроллера Ардуино.

Выводы расположены так. 

Вывод данных надо соединить с выводом питания +5 вольт через резистор 4,7 кОм.
При таком подключении в неактивном состоянии на шине будет логическая единица, так как он будет притянут к + питания.
Сопротивление резистора надо выбирать из компромисса между сопротивлением используемого кабеля и внешними помехами и оно может измениться от 5,1 кОм до 1 кОм. Для кабелей с высоким сопротивлением жил надо использовать более высокое сопротивление, а если есть помехи – выбирать более низкое сопротивление и использовать кабель с более большим сечением провода.

Если вы применяете кабель «витая пара», то длина может быть увеличена да 300 метров!!!

Рассмотрим подключение к Ардуино.


Я подключил к пину 12 Ардуино, вы же можете подключить к любому. Не забудьте сменить номер в скетче, там везде прописан 12 вывод. Вывод GND надо подключить к выводу GND Ардуино. Вывод данных, надо подключить к пину Ардуино. +5 вольт подключается к 5 вольтам Ардуино.

Как я уже говорил соединение цифрового термометра DS18B20 производится по шине 1 WIRE. 
Для Ардуино разработана специальная библиотека, скачать её можно по ссылке в описании.
Она позволяет подключить до 127 датчиков всего по 1 проводу.
Можно работать и вообще без питания правда. Это называется метод Паразитного питания. Для этого вывод +5 вольт должен быть подключен к выводу GND.
 Измерять температуру в таком режиме можно будет только до +100°C, а не до +125°C.

Поговорим о температурном преобразователе DS18B20
Как я уже говорил вы можете установить разрешение 9, 10, 11 или 12 бит.
При этом время измерения и точность будет меняться.
Посмотрите таблицу.

По умолчанию стоит 12 бит. 
В видео рассмотрены скетчи из библиотеки 1WIRE. и много других примеров. Весь код хорошо закомментрирован, так что всё сразу понятно. Советую посмотреть.

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

Ардуино термометр & гигрометр с E-PAPER на nRF52832 — или о том, что забыли выпустить производители

Приветствую всех читателей Habr!!! В своей очередной статье речь снова пойдет о ARDUINO. Хочу поделится с Вами очередным своим проектом реализованном на микроконтролере nRF52832. Это датчик температу и влажности на sht20 c монохромным дисплеем на электронных чернилах(E-INK|E-PAPER), который является частью экосистемы MySensors.

Основной его функционал это мониторинг температуры и влажности в помещении, отправка данных на контролер умного дома или непосредственно на исполнительное устройство. Ну а дополнительным функционалом является как раз вывод данных с датчика sht20, сетевой информации и уровня заряда батареи на монитор. В моей реализации это именно прямое взаимодействие непосредственно с исполнительным устройством(контролер контуров системы отопления). Реализация неканоническая с точки зрения MySensors, мною добавлен функционал мастер-слейв режимов, типы сенсоров, привязка по воздуху. Так же в моей реализации изменена процедура инициализации транспортного уровня, тк логика MySensors не очень хороша для автономных девайсов. Но все это немного другая история, возможно достойная отдельной публикации, а пока статья о девайсе в традициях протокола MySensors.

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

версия на atmega 328

При презентации датчика в сообществе иногда ссылались на девайс компании Сяоми, мол это уже есть. Но есть небольшая разница, у Сяоми это показометр, в моем случае это датчик системы умного дома с функцией показометра. Зачем дисплей? Просто иногда хочется просто повернуть голову в направлении датчика и посмотреть на температуру в комнате :).


Датчик был реализован на двух платах, за основу схемы для дисплея была взята схема от распостраненных дисплеев Waveshare | Даташит. Правда позднее были внесены незначительные изменения. Мозгом датчика является чип nRF52832 в модульной реализации от HOLYIOT. Сами модули заслуживают отдельного внимания, это самая беспроблемная реализация в плане работы в Ардуино IDE. В устройстве использованы модули — YJ-16048.

За основу програмной реализации работы с диплеем был взят экземпл распостраняемый на сайте Waveshare Electronics. Правда и тут не обошлось без доработки.

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

Питание в датчике реализовано на двух батарейках cr2450, понижает до рабочих 3.3V микросхема TPS62745DSSR1 c довольно неплохими характеристиками | даташит. На данный момент можно уверенно сказать что работать даное устройство(описываемая версия) способно 1 год. Потребление в режиме deep sleep — ~ 25мкА(с тестовой программой). Среднее потребление в рабочем режиме ~ 9мА.

Проект является открытым, гербер фалы доступны на сайте ОпенХардВар, код программы и библиотека доступны по ссылке (гугл драйв) Почему не GitHub? Просто так получилось, в окончательной реазизации(v2) будет и там.

Отдельного разговора для решивших повторить этот девайс заслуживает тема конвертации символов нужных шрифтов в C массивы. Мой опыт это конвертация с помощью программы TheDotFactory. Процесс постараюсь описать с каринками 🙂

Процесс постараюсь описать с каринками 🙂

Абсолютно любой шрифт, вы ограничены только возможностями памяти nRf52.… И нет смысла хранить все символы, Если вам нужны только цифры, это очень хорошо экономит место.

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

Но и эту проблему удалось(см.код программы). В итоге получилось так:



В видео демонстрируется работа дисплея.

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

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

Пример запуска трехцветного дисплея:

Настоятельно рекомендуется(для желающих повторить) к прочтению моя тема на форуме .org по этому проекту(На английском). Если язык проблема то всегда с радостью помогу всем в чате(установка плат, работа с микроконтролерами nRF5 в среде arduino ide, советы по работе с протоколом mysensors — @mysensors_rus

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

На чтение 12 мин.

  • Цена: $13
  • Добрый день! Очередной обзор самодельного устройства из дешевых китайских электронных компонентов, в этот раз GSM-термометр. Как обычно, дёшево, себестоимость устройства примерно 850 ₽ или 13$. Сборка так же не составит труда для тех кто хотя бы пару раз в жизни держал паяльник 🙂 Заинтересовало? Прошу под «cut»!

    Начнём с технического задания, устройство должно:

    1. Отслеживать температуру системы отопления, уведомлять смс сообщением или голосовым вызовом при превышении или понижении температуры ниже заданных границ.

    2. Отслеживать наличие или отсутствие сети 220В, уведомлять при отсутствии или восстановлении.

    3. Работать автономно не менее 24 часов.

    4. Полностью управляться через смс сообщения.

    Для сборки нам понадобится:

    1. Arduino Nano v3 ATmega328P — 180 ₽.

    2. GSM модуль SIM800L — 240 ₽.

    3. Контроллер заряда-разряда для Li-ion аккумулятора TP4065 — 30 ₽.

    4. Датчик DS18B20 — 80 ₽.

    5. Светодиод RGB с общим анодом — 1шт * 10 ₽.

    6. Резисторы 2,2 кОм, 3,3 кОм, 4,7 кОм, 20 кОм — 5 ₽.

    7. Выключатель — 15 ₽.

    8. Корпус для PowerBank 4×18650 — 190 ₽.

    9. Аккумулятор 18650 — 190 ₽.

    10. Зарядное устройство 5В 1,5А — из личных запасов.

    Не обязательно, но очень желательно:

    11. Полевой транзистор IRLML6402 — 5 ₽.

    12. Диоды SS26 — 5 ₽.

    13. GSM антенна — 80 ₽.

    Могу предположить что возникнут вопросы о работе устройства в сети GSM. Почему бы не использовать GPRS/3G/4G? Во-первых GSM — надёжно, во-вторых есть места очень плохим покрытием, при котором голосовая связь и смс сообщения ещё работают но GPRS-трафик передаётся не стабильно. Поэтому выбор пал именно на этот стандарт. В плане надёжности отдаю предпочтение Arduino, хотя устройство можно было бы собрать и на ESP8266, но в последней не могу быть уверен на все 100%.

    За основу GSM-термометра была взята GSM-сигнализация из этого обзора, которая после «финальной» прошивки в течение года отработала без сбоев. Из прошивки «выпилено» всё лишнее и добавлен датчик температуры DS18B20. Диапазон измерения температуры датчика от -55°C до 125°C, даташит на русском языке можно взять по ссылке.

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

    Схема устройства.

    Потроха.

    Внешний вид.

    Используемые порты Arduino Nano v3
    D5 — шина данных датчика температуры DS18B20 — желтый провод.

    D6 — подключен к RST входу модема, для перезагрузки в случае потери сети.

    D7 — подключен к делителю напряжения от внешнего источника питания +5В. Верхнее плечо 2,2 кОм, нижнее 3,3 кОм.

    Делитель напряжения

    D8 — модем TX

    D9 — модем RX

    D10 — красный светодиод

    D11 — синий светодиод

    D12 — зеленый светодиод

    Прошивка
    Программное обеспечение XLoader для прошивки Arduino Nano/Uno берём тут или на гугл диске вместе с прошивкой. Прошивку в виде hex — файла для Arduino Nano/Uno берём тут. Исходник прилагается.

    Инструкция по прошивке

    — подключаем Arduino в USB-порт

    — выбираем нужный hex-файл

    — выбираем нужный тип Arduino Nano или Uno

    — выбираем COM порт, который создался при подключении Arduino к USB

    — скорость 57600

    — нажимаем Upload

    Для тех кто будет шиться из исходника
    В файл SoftwareSerial.h (C:Program Files (x86)ArduinohardwarearduinoavrlibrariesSoftwareSerialsrcSoftwareSerial.h) необходимо внести изменения

    было так:



#define _SS_MAX_RX_BUFF 64

стало так:



#define _SS_MAX_RX_BUFF 192

Команды управления
Внимание! Команды выделенные жирным шрифтом могут быть выполнены только с основного номера, так как отвечают за конфигурацию устройства. Команды можно отправлять через смс сообщения или вводить в командной строке монитора порта 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 — вывод в монитор порта текущей конфигурации устройства.

Световая индикация
Светится синим — температура ниже или равна нижней границе контроля, произведено оповещение, оповещение включено.

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

Светится красным — температура выше или равна верхней границе контроля, произведено оповещение, оповещение включено.

Мигает синим — температура ниже или равна нижней границе контроля, оповещение отключено.

Мигает зелёным — температура между нижней и верхней границей, оповещение отключено.

Мигает красным — температура выше или равна верхней границе контроля, оповещение отключено.

Нет индикации — температура между нижней и верхней границей, оповещение включено, включен режим LedOff. При изменении температуры ниже или выше допустимых пределов будет включена световая индикация и произведено оповещение.

Пусконаладочные работы или как этим пользоваться?!

Основным моментом после сборки является проверка EEPROM памяти устройства, для этого необходимо выполнить из консоли команду MemTest. Для доступа к консоли можно использовать Putty или монитор порта в Arduino IDE. В настройках необходимо указать нужный COM-порт и скорость порта 9600.

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

Лог консоли — MemTest



memtest
EEPROM: 1024B
Test passed.
GSM Temperature Alarm 2018.12.03-01
Deleting eepromconfig data.
Load default eepromconfig data.
Read eepromconfig:
RingTime: 40
Test: 0
Led: 1
Guard: 1
NetCheckTime: 0
TempCheckTime: 10
LowTemp: 10
HighTemp: 70
WatchPower
Mode: 1
Time: 0
ModemID: Autodetect
Delete balance data.
Load default balance data.
Balance number: #100#
Length to return: 22
Deleting phone data.
Load default phone data.
Read array phone:
№ -> Phone -> s -> r -> p -> i
1 -> -> 0 -> 0 -> 0 -> 0
2 -> -> 0 -> 0 -> 0 -> 0
3 -> -> 0 -> 0 -> 0 -> 0
4 -> -> 0 -> 0 -> 0 -> 0
5 -> -> 0 -> 0 -> 0 -> 0
6 -> -> 0 -> 0 -> 0 -> 0
7 -> -> 0 -> 0 -> 0 -> 0
8 -> -> 0 -> 0 -> 0 -> 0
9 -> -> 0 -> 0 -> 0 -> 0
10 -> -> 0 -> 0 -> 0 -> 0
Detected ModemID: 2
Guard ON at boot.
Temperature: 47.81

Для дальнейшей настройки необходимо зарегистрировать основной номер, с которого в дальнейшем будет производиться настройка, для этого достаточно совершить голосовой вызов на номер устройства. Номер с которого был совершен вызов будет добавлен в первую ячейку памяти устройства, так же этому номеру автоматически будут добавлены параметры «s», «r», «p», «i», которые в случае необходимости можно изменить командой EditMainPhone.

Лог консоли — регистрация основного номера



Ring from: +7905xxxxxxx
Primary phone: +7905xxxxxxx
GSM Temperature Alarm 2018.12.03-01
Read eepromconfig:
RingTime: 40
Test: 0
Led: 1
Guard: 1
NetCheckTime: 0
TempCheckTime: 10
LowTemp: 10
HighTemp: 70
WatchPower
Mode: 1
Time: 0
ModemID: Autodetect
Balance number: #100#
Length to return: 22
Read array phone:
№ -> Phone -> s -> r -> p -> i
1 -> 7905xxxxxxx -> 1 -> 1 -> 1 -> 1
2 -> -> 0 -> 0 -> 0 -> 0
3 -> -> 0 -> 0 -> 0 -> 0
4 -> -> 0 -> 0 -> 0 -> 0
5 -> -> 0 -> 0 -> 0 -> 0
6 -> -> 0 -> 0 -> 0 -> 0
7 -> -> 0 -> 0 -> 0 -> 0
8 -> -> 0 -> 0 -> 0 -> 0
9 -> -> 0 -> 0 -> 0 -> 0
10 -> -> 0 -> 0 -> 0 -> 0
Detected ModemID: 2
Guard ON at boot.
Temperature: 47.88

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

Лог консоли — настройка температуры



lowtemp:25
LowTemp is: 25
hightemp:50
HighTemp is: 50
TempCheckTime:5
TempCheckTime is: 5
Temperature: 47.94

Проверяем настройки командой info из консоли и через смс сообщение.

Лог консоли — вывод команды info



info
Temperature: 47.81
Current temperature: 47.81
Low: 25
High: 50
TempCheckTime: 5 min
Guard ON at boot.

СМС сообщение — вывод команды info

Основные настройки закончены, устройство готово к работе. В случае необходимости можно добавить ещё не более девяти номеров оповещения. Так же номера можно дублировать, при этом со всех дублей при добавлении будут автоматически сняты все признаки кроме «r» — оповещение голосовым вызовом.

Оповещение.

При изменении температуры выше или ниже заданных пределов, на номера с признаком «s» — будут отправлены смс сообщения с информацией о текущей температуре. Далее устройство совершит голосовые вызовы на все номера с признаком «r» и перейдёт в режим наблюдения с соответствующей световой индикацией. Следующее оповещение будет произведено только после нормализации температуры и последующим уходом температуры за указанные пределы. В случае отключения внешнего питания устройства на все номера с признаком «p» будет отправлено соответствующее уведомление. Номера с признаком «i» будут получать информационные сообщения о включении или отключении оповещения (следить или следить и оповещать), и номера телефона с которого было произведено действие.

На этом пока всё. Спасибо за внимание! 🙂

Беспроводной цифровой термометр для смартфона

Простой Bluetooth термометр для Android на Arduino

В этой статье я расскажу как сделать простой беспроводной термометр, который может связываться с Andrond — смартфоном по каналу Bluetooth и отображать температуру на экране телефона в специальном приложении. Для изготовления такого термометра вам понадобится плата Arduino (например Arduino Uno), дешевый китайский модуль Bluetooth, и популярный дешевый термодатчик LM35.

Принципиальная схема устройства

Как видим, устройство питается от батареи напряжением 9 В, а Bluetooth модуль типа HC-05 подключается к контрактам CON1.

Смартфон с Android

Для работы с термометром на телефон нужно установить приложение — монитор temperaturemonitoring.apk. Программа создана с помощью веб-приложения MIT App Inventor. Если программа запущена на смартфоне, то данные с термометра принимаются по Bluetooth и отображаются на экране телефона.

Arduino Uno

Ардуино — это плата разработки, основанная на микроконтроллере AVR ATmega328P. На плате есть 6 аналоговых входов и 14 цифровых портов ввода/вывода. Микроконтроллер имеет 32 кб Flash памяти, 2 кб ОЗУ и 1 кб энергонезависимой памяти данных EEPROM. Плата поддерживает интерфейсы связи UART, SPI и I2C. Плата может работать на частоте 16 МГц.

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

Bluetooth модуль типа HC-05 — это простой в использовании модуль, реализующий последовательный порт через Bluetooth (SPP), предназначенный для простой реализации Bluetooth соединения в различных приложениях на микроконтроллерах. Последовательный порт через Bluetooth представляет собой протокол связи посредством модуляции Bluetooth V2.0 + EDR (улучшенная скорость передачи данных) со скоростью 3 Мбит/с в диапазоне частот 2,4 ГГц. Модуль использует ядро CSR Bluecore 04 — одночиповую систему Bluetooth основанную на технологии CMOS и использует адаптивную функцию скачкообразной перестройки частоты. Пароль автоматического соединения по умолчанию — 1234.

Термодатчик LM35

LM35 — это специальная прецизионная микросхема, выходное напряжение которой линейно и пропорционально изменению температуры (в градусах по Цельсию). LM35 имеет точность ±1/4 ℃ при температурах, близких к комнатной, и ± 3/4 ℃ в диапазоне температур от -55 до + 150 ℃. Масштабный коэффициент составляет 10 10 мВ / ℃. Вывод Vout датчика температуры LM35 подключен к аналоговому входу A0 Arduino Uno. Микроконтроллер Arduino обрабатывает это напряжение, и программа Temp.ino в MCU, вычисляет эквивалентную температуру. Значение температуры предается модулю Bluetooth HC-05 по последовательному интерфейсу.

Ка? ?оказано на схеме, контакты RX и TX модуля Bluetooth подключаются к выводам TX и RX Arduino Uno. Модуль Bluetooth HC-05 передает данные о температуре на с??ртфон через интерфейс Bluetooth. Приложение Android получает эти данные и выводит их на экран телефона. Для Для того, чтобы всё ето заработало, необходимо произвести сопряжения телефона и модуля Bluetooth.

Софт

Для прошивки платы Arduino вам потребуется оболочка Arduino IDE software. Это свободно распространяемое программное обеспечение скачивается на официальном сайте по следующей ссылке:
https://www.arduino.cc/en/Main/Software.

  1. Скачайте и установите программу Arduino
  2. Подключите плату Arduino к одному из USB портов компьютера.
  3. Запустите программу Arduino
  4. В программе выберите правильный COM потрт, созданный в момент подключения платы Arduino.
  5. Загрузите файл ? исходными кодами прошивки в программу Arduino (в терминах Ардуино такая программа называется «Sketch» (Скетч), ити «эскиз»), откомпилируйте и загрузите прошивку в контроллер платы

Скачать архив с программой для смартфона и скетчем прошивки для Ардуино

Сборка и тестирование

Соберите устройство согласно схеме. Проверка работоспособности очень проста. Установите на смартфона файл TemperatureMonitoring.apk. Подайте питание на передатчик (плату Ардуино и модуль Bluetooth). Перейдите в настройки телефона, в разделе доступных Bluetooth устройств найлите наш модуль и произведите соединение с ним, введя пароль 1234 (телефон отобразит устройство как HC-05). После успешного соединения запустите установленную программу TemperatureMonitoring и оно начнет отображать данные температуры, полученные со стороны передатчика:

Автор проекта Shibendu Mahata, Jadavpur University, Индия.
Источник — журнал Electronics For You (Индия).
Перевод MBS Electronics, 07.2018

Visits: 1050 Total: 322907

Цифровой термометр с использованием LM35 и Arduino

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

1)При температуре выше 35 градусов Цельсия загорается зеленый светодиод.

2) Когда температура ниже 35 градусов Цельсия, загорается красный светодиод.

3)Потенциометр 10 кОм используется для настройки контрастности ЖК-экрана 16×2.

Основным используемым компонентом является датчик температуры (LM35).

LM35

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

LM35 имеет три контакта:

PIN 1 : Vcc, это входной контакт (5v)

PIN 2 : Vout, мы получаем выход (он должен быть подключен к аналоговому контакту arduino)

PIN 3 : GND , он используется для заземления

CIRCUIT

Здесь я использовал Arduino и немного программирования на C для этого проекта. Выполните соединения, как указано ниже:

Выберите плату в IDE как «Arduino Uno» и загрузите указанный код.

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

ТЕМПЕРАТУРНАЯ ФОРМУЛА LM35

Выходное напряжение LM35 прямо пропорционально градусам Цельсия, а 10 милливольт соответствуют 1 градусу Цельсия.

Примечание: LM35 может измерять температуру от -50 до 150 градусов Цельсия.

Разрешение аналоговых выводов Arduino составляет от 0 до 1023, т. е. при входе +5 В он считает до 1023.

Максимальное входное напряжение LM35 составляет 1500 милливольт (при максимальной температуре 150 градусов Цельсия) или 1,5 В (максимальное выходное напряжение).

Таким образом, при напряжении 1,5 В количество аналоговых выводов равно (1,5/5)*1023 = 306.9.

Теперь новое разрешение LM35 равно 306,9/150 = 2,046. Этот аналоговый вывод насчитывает 2,046, что соответствует изменению температуры LM35 на 1 градус Цельсия.

ОКОНЧАТЕЛЬНОЕ ВЫПОЛНЕНИЕ

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

Здесь я использовал 5 В Arduino для питания датчика (LM35) и ЖК-дисплея. Вы также можете использовать отдельный источник питания 5 В от батареи.

Когда температура выше 35 градусов Цельсия, загорается зеленый светодиод, как показано ниже:

Когда температура ниже 35 градусов Цельсия, загорается красный светодиод, как показано ниже:

Вы также можете смоделировать онлайн: https:/ /www.tinkercad.com/things/ddvnnsV6y88

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

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

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

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

Выберите следующий набор проектов Arduino, которые вы хотите изучить, в Electronicshub : Проекты Arduino »

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

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

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

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

Принципиальная схема

Необходимое оборудование

Описание компонента

ЛМ35

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

При комнатной температуре точность составляет +/- 0,25 0 С. Выходное напряжение LM35 изменяется на 10 мВ/ 0 С, т.е. на каждые 1 0 С изменения температуры выходное напряжение изменяется на +/ — 10 мВ. LM35 представляет собой ИС с 3 выводами, и рисунок, изображающий выводы, показан ниже.

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

Схема цифрового термометра

LM35 — датчик температуры, используемый в этом проекте. Выход датчика прямо пропорционален температуре, но в аналоговой форме. Следовательно, выход LM35, то есть контакт 2, подключен к аналоговому входу A0 Arduino.

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

Для управления контрастностью дисплея контакт 3 ЖК-дисплея подключается к контакту потенциометра 10 кОм. Другие клеммы POT подключены к источнику питания и земле. Контакты 15 и 16 ЖК-дисплея используются для включения подсветки ЖК-дисплея.

Подключаются соответственно к питанию и земле. Чтобы отобразить информацию на ЖК-дисплее, нам нужны 4 вывода данных ЖК-дисплея. Контакты 11–14 (D4–D7) подключены к контактам 5–2 Arduino.Контакты 4, 5 и 6 (RS, RW и E) ЖК-дисплея являются контактами управления.

Контакт 4 (RS) ЖК-дисплея подключен к контакту 7 Arduino. Контакт 5 (RW) соединен с землей. Контакт 6 (E) подключен к контакту 6 Arduino.

Рабочий

В этом проекте разработан высокоточный цифровой термометр. Он состоит из простых компонентов, таких как Arduino, датчик температуры LM35 и ЖК-дисплей. Работа схемы очень проста и объясняется ниже.

Датчик температуры i.е. LM35 постоянно контролирует температуру в помещении и выдает аналоговое эквивалентное напряжение, прямо пропорциональное температуре.

Эти аналоговые данные передаются Arduino через A0. В соответствии с написанным кодом Arduino преобразует это аналоговое значение напряжения в цифровые показания температуры. Это значение отображается на ЖК-дисплее.

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

Код

Примечание

  • Этот проект можно использовать для контроля температуры в помещении в диапазоне от -55 0 C до +150 0 C с очень точными показаниями.
  • Используемый датчик температуры (LM35) представляет собой прецизионный стоградусный датчик температуры. Если показания температуры требуются в градусах Фаренгейта, то можно использовать либо датчик температуры Фаренгейта (LM34), либо просто изменить код для преобразования градусов Цельсия в градусы Фаренгейта.
  • Термометр может питаться от батареи 9 В, что делает его портативным устройством, которое можно легко перемещать между разными комнатами или местами.
  • Может использоваться в транспортных средствах для определения обледенения дороги.
  • На основании показаний термометра системы кондиционирования, отопления и охлаждения могут управляться как вручную, так и автоматически.

Бесконтактный термометр на базе 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-project-hub/contactelless-thermometer/blob/main/contactless_Thermometer.txt

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

Калибровка температуры:

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

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

Установите «calib_factor» на 1,00 и «alert_temp» на 37,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 и ЖК-дисплея.


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

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

Портфолио

Link- HTTPS://www.leanneleCtronicsindia.com/team/nagashree-r-nadig

см. Также —

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

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

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


Как сделать своими руками бесконтактный термометр с Arduino « osoyoo.com

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

В этом проекте мы расскажем вам, как сделать простой бесконтактный термометр с Arduino и инфракрасным датчиком температуры MLX.

Детали и принадлежности:

  • Базовая плата OSOYOO (любая плата, совместимая с UNO, Nano, Mega2560) x 1 шт.
  • MLX Инфракрасный датчик температуры.
  • ЖК-экран OSOYOO I2C 16×2
  • Держатель батареи 9 В (дополнительно)

Аппаратное соединение:
MLX Инфракрасный датчик температуры и ЖК-дисплей I2C 16×2 обмениваются данными с Arduino через шину I2C.Линия данных
I2C имеет два контакта SDA и SCL.
В платах UNO и MEGA2560 SCL является крайним левым контактом в ряду цифровых контактов (четвертый контакт слева от D13), а SDA находится рядом с контактом SCL (третий контакт слева от D13). В UNO A4 также является выводом SDA, а A5 также является выводом SCL.

MLX
Основная плата
ПДД ПДД
СКЛ СКЛ
ВКЦ
Земля ЗЕМЛЯ
ЖК-экран 16×2 Основная плата
ПДД А4
СКЛ А5
ВКЦ
Земля ЗЕМЛЯ

Установка программного обеспечения:

Шаг 1) Загрузите библиотеку LiquidCrystal I2C с https://osoyoo.com/wp-content/uploads/samplecode/LiquidCrystal_I2C.zip 

Затем в верхнем меню IDE -> Sketch -> Include Library -> Add .Zip library добавьте указанный выше файл в библиотеку IDE.

Шаг 2) Добавьте библиотеку Adafruit_MLX
В верхнем меню IDE -> Sketch -> Include Library -> Manager Libraries , затем в поиске по ключевым словам «Adafruit_MLX» вы найдете библиотеку Adafruit_MLX, нажмите «Установить», чтобы загрузить эту библиотеку в вашу IDE.

Шаг 3) Загрузите образец эскиза с https://osoyoo.com/driver/diythermometer.ino

Загрузите приведенный выше эскиз в базовую плату.

Теперь ЖК-дисплей 1602 будет отображать температуру объекта, находящегося перед датчиком MLX.

См. следующий рисунок;

Как вы можете собрать свой собственный самодельный инфракрасный термометр с помощью Arduino

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

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

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

Как работает инфракрасный термометр

Используется в медицине и сельском хозяйстве или для измерения температуры оборудования или устройств.

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

Источник: AFP

Принцип действия инфракрасного термометра

Температура человека составляет от 36ºC до 37.2ºС. Ниже этого диапазона вы можете страдать от гипотермии, а выше — лихорадки.

Так как же инфракрасный термометр может узнать, что температура вашего тела 36ºC?

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

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

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

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

Технические характеристики MLX

Название MLX относится к семейству инфракрасных термометров. В этом семействе есть несколько моделей.Они обозначаются трехбуквенным суффиксом.

MLX диапазон температур и точность

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

Модель инфракрасного термометра MLX BAA поддерживает диапазон температур от -40°C до 125°C для температуры окружающей среды и от -70°C до 380°C для температуры поверхности объектов.

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

Температура окружающей среды (Ta) представлена ​​по оси X. Ось Y представляет температуру объекта (To).

Как подключить инфракрасный термометр MLX к Arduino

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

Термометр MLX имеет 4 контакта:

1. VIN: контакт питания. Это будет зависеть от регулятора напряжения, но обычно вы можете подавать 5В или 3В3.

2. GND: контакт заземления или 0 В.

3. SCL: вывод тактового сигнала интерфейса I2C.

4. SDA: вывод сигнала данных интерфейса I2C.

Для подключения инфракрасного термометра к Arduino следуйте приведенным ниже электрическим схемам.

Как запрограммировать инфракрасный термометр MLX на Arduino

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

Это очень простая библиотека, которая позволяет получить температуру в градусах Цельсия и Фаренгейта. Откройте диспетчер библиотек, найдите MLX и установите версию Adafruit.

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

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  ЖК-дисплей (0x3F, 20, 4); // УСТАНОВИМ I2C-адрес
byte DegreeSign[8] =                // код для создания символа степени
 {
 0b00111,
 0b00101,
 0b00111,
 0b00000,
 0b00000,
 0b00000,
 0b00000,
 0b00000
 };
недействительная установка ()
{
 lcd.init();
 ЖК-подсветка(); // включает подсветку.ЖК.очистить(); // Очищает ЖК-дисплей
 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.print("Температура.					

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

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