Введение
В данной статье я покажу вам, как собрать устройство, которое измеряет температуру и относительную влажность воздуха и посылает измеренные значения с помощью стандартного радиочастотного модуля 433 МГц. Датчик температуры и влажности, используемый в устройстве, – это DHT11.
Существует множество способов передачи небольшого объема данных с помощью Arduino или контроллеров ATMega. Один из них использует уже готовую библиотеку, подобную RCSwitch, Radiohead или VirtualWire. Кроме того, можно отправить необработанные данные с помощью встроенного в микроконтроллер модуля UART. Но использовать встроенный модуль UART не рекомендуется, так как приемник будет собирать и все помехи, и микроконтроллер будет работать не так, как предполагалось. В данной статье для передачи и приема данных я использую библиотеку VirtualWire. Эта библиотека работает с Arduino IDE 1.6.2 и 1.6.5.
Модуль передатчика 433 МГц, когда не передает данные, всё равно излучает радиочастотные колебания и передает шум. Он также может создавать помехи другим радиочастотным устройствам. Чтобы не допустить этого, я включаю его, когда необходимо передать данные, и выключаю его, когда передача закончена.
Виды
Передовые технологии сейчас активно интегрируются практически во все сферы современной жизни. Не стали исключением и уличные термометры разных типов. На рынке представлены фасадные и оконные модели больших и миниатюрных размеров.
Спиртовые
Невзирая на активное внедрение инновационных технических решений, именно эти градусники для измерения температуры воздуха на сегодня остаются наиболее распространенными.
Внешне и по принципу действия такие устройства похожи на медицинские термометры и имеют следующие особенности:
- на пластиковую или деревянную основу помещена шкала;
- над шкалой располагается стеклянная колба со спиртом внутри;
- при повышении температуры на улице жидкость расширяется, а при ее падении – уменьшается в объеме.
Именно за счет изменения уровня спирта в колбе и при помощи шкалы можно узнать температуру воздуха как в помещении, так и за его пределами. Эти классические модели имеют свои явные плюсы и не менее значимые недостатки. В первом случае речь идет о следующих моментах:
- доступная стоимость;
- неприметность, что актуально для владельцев квартир, расположенных на первом этаже (такой градусник вряд ли украдут);
- максимальная простота установки.
Конечно же, такие устройства вряд ли получится назвать эстетичными и тем более современными. Спиртовые термометры не смогут вписаться в дизайнерские концепции при оформлении интерьеров и фасадов.
Помимо этого, стоит акцентировать внимание еще на нескольких значимых минусах
- Липучки, которыми комплектуется новое изделие, после первого использования утрачивают свои эксплуатационные качества. В то же время помочь в такой ситуации может двухсторонний скотч.
- Нередко в производстве дешевых изделий используется низкокачественное сырье. Это негативно отражается на сроке эксплуатации градусников.
- На шкалу, как правило, наносятся довольно мелкие символы.
Биметаллические
В данном случае речь идет о еще одной довольно распространенной разновидности градусников для улицы. От жидкостных (спиртовых) они отличаются как конструктивно, так и принципом действия.
Биметаллический градусник состоит всего из нескольких элементов и имеет следующие особенности:
- шкала имеет полукруглую форму;
- стрелка-указатель перемещается за счет нагрева и остывания металлической пружины;
- сама пружина выполнена из двух разных металлов, каждый из которых имеет свой температурный коэффициент линейного расширения.
По большому счету преимущества и недостатки биметаллических градусников схожи с аналогичными показателями спиртовых моделей.
Помимо всего уже упомянутого, стоит выделить еще и следующие моменты:
- прозрачный корпус из пластика не закрывает шкалу прибора от солнечных лучей, что часто является причиной погрешности показаний;
- по форме и внешнему виду биметаллические градусники выигрывают у своих спиртовых собратьев;
- шкала устройства имеет больше делений, чем у жидкостных моделей.
Электронные
Эти устройства даже с учетом развития и популяризации инновационных технологий пока остаются менее распространенными. К их главным плюсам относятся современный дизайн и удобная подача показаний. Некоторые наружные модели электронных градусников работают на солнечных батареях. Другие располагаются внутри помещения и поставляются с выносным датчиком.
Основные особенности цифровых приборов имеют следующий вид:
- данные выводятся на ЖК-дисплей;
- основу конструкции составляют два металлических элемента с разными показателями электроотрицательности;
- для работы градуснику необходим источник питания.
К их главным преимуществам относятся:
- максимальная точность;
- эргономичность;
- простой и понятный интуитивно интерфейс;
- яркая индикация и крупные символы.
Инфракрасные
В данном случае речь идет о так называемых пирометрах, относящихся к самым молодым разработкам. Такой градусник измеряет температуру с верхним диапазоном 100-3000 градусов. В отличие от всех перечисленных выше модификаций эти устройства снимают показания без непосредственного контакта с исследуемой средой или объектом. Прибор направляет инфракрасный луч, а на небольшом дисплее отображается точный показатель.
На сегодня инфракрасные устройства довольно широко применяются в различных сферах. К примеру, они доказали свою эффективность при определении температуры металлических заготовок в горнах, а также корпусов двигателей в процессе работы. В быту такие градусники используют для определения температуры тела (чаще всего это относится к детям).
Аппаратная часть
Нам необходимы две структурные схемы. Одна для передающего устройства, вторая для приемного.
Передатчик
Нам необходимы:
- способ прошивки микроконтроллера → ISP;
- датчик для измерения температуры и влажности → DHT11;
- микроконтроллер для обработки данных → ATMega32p;
- способ беспроводной передачи данных → радиочастотный модуль 433 МГц.
Приемник
Нам необходимы:
- способ приема радиосигнала → радиочастотный модуль 433 МГц;
- способ обработки принятых данных → Arduino Mega;
- способ отображения температуры и влажности → 16×2 LCD.
Принципиальные схемы
Передатчик
Передающая часть беспроводного термометра на ATMega328p (для увеличения масштаба можно кликнуть по картинке правой кнопкой мыши и выбрать «Открыть ссылку/изображение в новой вкладке/новом окне»)
В данном примере я не буду выводить неиспользуемые выводы микроконтроллера на внешние контакты термометра, после чего их можно было бы использовать для дальнейшего усовершенствования устройства. Здесь мы рассматриваем лишь идею для устройства и соберем его только на макетной плате.
Приемник
Приемная часть беспроводного термометра на Arduino Mega (для увеличения масштаба можно кликнуть по картинке правой кнопкой мыши и выбрать «Открыть ссылку/изображение в новой вкладке/новом окне»)
Пожалуйста, обратите внимание, что приемник построен на базе платы Arduino Mega, которая не изображена на схеме. Для подключения платы Arduino Mega соедините с ней радиочастотный модуль и LCD дисплей согласно метка на схеме.
Разновидности уличных градусников
Современные технологии в наше время пробираются во все отрасли жизни человека, и даже обыкновенные на первый взгляд градусники успели получить несколько «апгрейдов». Давайте разберемся, какими же бывают уличные градусники и чем они различаются.
Жидкостные градусники
Пожалуй, именно такие градусники – самый распространенный вариант для окон. Скорее всего, до замены старых рам на новые пластиковые в вашей квартире висел именно такой. По внешнему виду и принципу работы такой градусник похож на медицинский (ртутный):
- на основе (из пластика или дерева) нанесена шкала с температурными значениями;
- на ней же закреплена стеклянная колбочка, внутри которой находится подкрашенный спирт;
- при нагревании жидкость внутри колбы расширяется, при остывании – уменьшается в объеме.
Благодаря изменению уровня жидкости в колбе мы можем узнать текущую температуру воздуха в помещении либо на улице. У этого вида градусников есть свои плюсы и минусы.
Среди достоинств жидкостных градусников можно выделить:
- Небольшую стоимость (от 100 рублей). Причем, цена не повлияет на качество измерения температуры, но может повлиять на долговечность прибора;
- Неприметность и неинтерестность для грабителей. Особенно этот пункт порадует жителей первых этажей;
- Простая установка – крепление на пластиковое окно производится с помощью липучек.
Естественно, эстетичным внешним видом такой градусник похвастаться не может. Он не подойдет в тех случаях, когда окно оформляется под интерьер комнаты или балкона, и любые выделяющиеся детали испортят его дизайн.
Еще несколько минусов таких градусников:
- Липучки градусника теряют свои свойства при повторном креплении, что может привести к потере градусника или его поломке при падении;
- Низкая цена прибора часто становится следствием использования производителем некачественных материалов, из-за чего градусник быстро выходит из строя;
- Мелкие деления и цифры. Это становится проблемой для пожилых людей или людей с плохим зрением.
В целом, это самый бюджетный и простой вариант градусника для пластикового окна. Но его придется периодически заменять на новый.
Биметаллические градусники
Еще один популярный вид градусника для улицы – биметаллический. Он отличается от жидкостного и устройством, и принципом работы:
- шкала температур у биметаллического градусника расположена полукругом;
- указателем служит стрелка, вращающуюся за счет нагревания или остывания металлической пружины;
- пружина изготавливается из двух металлов с различными температурными коэффициентами линейного расширения.
Плюсы и минусы этого прибора в целом схожи с характеристиками спиртового градусника. Но можно добавить некоторые его особенности:
- Прозрачный пластиковый корпус не закрывает шкалу от солнечных лучей, что приводит к погрешностям в измерении температуры;
- Шкала имеет больше значений, чем у предыдущего варианта градусника;
- Форма и внешний вид интереснее, может подойти к определенному дизайну окна.
Крепления для такого градусника всё те же, и от их качества и надежности зависит цена модели.
Специалисты отмечают, что погрешность измерения температуры у таких термометров – не более одного градуса. Это не критичное значение в случае использования градусника в бытовых целях.
Электронные градусники
Менее распространенный вид термометров на окнах – электронный. Главная их особенность заключается в современном внешнем виде и удобной подаче информации.
Принцип работы электронного термометра:
- информация о температуре выводится на ЖК-экран;
- в основе конструкции – два металла с разными значениями электроотрицательности. Они при нагреве или охлаждении влияют на изменение разности потенциалов, благодаря чему мы можем узнать точную температуру воздуха;
- работают такие устройства либо от обыкновенных батареек, либо от солнечного элемента.
Электронный термометр на солнечной батарее
Наиболее точными в измерении температуры считаются те электронные термометры, в конструкции которых содержится платина.
Плюсы таких градусников:
- Современный внешний вид, некоторые модели имеют стильный дизайн;
- Высокая точность измерения температуры;
- Понятный интерфейс, который отлично подойдет для детей и пожилых людей;
- В некоторых моделях – крупные обозначения.
Минусом можно назвать необходимость продумывать место крепления электронного термометра. Связано это с тем, что близость к комнате (окну) создает неточность измерения температуры на улице.
Термометр с наружным датчиком
Перечень элементов
Передатчик
Перечень элементов передающей части беспроводного термометра на ATMega328p (для увеличения масштаба можно кликнуть по картинке правой кнопкой мыши и выбрать «Открыть ссылку/изображение в новой вкладке/новом окне»)
Приемник
Перечень элементов приемной части беспроводного термометра на Arduino Mega (для увеличения масштаба можно кликнуть по картинке правой кнопкой мыши и выбрать «Открыть ссылку/изображение в новой вкладке/новом окне»)
Термометр оконный в Санкт-Петербурге
На сайте продавца доступен «Онлайн консультант». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Заказ в один клик». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Онлайн консультант». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Заказ в один клик». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Онлайн консультант». Для перехода на сайт нажмите «В магазин»
Статья по теме: Как крепить рулонные шторы на пластиковые окна
На сайте продавца доступен «Заказ в один клик». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Онлайн консультант». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Онлайн консультант». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Онлайн консультант». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Онлайн консультант». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Онлайн консультант». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Онлайн консультант». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Онлайн консультант». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Заказ в один клик». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Онлайн консультант». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Онлайн консультант». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Онлайн консультант». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Онлайн консультант». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Онлайн консультант». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Онлайн консультант». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Онлайн консультант». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Онлайн консультант». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Онлайн консультант». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Онлайн консультант». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен бесплатный номер 8-800. Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Заказ в один клик». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен бесплатный номер 8-800. Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Онлайн консультант». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен бесплатный номер 8-800. Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен бесплатный номер 8-800. Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен бесплатный номер 8-800. Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Онлайн консультант». Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен бесплатный номер 8-800. Для перехода на сайт нажмите «В магазин»
На сайте продавца доступен «Заказ в один клик». Для перехода на сайт нажмите «В магазин»
Программа
Программа передатчика
Сперва рассмотрим программу передающей части:
// Подключаем необходимые библиотеки #include #include // Определение #define dhtPin 4 #define dhtType DHT11 #define txPowerPin 8 // Использование библиотеки DHT DHT dht(dhtPin, dhtType); // Переменные char msg0[3]; char msg1[3]; int tem = 0; int hum = 0; // Функция первоначальной настройки — выполняется только один раз при включении void setup() { pinMode(txPowerPin, OUTPUT); pinMode(txPowerPin, LOW); vw_setup(4800); // Скорость соединения VirtualWire vw_set_tx_pin(9); // Вывод передачи VirtualWire } // Функция цикла — выполняется всегда void loop() { digitalWrite(txPowerPin, HIGH); hum = dht.readHumidity(); // Переменная хранит влажность tem = dht.readTemperature(); // Переменная хранит температуру itoa(hum, msg1, 10); // Преобразование влажности в массив char itoa(tem, msg0, 10); // Преобразование температуры в массив char strcat(msg0, msg1); // Сложение/объединение двух массивов vw_send((uint8_t *)msg0, strlen(msg0)); // Передача сообщения vw_wait_tx(); // Ждем завершения передачи digitalWrite(txPowerPin, LOW); delay(5000); // Ждем 5 секунд и повторяем всё снова }
Для передачи влажности и температуры в одном сообщении я соединяю их вместе. Сначала данные считываются в переменную как целые числа, потом целые числа преобразовываются в массив символов, а затем они соединяются друг с другом. На приемной стороне данные будут разделены на отдельные символы. Делая это, я ограничиваю себя двумя цифрами градусов. Если датчик находится в среде с температурой менее 10°C, я буду получать на дисплее символы мусора. Например, если температура составляет 20°C, а влажность – 45%, то будет передаваться сообщение 2045, и всё хорошо. Если температура равна 9°C, а влажность – 78%, то передастся сообщение 978x, где «x» – случайный символ. Поэтому, если вы будете собирать данный беспроводной термометр, я советую вам изменить программу для передачи правильных данных, когда температура будет меньше 10°C.
Программа приемника
// Подключаем необходимые библиотеки #include #include // Определение подключение LCD #define RS 9 #define E 10 #define D4 5 #define D5 6 #define D6 7 #define D7 8 LiquidCrystal lcd(RS, E, D4, D5, D6, D7); // Отрисовка символа градусов byte degreesymbol[8] = { B01100, B10010, B10010, B01100, B00000, B00000, B00000, B00000 }; // Переменные int tem = 0; int i; // Функция первоначальной настройки — выполняется только один раз при включении void setup() { lcd.begin(16,2); // Инициализация LCD lcd.createChar(1, degreesymbol); // Создание символа градусов в месте 1 Serial.begin(9600); // Для отладки vw_setup(4800); // Скорость соединения VirtualWire vw_rx_start(); // Готовность для приема vw_set_rx_pin(2); // Вывод приема VirtualWiore lcd.clear(); // Очистить LCD } // Функция цикла — выполняется всегда void loop() { uint8_t buf[VW_MAX_MESSAGE_LEN]; // Переменная для хранения принятых данных uint8_t buflen = VW_MAX_MESSAGE_LEN; // Переменная для хранения длины принятых данных lcd.setCursor(0,0); lcd.print(«Temp: «); if (vw_get_message(buf, &buflen)) // Если данные приняты { for (i=0;i<2;i++) // Получить два первых байта { Serial.write(buf); // Для отладки lcd.write(buf); // Вывести первые байты на LCD } Serial.println(); // Для отладки lcd.write(1); // Вывести символ градусов на LCD lcd.print(» C»); lcd.setCursor(0,1); lcd.print(«Hum: «); for (i=2;i<4;i++) // Получаем последние два байта { Serial.write(buf); // Отладка lcd.write(buf); // Вывести последние байты на LCD } lcd.print(«% RH»); } }
Интересный способ использования библиотеки LiquidCrystal – это создание пользовательских символов. С помощью createChar я создал символ градусов. Таким же способом вы можете создать и свои собственные символы. Чтобы создать пользовательский символ или значок, вам необходимо объявить его, как массив из восьми байт, и «нарисовать», какие пиксели будут включены (1 – включен, 0 – выключен).
В функции setup() вы создаете его с помощью createChar. createChar принимает два аргумента: номер позиции для хранения символа и массив байт, в котором определено, какие пиксели будут отображаться. В нашем случае это lcd.createChar(1, degreesymbol). Затем символ выводится на LCD с помощью функции lcd.write.
Как сделать электронный термометр своими руками
Если чувствуете в себе тягу к изобретательству, можно освоить создание цифрового термометра своими руками. В результате вы получите рабочий прибор, подключаемый к компьютеру через порт. Таким образом, вы сможете как поддерживать необходимый температурный режим в аквариуме, инкубаторе, хранилище и других помещения, так и отслеживать и в дальнейшем анализировать изменения погоды на улице.
Сделать электронный термометр своими руками гораздо проще, чем может показаться
Более того, создание цифрового термометра с выносным датчиком своими руками позволяет подключить к одной двух- или трехпроводной линии несколько датчиков. В результате вы минимизируете затраты и при этом можете отслеживать и регулировать температурный режим в нескольких местах сразу.
Что нужно для сборки электронного термометра с выносным датчиком своими руками
Для успешного создания прибора вам потребуется:
- термодатчик – например, Dallas SD1820, один или несколько;
- два диода Шоттки;
- стабилитроны на 3,9 V, 6,2 V и 5,6V;
- один диод 1N4148;
- один конденсатор 10мкФ на 16V;
- один резистор 1,5 кОм 0,25 Вт;
- корпус для разъема;
- девятиконтактный разъем СОМ-порта типа мама.
Полезный совет! Используйте стабилитроны минимальной мощности – они характеризуются максимальной компактностью.
Электрическая схема цифрового термометра
При должном умении монтаж деталей можно произвести прямо на разъеме – этот вариант является наиболее удобным и практичным.
В результате вы получаете термометр, работающий в температурном диапазоне от -55 до +125°C при абсолютной погрешности преобразования меньше 0,5°C. Максимальное время полного преобразования составляет приблизительно 750 мс.
Устройство узла 1-Wire-интерфейса позволяет адресовать на одной однопроводной линии неограниченное количество подобных устройств. Паразитное питание однопроводной линии позволяет прибору функционировать без внешнего источника питания.
Необходимое значение напряжения для питания устройства через отдельный внешний вывод составляет от 3 до 5,5 В. Размещается термометр в транзисторном корпусе ТО-92.
При самостоятельном изготовлении устройства вы можете установить два или более датчиков
Программное обеспечение для работы электронного термометра
Готовое устройство не требует калибровки сенсоров. Остается подключить датчик к компьютерному порту, после чего необходима программа измерения температуры. Подходящим вариантом является Temp.Keeper: она позволяет отслеживать температурный режим различных объектов и сред в зависимости от размещения датчиков.
Полезный совет! Изготовление такого устройства своими руками требует некоторого опыта в конструировании подобных механизмов, а также соответствующих запчастей. Поэтому при отсутствии соответствующего опыта, лучше будет купить уличный электронный термометр, в таком случае вы будете уверены в его исправности и эффективной работе.
Фото и видео
Передатчик
Передающая часть беспроводного термометра на ATMega328p
Приемник
Приемная часть беспроводного термометра на Arduino
Видео
Оригинал статьи:
- Jens Christoffersen. Make a Wireless Thermometer with Arduino