Sisällysluettelo:

Aavikon rautatien lämpötilanilmaisin ja matkustajalaskuri: 5 vaihetta
Aavikon rautatien lämpötilanilmaisin ja matkustajalaskuri: 5 vaihetta

Video: Aavikon rautatien lämpötilanilmaisin ja matkustajalaskuri: 5 vaihetta

Video: Aavikon rautatien lämpötilanilmaisin ja matkustajalaskuri: 5 vaihetta
Video: Aavikon ritari - Seikkailuromaani Teksasista, Mayne Reid 2024, Marraskuu
Anonim
Aavikon rautatien lämpötilanilmaisin ja matkustajalaskuri
Aavikon rautatien lämpötilanilmaisin ja matkustajalaskuri

Tarkoitus:

Lämpötila: Tämä ohje opettaa sinulle, miten voit asentaa ja ohjelmoida Arduino RedBoardin (käyttäen MATLABia) rautatien lämpötilan havaitsemiseksi. Kun matkustajien vaarallinen lämpötila saavutetaan, kuuluu varoitusviesti, summeri sammuu ja varoitusvalo syttyy.

Matkustajalaskuri: Tämä osa opettaa sinua käyttämään painiketta matkustajien laskemiseksi ja antaa varoituksen, kun maksimikapasiteetti on saavutettu.

Ominaisuudet:

  • Painikkeella lasketaan junassa tulevat matkustajat
  • Tunnistaa rautatien lämpötilan TMP36: lla (lämpötila -anturi)
  • Varoittaa rautatieasemaa punaisella LED -valolla
  • Käyttää hälytyksiä summerilla
  • Lähettää hälytysviestin, jossa on kuvaaja lämpötilasta vs
  • Ponnahdusvaroitukset MATLABissa

Vaihe 1: Materiaalit ja tarvikkeet

Materiaalit ja tarvikkeet
Materiaalit ja tarvikkeet
  • 1 Kannettava tietokone
  • MATLAB 2017
  • Lataa Arduino Toolbox
  • Sparkfun RedBoard
  • 1 Virtajohto
  • Breadbord
  • 14 johtoa
  • 1 Pietsosummeri
  • 1 Painike
  • 2 10 k ohmin vastusta
  • 1 TMP36 -anturi
  • Punainen LED -valo
  • 3D -painettu kyltti (valinnainen)

Vaihe 2: Taulun asennus

Kortin asennus
Kortin asennus

Noudata yllä olevia asetuksia

Vaihe 3: Koodin kirjoittaminen

Silmukka: Kun haluat varmistaa, että koodi jatkaa lämpötilan testaamista ja tunnistaa painikkeen tilan (painettuna tai painamatta), asetamme koodin while -silmukkaan tietyn ajan.

Käyttämällä TMP36: Määritämme lämpötilan lukemalla jännitteen ja muuntamalla sen Fahrenheit -asteiksi käyttämällä muuntokertoimia. Sitten käytämme if -lauseketta äänimerkin ja äänen lähettämiseen/hälytysten lähettämiseen, jos lämpötila on korkeampi tai yhtä suuri kuin asetettu maksimilämpötila

Buttonin käyttö: if -lausekkeen avulla voimme testata, onko painiketta painettu readDigitalPin -ohjelmalla. Tämä komento palauttaa Boolen (1 tai 0). Jos vastaus on 0, painiketta painettiin ja matkustajalaskuri kasvaa ja näyttää tervetuloviestin. Kun maksimikapasiteetti on saavutettu, kuuluu varoitusviesti.

Vaihe 4: Kopioi koodi

%Tulot: Painikkeen painaminen, lämpötila -anturi

%Lähdöt: valot, summerit, äänihälytys, sähköpostit, kaaviot

%Tarkoitus: Tämä tuote on suunniteltu auttamaan turvallisuuden ja mukavuuden takaamisessa %matkustajista, jotka matkustavat junalla autiomaassa.

%Käyttö: Matkustajien lukumäärän tunnistaminen painonapilla ja %lämpö lämpöanturin avulla ja sen kuvaaja ja lähettää sekä %matkustajamäärät että lämpötilakaavio rautatieasemalle

configurePin (a, 'D2', 'pullup'); %tulevissa julkaisuissa käyttää configurePin -ohjelmaa

aika = 200;

e = 0;

x = 0

kun aika> 0

button_status = readDigitalPin (a, 'D2'); % on nolla, kun painiketta painetaan, muuten yhtä kuin 1

jännite = lukuVoltage (a, 'A0');%pin riippuu siitä, mihin se sijoitetaan

tempCelcius = (jännite*100) -50; %anturin käsikirjassa

tempF (aika) = (tempCelcius*1,8) +32 %tunnettu muunnoskaava

max = 120; %astetta F.

writeDigitalPin (a, 'D11', 1);

rem = mod (e, 2);

jos tempF (aika)> = max

writeDigitalPin (a, 'D11', 0);

writeDigitalPin (a, 'D9', 1);

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

tauko (.5)

writeDigitalPin (a, 'D6', 1)

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

tauko (.5)

writeDigitalPin (a, 'D9', 1);

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

tauko (.5)

writeDigitalPin (a, 'D6', 1)

playTone (a, 'D6', 1000,.5) %soittaa "sireeniä"

z = 'Ylikuumeneminen.m4a'; %Tämä asettaa äänitiedoston muuttujaan

[data, taajuus] = ääniluku (z); %Lataa tiedot äänitiedostosta

o = audioplayer (data, taajuus); %Luo objektin ohjaamaan äänitiedoston toistoa

o.play () %Toistaa äänitiedoston

o.playblocking () %Toistaa tiedoston ja odottaa sen päättymistä

loppuun

jos button_status == 0 && rem == 0

e = e+1

msgbox ('Tervetuloa!');

elseif button_status == 0 && rem == 1

e = e+1

msgbox ('Bienvenido a bordo!');

loppuun

jos e == 5

writeDigitalPin (a, 'D11', 0);

jos x == 0

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

s = 'Varoitus_EF.m4a'; %Tämä asettaa äänitiedoston muuttujaan

[data, taajuus] = ääniluku (t); %Lataa tiedot äänitiedostosta

o = audioplayer (data, taajuus); %Luo objektin ohjaamaan äänitiedoston toistoa

% o.play () % Toistaa äänitiedoston

o.playblocking () %Toistaa tiedoston ja odottaa sen päättymistä

msgbox ('Suurin kapasiteetti')

x = x+1

loppuun

muu jos e> = 6

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

loppuun

aika = aika - 1;

% tauko (0,1);

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

% aika = 0

% loppu

loppuun

ee = num2str (e)

t = [1: 200];

tempF2 = fliplr (tempF);

käyrä (t, tempF2);

otsikko ('Aika vs. lämpötila')

ylabel ('Lämpötila (F)')

xlabel ('Aika')

saveas (gcf, 'tempplot.jpg')

mail = '[email protected]'

password = 'Srsora123#'

isäntä = 'smtp.gmail.com'

setpref ('Internet', 'SMTP_palvelin', isäntä);

setpref ('Internet', 'Sähköposti', posti);

setpref ('Internet', 'SMTP_Käyttäjänimi', posti);

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

rekvisiitta = 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 (posti, 'Hei rautatieasema! Junassa on näin paljon matkustajia', ee, 'tempplot.jpg')

Vaihe 5: Tulokset

Suositeltava: