МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
«Московский технический университет связи и информатики» (МТУСИ)
Кафедра «Интеллектуальные системы в управлении и автоматизации» (ИСУиА)
ПРАКТИЧЕСКАЯ РАБОТА №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
