Курсовая работа: Медицинский термогигрометр

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

вышеописанная структура «сэндвич»;

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

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

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

Процесс совершенствования датчиков влажности

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

неминуемый переход на групповую планарную микроэлектронную технологию производства (применяется как тонкопленочная, так и толстопленочная);

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

приведение к единой системе конструкций датчиков влажности, а также средств обработки сигналов на фоне широкого применения микропроцессоров.

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

Глава 2. Практическая часть

2.1 Разработка схемы прибора

В качестве микроконтроллера воспользуемся Auduino Уно

Рис.2.1.1Auduino Уно

В качестве датчика для измерения температуры и влажности воспользуемся модулем DHT11 (рис.2.1.1), подсоединим его на Auduino:,VCC 5V-5V,GND-GND. Для отоброжения графика сигнала воспользуемся дисплеем 1602 IC рис.2.1.1.2 также подсоединим на AuduinoA4-SCL,A5-SDA,VCC 5V-5V,GND-GND.

Рисунок 2.1.1.6 Принципиальная схема прибора

2.1.1 Разработка функциональной схемы

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

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

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

Рисунок 2.1.1 Датчик температуры и влажности воздуха

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

Технические характеристики датчика:

Питание: DC 3,5 - 5,5 В

Ток питания

в режиме измерения 0.3mA

в режиме ожидания 60мA

определение влажности 20-80 % с точностью 5 %

определение температуры 0-50 °С с точностью 2 %

частота опроса не более 1 Гц (не более одного раза в 1 сек.)

размеры 15,5ґ12ґ5,5 мм

Подключение

Датчик имеет 4 вывода стандарта 2,54 мм (рисунок 2):

1 -- VCC (питание 3-5 В);

2 -- DATA (вывод данных);

3 -- не используется;

4 -- GND (земля).

Рисунок 2.1.1.2 Датчик

Между выводами питания и вывода данных необходимо разместить резистор. Рекомендуемый номинал 10 кОм, если расстояние от датчика к ардуино небольшое, для расстояния больше 20 метров рекомендуется резистор номиналом 5,1 кОм. Также рекомендуется конденсатор (фильтр по питанию между VCC и GND). Протокол обмена -- однопроводный, по структуре весьма похож на DS18B20, но с отличиями:

DHT не умеет работать в "паразитном" режиме;

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

Рисунок 2.1.1.3 Ардуино -Уно

Микроконтроллер ATmega328P

Сердцем платформы Arduino Uno является 8-битный микроконтроллер семейства AVR -- ATmega328P.

Микроконтроллер ATmega16U2

Микроконтроллер ATmega16U2 обеспечивает связь микроконтроллера ATmega328P с USB-портом компьютера. При подключении к ПК ArduinoUno определяется как виртуальный COM-порт. Прошивка микросхемы 16U2 использует стандартные драйвера USB-COM, поэтому установка внешних драйверов не требуется.

Пины питания

VIN: Напряжение от внешнего источника питания (не связано с 5 В от USB или другим стабилизированным напряжением). Через этот вывод можно как подавать внешнее питание, так и потреблять ток, если к устройству подключён внешний адаптер.

5V: На вывод поступает напряжение 5 В от стабилизатора платы. Данный стабилизатор обеспечивает питание микроконтроллера ATmega328. Запитывать устройство через вывод 5V не рекомендуется -- в этом случае не используется стабилизатор напряжения, что может привести к выходу платы из строя.

3.3V: 3,3 В от стабилизатора платы. Максимальный ток вывода -- 50 мА.

GND: Выводы земли.

IOREF: Вывод предоставляет платам расширения информацию о рабочем напряжении микроконтроллера. В зависимости от напряжения, плата расширения может переключиться на соответствующий источник питания либо задействовать преобразователи уровней, что позволит ей работать как с 5 В, так и с 3,3 В устройствами.

Порты ввода/вывода

Цифровые входы/выходы: пины 0-13

Логический уровень единицы -- 5 В, нуля -- 0 В. Максимальный ток выхода -- 40 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно.

ШИМ: пины 3,5,6,9,10 и 11

Позволяют выводить 8-битные аналоговые значения в виде ШИМ-сигнала.

АЦП: пины A0-A5

6 аналоговых входов, каждый из которых может представить аналоговое напряжение в виде 10-битного числа (1024 значений). Разрядность АЦП -- 10 бит.

TWI/IІC: пины SDA и SCL

Для общения с периферией по синхронному протоколу, через 2 провода. Для работы -- используйте библиотеку Wire.

SPI: пины 10(SS), 11(MOSI), 12(MISO), 13(SCK).

Через эти пины осуществляется связь по интерфейсу SPI. Для работы -- используйте библиотеку SPI.

UART: пины 0(RX) и 1(TX)

Эти выводы соединены с соответствующими выводами микроконтроллера ATmega16U2, выполняющей роль преобразователя USB-UART. Используется для коммуникации платы Arduino с компьютером или другими устройствами через класс Serial.

Таблица 2.1.1.1 Светодиодная индикация

Имя светодиода

Назначение

RX и TX

Мигают при обмене данными между ArduinoUno и ПК.

L

Светодиод вывода 13. При отправке значения HIGH светодиод включается, при отправке LOW - выключается.

ON

Индикатор питания на плате.

Разъём USB Type-B

Разъём USB Type-B предназначен для прошивки платформы ArduinoUno с помощью компьютера.

