Innholdsfortegnelse:

Desert Railroad Temperature Detector & Passenger Counter: 5 trinn
Desert Railroad Temperature Detector & Passenger Counter: 5 trinn

Video: Desert Railroad Temperature Detector & Passenger Counter: 5 trinn

Video: Desert Railroad Temperature Detector & Passenger Counter: 5 trinn
Video: The Doctrine of Repentance | Thomas Watson | Christian Audiobook 2024, Juli
Anonim
Temperaturdetektor for ørkenbaner og passasjerteller
Temperaturdetektor for ørkenbaner og passasjerteller

Hensikt:

Temperatur: Denne instruksjonen vil lære deg hvordan du setter opp og programmerer et Arduino RedBoard (ved hjelp av MATLAB) for å oppdage temperaturen på en jernbane. Når en usikker temperatur for passasjerene er nådd, høres en advarselsmelding, summer summer, og et advarselsskilt lyser.

Passasjerteller: Denne delen vil lære deg hvordan du bruker en knapp for å telle passasjerer og varsle en advarsel når maksimal kapasitet er nådd.

Funksjoner:

  • Bruker knappen for å telle opp passasjerer som kommer inn i toget
  • Bruker TMP36 (temperatursensor) for å oppdage temperaturen på jernbanen
  • Bruker et rødt LED -lys for å advare togstasjonen
  • Bruker summer til å slå alarm
  • Sender en varsel på e -post med plott av temperatur mot tid
  • Popup-advarsler på MATLAB

Trinn 1: Materialer og rekvisita

Materialer og rekvisita
Materialer og rekvisita
  • 1 bærbar PC
  • MATLAB 2017
  • Last ned Arduino Toolbox
  • Sparkfun RedBoard
  • 1 strømkabel
  • Brødbord
  • 14 ledninger
  • 1 Piezo -summer
  • 1 Trykknapp
  • 2 10k ohm motstander
  • 1 TMP36 sensor
  • Rødt LED -lys
  • 3D -trykt skilt (valgfritt)

Trinn 2: Board Setup

Board Setup
Board Setup

Følg oppsettet ovenfor

Trinn 3: Skrive koden

Mens sløyfe: For å sikre at koden fortsetter å teste temperaturen og registrere knappestatusen (trykket eller ikke trykket), plasserer vi koden i mens -løkken i en bestemt periode.

Bruke TMP36: Vi bestemmer temperaturen ved å lese av spenningen og konvertere den til grader Fahrenheit, ved hjelp av konverteringsfaktorer. Deretter bruker vi en if -setning for å spille av en tone og lyd/sende varsler hvis temperaturen er større enn eller lik den angitte maksimale temperaturen

Bruke knapp: Med en if -setning kan vi teste om knappen ble trykket med readDigitalPin. Denne kommandoen returnerer en boolsk (1 eller 0). Hvis svaret er 0, ble knappen trykket og passasjertelleren øker og viser en velkomstmelding. Når maksimal kapasitet er nådd, høres det en advarsel.

Trinn 4: Kopier koden

%Innganger: Trykk på knappen, temperatursensor

%Utganger: lys, summer, lydvarsel, e -post, grafer

%Formål: Dette produktet er designet for å sikre sikkerheten og komforten til %passasjerer som reiser med tog gjennom ørkenen.

%Bruk: oppdager antall passasjerer ved hjelp av en trykknapp, og %oppdager varmen ved hjelp av en temperatursensor og tegner den og sender både %passasjerer og temperaturgrafen til togstasjonen

configurePin (a, 'D2', 'pullup'); %i fremtidige utgivelser bruker configurePin

tid = 200;

e = 0;

x = 0

mens tiden> 0

button_status = readDigitalPin (a, 'D2'); % er lik null når knappen trykkes, ellers er 1

voltage = readVoltage (a, 'A0');%pin avhenger av hvor vi plasserer den

tempCelcius = (spenning*100) -50; %gitt i sensorhåndboken

tempF (tid) = (tempCelcius*1.8) +32 %kjent konverteringsformel

maks = 120; %grader F.

writeDigitalPin (a, 'D11', 1);

rem = mod (e, 2);

hvis tempF (tid)> = maks

writeDigitalPin (a, 'D11', 0);

writeDigitalPin (a, 'D9', 1);

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

pause (.5)

writeDigitalPin (a, 'D6', 1)

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

pause (.5)

writeDigitalPin (a, 'D9', 1);

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

pause (.5)

writeDigitalPin (a, 'D6', 1)

playTone (a, 'D6', 1000,.5) %spiller "sirene"

z = 'Overoppheting.m4a'; %Dette setter lydfilen inn i en variabel

[data, freq] = lydlesing (z); %Laster data fra lydfil

o = lydspiller (data, frekvens); %Oppretter et objekt for å kontrollere avspillingen av lydfilen

o.play () %Spiller av lydfil

o.playblocking () %Spiller av filen og venter på at den skal være ferdig

slutt

hvis button_status == 0 && rem == 0

e = e+1

msgbox ('Velkommen ombord!');

elseif button_status == 0 && rem == 1

e = e+1

msgbox ('Bienvenido a bordo!');

slutt

hvis e == 5

writeDigitalPin (a, 'D11', 0);

hvis x == 0

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

s = 'Advarsel_EF.m4a'; %Dette setter lydfilen inn i en variabel

[data, frekvens] = lydlesing (er); %Laster data fra lydfil

o = lydspiller (data, frekvens); %Oppretter et objekt for å kontrollere avspillingen av lydfilen

% o.play () % Spiller av lydfil

o.playblocking () %Spiller av filen og venter på at den skal være ferdig

msgbox ('Maksimal kapasitet')

x = x+1

slutt

elseif e> = 6

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

slutt

tid = tid - 1;

% pause (0,1);

% hvis e == 5 && max (tempF)> = 120

% tid = 0

% slutt

slutt

ee = num2str (e)

t = [1: 200];

tempF2 = fliplr (tempF);

plot (t, tempF2);

tittel ('Tid vs. temperatur')

ylabel ('Temperatur (F)')

xlabel ('Tid (er)')

saveas (gcf, 'tempplot.jpg')

mail = '[email protected]'

password = 'Srsora123#'

host = 'smtp.gmail.com'

setpref ('Internett', 'SMTP_Server', vert);

setpref ('Internett', 'E_mail', post);

setpref ('Internett', 'SMTP_Username', mail);

setpref ('Internett', 'SMTP_Password', passord);

rekvisitter = 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 (mail, 'Hello Train Station! Det er så mange passasjerer i toget', ee, 'tempplot.jpg')

Trinn 5: Resultater

Anbefalt: