Sisukord:
- Samm: osad ja materjalid
- Samm: temperatuurianduri juhtmestik
- 3. samm: temperatuurianduri väljund
- 4. samm: vihmaveeanduri sisend
- 5. samm: vihmaveeanduri väljund
- 6. samm: vibratsioonianduri sisend
- 7. samm: vibratsioonianduri väljund
- 8. samm: järeldus
Video: Temperatuuri, vihmavee ja vibratsiooni andurite kasutamine Arduino raudteede kaitsmiseks: 8 sammu (koos piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
Tänapäeva ühiskonnas tähendab rongireisijate arvu suurenemine seda, et raudtee-ettevõtted peavad nõudlusega sammu pidamiseks võrgustike optimeerimiseks rohkem ära tegema. Selles projektis näitame väikeses mahus, kuidas temperatuuri, vihmavee ja vibratsiooni andurid arduino tahvlil võivad potentsiaalselt aidata reisijate ohutust suurendada.
See juhend sisaldab samm-sammult arduino temperatuuri, vihmavee- ja vibratsiooniandurite juhtmestikku ning näitab nende andurite käitamiseks vajalikku MATLAB-koodi.
Samm: osad ja materjalid
1. Arvuti, kuhu on installitud MATLABi uusim versioon
2. Arduino juhatus
3. Temperatuuri andur
4. Vihmavee andur
5. Vibratsiooniandur
6. Punane LED -tuli
7. Sinine LED -tuli
8. Roheline LED -tuli
9. RBG LED -tuli
10. Sumin
11. 18 Mees-mees juhtmed
12. 3 Nais-mees juhtmed
13. 2 Naissoost traati
14. 6 330 oomi takistid
15. 1 100 oomi takisti
Samm: temperatuurianduri juhtmestik
Eespool on ka temperatuurianduri sisendi juhtmestik ja MATLAB -kood.
Maandus- ja 5 V juhtmed tuleb kogu plaadi jaoks viia ainult ühe korra miinusesse ja positiivsesse. Siit edasi tulevad kõik maaühendused negatiivsest veerust ja kõik 5 V ühendused positiivsest veerust.
Allolevat koodi saab temperatuurianduri jaoks kopeerida ja kleepida.
%% TEMPERATUURIANDUR % Kasutasime temperatuurianduri juures järgmist allikat
% EF230 veebisaidi materjal, et muuta meie temperatuuriandurit, et see kasutajale võimaldada
% sisend ja 3 LED -valgusväljundit koos graafikuga.
Selle visandi on kirjutanud SparkFun Electronics, %, kus on palju abi Arduino kogukonnalt.
%Kohandatud MATLAB -iga Eric Davishahli poolt.
%SIK -i teabe saamiseks külastage veebisaiti
selge kõik, clc
tempPin = 'A0'; % Tempoanduriga ühendatud analoogpistiku deklareerimine
a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno');
% Määratlege anonüümne funktsioon, mis teisendab pinge temperatuuriks
tempCfromVolts = @(volti) (volti-0,5)*100;
proovide võtmineKestus = 30;
valimiintervall = 2; % Sekundeid temperatuurinäitude vahel
%seadistatud proovivõtu aegade vektor
samplingTimes = 0: samplingInterval: samplingDuration;
%arvutab proovide arvu kestuse ja intervalli põhjal
numSamples = pikkus (samplingTimes);
Tempo muutujate eeljaotamine ja salvestatavate näitude arvu muutuja
tempC = nullid (numSamples, 1);
tempF = tempC;
% sisenddialoogiboksi abil, et salvestada rööpa max ja min temperatuurid
dlg_prompts = {'Enter Max Temp', 'Enter Min Temp'};
dlg_title = 'Rööpa temperatuuri intervallid';
N = 22;
dlg_ans = inputdlg (dlg_prompts, dlg_title, [1, pikkus (dlg_title)+N]);
% Kasutaja sisendite salvestamine ja sisendi salvestamise kuvamine
max_temp = str2double (dlg_ans {1})
min_temp = str2double (dlg_ans {2})
txt = sprintf ('Teie sisend on salvestatud');
h = msgbox (txt);
oota (h);
% Tsükli jaoks, et lugeda temperatuure teatud arv kordi.
indeksi jaoks = 1: numSamples
% Lugege pinget tempPinis ja salvestage muutuvate voltidena
voltid = lugemispinge (a, tempPin);
tempC (indeks) = tempCfromVolts (volt);
tempF (indeks) = tempC (indeks)*9/5+32; % Teisenda Celsiuse järgi Fahrenheiti
% Kui teatud LED -tulede vilkumise avaldused sõltuvad sellest, milline tingimus on täidetud
kui tempF (indeks)> = max_temp % Punane LED
writeDigitalPin (a, 'D13', 0);
paus (0,5);
writeDigitalPin (a, 'D13', 1);
paus (0,5);
writeDigitalPin (a, 'D13', 0);
elseif tempF (indeks)> = min_temp && tempF (indeks) <max_temp % roheline LED
writeDigitalPin (a, 'D11', 0);
paus (0,5);
writeDigitalPin (a, 'D11', 1);
paus (0,5);
writeDigitalPin (a, 'D11', 0);
elseif tempF (indeks) <= min_temp % Sinine LED
writeDigitalPin (a, 'D12', 0);
paus (0,5);
writeDigitalPin (a, 'D12', 1);
paus (0,5);
writeDigitalPin (a, 'D12', 0);
lõpp
% Kuva temperatuurid nende mõõtmise ajal
fprintf ('Temperatuur %d sekundis on %5,2f C või %5,2f F. / n',…
samplingTimes (indeks), tempC (indeks), tempF (indeks));
paus (samplingInterval) %viivitus järgmise proovini
lõpp
% Temperatuuri näitude joonistamine
Joonis 1)
graafik (samplingTimes, tempF, 'r-*')
xlabel ('Aeg (sekundid)')
ylabel ('Temperatuur (F)')
pealkiri ("RedBoard'i temperatuurinäidud")
3. samm: temperatuurianduri väljund
Eespool on temperatuurianduri väljundi juhtmestik ja MATLAB -kood.
Selle projekti jaoks kasutasime oma temperatuurianduri väljundiks kolme LED -valgustit. Kasutasime punast, kui rajad olid liiga kuumad, sinist, kui need olid liiga külmad, ja rohelist, kui need olid vahepeal.
4. samm: vihmaveeanduri sisend
Ülal on vihmaveeanduri juhtmestik ja MATLAB -kood on postitatud allpool.
%% Veeandur
selge kõik, clc
a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno');
vesiPin = 'A1';
vDry = 4,80; % Pinge, kui vett pole
proovide võtmineKestus = 60;
valimiintervall = 2;
samplingTimes = 0: samplingInterval: samplingDuration;
numSamples = pikkus (samplingTimes);
% Ahela jaoks pinge lugemiseks teatud aja jooksul (60 sekundit)
indeksi jaoks = 1: numSamples
volt2 = lugemispinge (a, waterPin); % Loe pinge veetihvti analoogist
% Kui avaldus annab märku helisignaalist, kui tuvastatakse vesi. Pingelangus = vesi
kui volt2 <vKuiv
playTone (a, 'D09', 2400) % playTone funktsioon MathWorksilt
% Kuvab reisijatele hoiatuse vee tuvastamise korral
waitfor (warndlg ('Teie rong võib veeohtude tõttu hilineda'));
lõpp
% Kuva pinge nii, nagu seda mõõdab veeandur
fprintf ('Pinge %d sekundis on %5.4f V. / n',…
samplingTimes (indeks), volt2);
paus (samplingInterval)
lõpp
5. samm: vihmaveeanduri väljund
Eespool on summeri juhtmestik, mis piiksub, kui rajale satub liiga palju vett. Summuri kood on manustatud vihmavee sisendkoodi.
6. samm: vibratsioonianduri sisend
Eespool on vibratsioonianduri juhtmestik. Vibratsiooniandurid võivad raudteesüsteemide jaoks olulised olla, kui kivid langevad rajale. MATLAB -kood on postitatud allpool.
%% Vibratsiooniandur selge kõik, clc
PIEZO_PIN = 'A3'; % Vibratsioonianduriga ühendatud analoogpinna deklareerimine a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno'); % Vibratsiooni proovivõtmise aja ja intervalli lähtestamineKestus = 30; % Sekundite proovide võtmineVäli = 1;
samplingTimes = 0: samplingInterval: samplingDuration;
numSamples = pikkus (samplingTimes);
% Järgmisest allikast pärit koodi kasutades muutsime seda a sisselülitamiseks
% lilla LED, kui tuvastatakse vibratsioon.
% SparkFun Tinker Kit, RGB LED, kirjutanud SparkFun Electronics, %, kus on palju abi Arduino kogukonnalt
% Kohandatud MATLAB -iga Eric Davishahli poolt
% RGB tihvti initsialiseerimine
RED_PIN = 'D5';
GREEN_PIN = 'D6';
BLUE_PIN = 'D7';
% Silmus vibratsioonianduri pinge muutuste salvestamiseks a
% konkreetne ajavahemik (30 sekundit)
indeksi jaoks = 1: numSamples
volt3 = lugemispinge (a, PIEZO_PIN);
% Kui lause lilla LED -i sisselülitamiseks vibratsiooni tuvastamisel
kui volt3> 0,025
writeDigitalPin (a, RED_PIN, 1);
Lilla valguse loomine
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, SININE_PIN, 1);
else % Lülita LED välja, kui vibratsiooni ei tuvastata.
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, SININE_PIN, 0);
lõpp
% Kuva pinge nii, nagu seda mõõdetakse.
fprintf ('Pinge %d sekundis on %5.4f V. / n',…
samplingTimes (indeks), volt3);
paus (samplingInterval)
lõpp
% Vibratsiooni mõõtmisel lülitage valgus välja
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, SININE_PIN, 0);
7. samm: vibratsioonianduri väljund
Eespool on kasutatud RBG LED -tule juhtmestik. Vibratsiooni tuvastamisel süttib tuli lillalt. Väljundi MATLAB -kood on sisestatud sisestatud koodi sisse.
8. samm: järeldus
Pärast kõigi nende toimingute tegemist peaks teil nüüd olema arduino, mis suudab tuvastada temperatuuri, vihmavett ja vibratsiooni. Vaadates, kuidas need andurid väikeses mahus töötavad, on lihtne ette kujutada, kui olulised need võiksid olla tänapäevases elus raudteesüsteemide jaoks!
Soovitan:
Vibratsiooni 801s kasutamine koos SkiiiD -ga: 9 sammu
Kuidas kasutada vibratsiooni 801s koos SkiiiD -ga: õpetus vibratsiooni 801 arendamiseks skiiiD -ga
Traadita vibratsiooni ja temperatuuri andmete saatmine Google'i arvutustabelitele sõlme-PUNANE abil: 37 sammu
Juhtmeta vibratsiooni ja temperatuuri andmete saatmine Google'i lehtedele Node-RED abil: tutvustame NCD kaugjuhtimispuldi IoT Industrial traadita vibratsiooni- ja temperatuuriandurit, mille traadita võrgusilma kasutamine on kuni 2 miili ulatuses. See seade sisaldab täpset 16-bitist vibratsiooni- ja temperatuuriandurit
Temperatuuri andurite testimine - milline neist minu jaoks?: 15 sammu (piltidega)
Temperatuuri andurite testimine - milline neist minu jaoks?: Üks esimesi andureid, mida füüsilise andmetöötluse uustulnukad soovivad proovida, on midagi temperatuuri mõõtmiseks. Neli kõige populaarsemat andurit on TMP36, millel on analoogväljund ja mis vajab analoog -digitaalmuundurit DS18B20
E-posti märguanded vibratsiooni ja temperatuuri kohta sõlme-PUNANE abil: 33 sammu
Vibratsiooni ja temperatuuri hoiatused e-posti teel, kasutades Node-RED-i: tutvustame NCD kaugjuhtimispuldi IoT Industrial traadita vibratsiooni- ja temperatuuriandurit, mille traadita võrgusilma kasutamine on kuni 2 miili ulatuses. See seade sisaldab täpset 16-bitist vibratsiooni- ja temperatuuriandurit
Vihmavee lüüs: 11 sammu (koos piltidega)
Vihmavee lüüs: tugev vihmasadu võib põhjustada ülevoolu meie üle: kõnniteed, vihmaveekaevud, poldrid ja meie tammid. Selle vältimiseks leiutasime vihmavee lüüsi! Vihmavee lüüs arvutab digitaalselt vihmavee vahemaa