Përmbajtje:

Përdorimi i sensorëve të temperaturës, ujit të shiut dhe dridhjeve në një Arduino për të mbrojtur hekurudhat: 8 hapa (me fotografi)
Përdorimi i sensorëve të temperaturës, ujit të shiut dhe dridhjeve në një Arduino për të mbrojtur hekurudhat: 8 hapa (me fotografi)

Video: Përdorimi i sensorëve të temperaturës, ujit të shiut dhe dridhjeve në një Arduino për të mbrojtur hekurudhat: 8 hapa (me fotografi)

Video: Përdorimi i sensorëve të temperaturës, ujit të shiut dhe dridhjeve në një Arduino për të mbrojtur hekurudhat: 8 hapa (me fotografi)
Video: Рептилии и кобры в пустыне - ПОЛНЫЙ документальный фильм 2024, Nëntor
Anonim
Përdorimi i sensorëve të temperaturës, ujit të shiut dhe dridhjeve në një Arduino për të mbrojtur hekurudhat
Përdorimi i sensorëve të temperaturës, ujit të shiut dhe dridhjeve në një Arduino për të mbrojtur hekurudhat

Në shoqërinë moderne, një rritje e pasagjerëve hekurudhor do të thotë që kompanitë hekurudhore duhet të bëjnë më shumë për të optimizuar rrjetet për të vazhduar me kërkesën. Në këtë projekt ne do të tregojmë në një shkallë të vogël sesi temperatura, uji i shiut dhe sensorët e dridhjeve në një bord arduino mund të ndihmojnë në rritjen e sigurisë së udhëtarëve.

Ky udhëzues do të tregojë hap pas hapi instalimet elektrike për sensorët e temperaturës, ujit të shiut dhe dridhjeve në arduino, si dhe do të tregojë kodin MATLAB që kërkohet për të drejtuar këta sensorë.

Hapi 1: Pjesët dhe materialet

1. Një kompjuter me versionin e fundit të MATLAB të instaluar

2. Bordi Arduino

3. Sensori i temperaturës

4. Sensori i ujit të shiut

5. Sensori i dridhjeve

6. Drita e kuqe LED

7. Drita LED Blu

8. Drita e gjelbër LED

9. Drita LED RBG

10. Buzzer

11. 18 Tela Mashkull-Mashkull

12. 3 Tela Femër-Mashkull

13. 2 Tela Femra-Femra

14. 6 rezistente 330 ohm

15. Rezistencë 1 100 ohm

Hapi 2: Instalimet e sensorit të temperaturës

Instalimet e sensorit të temperaturës
Instalimet e sensorit të temperaturës
Instalimet e sensorit të temperaturës
Instalimet e sensorit të temperaturës

Më sipër është instalimet elektrike dhe kodi MATLAB për hyrjen e sensorit të temperaturës gjithashtu.

Telat nga toka dhe 5V duhet vetëm të kalojnë në negative dhe pozitive përkatësisht një herë për të gjithë bordin. Nga këtu e tutje, çdo lidhje tokësore do të vijë nga kolona negative dhe çdo lidhje 5V do të vijë nga kolona pozitive.

Kodi më poshtë mund të kopjohet dhe ngjitet për sensorin e temperaturës.

%% SENSOR TEMPERATURE % Për sensorin e temperaturës kemi përdorur burimin e mëposhtëm së bashku me

% EF230 materiali i faqes në internet për të modifikuar sensorin tonë të temperaturës për t'i lejuar përdoruesit

% hyrje dhe 3 dalje të dritës LED me një grafik.

%Kjo skicë është shkruar nga SparkFun Electronics, %me shumë ndihmë nga komuniteti Arduino.

%Përshtatur në MATLAB nga Eric Davishahl.

%Vizitoni https://learn.sparkfun.com/products/2 për informacionin SIK.

pastroni të gjitha, clc

tempPin = 'A0'; % Deklarimi i pinit analog të lidhur me sensorin e temperaturës

a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno');

% Përcaktoni funksionin anonim që konverton tensionin në temperaturë

tempCfromVolts = @(volt) (volt-0.5)*100;

samplingDuration = 30;

samplingInterval = 2; % Sekonda midis leximeve të temperaturës

%ngritur vektorin e kohës së marrjes së mostrës

samplingTimes = 0: samplingInterval: samplingDuration;

%llogarit numrin e mostrave bazuar në kohëzgjatjen dhe intervalin

numSamples = gjatësia (koha e marrjes së mostrave);

%paraalokoni variablat temp dhe ndryshoren për numrin e leximeve që do të ruajë

tempC = zero (numSample, 1);

tempF = tempC;

% duke përdorur kutinë e dialogut të hyrjes për të ruajtur temperaturat maksimale dhe min të hekurudhës

dlg_prompts = {'Shkruani Temp Max,' 'Fut Min Temp'};

dlg_title = 'Intervale të temperaturës hekurudhore';

N = 22;

dlg_ans = inputdlg (dlg_prompts, dlg_title, [1, gjatësia (dlg_titulli)+N]);

% Ruajtja e hyrjeve nga përdoruesi dhe shfaqja e hyrjes së regjistruar

max_temp = str2double (dlg_ans {1})

min_temp = str2double (dlg_ans {2})

txt = sprintf ('Të dhënat tuaja janë regjistruar');

h = msgbox (txt);

prit (h);

% Për lak për të lexuar temperaturat një numër të caktuar herë.

për indeksin = 1: numS shembujt

% Lexoni tensionin në tempPin dhe ruani si volt të ndryshueshëm

volt = readVoltage (a, tempPin);

tempC (indeksi) = tempCfromVolts (volt);

tempF (indeksi) = tempC (indeksi)*9/5+32; % Konvertimi nga Celsius në Fahrenheit

% Nëse deklaratat për të bërë që dritat LED të ndezen në varësi të kushteve që plotësohen

nëse tempF (indeksi)> = max_temp % LED i kuq

writeDigitalPin (a, 'D13', 0);

pauzë (0.5);

writeDigitalPin (a, 'D13', 1);

pauzë (0.5);

writeDigitalPin (a, 'D13', 0);

elseif tempF (indeksi)> = min_temp && tempF (indeksi) <max_temp % LED i gjelbër

writeDigitalPin (a, 'D11', 0);

pauzë (0.5);

writeDigitalPin (a, 'D11', 1);

pauzë (0.5);

writeDigitalPin (a, 'D11', 0);

elseif tempF (indeksi) <= min_temp % LED LED

writeDigitalPin (a, 'D12', 0);

pauzë (0.5);

writeDigitalPin (a, 'D12', 1);

pauzë (0.5);

writeDigitalPin (a, 'D12', 0);

fund

% Shfaq temperaturat ashtu siç maten

fprintf ('Temperatura në %d sekonda është %5.2f C ose %5.2f F. / n',…

samplingTimes (indeksi), tempC (indeksi), tempF (indeksi));

pauzë (samplingInterval) %vonesë deri në mostrën tjetër

fund

% Komplotimi i leximeve të temperaturës

figura (1)

komplot (mostratTimes, tempF, 'r-*')

xlabel ('Koha (sekonda)')

ylabel ('Temperatura (F)')

titulli ("Leximet e temperaturës nga bordi i kuq")

Hapi 3: Dalja e sensorit të temperaturës

Dalja e sensorit të temperaturës
Dalja e sensorit të temperaturës
Dalja e sensorit të temperaturës
Dalja e sensorit të temperaturës

Më sipër është instalimet elektrike dhe kodi MATLAB për daljen e sensorit të temperaturës.

Për këtë projekt ne përdorëm tre drita LED për daljen e sensorit tonë të temperaturës. Ne përdorëm një të kuqe nëse pista ishin shumë të nxehta, një blu nëse ishin shumë të ftohta dhe një jeshile nëse ishin në mes.

Hapi 4: Hyrja e sensorit të ujit të shiut

Hyrja e sensorit të ujit të shiut
Hyrja e sensorit të ujit të shiut
Hyrja e sensorit të ujit të shiut
Hyrja e sensorit të ujit të shiut

Mbi të është instalimet elektrike për sensorin e ujit të shiut dhe kodi MATLAB është postuar më poshtë.

%% Sensori i ujit

pastroni të gjitha, clc

a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno');

waterPin = 'A1';

vDry = 4.80; % Tensioni kur nuk ka ujë të pranishëm

samplingDuration = 60;

samplingInterval = 2;

samplingTimes = 0: samplingInterval: samplingDuration;

numSamples = gjatësia (koha e marrjes së mostrave);

% Për lak për të lexuar tensionin për një kohë të caktuar (60 sekonda)

për indeksin = 1: numS shembujt

volt2 = readVoltage (a, waterPin); % Tensioni i leximit nga analogu i kunjave të ujit

% Nëse deklarata për të dëgjuar një zile nëse zbulohet uji. Rënie e tensionit = ujë

nëse volt2 <vTharje

playTone (a, 'D09', 2400) % playTone funksion nga MathWorks

% Paraqitni një paralajmërim për udhëtarët nëse zbulohet uji

waitfor (warndlg ('Treni juaj mund të vonohet për shkak të rreziqeve të ujit'));

fund

% Shfaq tensionin ashtu siç matet nga sensori i ujit

fprintf ('Tensioni në %d sekonda është %5.4f V. / n',…

koha e marrjes së mostrave (indeksi), volt2);

pauzë (marrja e mostrës Intervali)

fund

Hapi 5: Dalja e sensorit të ujit të shiut

Dalja e sensorit të ujit të shiut
Dalja e sensorit të ujit të shiut

Mbi të është instalimet elektrike për një zile që bip sa herë që shumë ujë bie në binarë. Kodi për zilen është përfshirë në kodin për hyrjen e ujit të shiut.

Hapi 6: Hyrja e sensorit të dridhjeve

Hyrja e sensorit të dridhjeve
Hyrja e sensorit të dridhjeve
Hyrja e sensorit të dridhjeve
Hyrja e sensorit të dridhjeve

Mbi të është instalime elektrike për sensorin e dridhjeve. Sensorët e dridhjeve mund të jenë të rëndësishëm për sistemet hekurudhore në rast të rënies së gurëve në një binar. Kodi MATLAB është postuar më poshtë.

%% Sensor dridhjeje të qartë të gjitha, clc

PIEZO_PIN = 'A3'; % Deklarimi i pinit analog të lidhur me sensorin e dridhjeve a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno'); % Fillimi i kohës dhe intervalit për të matur marrjen e mostrave të dridhjeveDuration = 30; % Sekonda samplingInterval = 1;

samplingTimes = 0: samplingInterval: samplingDuration;

numSamples = gjatësia (koha e marrjes së mostrave);

% Duke përdorur kodin nga burimi i mëposhtëm, ne e modifikuam atë për të aktivizuar a

% LED vjollce nëse zbulohet dridhje.

% SparkFun Tinker Kit, RGB LED, shkruar nga SparkFun Electronics, % me shumë ndihmë nga komuniteti Arduino

% Përshtatur në MATLAB nga Eric Davishahl

% Fillimi i pinit RGB

RED_PIN = 'D5';

GREEN_PIN = 'D6';

BLUE_PIN = 'D7';

% Për lak për të regjistruar ndryshimet e tensionit nga sensori i dridhjeve mbi a

% interval kohor specifik (30 sekonda)

për indeksin = 1: numS shembujt

volt3 = readVoltage (a, PIEZO_PIN);

% Nëse deklarata për të ndezur një LED vjollce nëse zbulohet dridhje

nëse volt3> 0.025

writeDigitalPin (a, RED_PIN, 1);

% Krijimi i një drite vjollce

writeDigitalPin (a, GREEN_PIN, 0);

writeDigitalPin (a, BLUE_PIN, 1);

tjetër % Fikni LED nëse nuk zbulohet dridhje.

writeDigitalPin (a, RED_PIN, 0);

writeDigitalPin (a, GREEN_PIN, 0);

writeDigitalPin (a, BLUE_PIN, 0);

fund

% Shfaq tensionin ashtu siç matet.

fprintf ('Tensioni në %d sekonda është %5.4f V. / n',…

koha e marrjes së mostrave (indeksi), volt3);

pauzë (marrja e mostrës Intervali)

fund

% Ndërpriteni dritën kur bëhet matja e dridhjeve

writeDigitalPin (a, RED_PIN, 0);

shkruajDigitalPin (a, GREEN_PIN, 0);

writeDigitalPin (a, BLUE_PIN, 0);

Hapi 7: Dalja e sensorit të dridhjeve

Dalja e sensorit të dridhjeve
Dalja e sensorit të dridhjeve

Sipër është instalimet elektrike për dritën LED RBG të përdorur. Drita do të shkëlqejë vjollce kur zbulohen dridhjet. Kodi MATLAB për daljen është ngulitur brenda kodit për hyrjen.

Hapi 8: Përfundimi

Pasi të keni ndjekur të gjithë këta hapa, tani duhet të keni një arduino me aftësinë për të zbuluar temperaturën, ujin e shiut dhe dridhjet. Ndërsa shikoni se si funksionojnë këta sensorë në një shkallë të vogël, është e lehtë të imagjinohet se sa jetike mund të jenë ato për sistemet hekurudhore në jetën moderne!

Recommended: