В статье мы рассмотрим простую систему сбора данных о температуре и относительной влажности на базе отладочной платформы chipKIT Uno32 с использованием сенсора DHT11. Полученные и преобразованные данные поступают в персональный компьютер по интерфейсу USB, на котором установлена специальная программа. Для проекта не потребуется каких-либо дополнительных соединений и компонентов, кроме USB кабеля.
chipKIT UNO32 – это полнофункциональная совместимая с Arduino UNO отладочная платформа с открытым исходным кодом для разработки приложений на базе 32-разрядных микроконтроллеров PIC32. На плате установлен микроконтроллер PIC32MX320F128H с рабочей частотой 80 МГц. Форм-фактор chipKIT Uno32 совместим с Arduino UNO и поддерживает подключение различных дочерних плат и плат расширения Arduino с напряжением питания 3.3 В.
Датчик относительной влажности DHT11 не отличается высоким быстродействием и точностью, однако может найти свое применение в радиолюбительских проектах из-за своей невысокой стоимости. Датчик DHT состоит из емкостного датчика влажности и термистора. Также, датчик содержит в себе простой АЦП для преобразования аналоговых значений влажности и температуры.
Основные параметры датчика DHT11:
- Очень низкая стоимость;
- Напряжение питания 3.0 – 5.5 В;
- Определение влажности в диапазоне 20…95% с точностью ±5%;
- Определение температуры в диапазоне 0…50 °С с точностью ±2 °С;
- Частота опроса не более 1 Гц;
- Размеры 15.5 × 12 × 5.5 мм.
Датчик имеет 4 вывода (один из которых не используется) и подключается непосредственно к отладочной плате (выводы 7, 6, 5 и 4 платы ChipKit UNO32). Расположение выводов датчика показано на рисунке ниже.
Микроконтроллер считывает данные о температуре и относительной влажности через установленные интервалы времени и отправляет информацию на персональный компьютер через интерфейс USB-UART. Приложение для ПК разработано с использованием открытой программной платформы Processing, его основная функция – сбор и сохранение данных в файл в формате ASCII. Дополнительная функция приложения – графическое отображение данных в реальном времени.
Датчик имеет однопроводной интерфейс обмена данными, поэтому коммуникация микроконтроллера с датчиком посредством его встроенной периферии невозможна. Протокол обмена данными реализуется программно (bit-bang) на линии ввода/вывода микроконтроллера.
Выводы датчика 1 (питание), 2 (данные), 4 (общий) подключаются к выводам платы 7, 6 и 4 соответственно. Выводы платы 7 и 4 сконфигурированы как выходы, и на них установлен высокий (3.3 В) и низкий логический уровень (0 В), соответственно. Эти уровни устанавливаются программно для подачи питания на датчик. Помните, что линия ввода/вывода может обеспечить ток 18 мА, что достаточно для питания датчика DHT11, для которого требуется менее 5 мА во время преобразования и передачи данных.
Программа микроконтроллера написана с использованием бесплатной библиотеки для работы с датчиком DHT11, разработанной для платформ Arduino или ChipKit. Пользователю необходимо включить ее в свой исходный код. Для нашего проекта интервал передачи данных равен 2 с. Исходный код и прошивка микроконтроллера доступны для скачивания в разделе загрузок.
Для персонального компьютера приложение, как было указано выше, разрабатывалось в среде Processing, которая является бесплатной и работает на платформах Mac, Windows и Linux. Программа выводит в графическом формате получаемые данные о температуре и влажности, а также записывает эти данные со штампом времени в ASCII файл.
Следует отметить, что при написании программы пользователю необходимо импортировать в свой исходный код библиотеку функций коммуникации по последовательному интерфейсу:
import processing.serial.*;
А затем уже можно открыть последовательный порт:
Dev_Board = new Serial(this, "COM12", 9600);
Пользователь также должен знать, к какому порту подключена плата ChipKit Uno32. Это можно узнать в диспетчере устройств ОС.
В окне программы, помимо графических элементов, имеется кнопка управления записью данных «Start Log». При нажатию на эту кнопку начинается запись данных в файл, и надпись на кнопке меняется на «Stop». При каждом нажатии на кнопку начала записи создается новый файл данных, именя которого формируется из текущей даты и времени, поэтому можно не беспокоиться о возможной перезаписи файлов данных.
Вид файла данных показан на рисунке ниже. Данные из файла могут использоваться для построения графиков и зависимостей с помощью других приложений.
Загрузки
Исходный код программы микроконтроллера и библиотека для датчика DHT11 – скачать
Исходный код и программа для ПК (Processing) – скачать