Kazalo:
- 1. korak: Deli in materiali
- Korak: Ožičenje temperaturnega senzorja
- 3. korak: Izhod temperaturnega senzorja
- 4. korak: Vhod senzorja deževnice
- 5. korak: Izhod senzorja deževnice
- 6. korak: Vhod senzorja vibracij
- 7. korak: Izhod senzorja vibracij
- 8. korak: Zaključek
Video: Uporaba senzorjev temperature, deževnice in vibracij na Arduinu za zaščito železnic: 8 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
V sodobni družbi povečanje števila potnikov v železniškem prometu pomeni, da morajo železniška podjetja narediti več za optimizacijo omrežij, da bi sledila povpraševanju. V tem projektu bomo v majhnem obsegu pokazali, kako lahko senzorji temperature, deževnice in vibracij na arduino plošči potencialno povečajo varnost potnikov.
Ta Instructable bo korak za korakom prikazal ožičenje senzorjev temperature, deževnice in vibracij na arduinu ter prikazal kodo MATLAB, potrebno za zagon teh senzorjev.
1. korak: Deli in materiali
1. Računalnik z nameščeno najnovejšo različico programa MATLAB
2. Arduino plošča
3. Temperaturni senzor
4. Senzor deževnice
5. Senzor vibracij
6. Rdeča LED luč
7. Modra LED luč
8. Zelena LED luč
9. RBG LED luč
10. Zvočni signal
11. 18 Moško-moške žice
12. 3 Žensko-moške žice
13. 2 Žensko-ženske žice
14. 6 330 ohmskih uporov
15. 1 100 ohmski upor
Korak: Ožičenje temperaturnega senzorja
Zgoraj je tudi ožičenje in koda MATLAB za vhod temperaturnega senzorja.
Ozemljitvene žice in 5V morajo biti napeljane le na negativno oziroma pozitivno le za celotno ploščo. Od tu naprej bodo vse ozemljitvene povezave prihajale iz negativnega stolpca, vse 5V povezave pa iz pozitivnega stolpca.
Spodnjo kodo je mogoče kopirati in prilepiti za temperaturni senzor.
%% TEMPERATURNI SENZOR % Za temperaturni senzor smo skupaj s tem uporabili naslednji vir
% Materiala spletnega mesta EF230 za spremembo našega temperaturnega senzorja, ki uporabniku omogoča
% vhoda in 3 LED izhodi svetlobe z grafom.
%To skico je napisal SparkFun Electronics, %z veliko pomoči skupnosti Arduino.
%MATLAB prilagodil Eric Davishahl.
%Obiščite https://learn.sparkfun.com/products/2 za informacije o SIK -u.
počisti vse, clc
tempPin = 'A0'; % Deklariranje analognega zatiča, priključenega na senzor temp
a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno');
% Določite anonimno funkcijo, ki pretvori napetost v temperaturo
tempCfromVolts = @(volti) (volti-0,5)*100;
samplingDuration = 30;
samplingInterval = 2; % Sekunde med odčitki temperature
%nastavljen vektor časov vzorčenja
samplingTimes = 0: samplingInterval: samplingDuration;
%izračuna število vzorcev na podlagi trajanja in intervala
numSamples = dolžina (samplingTimes);
%vnaprej določi spremenljivke temp in spremenljivko za število odčitkov, ki jih bo shranil
tempC = ničle (numSamples, 1);
tempF = tempC;
% z uporabo pogovornega okna za vnos za shranjevanje najvišje in najnižje temperature tirnic
dlg_prompts = {'Vnesi največjo temperaturo', 'Vnesi najnižjo temperaturo'};
dlg_title = 'Intervali temperature železnice';
N = 22;
dlg_ans = inputdlg (dlg_prompts, dlg_title, [1, length (dlg_title)+N]);
% Shranjevanje vhodov od uporabnika in prikaz, da je bil vnos posnet
max_temp = str2double (dlg_ans {1})
min_temp = str2double (dlg_ans {2})
txt = sprintf ('Vaš vnos je bil posnet');
h = sporočilo (txt);
počakajte (h);
% Zanka za branje temperatur določeno število krat.
za indeks = 1: numSamples
% Preberite napetost pri tempPin in jo shranite kot spremenljive volte
volts = readVoltage (a, tempPin);
tempC (indeks) = tempCfromVolts (volti);
tempF (indeks) = tempC (indeks)*9/5+32; % Pretvori iz Celzija v Fahrenheit
% Če izjave o določenih LED lučkah utripajo, odvisno od tega, kateri pogoj je izpolnjen
če je tempF (indeks)> = max_temp % Rdeča LED
writeDigitalPin (a, 'D13', 0);
premor (0,5);
writeDigitalPin (a, 'D13', 1);
premor (0,5);
writeDigitalPin (a, 'D13', 0);
elseif tempF (index)> = min_temp && tempF (index) <max_temp % Zelena LED
writeDigitalPin (a, 'D11', 0);
premor (0,5);
writeDigitalPin (a, 'D11', 1);
premor (0,5);
writeDigitalPin (a, 'D11', 0);
elseif tempF (indeks) <= min_temp % Modra LED
writeDigitalPin (a, 'D12', 0);
premor (0,5);
writeDigitalPin (a, 'D12', 1);
premor (0,5);
writeDigitalPin (a, 'D12', 0);
konec
% Prikažite temperature, ko se merijo
fprintf ('Temperatura pri %d sekundah je %5.2f C ali %5.2f F. / n',…
samplingTimes (indeks), tempC (indeks), tempF (indeks));
pause (samplingInterval) %zakasnitev do naslednjega vzorca
konec
% Načrtovanje odčitkov temperature
slika (1)
ploskev (vzorčenjeTimes, tempF, 'r-*')
xlabel ('Čas (sekunde)')
ylabel ('Temperatura (F)')
title ('Odčitki temperature iz RedBoarda')
3. korak: Izhod temperaturnega senzorja
Zgoraj je ožičenje in koda MATLAB za izhod temperaturnega senzorja.
Za ta projekt smo uporabili tri LED luči za izhod našega temperaturnega senzorja. Če so bile vroče, smo uporabili rdečo, če je bilo prehladno, in zeleno, če je bilo vmes.
4. korak: Vhod senzorja deževnice
Zgoraj je ožičenje senzorja deževnice, spodaj pa je oznaka MATLAB.
%% Senzor vode
počisti vse, clc
a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno');
waterPin = 'A1';
vDry = 4,80; % Napetost, ko ni vode
samplingDuration = 60;
samplingInterval = 2;
samplingTimes = 0: samplingInterval: samplingDuration;
numSamples = dolžina (samplingTimes);
% Zanka za branje napetosti za določen čas (60 sekund)
za indeks = 1: numSamples
volt2 = readVoltage (a, waterPin); % Odčitajte napetost iz analognega vodnega zatiča
% Če se oglasi izjava o zvočnem signalu, če zazna vodo. Padec napetosti = voda
če je volt2 <vDry
playTone (a, 'D09', 2400) % funkcija playTone iz MathWorksa
% Prikažite opozorilo potnikom, če zazna vodo
waitfor (warndlg ('Vaš vlak lahko zamuja zaradi nevarnosti vode'));
konec
% Prikažite napetost, kot jo meri senzor vode
fprintf ('Napetost pri %d sekundah je %5,4f V. / n',…
samplingTimes (indeks), volt2);
premor (vzorčenjeInterval)
konec
5. korak: Izhod senzorja deževnice
Zgoraj je ožičenje za zvočni signal, ki piska vsakič, ko na stezo pade preveč vode. Koda za zvočni signal je vdelana v kodo za vnos deževnice.
6. korak: Vhod senzorja vibracij
Zgoraj je ožičenje za senzor vibracij. Tipala vibracij so lahko pomembna za železniške sisteme v primeru padanja kamenja na tiru. Koda MATLAB je objavljena spodaj.
%% Vibracijski senzorJedno vse, clc
PIEZO_PIN = 'A3'; % Razglasitev analognega zatiča, priključenega na senzor vibracij a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno'); % Začetek časa in intervala za merjenje vzorčenja vibracijDraje = 30; % Sekund samplingInterval = 1;
samplingTimes = 0: samplingInterval: samplingDuration;
numSamples = dolžina (samplingTimes);
% S kodo iz naslednjega vira smo jo spremenili tako, da je vklopila a
% vijolična LED, če zaznate vibracije.
% SparkFun Tinker Kit, RGB LED, avtor SparkFun Electronics, % z veliko pomoči skupnosti Arduino
% MATLAB prilagodil Eric Davishahl
% Začetek zatiča RGB
RED_PIN = 'D5';
GREEN_PIN = 'D6';
BLUE_PIN = 'D7';
% For zanka za snemanje sprememb napetosti senzorja vibracij nad a
% določen časovni interval (30 sekund)
za indeks = 1: numSamples
volt3 = readVoltage (a, PIEZO_PIN);
% Izjava o vklopu vijolične LED diode, če zaznate vibracije
če je volt3> 0,025
writeDigitalPin (a, RED_PIN, 1);
% Ustvarjanje vijolične svetlobe
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 1);
else % Izklopite LED, če ni zaznanih vibracij.
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 0);
konec
% Prikažite napetost, ko se meri.
fprintf ('Napetost pri %d sekundah je %5,4f V. / n',…
samplingTimes (indeks), volt3);
premor (vzorčenjeInterval)
konec
% Ko merite vibracije, izključite svetlobo
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 0);
7. korak: Izhod senzorja vibracij
Zgoraj je ožičenje za uporabljeno LED luč RBG. Ko se zaznajo vibracije, bo luč zasvetila vijolično. Koda MATLAB za izhod je vdelana v kodo za vhod.
8. korak: Zaključek
Po vseh teh korakih bi morali imeti arduino z možnostjo zaznavanja temperature, deževnice in vibracij. Med ogledom, kako ti senzorji delujejo v majhnem obsegu, si je enostavno predstavljati, kako pomembni bi lahko bili za železniške sisteme v sodobnem življenju!
Priporočena:
Začetek uporabe brezžičnih senzorjev temperature in vibracij na dolge razdalje: 7 korakov
Kako začeti z brezžičnimi senzorji temperature in vibracij na dolge razdalje: Včasih so vibracije vzrok resnih težav v mnogih aplikacijah. Od gredi in ležajev strojev do zmogljivosti trdega diska vibracije povzročijo poškodbe stroja, zgodnjo zamenjavo, nizko zmogljivost in močno vplivajo na natančnost. Spremljanje
Uporaba analognih senzorjev z ESP8266: 5 korakov
Uporaba analognih senzorjev z ESP8266: Analogno-digitalni pretvornik (ADC, A/D, A – D ali A-v-D) je sistem, ki pretvori analogni signal v digitalni signal. A/D pretvorniki prevajajo analogne električne signale za namene obdelave podatkov. Z izdelki, ki ustrezajo zmogljivosti, moči,
Ustvarjanje-opozorilo-uporaba-Ubidots+ESP32 in senzor vibracij: 8 korakov
Ustvarjanje-opozorilo-uporaba-Ubidots+ESP32 in senzor vibracij: V tem projektu bomo z uporabo senzorja vibracij Ubidots in ESP32 ustvarili e-poštno opozorilo o vibracijah in temperaturi stroja. stroji in komponente v motornih pripomočkih. Vibracije i
Nadzor strukturnega zdravja civilne infrastrukture z uporabo brezžičnih senzorjev vibracij: 8 korakov
Strukturni zdravstveni nadzor civilne infrastrukture z uporabo brezžičnih senzorjev vibracij: Poslabšanje stare stavbe in civilne infrastrukture lahko povzroči usodne in nevarne razmere. Nenehno spremljanje teh struktur je obvezno. Strukturno spremljanje zdravja je izjemno pomembna metodologija pri ocenjevanju
Uporaba RGB LED iz kompleta senzorjev 37: 6 korakov
Uporaba RGB LED iz kompleta senzorjev 37: Torej ste šli ven in po ugodni ceni kupili komplet električnih senzorjev in modulov, imenovanih " 37 senzorjev " (na primer ta tukaj ali drugi na Amazonu), vendar ne najdete informacij o modulih, da bi jih lahko uporabljali? Ta serija Instructabl