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

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

.pdf
Скачиваний:
0
Добавлен:
21.04.2026
Размер:
8 Mб
Скачать

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

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

«Московский технический университет связи и информатики» (МТУСИ)

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

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

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

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

Выполнили: Студенты 4-го курса Группы БАП2201 Ли Самен Мягков А.К.

Проверил: к.т.н., доцент Воронов В.И.

Москва 2026

СОДЕРЖАНИЕ

 

КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ........................................................

3

ВЫПОЛНЕНИЕ......................................................................................................

8

ВЫВОДЫ ..............................................................................................................

10

2

КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ Ультразвуковой датчик расстояния (УЗД)

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

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

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

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

3

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

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

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

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

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

Arduino.

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

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

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

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

4

Листинг 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.

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

5

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

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

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

Особенности

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

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

6

+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

7

Иначе говоря, между цифровым контактом и питанием необходимо подсоединить резистор в 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

8

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

Рисунок 7 – Приближенное отображение в Serial Monitor измеренного расстояния с платы

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

9

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

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

ВЫВОДЫ

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

10

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