МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
«Московский технический университет связи и информатики» (МТУСИ)
Кафедра «Интеллектуальные системы в управлении и автоматизации» (ИСУиА)
ПРАКТИЧЕСКАЯ РАБОТА №3
По дисциплине
Технологии промышленного интернета вещей
Выполнили: Студенты 4-го курса Группы БАП2201 Ли Самен Мягков А.К.
Проверил: к.т.н., доцент Воронов В.И.
Москва 2026
|
|
СОДЕРЖАНИЕ |
|
1 |
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ..................................................... |
3 |
|
|
1.1 |
Датчик движения........................................................................................ |
3 |
|
1.2 |
Датчик влажности и температуры воздуха .............................................. |
6 |
|
1.3 |
Техническая сторона подключения Arduino Nano и ESP32.................... |
9 |
2 |
ВЫПОЛНЕНИЕ................................................................................................. |
12 |
|
|
2.1 |
Подключение стенда c Arduino Nano...................................................... |
12 |
|
2.2 |
Размещение датчиков на ESP32 .............................................................. |
16 |
ВЫВОДЫ .............................................................................................................. |
17 |
||
2
1 КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
1.1 Датчик движения
Датчик движения позволяет регистрировать движение объектов в пространстве. Его можно использовать в автоматизированной системе охраны в умном доме для оповещения о движении на объекте, а также для организации автоматической системы освещения. Датчик является цифровым.
Основу датчика составляет пироэлектрический сенсор, закрытый линзой Френеля, позволяющей расширить угол обнаружения движения. Физически датчик представлен на рисунке 1.
Пироэлектричество – это свойство генерировать определенное электрическое поле при облучении материала инфракрасными (тепловыми) лучами.
Угол обнаружения (слежения) составляет 110 градусов (рисунок 2), диапазон расстояния обнаружения от 3 до 7 метров.
Рисунок 1 – Датчик движения
Датчик имеет три контакта – GND, OUT, VCC. Поскольку контакт OUT расположен посередине, подключение этого датчика к Arduino с помощью трехпроводного шлейфа является невозможным.
3
Рисунок 2 – Угол и дистанция работы датчика
Для работы с Arduino контакт GND нужно соединить с выводом GND на плате Arduino или с черным выводом на плате IO Sensor Shield. Контакт VCC нужно подключить к выводу питания 5 V на плате Arduino или к красному выводу на плате IO Sensor Shield. Вывод OUT подключается к цифровому выводу.
Пироэлектрический датчик движения состоит из двух основных частей. Каждая из частей включает в себя специальный материал, чувствительный к инфракрасному излучению. В данном случае линзы особо не влияют на работу датчика, так что мы видим два участка чувствительности всего модуля. Когда датчик находится в состоянии покоя, оба сенсора определяют одинаковое количество излучения. Например, это может быть излучение помещения или окружающей среды на улице. Когда теплокровный объект (человек или животное), проходит мимо, он пересекает зону чувствительности первого сенсора, в результате чего на модуле ПИР датчика генерируются два различных значения излучения. Когда человек покидает зону чувствительности первого сенсора, значения выравниваются. Именно изменения в показаниях двух датчиков регистрируются и генерируют импульсы HIGH или LOW на выходе.
На приведённом ниже рисунке 3 показаны основные регулировки дат-
4
чика движения, слева находится регулятор временной задержки соответственно в левом столбце приведено описание возможных настроек, а в правом -– описание регулировок расстояния обнаружения.
Рисунок 3 – Настройки датчика расстояния
Подключение к Arduino
На рисунке 4 представлена принципиальная схема подключения датчи-
ка к плате Arduino UNO.
Рисунок 4 – Подключение датчика к плате Arduino UNO
Пример опроса датчика представлен в листинге 1.
5
Листинг 1 – Опрос датчика движения
#define pirPin void setup ( )
{
pinMode (pirPin, INPUT); // Инициализация входа датчика Serial . begin (9600); // Инициализация последовательного
порта
}
void loop ( )
{
int sensor_data = digitalRead(pirPin); // Изменение состоя-
ния PIR-датчика
if (sensor data == HIGH)
{
Serial.println ( "Motion");
}
else {
Serial.println ("No motion") ;
}
delay(100);
}
1.2 Датчик влажности и температуры воздуха
На рисунке 5 представлена физическая форма датчика влажности и температуры воздуха. Основные технические характеристики:
–Напряжение питания: 3-5 В;
–Определяемая влажность: 20 – 80% ± 5%;
–Определяемая температура: 0 – 50º ± 2%;
–Частота опроса: ≤ 1 Гц;
–Размеры: 30 x 14 x 6 мм.
Рисунок 5 – Датчик температуры и влажности воздуха
6
Этот сенсор имеет цифровой сигнал. И температура, и влажность отдаются им по одному сигнальному проводу (S). DHT11 общается с принимающей стороной, такой как Arduino, по собственному протоколу. Коммуникация двунаправленная и в общих чертах выглядит так:
1)Микроконтроллер сообщает о том, что хочет считать показания. Для этого он устанавливает сигнальную линию в 0 на некоторое время, а затем устанавливает её в 1.
2)Сенсор подтверждает готовность передать данные. Для этого он сначала устанавливает сигнальную линию в 0, затем в 1.
3)После этого сенсор передаёт последовательность 0 и 1, последовательно формирующих 5 байт (40 бит). В первых двух байтах передаётся температура, в третьем-четвёртом – влажность, в пятом – контрольная сумма, чтобы микроконтроллер смог убедиться в отсутствии ошибок считывания.
Благодаря тому, что сенсор делает измерения только по запросу, достигается энергоэффективность: пока общения нет, датчик потребляет очень небольшой ток.
Подключение к Arduino
На рисунке 6 представлена принципиальная схема подключения датчи-
ка к плате Arduino UNO.
Модуль оборудован трёх пиновым разъемом стандарта 2,54 мм. G – Подключается к выводу GND;
V – Подключается к выводу +5V;
S – Подключается к цифровому выводу.
7
Рисунок 6 – Подключение датчика к плате Arduino UNO
Подключив датчик к Arduino остается только загрузить скетч для работы. В приведенном ниже скетче мы будем измерять и отсылать данные о состоянии температуры и влажности в последовательный порт компьютера. Пример опроса датчика приведён в листинге 2.
Листинг 2 – Программирование датчика DHT11
#inc1ude “DHT.h” // Подключаем библиотеку для датчика
DHT dht(2, DHT11); // Сообщаем на каком порту будет датчик
void setup() // процедура setup
{
dht.begin(); // запускаем датчик влажности DHT11 Seria1.begin(9600); // Подключаем монитор порта
Serial.println("DHT TEST"); // Пишем один раз
}
void 1оор() // процедура loop
{
//считываем температуру (t) и влажность(h) каждые 250 мс float h = dht.readHumidity();
float t = readTemperature();
//выводим температуру (t) и влажность (h) на мониторе порта
Serial.print("Humidity: ");
Seria1.print(h); Seria1.print(" %/t");
8
