Detektor temperature pustinje na željeznici i brojač putnika: 5 koraka
Detektor temperature pustinje na željeznici i brojač putnika: 5 koraka
Anonim
Pustinjski željeznički detektor temperature i brojač putnika
Pustinjski željeznički detektor temperature i brojač putnika

Svrha:

Temperatura: Ova instrukcija će vas naučiti kako postaviti i programirati Arduino RedBoard (koristeći MATLAB) za otkrivanje temperature željeznice. Kad se dosegne temperatura koja nije sigurna za putnike, oglašava se poruka upozorenja, zujalice se isključuju i svijetli znak upozorenja.

Brojač putnika: Ovaj dio će vas naučiti kako koristiti gumb za brojanje putnika i oglasiti upozorenje kada se dosegne maksimalni kapacitet.

Značajke:

  • Koristi gumb za odbrojavanje putnika koji ulaze u vlak
  • Koristi TMP36 (osjetnik temperature) za otkrivanje temperature željeznice
  • Koristi crveno LED svjetlo za upozorenje željezničke stanice
  • Koristi zujalice za zvučni alarm
  • Šalje upozorenje e -poštom s prikazom temperature u odnosu na vrijeme
  • Skočne poruke upozorenja na MATLAB-u

Korak 1: Materijali i potrepštine

Materijali i potrepštine
Materijali i potrepštine
  • 1 Prijenosno računalo
  • MATLAB 2017
  • Preuzmite Arduino Toolbox
  • Sparkfun RedBoard
  • 1 Kabel za napajanje
  • Breadbord
  • 14 žica
  • 1 Piezo zujalica
  • 1 Pritisnite gumb
  • 2 otpornika od 10 k ohma
  • 1 senzor TMP36
  • Crveno LED svjetlo
  • 3D ispisani znak (izborno)

Korak 2: Postavljanje ploče

Postavljanje ploče
Postavljanje ploče

Slijedite gore navedene postavke

Korak 3: Pisanje koda

Dok je petlja: Kako bismo osigurali da kôd nastavlja testirati temperaturu i osjetiti status gumba (pritisnut ili bez pritiska), kôd stavljamo u while petlju na određeno vremensko razdoblje.

Korištenje TMP36: Temperaturu određujemo očitavanjem napona i pretvaranjem u stupnjeve Fahrenheita, koristeći faktore konverzije. Zatim koristimo if naredbu za reprodukciju tona i zvuk/slanje upozorenja ako je temperatura veća ili jednaka postavljenoj maksimalnoj temperaturi

Korištenje gumba: Pomoću naredbe if možemo provjeriti je li gumb pritisnut pomoću readDigitalPin. Ova naredba će vratiti Boolean (1 ili 0). Ako je odgovor 0, tada je pritisnuta tipka i brojač putnika se povećava i prikazuje poruku dobrodošlice. Zatim, kada se dostigne maksimalni kapacitet, oglašava se poruka upozorenja.

Korak 4: Kopirajte kôd

%Ulazi: Pritiskom na gumb, osjetnikom temperature

%Izlazi: svjetla, zujalice, zvučna upozorenja, e -poruke, grafikoni

%Svrha: Ovaj je proizvod osmišljen kako bi osigurao sigurnost i udobnost %putnika koji putuju vlakom kroz pustinju.

%Upotreba: Otkrivanje broja putnika pomoću gumba i %otkrivanje topline pomoću temperaturnog senzora te ga grafički prikazajte i šalje %broja putnika i temperaturni grafikon na željezničku stanicu

configurePin (a, 'D2', 'pullup'); %u budućim izdanjima koristi configurePin

vrijeme = 200;

e = 0;

x = 0

dok je vrijeme> 0

button_status = readDigitalPin (a, 'D2'); % je jednako nuli kada se pritisne gumb, inače je jednako 1

napon = čitanjeVoltage (a, 'A0');%pin ovisi o tome gdje ga postavljamo

tempCelcius = (napon*100) -50; %dano u priručniku za senzore

tempF (vrijeme) = (tempCelcius*1.8) +32 %poznata formula pretvorbe

max = 120; %stupnjeva F

writeDigitalPin (a, 'D11', 1);

rem = mod (e, 2);

ako je tempF (vrijeme)> = max

writeDigitalPin (a, 'D11', 0);

writeDigitalPin (a, 'D9', 1);

playTone (a, 'D9', 2400,.5)

stanka (0,5)

writeDigitalPin (a, 'D6', 1)

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

stanka (0,5)

writeDigitalPin (a, 'D9', 1);

playTone (a, 'D9', 2400,.5)

stanka (0,5)

writeDigitalPin (a, 'D6', 1)

playTone (a, 'D6', 1000,.5) %svira "sirenu"

z = 'Pregrijavanje.m4a'; %Ovo stavlja zvučnu datoteku u varijablu

[podaci, učestalost] = audiočitavanje (z); %Učitava podatke iz zvučne datoteke

o = audioplayer (podaci, učestalost); %Stvara objekt za kontrolu reprodukcije audio datoteke

o.play () %Reproducira audio datoteku

o.playblocking () %Reproducira datoteku i čeka da završi

kraj

ako je gumb_status == 0 && rem == 0

e = e+1

msgbox ('Dobrodošli na brod!');

elseif button_status == 0 && rem == 1

e = e+1

msgbox ('Bienvenido a bordo!');

kraj

ako je e == 5

writeDigitalPin (a, 'D11', 0);

ako je x == 0

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

s = 'Upozorenje_EF.m4a'; %Ovo stavlja zvučnu datoteku u varijablu

[podaci, učestalost] = audiočitani (i); %Učitava podatke iz zvučne datoteke

o = audioplayer (podaci, učestalost); %Stvara objekt za kontrolu reprodukcije audio datoteke

% o.play () % Reproducira audio datoteku

o.playblocking () %Reproducira datoteku i čeka da završi

msgbox ('Maksimalni kapacitet')

x = x+1

kraj

inače e> = 6

playTone (a, 'D6', 2400, 0);

kraj

vrijeme = vrijeme - 1;

% pauze (0,1);

% ako je e == 5 && max (tempF)> = 120

% vrijeme = 0

% kraj

kraj

ee = broj2str (e)

t = [1: 200];

tempF2 = fliplr (tempF);

nacrt (t, tempF2);

title ('Vrijeme u odnosu na temperaturu')

ylabel ('Temperatura (F)')

xlabel ('Vrijeme (i)')

saveas (gcf, 'tempplot.jpg')

mail = '[email protected]'

lozinka = 'Srsora123#'

host = 'smtp.gmail.com'

setpref ('Internet', 'SMTP_Server', host);

setpref ('Internet', 'E_mail', pošta);

setpref ('Internet', 'SMTP_Korisničko ime', pošta);

setpref ('Internet', 'SMTP_Password', lozinka);

rekviziti = java.lang. System.getProperties;

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

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

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

sendmail (pošta, 'Zdravo željeznički kolodvor! U vlaku je toliko putnika', ee, 'tempplot.jpg')

Korak 5: Rezultati

Preporučeni: