Метеостанція на Arduino з датчиком DHT-11

Avatar
Автор Атамась Артем
Науковий співробітник НЦ "Мала академія наук України", кандидат технічних наук. Сфера наукових інтересів: розвиток технологій наукової освіти.

Завдання роботи:

зібрати і випробувати метеостанцію на Arduino з датчиком DHT11.

Обладнання:

– платформа Arduino UNO;
– датчик температури й вологості DHT11;
– модуль НС-05;
– макетна плата;
– з’єднувальні провідники;
– USB блок живлення (5 В);
– смартфон з ОС Android;
– ПК.

Теоретична частина


Рис. 1. Прототип метеостанції

Arduino – це платформа для швидкої розробки електронних пристроїв, що вирізняється зручністю та відносно простою мовою програмування. Програмування здійснюється через USB-порт ПК без застосування програматорів. Для програмування Arduino використовується програмне забезпечення Arduino IDE. На базі Arduino можна збирати сумісні між собою електронні й механічні компоненти в єдиний пристрій, а потім запрограмувати потрібну поведінку цих складових за допомогою звичайного компьютера.


Рис. 2. Плата Arduino UNO

На рисунку 2 зображено зовнішній вигляд плати Arduino UNO.
Плата Arduino UNO побудована на базі мікроконтролера ATmega328P. До її складу входить усе необхідне для зручної роботи з мікроконтролером: 14 цифрових входів/виходів (з них 6 можуть використовуватися як ШІМ-виходи), 6 аналогових входів, кварцовий резонатор на 16 МГц, роз’єм USB, додатковий роз’єм живлення, роз’єм для програмування всередині схеми (ICSP) і кнопка скидання. Для початку роботи з пристроєм досить просто подати живлення від AC/DC-адаптера чи батарейки або підключити його до комп’ютера за допомогою USB-кабелю.

Програма Arduino IDE, доступна для завантаження на офіційному сайті Arduino, є безкоштовною. На рисунку 3 зображено робоче вікно програми, в якому здійснюється написання програми для плати Arduino.


Рис. 3. Вікно програми Arduino IDE

Програму в Arduino IDE, яка вже готова до роботи з платою, називають скетчем. Після того, як програма складена, вона завантажується (прошивається) на плату. Для програмування Arduino використовується USB-кабель. Відразу після завантаження програма готова виконувати різні команди. Для завантаження програми на плату у вікні програми треба натиснути кнопку «Завантаження». Після завантаження програми і від’єднання USB-кабелю від ПК програма лишається збереженою на платі Arduino і починає працювати при подачі живлення на плату без ПК.

У цій лабораторній роботі пропонується на базі платформи Arduino UNO зібрати метеостанцію з датчиком температури й вологості повітря DHT11. Дані температури й вологості пропонується передавати на смартфон за допомогою Bluetooth модуля НС-05.

Датчик DHT11 (рис. 4) є недорогим датчиком температури і відносної вологості повітря з цифровим виходом. Діапазон вимірювання температури – від 0 до 50 градусів Цельсія з точністю 2 градуси, відносної вологості повітря – від 20% до 90% з точністю 5%. Для живлення датчика необхідна постійна напруга від 3 до 5,5 вольт. Споживання струму становить до 2,5 мА. Для роботи з датчиком розроблені кілька готових бібліотек, одна з яких буде використовуватися в зазначеній роботі.


Рис. 4. Датчик DHT11

Модуль НС-05 (рис. 5) призначений для передачі даних з Arduino за допомогою технології Bluetooth на інші пристрої, зокрема на телефон або смартфон, що мають Bluetooth-приймач.
Модуль має 6 виводів:
VCC – живлення 3,6…6 В;
GND – земля;
TXD – відправка даних;
RXD – приймання даних;
STATE – індикатор стану;
EN – вмикання/вимикання модуля.


Рис. 5. Bluetooth-модуль НС-05.


Рис. 6. Схема метеостанції

Хід роботи

1. Складіть прототип метеостанції відповідності до схеми на рисунку 6.
2. Установіть на смартфон додаток Bluetooth Terminal HC-05.
3. Відкрийте програму Arduino IDE.
4. Перш ніж написати скетч, до робочого вікна програми треба встановити такі бібліотеки:
– SoftwareSerial;
– DHT sensor library.
Для встановлення бібліотек скористайтеся меню “Інструменти” – “Керувати бібліотеками”. У вікні, що з’явиться, за допомогою інструменту пошуку знайдіть і встановіть зазначені бібліотеки. ПК при цьому має бути підключеним до мережі Інтернет.
5. Скопіюйте та вставте до робочого вікна програми Arduino IDE такий скетч (коментарі до команд не вплинуть на роботу програми, оскільки відділені від команд символом «//»):

#include // підключення бібліотеки SoftwareSerial.h
SoftwareSerial mySerial(2, 3); // вказуємо контакти rx и tx відповідно

#include “DHT.h” // підключаємо бібліотеку для датчика
DHT dht(8, DHT11); // повідомляємо порт, до якого під’єднано датчик

String stringT = String(“*”);
String stringH = String(“%”);

void setup() {
Serial.begin(9600); // запуск апаратного послідовного порту
mySerial.begin(9600); // запуск програмного послідовного порту
dht.begin(); // запуск датчика DHT11

}

void loop() {
float h = dht.readHumidity(); // зчитуємо значення температури
float t = dht.readTemperature(); // зчитуємо значення вологості

Serial.println(t + stringT); // відправляємо значення температури на монітор
Serial.println(h + stringH); // відправляємо значення вологості на монітор
Serial.println(“”);
mySerial.print(millis()/1000);
mySerial.print(“; “);
mySerial.print(t); // відправляємо значення температури на телефон
mySerial.print(“; “);
mySerial.println(h); // відправляємо значення вологості на телефон

delay(2000); // встановлюємо затримку на 2 секунди
}
6. За допомогою USB-кабелю під’єднайте плату Arduino до ПК, натисніть кнопку «Завантаження» та дочекайтеся завершення процесу.
7. Відкрийте на смартфоні додаток Bluetooth Terminal HC-05 та здійсніть сканування для того, щоб знайти ваш Bluetooth-модуль.
8. У вікні додатку натисніть на позначку вашого модуля. Має з’явитися вікно (рис. 7), у якому будуть відображатися час (у секундах) з моменту подачі живлення на метеостанцію, температура (у °С) та відносна вологість повітря (у %).


Рис. 7. Вікно відображення даних додатку Bluetooth Terminal HC-05

9. Тепер ви можете від’єднати метеостанцію від ПК і подати на неї живлення від іншого джерела з USB-виходом, наприклад від зарядного пристрою для смартфона.
10. За необхідності ви можете змінити інтервал замірів у останній стрічці скетчу.
11. У додатку Bluetooth Terminal HC-05 є функція «Send Log file», за допомогою якої ви можете створити і передати електронною поштою текстовий документ із результатами вимірів. Якщо цей текстовий документ зберегти з розширенням «.csv», то ви отримаєте файл у вигляді таблиці Excel, у якому можна побудувати графіки за результатами вимірів, а також здійснити інші види обробки ваших експериментів.

Аналіз даних

Здійсніть моніторинг температури та відносної вологості вуличного повітря протягом декількох днів та дійдіть висновків щодо того, як ці параметри корелюються з хмарністю та прямою видимістю.