Разъём для внешнего питания

Разъём для подключения внешнего питания от 7 В до 12 В.

ICSP-разъём для ATmega328P

ICSP-разъём предназначен для внутрисхемного программирования микроконтроллера ATmega328P. С использованием библиотеки SPI данные выводы могут осуществлять связь с платами расширения по интерфейсу SPI. Линии SPI выведены на 6-контактный разъём, а также продублированы на цифровых пинах 10(SS), 11(MOSI), 12(MISO) и 13(SCK).

ICSP-разъём для ATmega16U2

ICSP-разъём предназначен для внутрисхемного программирования микроконтроллера ATmega16U2.

Рисунок 2.1.1.4 ICSP-разъём для ATmega16U2

Дисплей 1602 IC

LCD дисплей - частый гость в проектах ардуино. Но в сложных схемах у нас может возникнуть проблема недостатка портов Arduino из-за необходимости подключить экран, у которого очень очень много контактов. Выходом в этой ситуации может стать I2C /IIC переходник, который подключает практически стандартный для Arduino экран 1602 к платам Uno, Nano или Mega всего лишь при помощи 4 пинов. В этой статье мы посмотрим, как можно подключить LCD экран с интерфейсом I2C, какие можно использовать библиотеки, напишем короткий скетч-пример и разберем типовые ошибки.

Жидкокристаллический дисплей (LiquidCrystalDisplay) LCD 1602 является хорошим выбором для вывода строк символов в различных проектах. Он стоит недорого, есть различные модификации с разными цветами подсветки, вы можете легко скачать готовые библиотеки для скетчей Ардуино. Но самым главным недостатком этого экрана является тот факт, что дисплей имеет 16 цифровых выводов, из которых обязательными являются минимум 6. Поэтому использование этого LCD экрана без i2c добавляет серьезные ограничения для плат ArduinoUno или Nano. Если контактов не хватает, то вам придется покупать плату ArduinoMega или же сэкономить контакты, в том числе за счет подключения дисплея через i2c.

Рисунок 2.1.1.5 Дисплей

Технические характеристики дисплея:

Символьный тип отображения, есть возможность загрузки символов;

Светодиодная подсветка;

Контроллер HD44780;

Напряжение питания 5В;

Формат 16х2 символов;

Диапазон рабочих температур от -20С до +70С, диапазон температур хранения от -30С до +80 С;

Угол обзора 180 градусов.

Заключение

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

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

Используемая литература

1. Виглеб Г. Датчики. Устройство и применение: Пер. с нем. -- М.: Мир, 1989.

2. Бриндли К. Измерительные преобразователи./ Пер. с англ.- М.: Энергоатомиздат, 1991.

3. Окоси Т. и др. Волоконно-оптические датчики.

4. А. Бондер, А. В. Алферов - «Измерительные приборы»

5. Новейшие информационные технологии. Достижения и люди. -- М.: СОЛОН-Пресс, 2004. -- 416 с. -- ISBN 5980031499.4.Бачурин В. В., Ваксембург В. Я., Дьяконов В. П. и др. Схемотехника устройств Радио и связь, 1994. -- 280 с.5.Дьяконов В. П., Максимчук А. А., Ремнев А. М., Смердов В. Ю. Энциклопедия устройств / Дьяконов В. П.. -- М.: СОЛОН-Р, 2002. -- 512 с.6.Li, Sheng S. Semiconductor Physical Electronics. -- Second Edition. -- Springer, 2006. -- 708 с. -- ISBN 978-0-387-28893-2.

Приложение

Листинг

#include<Wire.h>

#include <LiquidCrystal_I2C.h>

#include "DHT.h"

#define DHTPIN 2

#define DHTTYPE DHT11 // DHT 11

//#define DHTTYPE DHT22 // DHT 22 (AM2302)

//#define DHTTYPE DHT21 // DHT 21 (AM2301)

DHT dht(DHTPIN, DHTTYPE); // инициализациясенсора DHT

LiquidCrystal_I2C lcd(0x27,16,2); // инициализациядисплея

bytesymb_grad[8] = // кодирование символа градуса

{

B00111,

B00101,

B00111,

B00000,

B00000,

B00000,

B00000,

};

void setup()

{

lcd.init(); // инициализация lcd

lcd.createChar(1, symb_grad); // регистрируем собственный символ с кодом 1

Serial.begin(9600); // запуск передачи данных

dht.begin(); // запуск датчика DHT

}

voidloop()

{

// добавляем паузы в 2 секунды между измерениями

delay(2000);

float h = dht.readHumidity(); // считывание влажности

float t = dht.readTemperature(); // считывание температуры

// Выводим показания влажности и температуры

lcd.clear(); // очистка экрана

lcd.setCursor(0, 0); // установка курсора в начало 1 строки

lcd.print("Humidity: %"); // вывод текста

lcd.setCursor(10, 0); // установка курсора на 10 позицию

lcd.print(h, 1); // вывод на экран значения влажности

lcd.setCursor(0, 1); // установка курсора в начало 2 строки

lcd.print("Temperat: C"); // выводтекста

lcd.setCursor(14, 1); // установка курсора на 14 позицию

lcd.print("\1"); // вывод символа градуса

lcd.setCursor(10, 1); // установка курсора на 10 позицию

lcd.print(t,1); // вывод значения температуры

}