Сбор и хранение данных с датчиков температуры и влажности
на базе Arduino
Силин Н.С., Суючев А.Р.
Тобольский педагогический институт им. Д.И. Менделеева (филиал) ТюмГУ
Тобольск, Россия
В электронной промышленности, агропромышленном комплексе и разных системах в быту огромную роль в производственном процессе занимает постоянный контроль уровня температуры и влажности воздуха. Эту функцию как раз и выполняют датчики влажности воздуха. Они помогают поддерживать микроклимат помещения при заданных параметрах, необходимых для стабильной бесперебойной работы различных приборов и электронных устройств.
Для измерения температуры и относительной влажности окружающего воздуха мы возьмем датчик DHT11 и электронный набор Arduino. Данные температуры и влажности поставляются по сигнальному проводу в виде цифрового сигнала. Это позволяет передавать данные на расстояние до 20 м. DHT11 общается с принимающей стороной, такой как Arduino по собственному протоколу. Коммуникация двунаправлена и в общих чертах выглядит так:
1. Микроконтроллер говорит о том, что хочет считать показания. Для этого он устанавливает сигнальную линию в 0 на некоторое время, а затем устанавливает её в 1;
2. Сенсор подтверждает готовность отдать данные. Для этого он аналогично сначала устанавливает сигнальную линию в 0, затем в 1;
3. После этого сенсор передаёт последовательность 0 и 1, последовательно формирующих 5 байт (40 бит). В первых двух байтах передаётся температура, в третьем-четвёртом -- влажность, в пятом -- контрольная сумма, чтобы микроконтроллер смог убедиться в отсутствии ошибок считывания.
Благодаря тому, что сенсор делает измерения только по запросу, достигается энергоэффективность: пока общения нет, датчик потребляет очень небольшой ток.
Характеристики датчика DHT11:
* Напряжение питания: 5 В
* Диапазон температур: 0-50 °С
* Погрешность температуры: ±2 °С
* Диапазон влажности: 20-90%
* Погрешность влажности: ±5%
Схема подключения датчика (DHT11) выглядит так (рис. 1):
Рис. 1.
Результат выглядит следующим образом (рис. 2):
Рис. 2.
Для работы с датчиком в среде Arduino необходимо установить дополнительную библиотеку DHT (2).
Установка библиотеки производиться прямо в среде разработки, нажав: Скетч>Подключить библиотеку>Добавить Zip. библиотеку, после чего будет необходимо указать путь к скачанному, не распакованному архиву. Далее перезапускаем среду разработки Arduino, для подключения библиотеки, нужно написать всего одну строку в начале скетча: "#include <файл.h>". датчик температура влажность arduino
Теперь нужно загрузить тестовый скетч (программу), который будет отображать влажность и температуру в окне Монитора порта.
#include "DHT.h"
#define DHTPIN 2 // номер пина, к которому подсоединен датчик
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE); // инициируем датчик void setup() {
Serial.begin(9600);
Serial.println("DHTxx test!"); dht.begin();
}
void loop() {
float h = dht.readHumidity(); //считываем влажность float t = dht.readTemperature(); // считываем температуру if (isnan(t) || isnan(h)) { // проверка удачно прошло ли считывание.
Serial.println("Failed to read from DHT"); // не удалось считать показания
} else {
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C");
}
}
Датчики температуры и влажности устанавливаются на высоте 2 м над землёй в метеобудке: это небольшой деревянный ящик (размером приблизительно 40*40*40 см) с белыми, отражающими свет перфорированными или жалюзийными стенками, а также солнцеводозащитным козырьком (крышка будки должна быть герметичной и иметь наклон для стекания осадков с будки).
Литература
1. Амперка. Официальный сайт. - URL: http://amperka.ru.
2. Библиотека для датчика DHT11. - URL:
https://geekelectronics.org/download/22/