chipKIT: измерение температуры и относительной влажности

В статье мы рассмотрим простую систему сбора данных о температуре и относительной влажности на базе отладочной платформы chipKIT Uno32 с использованием сенсора DHT11. Полученные и преобразованные данные поступают в персональный компьютер по интерфейсу USB, на котором установлена специальная программа. Для проекта не потребуется каких-либо дополнительных соединений и компонентов, кроме USB кабеля.

ChipKIT: измерение температуры и относительной влажности

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). Расположение выводов датчика показано на рисунке ниже.

Сенсор DHT11: расположение и назначение выводов

Микроконтроллер считывает данные о температуре и относительной влажности через установленные интервалы времени и отправляет информацию на персональный компьютер через интерфейс USB-UART. Приложение для ПК разработано с использованием открытой программной платформы Processing, его основная функция – сбор и сохранение данных в файл в формате ASCII. Дополнительная функция приложения – графическое отображение данных в реальном времени.

Датчик имеет однопроводной интерфейс обмена данными, поэтому коммуникация микроконтроллера с датчиком посредством его встроенной периферии невозможна. Протокол обмена данными реализуется программно (bit-bang) на линии ввода/вывода микроконтроллера.

Выводы датчика 1 (питание), 2 (данные), 4 (общий) подключаются к выводам платы 7, 6 и 4 соответственно. Выводы платы 7 и 4 сконфигурированы как выходы, и на них установлен высокий (3.3 В) и низкий логический уровень (0 В), соответственно. Эти уровни устанавливаются программно для подачи питания на датчик. Помните, что линия ввода/вывода может обеспечить ток 18 мА, что достаточно для питания датчика DHT11, для которого требуется менее 5 мА во время преобразования и передачи данных.

Датчик DHT11 подключенный к платформе chipKIT UNO32

Программа микроконтроллера написана с использованием бесплатной библиотеки для работы с датчиком 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) – скачать

embedded-lab.com

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: chipKIT: Temperature and relative humidity logger

Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя