Логгер температури та відносної вологості на chipKIT

У статті розповідається про створення логера температури та відносної вологості на базі ПК з використанням плати chipKIT Uno32 та датчика DHT11. Для складання пристрою не потрібні додаткові проводи (крім кабелю USB) та компоненти; Датчик DHT11 підключається безпосередньо до чотирьох портів введення/виведення плати Uno32 і проект готовий до роботи. Цей проект можна використовувати як просту та зручну систему моніторингу температури та відносної вологості навколишнього середовища у серверній кімнаті. Uno32 зчитує показання датчика DHT11 через задані інтервали часу та надсилає отримані дані на комп'ютер через USB-UART інтерфейс. Програма для ПК написана у відкритій програмній платформі Processing і записує дані в ASCII файл. Також програма відображає температуру та відносну вологість у реальному часі на екрані комп'ютера.

вологості

Недорогий датчик температури та відносної вологості навколишнього середовища DHT11 має відкалібрований цифровий вихід. Він має 4-контактний корпус та працює при напрузі живлення від 3В до 5.5В. Він може вимірювати температуру від 0 до 50°C з точністю ± 2°З відносну вологість повітря від 20 до 95% з точністю ± 5%. Датчик має власний 1-Wire протокол, і, отже, з'єднати датчик і мікроконтролер через прямий інтерфейс як з будь-яким периферійним пристроєм неможливо. Протокол має бути описаний у прошивці мікроконтролера за допомогою Bit-Banging. Прочитайте вимірювання температури та відносної вологості за допомогою датчика DHT11 та мікроконтролера PIC (англ.) для отримання більш детальної інформації про протокол DHT11. На малюнку показано цоколівку датчика DHT11.

логгер

У цьому проекті чотири виводи датчика DHT11 вставляються безпосередньо в чотири порти вводу/виводу (7, 6,5 та 4) плати Uno32. Живлення(1), дані(2) та GND(4) контакти DHT11 підключаються до портів вводу/виводу 7, 6, та 5 Uno32 відповідно. Контакти 7 та 4 Uno32 налаштовані як вихід і мають високий (3.3В) та низький (GND) рівні відповідно, та використовуються для живлення датчика. Зверніть увагу, що порти введення/виведення Uno32 можуть видавати струм до 18 мА, що достатньо для живлення датчика DHT11, який споживає менше 5 мА під час перетворення та передачі даних. Висновок 3 DHT11 не використовується. Інформація про температуру та вологість зчитується 6 портом вводу/виводу Uno32.

температури

Писати прошивку простіше, використовуючи бібліотеку для Arduino або chipKIT для роботи з датчиком DHT11. Бібліотека DHT11 для Arduino була написана George Hadjikyriacou та пізніше змінювалася іншими людьми. Програма для Uno32 зчитує дані про температуру та відносну вологість (два байти) з DHT11 і відправляє їх через послідовний порт. Інтервал вибірки 2 секунди.

Програма для комп'ютера була написана на відкритій програмній платформі Processing, призначеної для спрощення створення інтерактивних зображень та графічних програм, в даному випадку для відображення отриманої інформації про температуру та вологість. Вона безкоштовна та працює на платформах Mac, Windows та Linux. Я написав простий додаток, який отримує байти температури та вологості, передані з плати Uno32 через послідовний порт, і відображає ці дані у графічному вікні. Дані про температуру та вологість, а також дата та час записуються у текстовий файл. Дата і час базуються на комп'ютері RTC.

Необхідно імпортувати бібліотеку Processing Serial, щоб отримати доступ до послідовного порту. Це робиться так: import processing.serial.*;

Далі необхідно відкрити послідовнийпорт: Dev_Board = new Serial(this, "COM12", 9600);

У мене модуль USB-UART на платі Uno32 розпізнається як COM12. Ви повинні підібрати правильний номер COM для роботи. У Windows цю інформацію можна знайти в диспетчері пристроїв.

Кнопка Пуск/Стоп у програмі клікабельна. Функція обробки миші Processing Mouse використовується визначення натискання мишею на кнопку. Коли кнопка Старт натиснута, починається запис показів і напис на кнопці змінюється на Стоп. При натисканні на неї запис даних зупиняється. Температура із зазначенням дати та часу записується у текстовий файл. Щоразу при натисканні кнопки Старт програма створює новий текстовий файл. Ім'я файлу містить поточну системну дату та час, тому перезапису файлів не буде. Проте дані тимчасово зберігаються в оперативній пам'яті комп'ютера і записуються в текстовий файл на жорсткому диску тільки після натискання на кнопку Стоп.

температури

Ось приклад текстового файлу, де інформація про температуру та відносну вологість записується разом з часом:

вологості

Дані з файлу можна використовувати для побудови графіка в додатках на кшталт MS Excel, або можна додати до програми функцію побудови графіка температури та вологості щодо часу.