INHOUDSOPGAWE:

Woestyn spoorweg temperatuur detector en passasier toonbank: 5 stappe
Woestyn spoorweg temperatuur detector en passasier toonbank: 5 stappe

Video: Woestyn spoorweg temperatuur detector en passasier toonbank: 5 stappe

Video: Woestyn spoorweg temperatuur detector en passasier toonbank: 5 stappe
Video: VERDWENEN - Mysteries met een Geschiedenis 2024, November
Anonim
Woestyn spoorweg temperatuur detector en passasier toonbank
Woestyn spoorweg temperatuur detector en passasier toonbank

Doel:

Temperatuur: hierdie instruksies sal u leer hoe om 'n Arduino RedBoard op te stel en te programmeer (met behulp van MATLAB) om die temperatuur van 'n spoorlyn op te spoor. As 'n onveilige temperatuur vir die passasiers bereik word, klink 'n waarskuwingsboodskap, gons gaan af en 'n waarskuwingsteken brand.

Passasiersbank: hierdie gedeelte leer u hoe u 'n knoppie kan gebruik om passasiers te tel en 'n waarskuwing te gee wanneer die maksimum kapasiteit bereik is.

Kenmerke:

  • Gebruik die knoppie om passasiers op te tel wat die trein binnegaan
  • Gebruik TMP36 (temperatuursensor) om die temperatuur van die spoorweg op te spoor
  • Gebruik 'n rooi LED -lig om die treinstasie te waarsku
  • Gebruik gonsers om alarm te maak
  • Stuur 'n e -pos met 'n waarneming van temperatuur teenoor tyd
  • Opspring-waarskuwingsboodskappe op MATLAB

Stap 1: Materiaal en voorrade

Materiaal en voorrade
Materiaal en voorrade
  • 1 skootrekenaar
  • MATLAB 2017
  • Laai die Arduino Toolbox af
  • Sparkfun RedBoard
  • 1 kragkabel
  • Broodbord
  • 14 drade
  • 1 Piezo -gonser
  • 1 Drukknoppie
  • 2 10k ohm weerstande
  • 1 TMP36 sensor
  • Rooi LED lig
  • 3D -gedrukte teken (opsioneel)

Stap 2: Bordopstelling

Bordopstelling
Bordopstelling

Volg die opstelling hierbo

Stap 3: Skryf die kode

Terwyl lus: Om te verseker dat die kode voortgaan om die temperatuur te toets en die knoppiestatus te sien (ingedruk of nie ingedruk nie), plaas ons die kode in die terwyl -lus vir 'n bepaalde tydperk.

Met behulp van TMP36: Ons bepaal die temperatuur deur die spanning te lees en dit om te skakel na grade Fahrenheit, met behulp van omskakelingsfaktore. Dan gebruik ons 'n if -stelling om 'n toon en klank te speel/waarskuwings te stuur as die temperatuur groter as of gelyk is aan die ingestelde maksimum temperatuur

Met behulp van knoppie: Met 'n if -verklaring kan ons toets of die knoppie ingedruk is met behulp van readDigitalPin. Hierdie opdrag gee 'n Booleaanse (1 of 0) terug. As die antwoord 0 is, word op die knoppie gedruk en die toonbank van die passasiers neem toe en 'n welkome boodskap verskyn. As die maksimum kapasiteit bereik word, word 'n waarskuwingsboodskap gelui.

Stap 4: Kopieer die kode

%Insette: druk op die knoppie, temperatuursensor

%Uitsette: ligte, gonsers, klankwaarskuwing, e -posse, grafieke

Doel: Hierdie produk is ontwerp om die veiligheid en gemak van %passasiers te verseker wat per trein deur die woestyn reis.

%Gebruik: opspoor die aantal passasiers met 'n drukknop

configurePin (a, 'D2', 'pullup'); %gebruik toekomstige uitgawes configurePin

tyd = 200;

e = 0;

x = 0

terwyl tyd> 0

button_status = readDigitalPin (a, 'D2'); % is gelyk aan nul as die knoppie gedruk word, anders is dit gelyk aan 1

voltage = readVoltage (a, 'A0');%pen hang af van waar ons dit plaas

tempCelcius = (spanning*100) -50; %gegee in sensorhandleiding

tempF (tyd) = (tempCelcius*1.8) +32 %bekende omskakelingsformule

maksimum = 120; %grade F.

writeDigitalPin (a, 'D11', 1);

rem = mod (e, 2);

as tempF (tyd)> = maks

writeDigitalPin (a, 'D11', 0);

writeDigitalPin (a, 'D9', 1);

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

pouse (.5)

writeDigitalPin (a, 'D6', 1)

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

pouse (.5)

writeDigitalPin (a, 'D9', 1);

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

pouse (.5)

writeDigitalPin (a, 'D6', 1)

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

z = 'Oorverhit.m4a'; %Dit plaas die klanklêer in 'n veranderlike

[data, frekwensie] = oudiolees (z); Laai data uit die klanklêer

o = oudiospeler (data, frekwensie); Skep 'n voorwerp om die speel van die klanklêer te beheer

o.play () %Speel klanklêer

o.playblocking () %Speel lêer en wag totdat dit klaar is

einde

as button_status == 0 && rem == 0

e = e+1

msgbox ('Welkom aan boord!');

elseif button_status == 0 && rem == 1

e = e+1

msgbox ('Bienvenido a bordo!');

einde

as e == 5

writeDigitalPin (a, 'D11', 0);

as x == 0

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

s = 'Waarskuwing_EF.m4a'; %Dit plaas die klanklêer in 'n veranderlike

[data, frekwensie] = oudiolees (e); Laai data uit klanklêer

o = oudiospeler (data, frekwensie); Skep 'n voorwerp om die speel van die klanklêer te beheer

% o.play () % Speel klanklêer

o.playblocking () %Speel lêer en wag totdat dit klaar is

msgbox ('Maksimum kapasiteit')

x = x+1

einde

andersif e> = 6

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

einde

tyd = tyd - 1;

% pouse (0,1);

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

% tyd = 0

% einde

einde

ee = num2str (e)

t = [1: 200];

tempF2 = fliplr (tempF);

plot (t, tempF2);

titel ('Tyd versus temperatuur')

ylabel ('Temperatuur (F)')

xlabel ('Tyd (e)')

saveas (gcf, 'tempplot.jpg')

mail = '[email protected]'

password = 'Srsora123#'

host = 'smtp.gmail.com'

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

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

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

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

rekwisiete = 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 (pos, 'Hallo treinstasie! Daar is soveel passasiers in die trein', ee, 'tempplot.jpg')

Stap 5: Resultate

Aanbeveel: