На протяжении тысячелетий люди пытались предсказать погоду. В настоящее время становятся все более популярными метеорологические станции, позволяющие спрогнозировать погоду на следующий день.
Неотъемлемой функцией даже самой простой метеостанции является измерение температуры и влажности. Эти параметры также очень важны и в других ситуациях, например, при хранении продуктов питания.
Схема, приведенная в данной статье, представляет собой USB приставку к компьютеру, позволяющая измерять температуру и влажность воздуха.
Измерение температуры происходит в диапазоне от -40 до 80°C с разрешением 0,1°C и точностью 0,2°C. Влажность измеряется в диапазоне от 0 до 100% с разрешением 0,1% и точностью 2%.
Устройство собрано на миниатюрной печатной плате с преобладанием элементов поверхностного монтажа (SMD), благодаря чему оно может быть использовано как адаптер для ноутбука или настольного компьютера.
Ниже представлена принципиальная схема термометра/гигрометра. Основа устройства — микроконтроллер ATmega8, работающий от внешнего кварцевого резонатора с частотой 7,3728 МГц. Такая тактовая частота позволяет полностью избежать ошибок передачи данных по UART.
Для измерения температуры и влажности использован цифровой датчик DHT22, обеспечивающий измерение температуры в диапазоне -40 … + 80°C с разрешением 0,1°C и погрешностью 0,2° C и влажности в диапазоне 0 … 100% с разрешением 0,1% и погрешностью 2%.
Отображение измеренных данных выводиться через USB на компьютер. Для упрощения связи используется виртуальный RS232 порт. Поскольку питание адаптера осуществляется от USB, в схему введена фильтрация с помощью индуктивности L1 и конденсатора C5.
Ниже показана печатная плата. На плату устанавливается микроконтроллер ATmega8-16AU в корпусе TQFP32 и микросхема FT232RL в корпусе SSOP28, монтаж которой требует некоторого навыка.
Все линии, необходимые для программирования микроконтроллера, выведены на разъем XS1, благодаря чему отпадает необходимость программировать микроконтроллер перед пайкой.
Фьюзы микроконтроллера: High Byte: 0xD9, Low Byte: 0xFD.
После подключения устройства к компьютеру оно будет определено как адаптер USB / RS232. Чтобы изменить имя устройства по умолчанию, измените его и сохраните в EEPROM чипа FT232. Для этого можно воспользоваться утилитой «FT prog».
После установки и запуска утилиты «FT prog» выберите «Devices» — «Scan and Parse». Будет отображено содержимое памяти FT232, модель используемой системы и некоторые другие детали.
В «Device Tree» разверните вкладку «USB String cluster service» и в поле «Product Description» введите новое имя устройства, например, «Термометр с гигрометром USB».
После установки соответствующего имени, необходимо запрограммировать EEPROM. Для этого выберите «Devices» — «Program». В появившемся окне нажмите кнопку «Program». Теперь каждый раз при подключении адаптера он будет распознан как «Термометр с гигрометром USB»
При первом включении программы нужно зайти в настройки, щелкнув правой кнопкой мыши на окно программы и определить порт, к которому подключена приставка и настроить отображения информации в системном трее. Тут так же есть возможность отключить отображение информации или выбрать периодичность ее показа.
После настройки следует нажать кнопку «Сохранить параметры», а затем щелкнуть значок USB-порта. При последующих запусках программа сама откроет порт по умолчанию и будет работать с предыдущими настройками.
Скачать файлы (99,6 KiB, скачано: 1 008)
Здравствуйте, отличный проект. Всё по полочкам разложили. Но меня интересует в каком виде ATmega передаёт данные в COM порт? Какая структура пакета данных? Собственно хочу использовать только программу для ПК из вашего проекта, а часть с ATmega заменить на Arduino UNO. Заранее спасибо.