Turinys:
- 1 žingsnis: dalys ir medžiagos
- 2 žingsnis: Temperatūros jutiklio prijungimas
- 3 žingsnis: temperatūros jutiklio išėjimas
- 4 žingsnis: lietaus vandens jutiklio įvestis
- 5 žingsnis: Lietaus vandens jutiklio išėjimas
- 6 žingsnis: vibracijos jutiklio įvestis
- 7 žingsnis: Vibracijos jutiklio išėjimas
- 8 žingsnis: Išvada
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-23 14:59
Šiuolaikinėje visuomenėje geležinkelio keleivių skaičiaus padidėjimas reiškia, kad geležinkelio įmonės turi daugiau stengtis optimizuoti tinklus, kad neatsiliktų nuo paklausos. Šiame projekte nedideliu mastu parodysime, kaip temperatūros, lietaus vandens ir vibracijos jutikliai arduino plokštėje gali padėti padidinti keleivių saugumą.
Ši instrukcija žingsnis po žingsnio parodys „arduino“temperatūros, lietaus vandens ir vibracijos jutiklių laidus, taip pat parodys MATLAB kodą, reikalingą šiems jutikliams paleisti.
1 žingsnis: dalys ir medžiagos
1. Kompiuteris, kuriame įdiegta naujausia MATLAB versija
2. „Arduino“lenta
3. Temperatūros jutiklis
4. Lietaus vandens jutiklis
5. Vibracijos jutiklis
6. Raudona LED lemputė
7. Mėlyna LED lemputė
8. Žalia LED lemputė
9. RBG LED lemputė
10. Garsinis signalas
11. 18 vyrų ir vyrų laidai
12. 3 Moterų-vyrų laidai
13. 2 Moterų-moterų laidai
14. 6 330 omų rezistoriai
15. 1 100 omų rezistorius
2 žingsnis: Temperatūros jutiklio prijungimas
Viršuje taip pat yra temperatūros jutiklio įvesties laidai ir MATLAB kodas.
Įžeminimo ir 5 V laidai tik vieną kartą turi būti sujungti į neigiamą ir teigiamą visos plokštės. Nuo šiol visos įžeminimo jungtys bus iš neigiamo stulpelio, o visos 5 V jungtys - iš teigiamo stulpelio.
Žemiau esantį kodą galima nukopijuoti ir įklijuoti temperatūros jutikliui.
%% TEMPERATŪROS JUTIKLIS % Temperatūros jutikliui kartu naudojome šį šaltinį
% EF230 svetainės medžiaga, skirta modifikuoti mūsų temperatūros jutiklį, kad vartotojas galėtų
% įvesties ir 3 LED šviesos išėjimai su grafiku.
Šį eskizą parašė „SparkFun Electronics“, %su daug pagalbos iš „Arduino“bendruomenės.
%MATLAB pritaikė Ericas Davishahlas.
%SIK informacijos rasite apsilankę
išvalyk viską, kl
tempPin = 'A0'; % Analoginio kaiščio, prijungto prie temperatūros jutiklio, deklaravimas
a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno');
% Apibrėžkite anoniminę funkciją, kuri įtampą paverčia temperatūra
tempCfromVolts = @(voltai) (voltai-0,5)*100;
mėginių ėmimo trukmė = 30;
samplingInterval = 2; % Sekundžių tarp temperatūros rodmenų
%nustatytas mėginių ėmimo laiko vektorius
samplingTimes = 0: samplingInterval: samplingDuration;
%apskaičiuoja mėginių skaičių pagal trukmę ir intervalą
numSamples = ilgis (samplingTimes);
%iš anksto paskirstyti temp kintamuosius ir rodmenų, kuriuos jis išsaugos, kintamąjį
tempC = nuliai (numSamples, 1);
tempF = tempC;
% naudojant įvesties dialogo langą, kad būtų išsaugota maksimali ir minimali bėgių temperatūra
dlg_prompts = {'Enter Max Temp', 'Enter Min Temp'};
dlg_title = 'Geležinkelio temperatūros intervalai';
N = 22;
dlg_ans = inputdlg (dlg_prompts, dlg_title, [1, ilgis (dlg_title)+N]);
% Vartotojo įvesties išsaugojimas ir įvesties rodymas
max_temp = str2double (dlg_ans {1})
min_temp = str2double (dlg_ans {2})
txt = sprintf ('Jūsų įvestis buvo įrašyta');
h = „msgbox“(txt);
laukti (h);
% Norėdami ciklas nuskaityti temperatūrą tam tikrą skaičių kartų.
indeksui = 1: numSamples
% Perskaitykite „tempPin“įtampą ir saugokite kaip kintamus voltus
voltai = skaitytiVoltage (a, tempPin);
tempC (indeksas) = tempCfromVolts (voltai);
tempF (indeksas) = tempC (indeksas)*9/5+32; % Konvertuoti iš Celsijaus į Farenheitą
% Jei teiginiai, skirti tam tikroms LED lemputėms mirksėti, priklauso nuo to, kuri sąlyga įvykdyta
jei tempF (indeksas)> = max_temp % Raudonas šviesos diodas
writeDigitalPin (a, 'D13', 0);
pauzė (0,5);
writeDigitalPin (a, 'D13', 1);
pauzė (0,5);
writeDigitalPin (a, 'D13', 0);
elseif tempF (indeksas)> = min_temp && tempF (indeksas) <max_temp % žalias šviesos diodas
writeDigitalPin (a, 'D11', 0);
pauzė (0,5);
writeDigitalPin (a, 'D11', 1);
pauzė (0,5);
writeDigitalPin (a, 'D11', 0);
elseif tempF (indeksas) <= min_temp % Mėlynas šviesos diodas
writeDigitalPin (a, 'D12', 0);
pauzė (0,5);
writeDigitalPin (a, 'D12', 1);
pauzė (0,5);
writeDigitalPin (a, 'D12', 0);
galas
% Rodyti matuojamas temperatūras
fprintf ('Temperatūra %d sekundžių yra %5.2f C arba %5.2f F. / n',…
samplingTimes (indeksas), tempC (indeksas), tempF (indeksas));
pauzė (samplingInterval) %vėlavimas iki kito mėginio
galas
% Temperatūros rodmenų brėžimas
figūra 1)
grafikas (mėginių ėmimo laikas, tempF, „r-*“)
xlabel ('Laikas (sekundės)')
ylabel („Temperatūra (F)“)
pavadinimas („„ RedBoard “temperatūros rodmenys“)
3 žingsnis: temperatūros jutiklio išėjimas
Viršuje yra temperatūros jutiklio išvesties laidai ir MATLAB kodas.
Šiam projektui temperatūros jutiklio išėjimui panaudojome tris LED lemputes. Mes naudojome raudoną, jei takeliai buvo per karšti, mėlyną, jei jie buvo per šalti, ir žalią, jei jie buvo tarp jų.
4 žingsnis: lietaus vandens jutiklio įvestis
Viršuje yra lietaus vandens jutiklio laidai, o MATLAB kodas yra paskelbtas žemiau.
%% Vandens jutiklis
išvalyk viską, kl
a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno');
waterPin = 'A1';
vDry = 4,80; % Įtampa, kai nėra vandens
mėginių ėmimo trukmė = 60;
samplingInterval = 2;
samplingTimes = 0: samplingInterval: samplingDuration;
numSamples = ilgis (samplingTimes);
% Kad ciklas nuskaitytų įtampą tam tikrą laiką (60 sekundžių)
indeksui = 1: numSamples
volt2 = skaitymo įtampa (a, waterPin); % Skaityti įtampą iš vandens kaiščio analogo
% Jei sakoma, kad garsinis signalas skamba, jei aptinkamas vanduo. Įtampos kritimas = vanduo
jei volt2 <vsausas
playTone (a, 'D09', 2400) % playTone funkcija iš MathWorks
% Rodyti įspėjimą keleiviams, jei aptinkamas vanduo
waitfor (warndlg („Jūsų traukinys gali vėluoti dėl vandens pavojų“));
galas
% Rodyti įtampą, kurią matuoja vandens jutiklis
fprintf ('Įtampa %d sekundėje yra %5.4f V. / n',…
samplingTimes (indeksas), volt2);
pauzė (atrankos intervalas)
galas
5 žingsnis: Lietaus vandens jutiklio išėjimas
Viršuje yra garsinio signalo laidas, kuris pypteli, kai į taką patenka per daug vandens. Signalizacijos kodas yra įterptas į lietaus vandens įvesties kodą.
6 žingsnis: vibracijos jutiklio įvestis
Viršuje yra vibracijos jutiklio laidai. Vibracijos jutikliai gali būti svarbūs geležinkelio sistemoms, kai ant bėgių krenta akmenys. MATLAB kodas yra paskelbtas žemiau.
%% Vibracijos jutiklisAšvalyti viską, clc
PIEZO_PIN = 'A3'; % Analoginio kaiščio, prijungto prie vibracijos jutiklio, deklaravimas a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno'); % Laiko ir intervalo inicijavimas vibracijos mėginių ėmimui matuotiDuration = 30; % Sekundžių atrankaIntervalas = 1;
samplingTimes = 0: samplingInterval: samplingDuration;
numSamples = ilgis (samplingTimes);
% Naudodami kodą iš šio šaltinio, mes jį pakeitėme, kad įjungtume
% violetinis šviesos diodas, jei aptinkama vibracija.
% „SparkFun Tinker Kit“, RGB LED, parašytas „SparkFun Electronics“, % su daug pagalbos iš „Arduino“bendruomenės
% MATLAB pritaikė Ericas Davishahlas
% Inicijuojamas RGB kaištis
RED_PIN = 'D5';
GREEN_PIN = 'D6';
BLUE_PIN = 'D7';
% Kad ciklas įrašytų įtampos pokyčius iš vibracijos jutiklio per a
% konkretaus laiko intervalo (30 sekundžių)
indeksui = 1: numSamples
volt3 = skaitymo įtampa (a, PIEZO_PIN);
% Jei teiginys įjungia violetinį šviesos diodą, jei aptinkama vibracija
jei volt3> 0,025
writeDigitalPin (a, RED_PIN, 1);
Purpurinės šviesos sukūrimas
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 1);
else % Išjunkite šviesos diodą, jei vibracija neaptinkama.
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 0);
galas
% Rodyti matuojamą įtampą.
fprintf ('Įtampa %d sekundėje yra %5.4f V. / n',…
samplingTimes (indeksas), volt3);
pauzė (atrankos intervalas)
galas
% Išjunkite šviesą matuojant vibracijas
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 0);
7 žingsnis: Vibracijos jutiklio išėjimas
Viršuje yra naudojamos RBG LED lempos laidai. Kai aptinkama vibracija, lemputė švytės purpurine spalva. Išvesties MATLAB kodas yra įterptas į įvesties kodą.
8 žingsnis: Išvada
Atlikę visus šiuos veiksmus, dabar turėtumėte turėti arduino, galintį aptikti temperatūrą, lietaus vandenį ir vibracijas. Žiūrint, kaip šie jutikliai veikia nedideliu mastu, nesunku įsivaizduoti, kokie jie gali būti gyvybiškai svarbūs geležinkelio sistemoms šiuolaikiniame gyvenime!
Rekomenduojamas:
Darbo su belaidžiu belaidžiu temperatūros ir vibracijos jutikliu pradžia: 7 žingsniai
Darbo su belaidžiu belaidžiu temperatūros ir vibracijos jutikliu pradžia: kartais vibracija sukelia rimtų problemų daugelyje programų. Nuo mašinos velenų ir guolių iki kietojo disko veikimo vibracija sukelia mašinos pažeidimus, ankstyvą pakeitimą, mažą našumą ir daro didelę įtaką tikslumui. Stebima
Lietaus detektorius naudojant „Arduino“ir lietaus lašo jutiklį: 8 žingsniai
Lietaus detektorius naudojant „Arduino“ir lietaus lašo jutiklį: Šioje pamokoje sužinosime, kaip aptikti lietų naudojant lietaus jutiklį ir išgirsti garsą naudojant garso signalą ir OLED ekraną bei „Visuino“. Žiūrėkite vaizdo įrašą
„Arduino“sąsaja su ultragarso jutikliu ir bekontakčiu temperatūros jutikliu: 8 žingsniai
„Arduino“sąsaja su ultragarso jutikliu ir bekontakčiu temperatūros jutikliu: Šiuo metu kūrėjai ir kūrėjai teikia pirmenybę „Arduino“, norėdami greitai plėtoti projektų prototipus. „Arduino“yra atviro kodo elektronikos platforma, pagrįsta lengvai naudojama aparatine ir programine įranga. „Arduino“turi labai gerą vartotojų bendruomenę. Šiame projekte
Raudonas mazgas su IoT tolimojo nuotolio vibracijos ir temperatūros jutikliu: 34 žingsniai
Raudonas mazgas su IoT didelio nuotolio vibracijos ir temperatūros jutikliu: pristatome NCD didelio nuotolio belaidį temperatūros drėgmės jutiklį, kuris gali pasigirti iki 28 mylių atstumu, naudojant belaidžio tinklo tinklo architektūrą. Sudėtyje esantis Honeywell HIH9130 temperatūros drėgmės jutiklis perduoda labai tikslią temperatūrą ir
Kaip apsaugoti savo elektroniką ar PCB nuo vandens: 4 žingsniai
Kaip apsaugoti savo elektroniką ar PCB nuo vandens: šioje instrukcijoje aptarsime grandinės apsaugos nuo aplinkos metodus ir tai apskritai taikoma spausdintinėms plokštėms, tačiau galite pasinaudoti šiais patarimais ir gudrybėmis ir naudoti juos kitose programose. . Tai labiausiai