Sisällysluettelo:
- Vaihe 1: Osat ja materiaalit
- Vaihe 2: Lämpötila -anturin johdotus
- Vaihe 3: Lämpötila -anturin lähtö
- Vaihe 4: Sadevesianturin tulo
- Vaihe 5: Sadevesianturin lähtö
- Vaihe 6: Värähtelyanturin tulo
- Vaihe 7: Värähtelyanturin lähtö
- Vaihe 8: Johtopäätös
Video: Lämpötila-, sadevesi- ja tärinäantureiden käyttäminen Arduinolla rautateiden suojaamiseen: 8 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
Nykyaikaisessa yhteiskunnassa rautateiden matkustajien lisääntyminen tarkoittaa, että rautatieyritysten on tehtävä enemmän verkkojen optimoimiseksi kysynnän mukaan. Tässä projektissa näytämme pienessä mittakaavassa, kuinka arduino -kortin lämpötila-, sadevesi- ja tärinäanturit voivat auttaa lisäämään matkustajien turvallisuutta.
Tämä opetusohjelma näyttää askel askeleelta arduinon lämpötila-, sadevesi- ja tärinäantureiden johdotukset sekä näyttää näiden antureiden käyttämiseen vaadittavan MATLAB-koodin.
Vaihe 1: Osat ja materiaalit
1. Tietokone, johon on asennettu uusin MATLAB -versio
2. Arduino Board
3. Lämpötila -anturi
4. Sadevesianturi
5. Tärinäanturi
6. Punainen LED -valo
7. Sininen LED -valo
8. Vihreä LED -valo
9. RBG -LED -valo
10. summeri
11. 18 uros-urosjohdot
12. 3 Naaras-urosjohtoa
13. 2 Naaras-naaraslankaa
14. 6 330 ohmin vastukset
15. 1 100 ohmin vastus
Vaihe 2: Lämpötila -anturin johdotus
Yllä on myös lämpötila -anturin tulon johdotus ja MATLAB -koodi.
Maan ja 5 V: n johdot on vedettävä koko kortille vain kerran negatiiviseen ja positiiviseen. Tästä eteenpäin kaikki maadoitusliitännät tulevat negatiivisesta sarakkeesta ja kaikki 5 V: n liitännät tulevat positiivisesta sarakkeesta.
Alla oleva koodi voidaan kopioida ja liittää lämpötila -anturia varten.
%% LÄMPÖTILA -ANTURI % Lämpötila -anturissa käytimme seuraavaa lähdettä yhdessä
% EF230 -verkkosivumateriaali lämpötila -anturimme muuttamiseksi käyttäjän sallimiseksi
% tulo ja 3 LED -valolähtöä, joissa on kaavio.
%Tämän luonnoksen on kirjoittanut SparkFun Electronics, %paljon apua Arduino -yhteisöltä.
%Eric Davishahlin mukauttama MATLABiin.
%Käy osoitteessa https://learn.sparkfun.com/products/2 saadaksesi SIK -tietoja.
tyhjennä kaikki, clc
tempPin = 'A0'; % Lämpötila -anturiin kytketyn analogisen nastan ilmoittaminen
a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno');
% Määritä anonyymi toiminto, joka muuntaa jännitteen lämpötilaksi
tempCfromVolts = @(volttia) (volttia-0,5)*100;
näytteenottoKesto = 30;
näytteenottointervalli = 2; % Sekuntia lämpötilalukemien välillä
%näytteenottoajan vektori
samplingTimes = 0: samplingInterval: samplingDuration;
%laskee näytteiden määrän keston ja välin perusteella
numSamples = pituus (näytteenottoajat);
%ennalta varattuja lämpömuuttujia ja muuttuja sen lukemien lukumäärälle, jonka se tallentaa
tempC = nollia (näytteet, 1);
tempF = tempC;
% syöttövalintaikkunan avulla tallentamaan kiskon maksimi- ja minilämpötilat
dlg_prompts = {'Enter Max Temp', 'Enter Min Temp'};
dlg_title = 'Kiskon lämpötilavälit';
N = 22;
dlg_ans = inputdlg (dlg_prompts, dlg_title, [1, pituus (dlg_title)+N]);
% Käyttäjän tulojen tallentaminen ja tulon tallennuksen näyttäminen
max_temp = str2double (dlg_ans {1})
min_temp = str2double (dlg_ans {2})
txt = sprintf ('Syöttösi on tallennettu');
h = viestilaatikko (txt);
odota (h);
% Silmukka, joka lukee lämpötilat tietyn määrän kertoja.
indeksille = 1: numSamples
% Lue jännite tempPinistä ja tallenna muuttuvaksi voltiksi
volttia = lukuVoltage (a, tempPin);
tempC (indeksi) = tempCfromVolts (volttia);
tempF (indeksi) = tempC (indeksi)*9/5+32; % Muunna Celsiuksesta Fahrenheitiksi
% Jos tietyt LED -valot vilkkuvat, riippuen siitä, mikä ehto täyttyy
jos tempF (indeksi)> = max_temp % Punainen LED
writeDigitalPin (a, 'D13', 0);
tauko (0,5);
writeDigitalPin (a, 'D13', 1);
tauko (0,5);
writeDigitalPin (a, 'D13', 0);
elseif tempF (indeksi)> = min_temp && tempF (index) <max_temp % Vihreä LED
writeDigitalPin (a, 'D11', 0);
tauko (0,5);
writeDigitalPin (a, 'D11', 1);
tauko (0,5);
writeDigitalPin (a, 'D11', 0);
elseif tempF (indeksi) <= min_temp % Sininen LED
writeDigitalPin (a, 'D12', 0);
tauko (0,5);
writeDigitalPin (a, 'D12', 1);
tauko (0,5);
writeDigitalPin (a, 'D12', 0);
loppuun
% Näytä lämpötilat sellaisina kuin ne on mitattu
fprintf ('Lämpötila %d sekunnissa on %5.2f C tai %5.2f F. / n',…
samplingTimes (indeksi), tempC (indeksi), tempF (indeksi));
tauko (samplingInterval) %viive seuraavaan näytteeseen
loppuun
% Lämpötilalukemien piirtäminen
Kuvio 1)
kuvaaja (näytteenottoajat, tempF, 'r-*')
xlabel ('Aika (sekuntia)')
ylabel ('Lämpötila (F)')
title ('RedBoardin lämpötilalukemat')
Vaihe 3: Lämpötila -anturin lähtö
Yllä on lämpötila -anturin lähdön johdotus ja MATLAB -koodi.
Tässä projektissa käytimme kolme LED -valoa lämpötila -anturimme ulostuloon. Käytimme punaista, jos kappaleet olivat liian kuumia, sinistä, jos ne olivat liian kylmiä, ja vihreää, jos ne olivat välissä.
Vaihe 4: Sadevesianturin tulo
Yllä on sadevesianturin johdotus ja MATLAB -koodi on alla.
%% Vesianturi
tyhjennä kaikki, clc
a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno');
waterPin = 'A1';
vDry = 4,80; % Jännite, kun vettä ei ole läsnä
näytteenottoKesto = 60;
näytteenottointervalli = 2;
samplingTimes = 0: samplingInterval: samplingDuration;
numSamples = pituus (näytteenottoajat);
% Silmukka jännitteen lukemiseksi tietyn ajan (60 sekuntia)
indeksille = 1: numSamples
volt2 = lukuJännite (a, waterPin); % Lue jännite vesitapan analogista
% Jos väite antaa summerin, jos vettä havaitaan. Jännitehäviö = vesi
jos volt2 <vKuiva
playTone (a, 'D09', 2400) % playTone -toiminto MathWorksilta
% Näytä varoitus matkustajille, jos vettä havaitaan
waitfor (warndlg ('Juna saattaa viivästyä vesivaarojen vuoksi'));
loppuun
% Näytä jännite vesianturin mittaamana
fprintf ('Jännite %d sekunnissa on %5.4f V. / n',…
näytteenottoajat (indeksi), voltti2);
tauko (näytteenottointervalli)
loppuun
Vaihe 5: Sadevesianturin lähtö
Yllä on johdotus summerille, joka piippaa aina, kun radalle putoaa liikaa vettä. Summerin koodi on upotettu sadeveden tulon koodiin.
Vaihe 6: Värähtelyanturin tulo
Yllä on tärinäanturin johdotus. Tärinätunnistimet voivat olla tärkeitä rautatiejärjestelmille, jos radalla putoaa kiviä. MATLAB -koodi on alla.
%% Tärinätunnistinpuhdista kaikki, clc
PIEZO_PIN = 'A3'; % Värähtelyanturiin kytketyn analogisen nastan ilmoittaminen a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno'); % Alustetaan aika ja aikaväli värähtelyn näytteenoton mittaamiseksiKesto = 30; % Seconds samplingInterval = 1;
samplingTimes = 0: samplingInterval: samplingDuration;
numSamples = pituus (näytteenottoajat);
% Käyttämällä seuraavan lähteen koodia muutimme sen kytkeäksesi päälle
% violetti LED, jos tärinää havaitaan.
% SparkFun Tinker Kit, RGB LED, kirjoittanut SparkFun Electronics, % paljon apua Arduino -yhteisöltä
% Eric Davishahlin mukauttama MATLABiin
% Alustetaan RGB -nasta
RED_PIN = 'D5';
VIHREÄ_PIN = 'D6';
BLUE_PIN = 'D7';
% Silmukka värähtelyanturin jännitteenmuutosten tallentamiseksi a
% tietty aikaväli (30 sekuntia)
indeksille = 1: numSamples
volt3 = lukujännite (a, PIEZO_PIN);
% Jos lausunto violetin LED -valon sytyttämiseksi, jos tärinää havaitaan
jos volt3> 0,025
writeDigitalPin (a, RED_PIN, 1);
% Purppuraisen valon luominen
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, SININEN_PIN, 1);
else % Sammuta LED, jos tärinää ei havaita.
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, SININEN_PIN, 0);
loppuun
% Näytä jännite mitattuna.
fprintf ('Jännite %d sekunnissa on %5.4f V. / n',…
näytteenottoajat (indeksi), voltti3);
tauko (näytteenottoväli)
loppuun
% Katkaise valo, kun tärinää mitataan
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, SININEN_PIN, 0);
Vaihe 7: Värähtelyanturin lähtö
Yllä on käytetyn RBG -LED -valon johdotus. Valo palaa purppuranpunaisena, kun tärinää havaitaan. Lähdön MATLAB -koodi on upotettu tulon koodiin.
Vaihe 8: Johtopäätös
Kun olet suorittanut kaikki nämä vaiheet, sinulla pitäisi nyt olla arduino, joka pystyy havaitsemaan lämpötilan, sadeveden ja tärinän. Tarkasteltaessa näiden antureiden toimintaa pienessä mittakaavassa on helppo kuvitella, kuinka tärkeitä ne voisivat olla rautatiejärjestelmille nykyajan elämässä!
Suositeltava:
Liitäntä LM35 -lämpötila -anturiin Arduinolla: 4 vaihetta
Liitäntä LM35 -lämpötila -anturiin Arduinolla: Lämpömittarit ovat hyödyllisiä laitteita, joita käytetään pitkään lämpötilan mittaamiseen. Tässä projektissa olemme tehneet Arduino -pohjaisen digitaalisen lämpömittarin, joka näyttää nykyisen ympäristön lämpötilan ja lämpötilan muutokset nestekidenäytöllä. Se voi olla
Automaattinen jäähdytystuuletin, joka käyttää servoa ja DHT11 -lämpötila- ja kosteusanturia Arduinolla: 8 vaihetta
Automaattinen jäähdytystuuletin, joka käyttää servoa ja DHT11 -lämpötila- ja kosteusanturia Arduinolla: Tässä opetusohjelmassa opimme aloittamaan & pyöritä tuuletinta, kun lämpötila nousee tietyn tason yläpuolelle
DHT21 -digitaalinen lämpötila- ja kosteusanturi Arduinolla: 6 vaihetta
DHT21 -digitaalinen lämpötila- ja kosteusanturi Arduinolla: Tässä opetusohjelmassa opimme käyttämään DHT21 -kosteus- ja lämpötila -anturia Arduinon kanssa ja näyttämään arvot OLED -näytöllä
Liitäntä DS18B20 -lämpötila -anturi Arduinolla ja ESP8266: 8 vaihetta
Liitäntä DS18B20 -lämpötila -anturi Arduinolla ja ESP8266: Hei, mitä kuuluu, kaverit! Akarsh täällä CETechistä. Tänään aiomme lisätä uuden anturin arsenaaliin, joka tunnetaan nimellä DS18B20 lämpötila -anturi. Se on lämpötila -anturi, joka on samanlainen kuin DHT11, mutta sillä on erilaiset sovellukset. Tulemme vertaamaan sitä
5 vinkkiä Raspberry Pi: n suojaamiseen: 7 vaihetta
5 vinkkiä Raspberry Pi: n suojaamiseen: Kun liität Raspberry Pi: n ulkomaailmaan, sinun on ajateltava turvallisuutta. Tässä on 5 vinkkiä, joilla voit suojata Raspberry Pi -laitteesi. Aloitetaan