My Hardware & Software Projects

Home
   
Downloads
Email




Home          
         
         
          
         
         
          

Thermometer

based on DS18B21+MCU+PC

 

 
 
 
Скачать - в разделе Downloads

Регистратор температуры на МК с выводом на компьютер

 

Предлагаемый Вашему вниманию программно-аппаратный комплекс позволяет просматривать текущее значение температуры на экране компьютера, просматривать график изменения значения температуры в зависимости от времени ( с изменением масштаба просматриваемого участка), задавать значения уставок температуры для включения и отключения внешнего нагревателя, если комплекс используется для поддержания температуры какой-либо среды. Текущее значение температуры сохраняется на жестком диске компьютера каждую минуту; данные группируются в файлы ( по одному файлу на каждый день), так что имеется возможность просматривать графики изменения температуры не только за текущий день, но и за предыдущие.
Конструкция состоит из двух частей.  Одна часть – программа Thermometer, установленная на компьютере и взаимодействующая со второй, аппаратной частью, которая подключается к COM-порту компьютера. Аппаратная часть включает в себя микроконтроллер PIC16F628A фирмы Microchip, микросхему цифрового термометра DS18B20 фирмы Dallas Semiconductor и микросхему – преобразователь уровня MAX232.
Рассмотрим подробнее аппаратную часть комплекса. Её принципиальная схема показана на рис.1.

 

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


            Сердцем ее является микроконтроллер PIC16F628A. Именно он осуществляет «стыковку» датчика с компьютером и служит конвертером их протоколов. Связь микроконтроллера с температурным датчиком осуществляется по 1-wire протоколу, а с компьютером – по протоколу RS-232. Измерение температуры и передача ее значения в компьютер происходит циклически 1 раз в секунду. Каждый цикл состоит из следующих этапов: 1. компьютер, на котором запущена программа Thermometer, через COM-порт посылает команду на начало измерения; 2. микропроцессор принимает эту команду и передает ее дальше цифровому термометру (преобразуя в «понятный» ему протокол); 3. микросхема цифрового термометра DS18B20 принимает эту команду и начинает измерение, которое  длится 750 мс. ; 4. микроконтроллер, сделав паузу, достаточную для завершения времени измерения, посылает команду термодатчику на считывание значения измеренной температуры; 5. термодатчик передает в микроконтроллер два байта, содержащие значение температуры и ее знак (выше или ниже нуля); 6. микроконтроллер принимает информацию, поступившую от термодатчика; преобразует ее формат в удобный для вывода в COM-порт и отсылает в компьютер; 7. программа Thermometer завершает цикл, считывая из буфера COM-порта готовые данные,  и процесс измерения начинается сначала.
Аппаратная часть комплекса потребляет небольшой ток, порядка 10 мА, поэтому есть возможность брать питание непосредственно от шин СОМ-порта компьютера и обойтись без внешнего источника питания. Напряжение +5 Вольт для питания устройства формируются элементами D1, D2, C2, C4, C5 и интегральным стабилизатором LM78L05. Микросхема MAX232 вместе с конденсаторами С1, С3, С6, С7 служит для преобразования уровней логических сигналов ±12 Вольт СОМ-порта в TTL уровень, необходимый для нормальной работы микроконтроллера. Для тактирования микроконтроллера импульсами используется кварцевый резонатор Z1 на частоту 10 Мгц. Цепь сброса микроконтроллера сформирована элементами R4, R5, C8.
 При необходимости включить внешний нагреватель, микропроцессор выставляет логическую единицу на выводе RB5. Разработать электронный ключ, управляющий нагревателем, читателям предоставляется самостоятельно; подобные схемы неоднократно печатались на страницах журнала.
Датчик температуры DS18B20 можно установить непосредственно на печатной плате, либо подключить через соединитель J3. При этом максимальная длина проводов не должна превышать 10 метров. Точность датчика, согласно данным производителя, составляет ±0.5 оС.

Перейдем к рассмотрению программной части комплекса. Внешний вид запущенной программы представлен на Рис.2

Рис.2 Программа.

            В левой части программы отображается текущее значение температуры, в центре – график его изменения. Для увеличения масштаба служит кнопка “Zoom In”, для уменьшения – кнопка “Zoom Out”, для приведения графика к нормальному виду – “Zoom=1”. При необходимости просмотреть графики температуры за предыдущие дни нужно нажать кнопку “Another Day…” и указать на файл с данными за интересующий день. Файлы сохраняются в директории Program Files/Thermometer/Data и носят имя в виде «год_месяц_день». Для возврата к графику текущего дня нужно нажать кнопку ”Today”.
            Манипуляции с масштабом графика удобнее производить при помощи «мыши». При этом используются три её кнопки. Если нажать левую кнопку и, удерживая ее, перемещать «мышь», а затем отпутить кнопку, можно обозначить желаемый участок графика, который увеличится и займет все пространство, отведенное для графика. После этого, удерживая правую кнопку «мыши» можно перемещать увеличенный график  в желаемых направлениях. При перемещении «мыши» с нажатой средней кнопкой (той, что под «колесиком» ), можно динамически изменять масштаб представления графика.
            Значения температуры и времени грубо представлены возле соответствующих осей графика; для получения точных значений необходимо подвести указатель «мыши» к интересующей точке на графике. При этом во всплывающей подсказке возле указателя будут отображены значение времени с точностью до минуты и значение температуры с точностью до сотых долей градуса. Абсолютная точность датчика не слишком велика, однако измерения изменения температуры можно производить с достаточно высокой точностью.
            Рассмотрим теперь окно задания уставок для поддержания температуры ( Рис.3) , которое можно вызвать из меню “Relay – Setup”.

Рис.3. Окно задания уставок.     

  В верхней текстовой ячейке (“Max temperature is..”) нужно прописать верхнее значение поддерживаемой температуры, при которой подогреватель должен быть выключен. Нижняя текстовая ячейка (“Min temperature is..”) – для ввода минимального значения поддерживаемой температуры, при которой подогреватель должен включиться. Изменения вступают в силу после нажатия на кнопку «ОК». Подогреватель будет включаться, если текущая температура ниже установленной в ячейке “Min temperature is..”  и отключаться, когда температура достигнет значения, прописанного в ячейке “Max temperature is..”. При этом должна быть установлена «галочка» в боксе “Keep Temperature”, которая разрешает прохождение сигнала на включение подогревателя. В случее, если разрешающая «галочка» будет не проставлена, управление подогревателем производиться не будет.

 

 

 


При первоначальном запуске программы необходимо указать номер СОМ-порта, к которому подсоединена печатная плата. Сделать это можно из меню по комманде меню “Port”.

 

А. Прадиденко, г. Одесса

 

 


Copyright © Alexander Pradidenko