Turinys:

Dykumos geležinkelio temperatūros detektorius ir keleivių skaitiklis: 5 žingsniai
Dykumos geležinkelio temperatūros detektorius ir keleivių skaitiklis: 5 žingsniai

Video: Dykumos geležinkelio temperatūros detektorius ir keleivių skaitiklis: 5 žingsniai

Video: Dykumos geležinkelio temperatūros detektorius ir keleivių skaitiklis: 5 žingsniai
Video: Part 4 - Triplanetary Audiobook by E. E. Smith (Chs 13-17) 2024, Lapkritis
Anonim
Dykumos geležinkelio temperatūros detektorius ir keleivių skaitiklis
Dykumos geležinkelio temperatūros detektorius ir keleivių skaitiklis

Tikslas:

Temperatūra: Ši instrukcija mokys jus, kaip nustatyti ir užprogramuoti „Arduino RedBoard“(naudojant MATLAB), kad būtų galima nustatyti geležinkelio temperatūrą. Pasiekus nesaugią temperatūrą keleiviams, pasigirsta įspėjamasis pranešimas, išsijungia garsiniai signalai ir užsidega įspėjamasis ženklas.

Keleivių skaitiklis: ši dalis išmokys jus naudotis mygtuku, kad būtų galima suskaičiuoti keleivius, ir įspėti, kai pasiekiama maksimali talpa.

Funkcijos:

  • Naudojamas mygtukas keleiviams, įeinantiems į traukinį, suskaičiuoti
  • Naudoja TMP36 (temperatūros jutiklį) geležinkelio temperatūrai nustatyti
  • Naudoja raudoną šviesos diodą, kad įspėtų traukinių stotį
  • Signalui skambėti naudoja signalus
  • Siunčia įspėjimo el. Laišką su temperatūros ir laiko grafiku
  • Iššokantys įspėjamieji pranešimai MATLAB

1 žingsnis: medžiagos ir reikmenys

Medžiagos ir reikmenys
Medžiagos ir reikmenys
  • 1 nešiojamas kompiuteris
  • MATLAB 2017 m
  • Atsisiųskite „Arduino Toolbox“
  • „Sparkfun RedBoard“
  • 1 Maitinimo kabelis
  • Breadbord
  • 14 laidų
  • 1 pjezo garsinis signalas
  • 1 Paspauskite mygtuką
  • 2 10k omų rezistoriai
  • 1 TMP36 jutiklis
  • Raudona LED lemputė
  • 3D spausdintas ženklas (neprivaloma)

2 žingsnis: plokštės sąranka

Lentos sąranka
Lentos sąranka

Vykdykite aukščiau pateiktą sąranką

3 žingsnis: kodo rašymas

Nors ciklas: norėdami užtikrinti, kad kodas ir toliau tikrintų temperatūrą ir pajustų mygtuko būseną (paspaustas arba nespaustas), kodą dedame į laikui skirtą ciklą tam tikrą laikotarpį.

Naudojant TMP36: Mes nustatome temperatūrą, nuskaitę įtampą ir konvertuodami ją į Farenheito laipsnius, naudodami perskaičiavimo koeficientus. Tada mes naudojame sakinį if, norėdami paleisti toną ir garsą/siųsti įspėjimus, jei temperatūra yra didesnė arba lygi nustatyta maksimaliai temperatūrai

Mygtuko naudojimas: naudodami teiginį „if“galime patikrinti, ar mygtukas buvo paspaustas, naudojant „readDigitalPin“. Ši komanda grąžins loginę reikšmę (1 arba 0). Jei atsakymas yra 0, tada buvo paspaustas mygtukas, o keleivių skaitiklis padidėja ir rodomas pasveikinimo pranešimas. Pasiekus maksimalią talpą, pasigirsta įspėjamasis pranešimas.

4 žingsnis: nukopijuokite kodą

%Įėjimai: mygtuko paspaudimas, temperatūros jutiklis

%Išėjimai: žibintai, garsiniai signalai, garso įspėjimas, el. Laiškai, grafikai

Tikslas: Šis produktas yra skirtas padėti užtikrinti keleivių, keliaujančių traukiniu per dykumą, saugumą ir komfortą.

