Përmbajtje:
- Hapi 1: Pjesët dhe materialet
- Hapi 2: Instalimet e sensorit të temperaturës
- Hapi 3: Dalja e sensorit të temperaturës
- Hapi 4: Hyrja e sensorit të ujit të shiut
- Hapi 5: Dalja e sensorit të ujit të shiut
- Hapi 6: Hyrja e sensorit të dridhjeve
- Hapi 7: Dalja e sensorit të dridhjeve
- Hapi 8: Përfundimi
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)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:27
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
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
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
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
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
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
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:
Fillimi me sensorë të temperaturës dhe dridhjeve pa tel me rreze të gjatë: 7 hapa
Fillimi me sensorë të temperaturës dhe dridhjeve pa tel me rreze të gjatë: Ndonjëherë dridhjet janë shkaku i çështjeve serioze në shumë aplikime. Nga boshtet dhe kushinetat e makinës deri te performanca e diskut të ngurtë, dridhja shkakton dëmtime të makinës, zëvendësim të hershëm, performancë të ulët dhe shkakton një goditje të madhe në saktësinë. Monitorimi
Dërgimi i të dhënave të dridhjeve pa tel dhe sensorit të temperaturës në Excel duke përdorur Node-RED: 25 hapa
Dërgimi i të dhënave të dridhjeve pa tel dhe sensorit të temperaturës në Excel duke përdorur Node-RED: Prezantimi i sensorit të dridhjeve dhe temperaturës pa tela të NCD’s Long Range IoT Industrial, duke u mburrur deri në një distancë prej 2 kilometrash përdorimi i një strukture rrjetëzimi pa tel. Përfshirë një sensor dridhjeje dhe temperature të saktë 16-bit, kjo pajisje kalon
Përdorimi i bordit të sensorëve të arteve komplekse për të kontrolluar të dhënat e pastra përmes WiFi: 4 hapa (me fotografi)
Përdorimi i Bordit të Sensorëve të Arteve Komplekse për të kontrolluar të dhënat e pastra përmes WiFi: A keni dashur ndonjëherë të eksperimentoni me kontrollin e gjesteve? I bëni gjërat të lëvizin me një lëvizje të dorës? Kontrolloni muzikën me një kthesë të dorës? Ky udhëzues do t'ju tregojë se si! Bordi i Sensorëve të Arteve Komplekse (complexarts.net) është një mikrok i gjithanshëm
Testimi i sensorëve të temperaturës - cili për mua ?: 15 hapa (me fotografi)
Testimi i sensorëve të temperaturës - Cili për mua ?: Një nga sensorët e parë që të sapoardhurit në llogaritjet fizike duan të provojnë është diçka për të matur temperaturën. Katër nga sensorët më të njohur janë TMP36, i cili ka dalje analoge dhe ka nevojë për një konvertues analog në dixhital, DS18B20,
Krijimi-paralajmërimi-Përdorimi-Ubidots+ESP32 dhe sensori i dridhjeve: 8 hapa
Krijimi-Paralajmërimi-Përdorimi-Ubidots+ESP32 dhe Sensori i Vibrimit: Në këtë projekt, ne do të krijojmë një alarm elektronik për dridhjet dhe temperaturën e makinës duke përdorur sensorin e dridhjeve Ubidots dhe ESP32. Vibrimi është me të vërtetë një lëvizje vajtje-ardhje-ose lëkundje-e makina dhe përbërës në vegla të motorizuara. Dridhje unë