Usb термометр своими руками

USB термометр схема

В качестве датчика применена крайне интересная идея, а именно использование старого отечественного транзистор КТ315В, изменение напряжения на КТ315В составляет примерно 2,3 мВ на каждые 10°C.

Микроконтроллер PIC18F2550 имеет встроенный десяти битный АЦП. Схема питается от USB порта компьютера.

Калибровка датчиков схемы осуществляется в утилите VB, она имеется в архиве вместе с прошивкой на микроконтроллер . При запуске утилиты VB в первый раз он создает «cal.txt». Файл имеет 2 номера, которые сохраняют показаний датчиков на 0 до 100 по Цельсию. Это требуется из-за того, что у каждого температурного датчика свое значение выходного напряжения. Запись калибровочных данных осуществляется следующим образом: Необходимо опустить датчик температуры в воду со льдом и нажать кнопку 0°C. После чего утилита обновит файл cal.txt файл с новым значением сигнала датчика. Затем опустите датчик в кипящую воду, нажмите кнопку 100 ° C для записи данных в файл. Таким образом можно настроить любой транзистор в качестве температурного датчика, главное чтоб его коэффициент усиления был не менее 100.

Программное обеспечение написано в среде разработке Visual C++ и применение библиотеке HID Windows DDK. Температура выводится на дисплей в градусах Цельсия. Утилиту можно свернуть в трей. Если устройство не подключено или работает с ошибками то цвет температуры в трее будет серый, если температура ниже нуля градусов, то синий, если выше, то красный. Утилиту вместе с прошивкой микроконтроллера и чертежом печатной платы вы можете скачать по ссылке выше.

Источник

USB термометр своими руками

Давно у меня родилась идея сделать USB термометр, однако нужды не было, и идея покоилась. Както у друга в гостях заметил пару USB флешек. Одна была дохлая и досталась мне нахаляву. С недавнего времени постоянно за ними охочусь, т.к. в большинстве случаев сгорает контроллер, а NAND flash живая + SMD кварц. А такое на дороге не валяется.
Так вот, с этой флешки я поимел: SMD кварц на 12 МГц, USB штекер на плату и маленький корпус, а также развитие идеи USB термометра.

В течении недели были разработаны:
1. Схема устройства;
2. Разводка печатной платы под имеющийся корпус;
3. Программа для МК ATtiny45;
4. Программа-хост (даллее просто хост) для приема данных от МК.

Как видно из схемы, основа устроуства — МК ATtiny45. Его выбор обуславливается необходимостью минимизировать размеры печатной платы и наличием у него 4 Кбайт флеш памяти, нужных для реализации USB и работы с DS18B20.
Датчик (DS18B20) работает в режиме паразитного питания, т.е. не требует отдельного подвода питания, а подключается к устройству 2 проводами. Входная цепь USB — стандартная, рекомендованная разработчиками avrusb, за исключением того, что подтягивающие резисторы в моем варианте включены после защитных на 68 Ом.

Программа для МК разработана в среде AVR Studio с использованием GCC на основе библиотеки avrusb и исходников некоего Martin’a Thomas’a для DS18B20 (времени не было самому писать). Спопсоб взаимодействия хоста с устройством реализован в виде отправки устройству условного кода (в соответствии с которым устройство будет выполнять требуемые операции), а также запроса пакета данных со значением текущей температуры. Так как размер отправляемых и принимаемых данных мал, то был выбран future репорт (тип пакета данных) ввиду простоты работы с ним.
Если вы захотите исправить программу для МК, пожалуйста, перед этим внимательно прочтите документ USBID-License.txt, находящийся в папке usbdrv.
Там содержится ряд правил и ограничений по использованию библиотеки avrusb.
Программа-хост написана в Borland Delphi 7 с использованием библиотеки компонентов JEDI-VCL, в состав которой входит компонент TJvHidDeviceController, реализующий просой доступ к HID совместимым USB устройствам. Чтобы сделать использование устройства максимально удобным было решено реализовать хост в виде значка со значением температуры в ситемном трее (возле часов) без какого-либо графического интерфейса, за исключением контекстрого меню по нажатию правой кнопки мыши по значку в трее.
У меня WinXP SP3, на других ОС программу не пробывал.

Читайте также:  Аппарат для сварки пластика бампера своими руками

В общем, хост работет по следующему алгоритму:
1. По таймеру (раз в 2 секунды) запускаем поиск нашего девайса. Критерии поиска — текстовые имена производителя (vendor) и устройства (product);
2. Принимаем информацию от устройства с многочисленными проверками на ошибки. Если таковые возникают — ставим значек «NA» — no access;
3. Отдаем команду чтения температуры из датчика. Ждем;
4. Отдаем команду начала измерения температуры;
5. Возврат к пункту 1 через 2 сек.

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

Источник

Радиолюбитель

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

  • Алексей на Расчет фильтров нижних и верхних частот
  • ДЕМЬЯН на Регулируемый блок питания 0-12 В на транзисторах
  • ДЕМЬЯН на Регулируемый блок питания 0-12 В на транзисторах
  • Pit на Компьютер – осциллограф, генератор, анализатор спектра
  • Владислав на Новогодние схемы

Радиодетали – почтой

USB термометр на микроконтроллере ATmega8

Конкурс начинающих радиолюбителей
“Моя радиолюбительская конструкция”

USB термометр на микроконтроллере ATmega8

Схема и программное обеспечение простого USB термометра на микроконтроллере ATmega8, который может собрать своими руками и начинающий радиолюбитель

Конкурсная конструкция начинающего радиолюбителя:
“USB термометр на микроконтроллере ATmega8″

Здравствуйте уважаемые друзья и гости сайта!
Представляю на ваш суд вторую конкурсную работу.
Автор конструкции – Григорьев Илья Сергеевич.

USB термометр на микроконтроллере ATmega8

Всем добрый день! Захотелось мне собрать термометр для того, чтобы знать температуру или дома или за окном. Сторона у меня солнечная и обычный термометр очень врет, нагреваясь.
Стал рыть интернет. Как всегда много ненужного, слишком сложного, затратного.
Наконец, я нашел схему по душе, по которой и стал делать ЮСБ термометр.


Для сборки нам понадобятся:
♦ МС Атмега 8 и кроватка для нее на 28 ног
♦ Датчик температуры DS18B20
♦ Резисторы(у меня 0.5Вт):
— 10к
— 4,7к
— 68ом *2шт
— 1,5к
— 200ом
♦ Кондеры
— 22пФ *2шт
— 100мкФ на 16В электролит
♦ 2 стабилитрона на 3.6В
♦ Кварцевый резонатор 12MHz
♦ Светодиод
♦ Кусок одностороннего текстолита 5*5см

Начинаем все с разметки на текстолите, потом вырезаем
Кстати, раньше я долго мучился вырезанием нужных кусков канцелярским ножиком, было это долго, муторно… недавно я заказал на ebay отрезные алмазные круги для дремеля. За секунду…вввжик и отрезано!

10штук вот таких кругов 100 рублей (для поиска- 10X 20mm Emery Diamond Coated Double Side Cutting Discs with 2 Joint Lever).

Затем, печатаем на журнале схему, потом утюгом нагреваем, далее отмачиваем:


Потом травим, оттираем тонер, сверлим:


И потом начинаем собирать:


Atmega 8-16PU в кроватке:


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


Далее я взялся за датчик. Я решил сделать 2 датчика. Первый будет короткий и находиться в комнате. Второй я сделаю длинным и выставлю его на улицу.


Вставляем датчик в разъем, согласно распиновке.

Теперь нам надо прошить Атмегу. Берем ранее изготовленный мной программатор на фт232рл и заливаем прошивку.
В SinaProg нам надо выставить фьюзы:


ОБЯЗАТЕЛЬНО! Перед подключением проверяем плату на наличие КЗ.

Читайте также:  Высокий хвост с локонами своими руками

Вставляем плату в юсб и у нас сразу же появляется неизвестное устройство:


Заходим в диспетчер устройств, находим неизвестное устройство и обновляем дрова.
Во время установки появится окно, где выбираем – “Все равно установить этот драйвер”
После этого в диспетчере устройств появится новое устройство:


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

Если начнет появляться многократно ошибка unable to write to C:/temp/USBThermometer_config.ini то заходим на диск С, включаем видимыми все папки и если есть папка temp, то создаем там блокнот, называем его USBThermometer_config и меняем ему расширение на .ini . Если нет папки, то создаем сначала ее. После этого у меня ошибка исчезала. Если папку создавали, то чтобы она не мешала можно скрыть ее.

Программа простая, понятная.
Основное окно:


Мини-окно, можно использовать как гаджет:


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

Даташит датчика температуры DS18B20 на русском:

Скачать даташит DS18B20 (1.1 MiB, 1,743 hits)

Скачать схему термометра (56.9 KiB, 1,810 hits)

Плата термометра в формате LAY:

Скачать плату термометра (31.3 KiB, 1,480 hits)

Прошивка микроконтроллера HEX:

Скачать прошивку (5.6 KiB, 1,709 hits)

Программа на компьютер +ini:

Скачать программу +ini (443.5 KiB, 2,205 hits)

Скачать драйвера (26.9 KiB, 1,539 hits)

Уважаемые друзья и гости сайта!

Не забывайте высказывать свое мнение по конкурсным работам и принимайте участие в обсуждениях на форуме сайта. Спасибо.

Источник

Компактный бесконтактный ИК-термометр своими руками

Atmel ATmega328P

ThermoPen – так автор назвал результат своей выпускной работы по физике в начале 2021 года. Целью данного проекта было создание компактного и точного бесконтактного термометра (Рисунок 1). Прибор был разработан, в частности, для проверки перегрева электронных компонентов на печатной плате и для устранения общих неисправностей. Благодаря компактным размерам (термометр выполнен в форме ручки), он пользовался широким спросом среди преподавателей и студентов, имеющих дело с электроникой.

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

Таким образом, была разработана миниатюрная печатная плата, содержащая микроконтроллер (МК) ATmega328P (тот же МК, что установлен на платах Arduino Nano/Uno), схему питания (повышающий преобразователь напряжения) и схему зарядки Li-Ion аккумулятора. Все проектные файлы (САПР KiCad) доступны для скачивания в разделе загрузок и в репозитории на сайте github.com [1].

Рисунок 1. ThermoPen – компактный ИК-термометр в форме ручки.

Отличительные особенности ИК-термометра:

  • OLED дисплей, на котором отображается температура объекта, температура окружающей среды, максимальная и минимальная температура объекта;
  • Звуковая индикация;
  • Активация нажатием одной кнопки;
  • Работа от Li-Ion аккумулятора, встроенная схема зарядки;
  • Лазерный светодиод, действующий как указатель.

Принцип работы

Перед сборкой ИК-термометра важно понять, как он устроен, и как работает. Блок-схема ИК-термометра изображена на Рисунке 2.

Рисунок 2. Блок-схема ИК-термометра ThermoPen.

При нажатии кнопки на схему подается питание и запускается инициализация периферии МК, раздается звук включения. Через 1 секунду включается лазерный диод, и на OLED дисплее в реальном времени отображаются данные, считанные с датчика термометра. В коде программы также вычисляются минимальная и максимальная температура, напряжение и емкость аккумулятора. После отпускания кнопки питания прибор работает еще 4-5 секунд, что возможно благодаря конденсаторам.

Единственное назначение лазерного светодиода – дать пользователю представление о том, где измеряется температура. «Настоящее волшебство» стало возможным благодаря датчику температуры MLX90614 производства Melexis, использующему физический принцип, согласно которому любой объект испускает определенное количество ИК излучения, зависящее от его температуры. Датчик преобразует принятые ИК волны в электрический сигнал, пропорциональный температуре, который далее персчитывается МК в температуру в градусах Цельсия.

Читайте также:  Бумажные сюрпризы барби своими руками

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

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

Принципиальная схема ИК-термометра изображена на Рисунк 3. МК ATmega328P кварцевым резонатором с частотой 8 МГц (у Arduino Nano 16 МГц), что связано с повышением эффективности работы от аккумулятора. ИК-датчик и OLED-дисплей подключаются к МК по интерфейсу I 2 C, управление лазерным диодом и зуммером осуществляется цифровыми портами МК. Напряжение аккумулятора измеряется внутренним АЦП МК (канал A0).

Рисунок 3. Принципиальная схема ИК-термометра ThermoPen.

Схема питания прибора представляет собой повышающий преобразователь, выполненный на микросхеме TPS61090. Выходное напряжение преобразователя стабилизировано на уровне 5 В. Схема включения TPS61090 взята от платы расширения Arduino Adafruit Power Boost 500 для питания устройств от Li-Ion аккумулятора [2].

Схема зарядки Li-Ion аккумулятора выполнена на микросхеме MCP73831. В начале зарядки загорается желтый светодиод (D1); об окончании зарядки свидетельствует зеленый светодиод (D2).

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

Корпус прибора

Автор также разработал корпус ИК-термометра для печати на 3D принтере (Рисунок 4). 3D модель разрабатывалась в САПР Solidworks. Для укладки проводов внутри корпуса, надежного крепления аккумулятора типоразмера 18650 и печатной платы, был выбран квадратный профиль. Для максимальной точности лазерный светодиод расположен непосредственно рядом с ИК-датчиком. При таком расположении лазерный диод не заметен. В корпусе предусмотрены два отверстия для светодиодов состояния зарядки. Корпус спроектирован со сдвижной нижней крышкой с пластиковой защелкой. Пластиковые защелки надежно удерживают печатную плату в корпусе.

Рисунок 4. Проект корпуса ИК-термометра и 3D вид.

Проектные файлы окончательного варианта корпуса (не прототипа) также доступны для скачивания. Расположение компонентов в корпусе показано на Рисунке 5.

Рисунок 5. Компоновка компонентов ИК-термометра в корпусе.

Монтаж компонентов

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

Рисунок 6. Внешний вид печатной платы ИК-термометра.

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

На плате вы заметите несколько сквозных отверстий под разъемы. Эти отверстия предназначены для подключения компонентов за пределами печатной платы: лазерного светодиода, OLED дисплея, разъема microUSB для зарядки, контактов отсека аккумулятора, а также сигналов интерфейса внутрисхемного программирования МК.

Программный код и программирование МК

В скетче Arduino используются библиотеки для работы с OLED экраном, отображения графических элементов и библиотека для ИК-датчика.

Для программирования микроконтроллера на плате предусмотрены контакты подключения внутрисхемного программатора, но можно в качестве программатора использовать другую плату Arduino Uno/Nano (Arduino as ISP; соответствующий скетч поставляется с Arduino IDE) [3].

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

Точность измерения температуры зависит только от ИК-датчика и его состояния, поскольку калибруется он в заводских условиях. Зуммер срабатывает при превышении установленного порога температуры, значение которой задается в программе МК (установлено значение 120 °С).

Источник

Оцените статью