Naudojimas: Keleivių skaičiaus nustatymas mygtuko paspaudimu, %šilumos nustatymas naudojant temperatūros jutiklį ir jo grafikas bei siunčiamas %keleivių skaičius ir temperatūros grafikas į traukinių stotį

configurePin (a, 'D2', 'pullup'); %būsimų leidimų naudoja configurePin

laikas = 200;

e = 0;

x = 0

o laikas> 0

button_status = readDigitalPin (a, 'D2'); % lygus nuliui, kai paspaudžiamas mygtukas, kitaip lygus 1

įtampa = skaitymo įtampa (a, 'A0');%kaištis priklauso nuo to, kur mes jį dedame

tempCelcius = (įtampa*100) -50; %nurodyta jutiklio vadove

tempF (laikas) = (tempCelcius*1.8) +32 %žinoma konversijos formulė

maks. = 120; %laipsnių F.

writeDigitalPin (a, 'D11', 1);

rem = mod (e, 2);

jei tempF (laikas)> = maks

writeDigitalPin (a, 'D11', 0);

writeDigitalPin (a, 'D9', 1);

playTone (a, „D9“, 2400,.5)

pauzė (.5)

writeDigitalPin (a, 'D6', 1)

playTone (a, 'D6', 1000,.5)

pauzė (.5)

writeDigitalPin (a, 'D9', 1);

playTone (a, „D9“, 2400,.5)

pauzė (.5)

writeDigitalPin (a, 'D6', 1)

playTone (a, 'D6', 1000,.5) %paleidžia "sireną"

z = 'Perkaitimas.m4a'; %Tai įkelia garso failą į kintamąjį

[duomenys, dažnis] = garso skaitymas (z); %Įkelia duomenis iš garso failo

o = garso grotuvas (duomenys, dažnis); %Sukuria objektą garso failo leidimui valdyti

o.play () %Paleidžia garso failą

o.playblocking () %Paleidžia failą ir laukia, kol jis bus baigtas

galas

jei mygtuko_stata == 0 && rem == 0

e = e+1

msgbox ('Sveiki atvykę!');

elseif button_status == 0 && rem == 1

e = e+1

msgbox ('Bienvenido a bordo!');

galas

jei e == 5

writeDigitalPin (a, 'D11', 0);

jei x == 0

playTone (a, 'D6', 600, 1);

s = 'Įspėjimas_EF.m4a'; %Tai įkelia garso failą į kintamąjį

[duomenys, dažnis] = garso skaitymas (-ai); %Įkelia duomenis iš garso failo

o = garso grotuvas (duomenys, dažnis); %Sukuria objektą garso failo leidimui valdyti

% o.play () % Paleidžia garso failą

o.playblocking () %Paleidžia failą ir laukia, kol jis bus baigtas

„msgbox“(„Maksimali talpa“)

x = x+1

galas

jei e> = 6

„playTone“(a, „D6“, 2400, 0);

galas

laikas = laikas - 1;

% pauzė (0,1);

%, jei e == 5 && max (tempF)> = 120

% laiko = 0

% galas

galas

ee = num2str (e)

t = [1: 200];

tempF2 = fliplr (tempF);

grafikas (t, tempF2);

pavadinimas („Laikas prieš temperatūrą“)

ylabel („Temperatūra (F)“)

xlabel ('Laikas (-ai)')

saveas (gcf, 'tempplot.jpg')

paštas = '[email protected]'

slaptažodis = 'Srsora123#'

priegloba = 'smtp.gmail.com'

setpref ('Internetas', 'SMTP_Server', priegloba);

setpref („Internetas“, „El. paštas“, paštas);

setpref ('Internetas', 'SMTP_vartotojo vardas', paštas);

setpref („Internetas“, „SMTP_Password“, slaptažodis);

rekvizitai = java.lang. System.getProperties;

props.setProperty ('mail.smtp.auth', 'true');

props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory');

props.setProperty ('mail.smtp.socketFactory.port', '465');

sendmail (paštas, „Sveiki, traukinių stotis! Traukinyje yra tiek daug keleivių“, ee, „tempplot.jpg“)

5 žingsnis: Rezultatai

Rekomenduojamas: