Sadržaj:
- Korak 1: Dijelovi i materijali
- Korak 2: Ožičenje osjetnika temperature
- Korak 3: Izlaz senzora temperature
- Korak 4: Ulaz senzora za kišnicu
- Korak 5: Izlaz senzora za kišnicu
- Korak 6: Ulaz senzora vibracije
- Korak 7: Izlaz senzora vibracije
- Korak 8: Zaključak
Video: Korištenje senzora temperature, kišnice i vibracija na Arduinu za zaštitu željeznica: 8 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
U savremenom društvu, povećanje broja putnika u željeznici znači da željezničke kompanije moraju učiniti više na optimizaciji mreža kako bi bile u skladu sa potražnjom. U ovom projektu pokazat ćemo u malom opsegu kako senzori temperature, kišnice i vibracije na arduino ploči mogu potencijalno pomoći u povećanju sigurnosti putnika.
Ovaj Instructable će korak po korak pokazati ožičenje senzora temperature, kišnice i vibracije na arduinu, kao i prikazati MATLAB kôd potreban za pokretanje ovih senzora.
Korak 1: Dijelovi i materijali
1. Računar sa instaliranom najnovijom verzijom MATLAB -a
2. Arduino ploča
3. Senzor temperature
4. Senzor kišnice
5. Senzor vibracija
6. Crveno LED svjetlo
7. Plavo LED svjetlo
8. Zeleno LED svjetlo
9. RBG LED svjetlo
10. Zujalica
11. 18 Muško-muške žice
12. 3 Žensko-Muške žice
13. 2 Žensko-ženske žice
14. 6 330 ohmskih otpornika
15. 1 100 ohmski otpornik
Korak 2: Ožičenje osjetnika temperature
Iznad je ožičenje i MATLAB kod za ulaz osjetnika temperature.
Žice od uzemljenja i 5V potrebno je samo jednom provesti na negativne i pozitivne strane za cijelu ploču. Od sada pa nadalje, svi uzemljeni spojevi dolazit će iz negativnog stupa, a svi 5V priključci iz pozitivnog stupa.
Donji kôd se može kopirati i zalijepiti za senzor temperature.
%% TEMPERATURNI SENZOR % Za senzor temperature koristili smo sljedeći izvor zajedno sa
% EF230 materijal za web stranicu za izmjenu našeg senzora temperature kako bi omogućio korisniku
% ulaza i 3 LED svjetlosna izlaza sa grafikonom.
%Ovu skicu je napisala SparkFun Electronics, %uz puno pomoći zajednice Arduino.
%Prilagođeno MATLAB -u od Eric Davishahla.
%Posjetite https://learn.sparkfun.com/products/2 za informacije o SIK -u.
obriši sve, clc
tempPin = 'A0'; % Deklarisanje analognog pina povezanog sa senzorom temperature
a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno');
% Definirajte anonimnu funkciju koja pretvara napon u temperaturu
tempCfromVolts = @(volti) (volti-0,5)*100;
samplingDuration = 30;
samplingInterval = 2; % Sekunde između očitavanja temperature
%postavljen vektor vremena uzorkovanja
samplingTimes = 0: samplingInterval: samplingDuration;
%izračunati broj uzoraka na osnovu trajanja i intervala
numSamples = length (samplingTimes);
%unaprijed dodijeli temp varijable i varijablu za broj očitanja koja će pohraniti
tempC = nule (numSamples, 1);
tempF = tempC;
% koristeći dijaloški okvir za unos za pohranjivanje maksimalnih i minimalnih temperatura šine
dlg_prompts = {'Unesite maksimalnu temperaturu', 'Unesite minimalnu temperaturu'};
dlg_title = 'Intervali temperature šine';
N = 22;
dlg_ans = inputdlg (dlg_prompti, dlg_title, [1, dužina (dlg_title)+N]);
% Pohranjivanje unosa od korisnika i prikaz da je ulaz snimljen
max_temp = str2dvostruki (dlg_ans {1})
min_temp = str2dvostruki (dlg_ans {2})
txt = sprintf ('Vaš unos je snimljen');
h = msgbox (txt);
waitfor (h);
% For petlja za očitavanje temperatura određeni broj puta.
za indeks = 1: numSamples
% Očitajte napon na tempPin i pohranite ga kao promjenjive volte
volts = readVoltage (a, tempPin);
tempC (indeks) = tempCfromVolts (volti);
tempF (indeks) = tempC (indeks)*9/5+32; % Pretvori iz Celzijusa u Fahrenheit
% Ako naredbe za stvaranje specifičnih LED lampica trepere u zavisnosti od toga koji je uslov ispunjen
ako je tempF (indeks)> = max_temp % Crvena LED
writeDigitalPin (a, 'D13', 0);
pauza (0,5);
writeDigitalPin (a, 'D13', 1);
pauza (0,5);
writeDigitalPin (a, 'D13', 0);
elseif tempF (index)> = min_temp && tempF (index) <max_temp % Zelena LED dioda
writeDigitalPin (a, 'D11', 0);
pauza (0,5);
writeDigitalPin (a, 'D11', 1);
pauza (0,5);
writeDigitalPin (a, 'D11', 0);
elseif tempF (index) <= min_temp % Plava LED
writeDigitalPin (a, 'D12', 0);
pauza (0,5);
writeDigitalPin (a, 'D12', 1);
pauza (0,5);
writeDigitalPin (a, 'D12', 0);
kraj
% Prikažite temperature dok se mjere
fprintf ('Temperatura na %d sekundama je %5.2f C ili %5.2f F. / n',…
samplingTimes (indeks), tempC (indeks), tempF (indeks));
pause (samplingInterval) %kašnjenja do sljedećeg uzorka
kraj
% Iscrtavanje očitanja temperature
slika (1)
iscrtavanje (samplingTimes, tempF, 'r-*')
xlabel ('Vrijeme (sekunde)')
ylabel ('Temperatura (F)')
title ('Očitavanja temperature sa RedBoarda')
Korak 3: Izlaz senzora temperature
Iznad je ožičenje i MATLAB kôd za izlaz senzora temperature.
Za ovaj projekt koristili smo tri LED svjetla za izlaz našeg senzora temperature. Koristili smo crvenu boju ako su staze prevruće, plavu ako je prehladna i zelenu ako su između.
Korak 4: Ulaz senzora za kišnicu
Iznad je ožičenje za senzor kišnice, a MATLAB kôd je postavljen ispod.
%% Senzor vode
obriši sve, clc
a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno');
waterPin = 'A1';
vDry = 4,80; % Napon kada nema vode
samplingDuration = 60;
samplingInterval = 2;
samplingTimes = 0: samplingInterval: samplingDuration;
numSamples = length (samplingTimes);
% For petlja za očitavanje napona određeno vrijeme (60 sekundi)
za indeks = 1: numSamples
volt2 = readVoltage (a, waterPin); % Očitavanje napona sa analognog vodiča
% Ako izjava oglasi zvučni signal ako se otkrije voda. Pad napona = voda
ako je volt2 <vDry
playTone (a, 'D09', 2400) % funkcija playTone iz MathWorksa
% Prikažite upozorenje putnicima ako se otkrije voda
waitfor (warndlg ('Vaš voz može kasniti zbog opasnosti od vode'));
kraj
% Prikažite napon kako ga mjeri senzor vode
fprintf ('Napon na %d sekundi je %5,4f V. / n',…
samplingTimes (indeks), volt2);
pauza (samplingInterval)
kraj
Korak 5: Izlaz senzora za kišnicu
Iznad je ožičenje za zujalicu koja se oglašava kad god previše vode padne na stazu. Kôd za zujalicu ugrađen je u kôd za ulaz kišnice.
Korak 6: Ulaz senzora vibracije
Iznad je ožičenje senzora vibracija. Senzori vibracija mogu biti važni za željezničke sisteme u slučaju pada kamenja na kolosijek. MATLAB kôd je objavljen ispod.
%% Osjetnik vibracija Jasno sve, klc
PIEZO_PIN = 'A3'; % Deklariranje analognog pina spojenog na senzor vibracije a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno'); % Pokretanje vremena i intervala za merenje uzorkovanja vibracijaDrajanje = 30; % Sekundi samplingInterval = 1;
samplingTimes = 0: samplingInterval: samplingDuration;
numSamples = length (samplingTimes);
% Koristeći kôd iz sljedećeg izvora izmijenili smo ga tako da uključuje a
% ljubičasta LED ako se otkriju vibracije.
% SparkFun Tinker Kit, RGB LED, napisao SparkFun Electronics, % uz puno pomoći zajednice Arduino
% Prilagođeno MATLAB -u od Eric Davishahla
% Inicijalizacija RGB pina
RED_PIN = 'D5';
GREEN_PIN = 'D6';
BLUE_PIN = 'D7';
% For petlja za snimanje promene napona sa senzora vibracija preko a
% određeni vremenski interval (30 sekundi)
za indeks = 1: numSamples
volt3 = readVoltage (a, PIEZO_PIN);
% If izjava o uključivanju ljubičaste LED diode ako se otkriju vibracije
ako je volt3> 0,025
writeDigitalPin (a, RED_PIN, 1);
% Stvaranje ljubičastog svjetla
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 1);
else % Isključite LED ako se ne otkriju vibracije.
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 0);
kraj
% Prikaz napona kako se meri.
fprintf ('Napon na %d sekundi je %5,4f V. / n',…
samplingTimes (indeks), volt3);
pauza (samplingInterval)
kraj
% Ugasite svjetlo kada se vrše mjerenja vibracija
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 0);
Korak 7: Izlaz senzora vibracije
Iznad je ožičenje za RBG LED svjetlo koje se koristi. Svjetlo će svijetliti ljubičasto kada se otkriju vibracije. MATLAB kôd za izlaz je ugrađen u kôd za ulaz.
Korak 8: Zaključak
Nakon što slijedite sve ove korake, sada biste trebali imati arduino sa sposobnošću otkrivanja temperature, kišnice i vibracija. Gledajući kako ti senzori rade u malim razmjerima, lako je zamisliti koliko bi mogli biti vitalni za željezničke sisteme u savremenom životu!
Preporučuje se:
Bežični podaci senzora vibracija i temperature na MySQL koristeći Node-RED: 40 koraka
Bežični podaci senzora vibracija i temperature za MySQL koristeći Node-RED: Predstavljamo NCD-ov industrijski bežični senzor za vibracije i temperaturu za velike domete IoT-a, koji se može pohvaliti upotrebom bežične mrežne strukture do 2 milje. Ovaj uređaj uključuje precizni 16-bitni senzor vibracija i temperature, koji
Slanje bežičnih podataka senzora vibracija i temperature u Excel pomoću Node-RED-a: 25 koraka
Slanje bežičnih podataka senzora vibracija i temperature u Excel pomoću Node-RED-a: Predstavljamo NCD-ov industrijski bežični senzor za vibracije i temperaturu IoT na daljinu, koji se može pohvaliti upotrebom bežične mrežne strukture do 2 milje. Ovaj uređaj uključuje precizni 16-bitni senzor vibracija i temperature, koji
Node-RED sa IoT senzorom vibracija i temperature na daljinu: 34 koraka
Node-RED sa IoT senzorom za vibracije i temperaturu na daljinu: Predstavljamo NCD-ov bežični senzor temperature vlažnosti na daljinu, koji se može pohvaliti do 28 milja pomoću arhitekture bežične mreže. Uključujući Honeywell HIH9130 senzor vlažnosti temperature prenosi vrlo preciznu temperaturu i
Slanje-IOT-podataka-bežičnog-senzora temperature i vlažnosti-senzora-u-MySQL: 41 korak
Slanje-podataka-IOT-bežičnog-senzora temperature i vlažnosti-senzora-u-MySQL: Predstavljamo NCD-ov dugoročni IoT osjetnik temperature i vlažnosti. Zahvaljujući rasponu do 28 milja i bežičnom mrežnom arhitekturom, ovaj senzor prenosi podatke o vlažnosti (± 1,7%) i temperaturi (± 0,3 ° C) u intervalima koje definira korisnik, spavajući
Nadzor strukturnog zdravlja civilne infrastrukture pomoću bežičnih senzora vibracija: 8 koraka
Strukturni zdravstveni nadzor civilne infrastrukture pomoću bežičnih senzora vibracija: Pogoršanje stare zgrade i civilne infrastrukture može dovesti do fatalne i opasne situacije. Stalno praćenje ovih struktura je obavezno. Strukturno praćenje zdravlja izuzetno je važna metodologija u ocjenjivanju