
Съдържание:
- Стъпка 1: Части и материали
- Стъпка 2: Окабеляване на сензора за температура
- Стъпка 3: Изход на сензора за температура
- Стъпка 4: Вход на сензора за дъждовна вода
- Стъпка 5: Изход на сензора за дъждовна вода
- Стъпка 6: Вход на сензора за вибрации
- Стъпка 7: Изход на сензора за вибрации
- Стъпка 8: Заключение
2025 Автор: John Day | [email protected]. Последно модифициран: 2025-01-23 14:36

В съвременното общество увеличението на железопътните пътници означава, че железопътните компании трябва да направят повече за оптимизиране на мрежите, за да бъдат в крак с търсенето. В този проект ще покажем в малък мащаб как сензорите за температура, дъждовна вода и вибрации на дъска arduino могат потенциално да помогнат за повишаване на безопасността на пътниците.
Този Instructable стъпка по стъпка ще покаже окабеляването за сензорите за температура, дъждовна вода и вибрации на arduino, както и ще покаже кода MATLAB, необходим за работа на тези сензори.
Стъпка 1: Части и материали
1. Компютър с инсталирана най -новата версия на MATLAB
2. Arduino Board
3. Температурен сензор
4. Сензор за дъждовна вода
5. Вибрационен сензор
6. Червена LED светлина
7. Синя LED светлина
8. Зелена LED светлина
9. RBG LED светлина
10. Звуков сигнал
11. 18 Мъжко-мъжки проводници
12. 3 женско-мъжки проводника
13. 2 женско-женски проводника
14. 6 330 ома резистора
15. 1 100 ома резистор
Стъпка 2: Окабеляване на сензора за температура


По -горе е окабеляването и кодът MATLAB за входа на температурния сензор.
Проводниците от земята и 5V трябва да се проверят съответно веднъж до отрицателни и положителни за цялата платка. От тук нататък всички заземяващи връзки ще идват от отрицателната колона и всички 5V връзки ще идват от положителната колона.
Кодът по -долу може да бъде копиран и поставен за температурния сензор.
%% ТЕМПЕРАТУРЕН СЕНЗОР % За температурния сензор използвахме следния източник заедно с
% Материал за уебсайт EF230 за промяна на нашия сензор за температура, за да позволи на потребителя
% вход и 3 LED светлинни изхода с графика.
%Тази скица е написана от SparkFun Electronics, %с много помощ от общността на Arduino.
%Адаптирано към MATLAB от Eric Davishahl.
%Посетете 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 = {'Enter Max Temp', 'Enter Min Temp'};
dlg_title = 'Интервали на температурата на релсите';
N = 22;
dlg_ans = inputdlg (dlg_prompts, dlg_title, [1, length (dlg_title)+N]);
% Съхранение на входовете от потребителя и показване, че входът е записан
max_temp = str2double (dlg_ans {1})
min_temp = str2double (dlg_ans {2})
txt = sprintf ('Вашият вход е записан');
h = msgbox (txt);
изчакайте (h);
% For цикъл за четене на температурите определен брой пъти.
за индекс = 1: numSamples
% Прочетете напрежението при tempPin и запазете като променливи волта
volts = readVoltage (a, tempPin);
tempC (индекс) = tempCfromVolts (волта);
tempF (индекс) = tempC (индекс)*9/5+32; % Конвертиране от Целзий в Фаренхайт
% Ако изявленията за налагане на конкретни LED светлини мигат в зависимост от това кое условие е изпълнено
ако tempF (индекс)> = max_temp % Червен светодиод
writeDigitalPin (a, 'D13', 0);
пауза (0,5);
writeDigitalPin (a, 'D13', 1);
пауза (0,5);
writeDigitalPin (a, 'D13', 0);
elseif tempF (индекс)> = min_temp && tempF (индекс) <max_temp % Зелен светодиод
writeDigitalPin (a, 'D11', 0);
пауза (0,5);
writeDigitalPin (a, 'D11', 1);
пауза (0,5);
writeDigitalPin (a, 'D11', 0);
elseif tempF (индекс) <= 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 (индекс));
пауза (samplingInterval) %забавяне до следващата проба
край
% Начертаване на показанията на температурата
Фигура 1)
сюжет (samplingTimes, tempF, 'r-*')
xlabel ('Време (секунди)')
ylabel ('Температура (F)')
заглавие („Температурни показания от RedBoard“)
Стъпка 3: Изход на сензора за температура


По -горе е окабеляването и MATLAB кодът за изхода на температурния сензор.
За този проект използвахме три LED светлини за изхода на нашия температурен сензор. Използвахме червено за, ако пистите бяха твърде горещи, синьо, ако бяха твърде студени, и зелено, ако бяха между тях.
Стъпка 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);
% For цикъл за отчитане на напрежението за определен период от време (60 секунди)
за индекс = 1: numSamples
volt2 = readVoltage (a, waterPin); % Прочетете напрежението от аналоговия воден щифт
% Ако изявлението да издаде звуков сигнал, ако се открие вода. Спад на напрежението = вода
ако volt2 <vDry
playTone (a, 'D09', 2400) % функция playTone от MathWorks
% Показва предупреждение на пътниците, ако се открие вода
waitfor (warndlg („Вашият влак може да закъснее поради опасности за водата“));
край
% Показва напрежението, измерено от сензора за вода
fprintf ('Напрежението при %d секунди е %5.4f V. / n',…
samplingTimes (индекс), волт2);
пауза (samplingInterval)
край
Стъпка 5: Изход на сензора за дъждовна вода

По -горе е окабеляването за зумер, който издава звуков сигнал, когато на пистата падне твърде много вода. Кодът за зумера е вграден в кода за входа на дъждовната вода.
Стъпка 6: Вход на сензора за вибрации


По -горе е окабеляването за сензора за вибрации. Сензорите за вибрации могат да бъдат важни за железопътните системи в случай на падащи скали по релса. Кодът на MATLAB е публикуван по -долу.
%% Вибрационен сензор Ясно всички, clc
PIEZO_PIN = 'A3'; % Деклариране на аналоговия щифт, свързан към сензора за вибрации a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno'); % Инициализиране на времето и интервала за измерване на вземане на проби от вибрации Продължителност = 30; % Секунди samplingInterval = 1;
samplingTimes = 0: samplingInterval: samplingDuration;
numSamples = дължина (samplingTimes);
% Използвайки кода от следния източник, ние го променихме, за да включим a
% лилав светодиод, ако се открие вибрация.
% SparkFun Tinker Kit, RGB LED, написано от SparkFun Electronics, % с много помощ от общността на Arduino
% Адаптирано към MATLAB от Eric Davishahl
% Инициализиране на RGB пина
RED_PIN = 'D5';
GREEN_PIN = 'D6';
BLUE_PIN = 'D7';
% For контур за запис на промени в напрежението от сензора за вибрации над a
% определен интервал от време (30 секунди)
за индекс = 1: numSamples
volt3 = readVoltage (a, PIEZO_PIN);
% Ако изявление за включване на лилав светодиод, ако се открие вибрация
ако volt3> 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 V. / n',…
samplingTimes (индекс), волт3);
пауза (samplingInterval)
край
% Изключете светлината, когато се правят измервания на вибрациите
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 0);
Стъпка 7: Изход на сензора за вибрации

По -горе е окабеляването за използваната RBG LED светлина. Светлината ще свети лилаво, когато се открият вибрации. Кодът MATLAB за изхода е вграден в кода за входа.
Стъпка 8: Заключение
След като изпълните всички тези стъпки, сега трябва да имате arduino с възможност за откриване на температура, дъждовна вода и вибрации. Докато разглеждате как тези сензори работят в малък мащаб, е лесно да си представим колко жизненоважни биха могли да бъдат те за железопътните системи в съвременния живот!
Препоръчано:
Първи стъпки с безжични сензори за температура и вибрации на дълги разстояния: 7 стъпки

Първи стъпки с безжични сензори за температура и вибрации на дълги разстояния: Понякога вибрациите са причина за сериозни проблеми в много приложения. От валове и лагери на машината до работа на твърдия диск, вибрациите причиняват повреда на машината, ранна подмяна, ниска производителност и нанасят сериозен удар върху точността. Мониторинг
Изпращане на данни за безжични сензори за вибрации и температура в Excel с помощта на Node-RED: 25 стъпки

Изпращане на данни за безжични сензори за вибрации и температура към Excel с помощта на Node-RED: Представяне на NCD Long Range IoT Industrial безжичен сензор за вибрации и температура, който може да се похвали с обхват до 2 мили с използването на мрежова структура за безжична мрежа. Включващ прецизен 16-битов сензор за вибрации и температура, това устройство
Спестете вода и пари с душ монитора за вода: 15 стъпки (със снимки)

Спестете вода и пари с душ монитора за вода: Кое използва повече вода - вана или душ? Наскоро си мислех по този въпрос и осъзнах, че всъщност не знам колко вода се използва, когато се къпя. Знам, че когато съм под душа, понякога умът ми се лута, мислейки за готино не
Структурен мониторинг на здравето на гражданските инфраструктури с помощта на безжични сензори за вибрации: 8 стъпки

Структурен мониторинг на здравето на гражданските инфраструктури с помощта на безжични сензори за вибрации: Влошаването на старата сграда и гражданската инфраструктура може да доведе до фатална и опасна ситуация. Постоянният мониторинг на тези структури е задължителен. Структурният мониторинг на здравето е изключително важна методология за оценка на
Ултразвуков измервател на капацитета на резервоарите за дъждовна вода: 10 стъпки (със снимки)

Ехограф Имам резервоар за събиране на доста редки дъждове, които ни валят