Оглавление:
- Шаг 1: Детали и материалы
- Шаг 2: Подключение датчика температуры
- Шаг 3: Выходной сигнал датчика температуры
- Шаг 4: Вход датчика дождевой воды
- Шаг 5: Выход датчика дождевой воды
- Шаг 6: Вход датчика вибрации
- Шаг 7: Выходной сигнал датчика вибрации
- Шаг 8: Заключение
Видео: Использование датчиков температуры, дождевой воды и вибрации на Arduino для защиты железных дорог: 8 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
В современном обществе рост числа пассажиров железных дорог означает, что железнодорожные компании должны делать больше для оптимизации сетей, чтобы не отставать от спроса. В этом проекте мы покажем в небольшом масштабе, как датчики температуры, дождевой воды и вибрации на плате Arduino могут потенциально помочь повысить безопасность пассажиров.
В этом руководстве будет поэтапно показана проводка датчиков температуры, дождевой воды и вибрации на Arduino, а также показан код MATLAB, необходимый для запуска этих датчиков.
Шаг 1: Детали и материалы
1. Компьютер с установленной последней версией MATLAB.
2. Плата Arduino
3. Датчик температуры
4. Датчик дождевой воды
5. Датчик вибрации
6. Красный светодиодный индикатор
7. Синий светодиодный индикатор
8. Зеленый светодиодный индикатор
9. Светодиодная лампа RBG
10. Зуммер
11. 18 проводов папа-папа
12. 3 женских-мужских провода
13. 2 женских-женских провода
14. 6 резисторов 330 Ом
15. 1 резистор 100 Ом
Шаг 2: Подключение датчика температуры
Выше показаны проводка и код MATLAB для входа датчика температуры.
Провода от земли и 5V нужно подключить к отрицательному и положительному положению только один раз для всей платы. С этого момента любые заземляющие соединения будут исходить от отрицательной колонки, а любые соединения 5 В - от положительной колонки.
Приведенный ниже код можно скопировать и вставить для датчика температуры.
%% TEMPERATURE SENSOR% Для датчика температуры мы использовали следующий источник вместе с
Материал веб-сайта% EF230 для модификации нашего датчика температуры, чтобы позволить пользователю
% входа и 3 светодиодных выхода с графиком.
% Этот скетч был написан SparkFun Electronics, % с большой помощью сообщества Arduino.
% Адаптировано к MATLAB Эриком Дэвишахлом.
% Посетите https://learn.sparkfun.com/products/2 для получения информации о SIK.
очистить все, clc
tempPin = 'A0'; % Объявление аналогового вывода, подключенного к датчику температуры
a = arduino ('/ dev / tty.usbserial-DA017PNO', 'uno');
% Определите анонимную функцию, которая преобразует напряжение в температуру
tempCfromVolts = @ (вольт) (вольт-0,5) * 100;
samplingDuration = 30;
samplingInterval = 2; % Секунд между показаниями температуры
% установить вектор времени выборки
samplingTimes = 0: samplingInterval: samplingDuration;
% рассчитать количество выборок на основе продолжительности и интервала
numSamples = длина (samplingTimes);
% предварительно выделить временные переменные и переменную для количества показаний, которые она будет хранить
tempC = нули (numSamples, 1);
tempF = tempC;
% с помощью диалогового окна ввода для сохранения максимальной и минимальной температуры рельса
dlg_prompts = {'Введите максимальную температуру', 'Введите минимальную температуру'};
dlg_title = 'Температурные интервалы рельса';
N = 22;
dlg_ans = inputdlg (dlg_prompts, dlg_title, [1, длина (dlg_title) + N]);
% Сохранение ввода от пользователя и отображение того, что ввод был записан
max_temp = str2double (dlg_ans {1})
min_temp = str2double (dlg_ans {2})
txt = sprintf ('Ваш ввод был записан');
h = msgbox (txt);
waitfor (h);
% Для цикла, чтобы считывать температуру определенное количество раз.
для индекса = 1: numSamples
% Считайте напряжение на tempPin и сохраните как переменные вольт
вольт = readVoltage (a, tempPin);
tempC (индекс) = tempCfromVolts (вольт);
tempF (индекс) = tempC (индекс) * 9/5 + 32; % Конвертировать из Цельсия в Фаренгейт
% Если инструкции по включению определенных светодиодных индикаторов мигают в зависимости от того, какое условие выполнено
если tempF (index)> = max_temp% Красный светодиод
writeDigitalPin (a, 'D13', 0);
пауза (0,5);
writeDigitalPin (a, 'D13', 1);
пауза (0,5);
writeDigitalPin (a, 'D13', 0);
elseif tempF (index)> = min_temp && tempF (index) <max_temp% Зеленый светодиод
writeDigitalPin (a, 'D11', 0);
пауза (0,5);
writeDigitalPin (а, 'D11', 1);
пауза (0,5);
writeDigitalPin (a, 'D11', 0);
elseif tempF (index) <= min_temp% Синий светодиод
writeDigitalPin (a, 'D12', 0);
пауза (0,5);
writeDigitalPin (a, 'D12', 1);
пауза (0,5);
writeDigitalPin (a, 'D12', 0);
конец
% Отображение температуры по мере ее измерения
fprintf ('Температура в% d секунд составляет% 5.2f C или% 5.2f F. / n',…
samplingTimes (индекс), tempC (индекс), tempF (индекс));
pause (samplingInterval)% задержки до следующей выборки
конец
% Построение показаний температуры
Рисунок 1)
сюжет (samplingTimes, tempF, 'r- *')
xlabel ('Время (секунды)')
ylabel ('Температура (F)')
title («Показания температуры с RedBoard»)
Шаг 3: Выходной сигнал датчика температуры
Выше показаны проводка и код MATLAB для выхода датчика температуры.
Для этого проекта мы использовали три светодиодных лампы для выхода нашего датчика температуры. Мы использовали красный, если дорожки были слишком горячими, синий, если они были слишком холодными, и зеленый, если они были между ними.
Шаг 4: Вход датчика дождевой воды
Выше приведена проводка для датчика дождевой воды, а код MATLAB размещен ниже.
%% Датчик воды
очистить все, clc
a = arduino ('/ dev / tty.usbserial-DA017PNO', 'uno');
waterPin = 'A1';
vDry = 4,80; % Напряжение при отсутствии воды
samplingDuration = 60;
samplingInterval = 2;
samplingTimes = 0: samplingInterval: samplingDuration;
numSamples = длина (samplingTimes);
% Для цикла для считывания напряжения в течение определенного промежутка времени (60 секунд)
для индекса = 1: numSamples
volt2 = readVoltage (a, waterPin); % Считайте напряжение с аналогового вывода воды
% Если заявление о включении зуммера при обнаружении воды. Падение напряжения = вода
если volt2 <vDry
playTone (a, 'D09', 2400)% функция playTone из MathWorks
% Отображение предупреждения для пассажиров при обнаружении воды
waitfor (warndlg ('Ваш поезд может задержаться из-за препятствий на воде'));
конец
% Отображение напряжения, измеренного датчиком воды
fprintf ('Напряжение в% d секунд составляет% 5.4f В. / n',…
samplingTimes (индекс), вольт2);
пауза (интервал выборки)
конец
Шаг 5: Выход датчика дождевой воды
Выше приведена проводка для зуммера, который издает звуковой сигнал, когда на дорожку падает слишком много воды. Код для зуммера встроен в код для входа дождевой воды.
Шаг 6: Вход датчика вибрации
Сверху - проводка датчика вибрации. Датчики вибрации могут быть важны для железнодорожных систем в случае падения камней на рельсы. Код MATLAB размещен ниже.
%% Датчик вибрации очистить все, clc
PIEZO_PIN = 'A3'; % Объявление аналогового вывода, подключенного к датчику вибрации a = arduino ('/ dev / tty.usbserial-DA017PNO', 'uno'); % Инициализация времени и интервала для измерения выборки вибрацииDuration = 30; % Секунд samplingInterval = 1;
samplingTimes = 0: samplingInterval: samplingDuration;
numSamples = длина (samplingTimes);
% Используя код из следующего источника, мы изменили его, чтобы включить
% пурпурный светодиод, если обнаружена вибрация.
% SparkFun Tinker Kit, светодиод RGB, написанный SparkFun Electronics, % с большой помощью сообщества Arduino
% Адаптировано к MATLAB Эриком Дэвишахлом
% Инициализация вывода RGB
RED_PIN = 'D5';
GREEN_PIN = 'D6';
BLUE_PIN = 'D7';
% Для контура регистрации изменений напряжения с датчика вибрации в течение
% определенный временной интервал (30 секунд)
для индекса = 1: numSamples
volt3 = readVoltage (a, PIEZO_PIN);
% If заявление о включении пурпурного светодиода при обнаружении вибрации
если вольт3> 0,025
writeDigitalPin (a, RED_PIN, 1);
% Создание фиолетового света
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 1);
else% Выключите светодиод, если вибрация не обнаружена.
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 0);
конец
% Отображение измеренного напряжения.
fprintf ('Напряжение в% d секунд составляет% 5.4f В. / n',…
samplingTimes (индекс), вольт3);
пауза (интервал выборки)
конец
% Отключение света при измерении вибрации завершено
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 0);
Шаг 7: Выходной сигнал датчика вибрации
Выше показана проводка для используемой светодиодной лампы RBG. При обнаружении вибрации индикатор загорится фиолетовым светом. Код MATLAB для вывода встроен в код для ввода.
Шаг 8: Заключение
После выполнения всех этих шагов у вас должен быть Arduino, способный определять температуру, дождевую воду и вибрации. Наблюдая за тем, как эти датчики работают в небольшом масштабе, легко представить, насколько они жизненно важны для железнодорожных систем в современной жизни!
Рекомендуемые:
Тестирование датчиков температуры - какой из них для меня ?: 15 шагов (с изображениями)
Тестирование датчиков температуры - какой из них для меня ?: Один из первых датчиков, который хотят опробовать новички в области физических вычислений, - это датчик для измерения температуры. Четыре самых популярных датчика - это TMP36, который имеет аналоговый выход и требует аналого-цифрового преобразователя, DS18B20, wh
Структурный мониторинг состояния гражданской инфраструктуры с использованием беспроводных датчиков вибрации: 8 шагов
Структурный мониторинг состояния гражданской инфраструктуры с использованием беспроводных датчиков вибрации: ухудшение состояния старого здания и гражданской инфраструктуры может привести к фатальным и опасным ситуациям. Постоянный мониторинг этих конструкций обязателен. Структурный мониторинг здоровья - чрезвычайно важная методология оценки
Системы предупреждения о наводнениях - Руководство по мониторингу уровней воды + датчиков IoT: 6 шагов
Системы предупреждения о наводнениях - Уровни воды + Руководство по мониторингу датчиков IoT: Вам нужно контролировать уровень воды? В этом руководстве вы узнаете, как создавать системы мониторинга уровня воды. Эти промышленные устройства Интернета вещей используются как системы предупреждения о наводнениях в США. Чтобы вы и ваше сообщество были в безопасности, Smart Cities необходимо
Ультразвуковой измеритель емкости резервуара для дождевой воды: 10 шагов (с изображениями)
Ультразвуковой измеритель емкости резервуара для дождевой воды: если вы похожи на меня и имеете немного экологической совести (или просто скинфлинты, стремящиеся сэкономить несколько долларов - что тоже я …), у вас может быть резервуар для дождевой воды. У меня есть резервуар, чтобы собирать урожай из-за редких дождей, в которые мы попадаем
Шлюз дождевой воды: 11 шагов (с изображениями)
Шлюз дождевой воды: сильный ливень может вызвать перелив через наши: тротуары, колодцы с дождевой водой, польдеры и наши дамбы. Чтобы этого не происходило, мы изобрели шлюз для дождевой воды! Шлюз дождевой воды вычисляет в цифровом виде расстояние между дождевыми водами