Indholdsfortegnelse:

Desert Railroad Temperature Detector & Passagertæller: 5 trin
Desert Railroad Temperature Detector & Passagertæller: 5 trin

Video: Desert Railroad Temperature Detector & Passagertæller: 5 trin

Video: Desert Railroad Temperature Detector & Passagertæller: 5 trin
Video: The way she immediately froze 😂❤️ #shorts 2024, Juli
Anonim
Desert Railroad Temperature Detector & Passagertæller
Desert Railroad Temperature Detector & Passagertæller

Formål:

Temperatur: Denne instruktør lærer dig, hvordan du opretter og programmerer et Arduino RedBoard (ved hjælp af MATLAB) til at registrere temperaturen på en jernbane. Når en usikker temperatur for passagererne er nået, lyder en advarselsmeddelelse, summer summer, og et advarselsskilt lyser.

Passagertæller: Denne del lærer dig, hvordan du bruger en knap for at tælle passagerer og udsende en advarsel, når maksimal kapacitet er nået.

Funktioner:

  • Bruger knappen til at tælle passagerer ind i toget
  • Bruger TMP36 (temperatursensor) til at registrere jernbanens temperatur
  • Bruger et rødt LED -lys til at advare togstationen
  • Bruger summer til at slå alarm
  • Sender en advarsels -e -mail med et plot af temperatur vs tid
  • Pop-up advarsler på MATLAB

Trin 1: Materialer og forsyninger

Materialer og forsyninger
Materialer og forsyninger
  • 1 bærbar
  • MATLAB 2017
  • Hent Arduino Toolbox
  • Sparkfun RedBoard
  • 1 strømkabel
  • Brødbord
  • 14 ledninger
  • 1 Piezo -summer
  • 1 Tryk på knappen
  • 2 10k ohm modstande
  • 1 TMP36 sensor
  • Rød LED lys
  • 3D -trykt skilt (valgfrit)

Trin 2: Board Setup

Board Setup
Board Setup

Følg opsætningen ovenfor

Trin 3: Skrivning af koden

Mens Loop: For at sikre, at koden fortsætter med at teste temperaturen og registrerer knapstatus (trykket eller ikke trykket), placerer vi koden i while -loop for en bestemt periode.

Brug af TMP36: Vi bestemmer temperaturen ved at aflæse spændingen og konvertere den til grader Fahrenheit ved hjælp af konverteringsfaktorer. Derefter bruger vi en if -sætning til at afspille en tone og lyd/sende advarsler, hvis temperaturen er større end eller lig med den indstillede maksimale temperatur

Brug af knap: Med en if -sætning kan vi teste, om der blev trykket på knappen ved hjælp af readDigitalPin. Denne kommando returnerer en boolsk (1 eller 0). Hvis svaret er 0, blev der trykket på knappen, og passagertælleren stiger og viser en velkomstmeddelelse. Når den maksimale kapacitet er nået, lyder der en advarselsmeddelelse.

Trin 4: Kopier koden

%Input: Tryk på knappen, temperatursensor

%Outputs: lys, summer, lydalarm, e -mails, grafer

%Formål: Dette produkt er designet til at hjælpe med at sikre sikkerheden og komforten for %passagerer, der rejser med tog gennem ørkenen.

%Brug: Registrering af antallet af passagerer ved hjælp af en trykknap og %detektering af varmen ved hjælp af en temperatursensor og tegner den og sender både %passagertal og temperaturgrafen til togstationen

configurePin (a, 'D2', 'pullup'); %i fremtidige udgivelser bruger configurePin

tid = 200;

e = 0;

x = 0

mens tiden> 0

button_status = readDigitalPin (a, 'D2'); % er lig med nul, når der trykkes på knappen, ellers er 1

spænding = readVoltage (a, 'A0');%pin afhænger af, hvor vi placerer den

tempCelcius = (spænding*100) -50; %angivet i sensorhåndbogen

tempF (tid) = (tempCelcius*1.8) +32 %kendt omregningsformel

max = 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 = 'Overophedning.m4a'; %Dette sætter lydfilen i en variabel

[data, freq] = lydlæsning (z); %Indlæser data fra lydfil

o = lydafspiller (data, frekvens); %Opretter et objekt til at styre afspilningen af lydfilen

o.play () %Afspiller lydfil

o.playblocking () %Afspiller fil og venter på, at den er færdig

ende

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!');

ende

hvis e == 5

writeDigitalPin (a, 'D11', 0);

hvis x == 0

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

s = 'Advarsel_EF.m4a'; %Dette sætter lydfilen i en variabel

[data, freq] = lydlæsning (er); %Indlæser data fra lydfil

o = lydafspiller (data, frekvens); %Opretter et objekt til at styre afspilningen af lydfilen

% o.play () % Afspiller lydfil

o.playblocking () %Afspiller fil og venter på, at den er færdig

msgbox ('Maksimal kapacitet')

x = x+1

ende

elseif e> = 6

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

ende

tid = tid - 1;

% pause (0,1);

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

% tid = 0

% slut

ende

ee = num2str (e)

t = [1: 200];

tempF2 = fliplr (tempF);

plot (t, tempF2);

titel ('Tid vs. temperatur')

ylabel ('Temperatur (F)')

xlabel ('Tid (er)')

saveas (gcf, 'tempplot.jpg')

mail = '[email protected]'

password = 'Srsora123#'

host = 'smtp.gmail.com'

setpref ('Internet', 'SMTP_Server', vært);

setpref ('Internet', 'E_mail', mail);

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

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

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, 'Hej togstation! Der er så mange passagerer i toget', ee, 'tempplot.jpg')

Trin 5: Resultater

Anbefalede: