Sadržaj:

Detektor temperature pustinje na željeznici i brojač putnika: 5 koraka
Detektor temperature pustinje na željeznici i brojač putnika: 5 koraka

Video: Detektor temperature pustinje na željeznici i brojač putnika: 5 koraka

Video: Detektor temperature pustinje na željeznici i brojač putnika: 5 koraka
Video: Анил Анантасвами: Чего стоит экстремальная астрофизика 2024, Novembar
Anonim
Detektor temperature pustinjske željeznice i brojač putnika
Detektor temperature pustinjske željeznice 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 dugme za brojanje putnika i oglasiti upozorenje kada se dosegne maksimalni kapacitet.

Karakteristike:

  • Koristi dugme za odbrojavanje putnika koji ulaze u voz
  • Koristi TMP36 (senzor temperature) za detekciju temperature željeznice
  • Koristi crveno LED svjetlo da upozori željezničku stanicu
  • 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 materijal
Materijali i materijal
  • 1 Laptop
  • MATLAB 2017
  • Preuzmite Arduino Toolbox
  • Sparkfun RedBoard
  • 1 Kabel za napajanje
  • Breadbord
  • 14 žica
  • 1 Piezo Buzzer
  • 1 Pritisnite dugme
  • 2 otpornika od 10 k ohma
  • 1 senzor TMP36
  • Crveno LED svjetlo
  • 3D štampani znak (opcionalno)

Korak 2: Postavljanje ploče

Board Setup
Board Setup

Slijedite gornja podešavanja

Korak 3: Pisanje koda

Dok je petlja: Kako bismo osigurali da kôd nastavlja testirati temperaturu i osjetiti status tipke (pritisnuta ili nenatisnuta), postavljamo kôd u while petlju na određeni vremenski period.

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 dugmeta: Pomoću naredbe if možemo provjeriti je li dugme pritisnuto pomoću readDigitalPin. Ova naredba će vratiti Boolean (1 ili 0). Ako je odgovor 0, tada je pritisnuto dugme 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 dugme, senzor temperature

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

%Svrha: Ovaj proizvod je 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 senzora temperature i grafički prikaz te slanje %broja putnika i grafikona temperature 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 dugme, inače je jednako 1

voltaža = readVoltage (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 konverzije

max = 120; %stepeni 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)

pauza (.5)

writeDigitalPin (a, 'D6', 1)

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

pauza (.5)

writeDigitalPin (a, 'D9', 1);

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

pauza (.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, frekvencija); %Kreira objekt za kontrolu reprodukcije audio datoteke

o.play () %Reprodukuje audio datoteku

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

kraj

if button_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, frekvencija); %Kreira objekt za kontrolu reprodukcije audio datoteke

% o.play () % Reprodukuje audio datoteku

o.playblocking () %Reprodukuje datoteku i čeka da se 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

% end

kraj

ee = broj2str (e)

t = [1: 200];

tempF2 = fliplr (tempF);

parcela (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_Username', pošta);

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

rekviziti = 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 (pošta, 'Zdravo željeznička stanica! U vozu je ovoliko putnika', ee, 'tempplot.jpg')

Korak 5: Rezultati

Preporučuje se: