Добавил:
МТУСИ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практическая работа 4 / ПР4_Мягков_БАП2201

.docx
Скачиваний:
4
Добавлен:
21.04.2026
Размер:
7.23 Mб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ

КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики»

(МТУСИ)

Кафедра «Интеллектуальные системы в управлении и автоматизации»

(ИСУиА)

ПРАКТИЧЕСКАЯ РАБОТА №4

По дисциплине

Технологии промышленного интернета вещей

Выполнили:

Студенты 4-го курса

Группы БАП2201

Ли Самен

Мягков А.К.

Проверил:

к.т.н., доцент

Воронов В.И.

Москва 2026

СОДЕРЖАНИЕ

ВЫПОЛНЕНИЕ 7

ВЫВОДЫ 9

Ультразвуковой датчик расстояния (УЗД)

Рисунок 1 – Ультразвуковой датчик расстояния

Ультразвуковой датчик определяет расстояние до объекта так же, как это делают летучие мыши или дельфины. Датчик HC-SR04 генерирует узконаправленный сигнал на частоте 40 кГц и ловит отраженный сигнал (эхо). По времени распространения звука до объекта и обратно можно достаточно точно определить расстояние до него.

Рисунок 2 – Принцип работы

Поэтому же принципу работает множество приборов для исследования пространства – эхолот, сонар, радиолокатор и даже полицейский радар для определения скорости автомобиля. Все эти приборы излучают узконаправленный ультразвуковой сигнал и получают обратно отраженный сигнал. В отличие от инфракрасных дальномеров, на показания ультразвукового датчика не влияет цвет объекта или засветки от солнца.

Подключение к Arduino

– VCC – вывод питания.

– GND – вывод земли.

– Trig – вывод запуска процедуры получения информации о расстоянии до объекта. Этот вывод необходимо соединить с одним из цифровых выводов Arduino.

– Echo – вывод сигнала, определяющего расстояние до объекта. Этот вывод также следует подключить к одному из цифровых выводов.

Схема подключения указана на рисунке 3. Отметим, что ультразвуковой дальномер HC-SR04 имеет диапазон измерения от 2 см до 400 см, работает при температурах от 0° до 60° С. Точность измерения составляет ± 1 см, рабочее напряжение датчика до 5,5 В.

Рисунок 3 – Подключение датчика к плате Arduino UNO

Пример опроса датчика представлен в листинге 1.

Листинг 1 – Программирование датчика расстояния

int trigPin = 9; // назначаем имя для Pin8

int echoPin = 8; // назначаем имя для Pin9

void setup() // процедура setup

{

Serial.begin(9600); // подключаем монитор порта

pinMode(trigPin, OUTPUT); // назначаем trigPin (Pin8), как выход

pinMode(echoPin, INPUT); // назначаем echoPin (Pin9), как вход

}

void loop() // процедура loop

{

int duration, cm; // назначаем переменную "cm" и "duration" для показаний датчика

digitalWrite(trigPin, LOW); // изначально датчик не посылает сигнал

delayMicroseconds(2); // ставим задержку в 2 микросекунды

digitalWrite(trigPin, HIGH); // посылаем сигнал

delayMicroseconds(10); // ставим задержку в 10 микросекунд

digitalWrite(trigPin, LOW); // выключаем сигнал

duration = pulseIn(echoPin, HIGH); // включаем прием сигнала

cm = duration / 58; // вычисляем расстояние в сантиметрах

Serial.print(cm); // выводим расстояние в сантиметрах

Serial.println(" cm");

delay(1000); // ставим паузу в 1 секунду

}

Пояснения к коду

1. Для подключения выходов Trig и Echo на датчике можно использовать любые цифровые входы на Arduino.

2. Команда delayMicroseconds() останавливает выполнение программы на заданное количество микросекунд (в 1 секунде 1 000 000 микросекунд).

3. На что обратить внимание: Чтобы получить значение датчика в миллиметрах следует использовать следующую формулу для расчета: cm = duration / 5,8.

Датчик температуры почвы

DS18B20 – это цифровой датчик температуры. Датчик очень прост в использовании. Во-первых, он цифровой, а во-вторых, у него всего лишь один контакт, с которого мы получаем полезный сигнал. То есть, вы можете подключить к одному Arduino одновременно огромное количество этих сенсоров.

Температурный датчик DS18B20 имеет разнообразные виды корпуса. Можно выбрать один из трех – 8-Pin SO, 8-Pin µSOP и 3-Pin TO-92. Последний является наиболее распространенным и изготавливается в специальном влагозащитном корпусе, так что его смело можно использовать под водой. У каждого датчика есть 3 контакта. Для корпуса TO-92 нужно смотреть на цвет проводов: черный – земля, красный – питание и белый/желтый/синий – сигнал.

Рисунок 4 – Датчик DS18B20

Особенности

– Погрешность измерения не больше 0,5 С (для температур от -10С до +85С), что позволяет точно определить значение температуры. Не требуется дополнительная калибровка.

– Температурный диапазон измерений лежит в пределах от -55 С до +125 С.

– Датчик питается напряжением от 3,3В до 5В.

– Присутствует функция тревожного сигнала.

– Каждое устройство обладает своим уникальным серийным кодом.

– Можно подключить сразу до 127 датчиков к одной линии связи.

– Информация передается по протоколу 1-Wire.

– Для присоединения к микроконтроллеру нужны только 3 провода.

Память датчика состоит из двух видов: оперативной и энергонезависимой. SRAM и EEPROM. В последнюю записываются регистры конфигурации и регистры общего назначения.

Информация об измеренной температуре хранится в оперативной памяти датчика, которая состоит из 9 байт.

– 1 и 2 байты хранят информацию о температуре.

– 3 и 4 байты хранят соответственно верхний и нижний пределы температуры.

– 5 и 6 байты зарезервированы.

– 7 и 8 байты используются для сверхточного измерения температуры.

– 9 байт хранит помехоустойчивый CRC код предыдущих 8 байт.

Основной задачей DS18B20 является определение температуры и преобразование полученного результата в цифровой вид.

Подключение к Arduino

Если у вас датчик без дополнительного модуля, который присутствовал на видео, то необходимо подключать по следующей схеме (рисунок 5).

Рисунок 5 – Подключение датчика к плате Arduino UNO

Иначе говоря, между цифровым контактом и питанием необходимо подсоединить резистор в 4,7 КОм.

Если модуль уже имеется, тогда просто подсоедините соответствующий вывод к цифровому контакту.

Пример опроса датчика приведён в листинге 2.

Листинг 2 – Программирование датчика температуры почвы

#include <OneWire.h>

#include <DallasTemperature.h>

#define ONE_WIRE_BUS 2

OneWire oneWire(ONE_WIRE_BUS);

DallasTemperature ds_sensors(&oneWire);

void setup() {

Serial.begin(9600);

ds_sensors.begin();

}

void loop() {

ds_sensors.requestTemperatures();

float t = ds_sensors.getTempCByIndex(0);

Serial.println("Temperature: " + String(t, 1) + "*C");

delay(1000);

}

ВЫПОЛНЕНИЕ

На рисунке 6 представлена реализация ультразвукового датчика из теории, описанной выше, на плате ESP32.

Рисунок 6 – Подключение ультразвукового датчика расстояния к плате ESP32

Для программирования датчика расстояния на ESP32 воспользуемася листингом 1, заменив пины 8 и 9 на пины 5 и 4 соответственно. Результат работы программы по определению расстояния представлен на рисунках 7, 8 и 9.

Рисунок 7 – Приближенное отображение в Serial Monitor

измеренного расстояния с платы

Рисунок 8 – Изменение расстояния в serial monitor при приближении объекта к ультразвуковому датчику расстояния

Рисунок 9 – Изменение расстояния в serial monitor при отдалении объекта к ультразвуковому датчику расстояния

Датчик температуры почвы для проведения опытов отсутствует в элементной базе.

ВЫВОДЫ

Реализовано подключение ультразвукового датчика расстояния к микроконтроллеру ESP32. Для обработки сигналов был адаптирован и загружен программный код, пересчитывающий длительность импульса в значение расстояния. Результаты измерений были успешно проверены через монитор последовательного порта при перемещении объекта относительно датчика. Датчик температуры почвы задействован не был.

Соседние файлы в папке Практическая работа 4