Satura rādītājs:
- 1. darbība: detaļas un materiāli
- 2. solis: Temperatūras sensora elektroinstalācija
- 3. solis: Temperatūras sensora izeja
- 4. solis: lietus ūdens sensora ievade
- 5. solis: lietus ūdens sensora izeja
- 6. darbība: vibrācijas sensora ievade
- 7. solis: Vibrācijas sensora izeja
- 8. solis. Secinājums
Video: Temperatūras, lietus ūdens un vibrācijas sensoru izmantošana Arduino, lai aizsargātu dzelzceļus: 8 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Mūsdienu sabiedrībā dzelzceļa pasažieru skaita pieaugums nozīmē, ka dzelzceļa pārvadājumu uzņēmumiem ir jādara vairāk, lai optimizētu tīklus, lai neatpaliktu no pieprasījuma. Šajā projektā mēs nelielā mērogā parādīsim, kā temperatūras, lietus ūdens un vibrācijas sensori uz arduino plates var potenciāli palīdzēt palielināt pasažieru drošību.
Šī pamācība soli pa solim parādīs arduino temperatūras, lietus ūdens un vibrācijas sensoru vadus, kā arī parādīs MATLAB kodu, kas nepieciešams šo sensoru darbināšanai.
1. darbība: detaļas un materiāli
1. Dators ar instalētu jaunāko MATLAB versiju
2. Arduino valde
3. Temperatūras sensors
4. Lietus ūdens sensors
5. Vibrācijas sensors
6. Sarkana LED gaisma
7. Zila LED gaisma
8. Zaļā LED gaisma
9. RBG LED gaisma
10. Signāls
11. 18 Vīriešu un vīriešu vadi
12. 3 Sieviešu-vīriešu vadi
13. 2 Sieviešu-sieviešu vadi
14. 6 330 omi rezistori
15. 1 100 omu rezistors
2. solis: Temperatūras sensora elektroinstalācija
Augšpusē ir arī vadu un MATLAB kods temperatūras sensora ieejai.
Vadi no zemes un 5 V ir tikai jāpārvieto uz negatīvo un pozitīvo attiecīgi vienreiz visai plāksnei. Turpmāk visi zemējuma savienojumi nāks no negatīvās kolonnas, un visi 5 V savienojumi - no pozitīvās kolonnas.
Tālāk norādīto kodu var nokopēt un ielīmēt temperatūras sensoram.
%% TEMPERATŪRAS SENSORS % Temperatūras sensoram kopā ar
% EF230 vietnes materiāls, lai pārveidotu mūsu temperatūras sensoru, lai lietotājs varētu to izmantot
% ieeja un 3 LED gaismas izejas ar grafiku.
Šo skici uzrakstīja SparkFun Electronics, %ar lielu palīdzību no Arduino kopienas.
%MATLAB pielāgojis Ēriks Deiviss.
%Lai iegūtu informāciju par SIK, apmeklējiet vietni
notīrīt visu, clc
tempPin = 'A0'; % Analogas tapas deklarēšana, kas pievienota temperatūras sensoram
a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno');
% Definējiet anonīmu funkciju, kas spriegumu pārvērš temperatūrā
tempCfromVolts = @(volti) (volti-0,5)*100;
paraugu ņemšanas ilgums = 30;
paraugu ņemšanas intervāls = 2; % Sekundes starp temperatūras rādījumiem
%izveidots paraugu ņemšanas laiku vektors
samplingTimes = 0: samplingInterval: samplingDuration;
%aprēķina paraugu skaitu, pamatojoties uz ilgumu un intervālu
numSamples = garums (samplingTimes);
%iepriekš sadalīti temp mainīgie un mainīgais rādījumu skaitam, ko tas saglabās
tempC = nulles (skaitsSamples, 1);
tempF = tempC;
%, izmantojot ievades dialoglodziņu, lai saglabātu maksimālo un minimālo sliedes temperatūru
dlg_prompts = {'Enter Max Temp', 'Enter Min Temp'};
dlg_title = 'Dzelzceļa temperatūras intervāli';
N = 22;
dlg_ans = inputdlg (dlg_prompts, dlg_title, [1, garums (dlg_title)+N]);
% Lietotāja ievadīto datu saglabāšana un ieraksta ierakstīšanas parādīšana
max_temp = str2double (dlg_ans {1})
min_temp = str2double (dlg_ans {2})
txt = sprintf ('Jūsu ievade ir ierakstīta');
h = msgbox (txt);
gaidīt (h);
% Lai cilpa noteiktu laiku nolasītu temperatūru.
indeksam = 1: numSamples
% Nolasiet spriegumu tempPin un uzglabājiet kā mainīgus voltus
volti = lasāmspriegums (a, tempPin);
tempC (indekss) = tempCfromVolts (volti);
tempF (indekss) = tempC (indekss)*9/5+32; % Konvertēt no Celsija uz Fārenheitu
% Ja paziņojumi noteiktām gaismas diodēm mirgo atkarībā no tā, kurš nosacījums ir izpildīts
ja tempF (indekss)> = max_temp % Sarkana gaismas diode
writeDigitalPin (a, 'D13', 0);
pauze (0,5);
writeDigitalPin (a, 'D13', 1);
pauze (0,5);
writeDigitalPin (a, 'D13', 0);
elseif tempF (indekss)> = min_temp && tempF (indekss) <max_temp % Zaļā gaismas diode
writeDigitalPin (a, 'D11', 0);
pauze (0,5);
writeDigitalPin (a, 'D11', 1);
pauze (0,5);
writeDigitalPin (a, 'D11', 0);
elseif tempF (indekss) <= min_temp % Zils LED
writeDigitalPin (a, 'D12', 0);
pauze (0,5);
writeDigitalPin (a, 'D12', 1);
pauze (0,5);
writeDigitalPin (a, 'D12', 0);
beigas
% Parādiet izmērītās temperatūras
fprintf ('Temperatūra %d sekundēs ir %5,2f C vai %5,2f F. / n',…
samplingTimes (indekss), tempC (indekss), tempF (indekss));
pauze (samplingInterval) %aizkave līdz nākamajam paraugam
beigas
% Temperatūras rādījumu uzzīmēšana
attēls (1)
diagramma (paraugu ņemšanas laiks, tempF, 'r-*')
xlabel ('Laiks (sekundes)')
ylabel ('Temperatūra (F)')
title ('RedBoard temperatūras rādījumi')
3. solis: Temperatūras sensora izeja
Augšpusē ir temperatūras sensora izejas vadi un MATLAB kods.
Šim projektam mēs izmantojām trīs gaismas diodes mūsu temperatūras sensora izejai. Mēs izmantojām sarkanu, ja celiņi bija pārāk karsti, zilu, ja tie bija pārāk auksti, un zaļu, ja tie bija pa vidu.
4. solis: lietus ūdens sensora ievade
Augšpusē ir lietus ūdens sensora vadi, un MATLAB kods ir ievietots zemāk.
%% Ūdens sensors
notīrīt visu, clc
a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno');
waterPin = 'A1';
vDry = 4,80; % Spriegums, ja nav ūdens
paraugu ņemšanas ilgums = 60;
paraugu ņemšanas intervāls = 2;
samplingTimes = 0: samplingInterval: samplingDuration;
numSamples = garums (samplingTimes);
% Lai cilpa nolasītu spriegumu noteiktu laiku (60 sekundes)
indeksam = 1: numSamples
volt2 = lasīt spriegumu (a, waterPin); % Nolasiet spriegumu no ūdens tapas analoga
% Ja paziņojums skaņas signālam, ja tiek konstatēts ūdens. Sprieguma kritums = ūdens
ja volt2 <vSus
playTone (a, 'D09', 2400) % playTone funkcija no MathWorks
% Parādiet brīdinājumu pasažieriem, ja tiek konstatēts ūdens
waitfor (warndlg ('Jūsu vilciens var aizkavēties ūdens apdraudējuma dēļ'));
beigas
% Parādiet spriegumu tā, kā to mēra ūdens sensors
fprintf ('Spriegums %d sekundēs ir %5.4f V. / n',…
samplingTimes (indekss), volt2);
pauze (paraugu ņemšanas intervāls)
beigas
5. solis: lietus ūdens sensora izeja
Augšpusē ir skaņas signāla vadi, kas pīkst, kad trasē nokrīt pārāk daudz ūdens. Signāla kods ir iestrādāts lietus ūdens ievades kodā.
6. darbība: vibrācijas sensora ievade
Augšpusē ir vibrācijas sensora vadi. Vibrācijas sensori var būt svarīgi dzelzceļa sistēmām, ja uz sliežu ceļa nokrīt akmeņi. MATLAB kods ir ievietots zemāk.
%% Vibrācijas sensorsSkaidrs viss, clc
PIEZO_PIN = 'A3'; % Vibrācijas sensoram pievienotās analogās tapas deklarēšana a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno'); % Vibrācijas paraugu ņemšanas laika un intervāla inicializēšanaIlgums = 30; % Sekundes paraugu ņemšanaInterval = 1;
samplingTimes = 0: samplingInterval: samplingDuration;
numSamples = garums (samplingTimes);
% Izmantojot kodu no šī avota, mēs to pārveidojām, lai ieslēgtu a
% violeta gaismas diode, ja tiek konstatēta vibrācija.
% SparkFun Tinker Kit, RGB LED, rakstījis SparkFun Electronics, % ar lielu palīdzību no Arduino kopienas
% MATLAB pielāgojis Ēriks Deiviss
% RGB tapas inicializēšana
RED_PIN = 'D5';
GREEN_PIN = 'D6';
BLUE_PIN = 'D7';
% Lai cilpa ierakstītu sprieguma izmaiņas no vibrācijas sensora pa a
% konkrēts laika intervāls (30 sekundes)
indeksam = 1: numSamples
volt3 = readVoltage (a, PIEZO_PIN);
% Ja paziņojums ieslēgt violetu gaismas diodi, ja tiek konstatēta vibrācija
ja volt3> 0,025
writeDigitalPin (a, RED_PIN, 1);
Violetas gaismas radīšana
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 1);
cits % Izslēdziet LED, ja nav konstatēta vibrācija.
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 0);
beigas
% Parādiet spriegumu, kā tas tiek mērīts.
fprintf ('Spriegums %d sekundēs ir %5.4f V. / n',…
samplingTimes (indekss), volt3);
pauze (paraugu ņemšanas intervāls)
beigas
% Izslēdziet gaismu, mērot vibrācijas
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 0);
7. solis: Vibrācijas sensora izeja
Augšpusē ir izmantotās RBG LED gaismas vadi. Gaisma iemirdzēsies purpursarkanā krāsā, kad tiks konstatētas vibrācijas. Izejas MATLAB kods ir iestrādāts ievades kodā.
8. solis. Secinājums
Pēc visu šo darbību veikšanas jums tagad vajadzētu būt arduino ar spēju noteikt temperatūru, lietus ūdeni un vibrācijas. Skatoties, kā šie sensori darbojas nelielā mērogā, ir viegli iedomāties, cik svarīgi tie varētu būt dzelzceļa sistēmām mūsdienu dzīvē!
Ieteicams:
Lietus detektors, izmantojot Arduino un lietus pilienu sensoru: 8 soļi
Lietus detektors, izmantojot Arduino un lietus pilienu sensoru: Šajā apmācībā mēs uzzināsim, kā noteikt lietu, izmantojot lietus sensoru, un radīt skaņu, izmantojot skaņas signāla moduli un OLED displeju un Visuino. Noskatieties video
Sarkans mezgls ar IoT liela attāluma vibrācijas un temperatūras sensoru: 34 soļi
Sarkans mezgls ar IoT liela diapazona vibrācijas un temperatūras sensoru: iepazīstinām ar NCD bezvadu temperatūras mitruma sensoru, kas var darboties līdz 28 jūdzēm, izmantojot bezvadu tīkla tīkla arhitektūru. Iekļaujot Honeywell HIH9130 temperatūras mitruma sensoru, tiek pārraidīta ļoti precīza temperatūra un
Ultraskaņas lietus ūdens tvertnes tilpuma mērītājs: 10 soļi (ar attēliem)
Ultraskaņas lietus ūdens tvertnes tilpuma mērītājs: ja jūs esat kaut kas līdzīgs man un jums ir mazliet videi draudzīgas sirdsapziņas (vai arī esat tikai skinflints, kas vēlas ietaupīt dažus dolārus - kas ir arī es …), jums var būt lietus ūdens tvertne. Man ir tvertne, lai novāktu diezgan reti lietus, kurā nokļūstam
Ūdens līmeņa noteikšanas metodes Arduino, izmantojot ultraskaņas sensoru un Funduino ūdens sensoru: 4 soļi
Arduino ūdens līmeņa noteikšanas metodes, izmantojot ultraskaņas sensoru un Funduino ūdens sensoru: Šajā projektā es jums parādīšu, kā izveidot lētu ūdens detektoru, izmantojot divas metodes: 1. Ultraskaņas sensors (HC-SR04) .2. Funduino ūdens sensors
Lietus ūdens slūžas: 11 soļi (ar attēliem)
Lietus ūdens slūžas: spēcīga lietusgāze var izraisīt pārplūdi virs mūsu: ietvēm, lietus ūdens akām, polderiem un mūsu dambjiem. Lai tas nenotiktu, mēs izgudrojām lietus ūdens slūžas! Lietus ūdens slūžas digitāli aprēķina attālumu starp lietus ūdeni