Kazalo:

Detektor temperature puščavske železnice in števec potnikov: 5 korakov
Detektor temperature puščavske železnice in števec potnikov: 5 korakov

Video: Detektor temperature puščavske železnice in števec potnikov: 5 korakov

Video: Detektor temperature puščavske železnice in števec potnikov: 5 korakov
Video: Убивайте инопланетян с помощью гениального кота, умеющего программировать. 😾⚔ - GamePlay 🎮📱 🇷🇺 2024, Julij
Anonim
Detektor temperature puščavske železnice in števec potnikov
Detektor temperature puščavske železnice in števec potnikov

Namen:

Temperatura: Ta navodila vas bodo naučila, kako nastaviti in programirati Arduino RedBoard (z uporabo MATLAB) za zaznavanje temperature železnice. Ko je za potnike nevarna temperatura, se oglasi opozorilno sporočilo, zvončki ugasnejo in zasveti opozorilni znak.

Števec potnikov: Ta del vas bo naučil uporabljati gumb za štetje potnikov in opozorilo, ko bo dosežena največja zmogljivost.

Lastnosti:

  • Gumb uporablja za odštevanje potnikov, ki vstopajo na vlak
  • Uporablja TMP36 (temperaturni senzor) za zaznavanje temperature železnice
  • Za opozarjanje na železniško postajo uporablja rdečo LED luč
  • Za zvočni alarm uporablja zvočnike
  • Pošlje opozorilno e -poštno sporočilo s prikazom temperature v primerjavi s časom
  • Pojavna opozorila na MATLAB-u

1. korak: Materiali in potrebščine

Materiali in potrebščine
Materiali in potrebščine
  • 1 Prenosni računalnik
  • MATLAB 2017
  • Prenesite Arduino Toolbox
  • Sparkfun RedBoard
  • 1 Napajalni kabel
  • Breadbord
  • 14 žic
  • 1 Piezo Buzzer
  • 1 Pritisnite gumb
  • 2 upora 10k ohm
  • 1 senzor TMP36
  • Rdeča LED luč
  • 3D natisnjen znak (neobvezno)

2. korak: Nastavitev plošče

Nastavitev plošče
Nastavitev plošče

Sledite zgornji nastavitvi

3. korak: Pisanje kode

Medtem ko je zanka: Da bi zagotovili, da koda še naprej preizkuša temperaturo in zazna stanje gumba (pritisnjeno ali nepripravljeno), kodo postavimo v zanko while za določeno časovno obdobje.

Z uporabo TMP36: Temperaturo določimo tako, da odčitamo napetost in jo pretvorimo v stopinje Fahrenheita z uporabo pretvorbenih faktorjev. Nato z izjavo if predvajamo ton in zvok/pošiljamo opozorila, če je temperatura večja ali enaka nastavljeni najvišji temperaturi

Uporaba gumba: Z izjavo if lahko preverimo, ali je bil gumb pritisnjen s pomočjo readDigitalPin. Ta ukaz vrne logično vrednost (1 ali 0). Če je odziv 0, je bil pritisnjen gumb in števec potnikov se poveča in prikaže sporočilo dobrodošlice. Ko se doseže največja zmogljivost, se oglasi opozorilo.

4. korak: Kopirajte kodo

%Vhodi: S pritiskom na gumb, temperaturnim senzorjem

%Izhodi: luči, zvočniki, zvočna opozorila, e -poštna sporočila, grafi

%Namen: Ta izdelek je zasnovan tako, da zagotavlja varnost in udobje %potnikov, ki potujejo z vlakom po puščavi.

%Uporaba: Odkrivanje števila potnikov s pritiskom na gumb in %zaznavanje toplote s temperaturnim senzorjem in grafikoniranje ter pošiljanje %številk potnikov in temperaturnega grafa na železniško postajo

configurePin (a, 'D2', 'pullup'); %v prihodnjih izdajah uporablja configurePin

čas = 200;

e = 0;

x = 0

čas> 0

button_status = readDigitalPin (a, 'D2'); % je enak nič, ko pritisnete gumb, drugače pa 1

napetost = readVoltage (a, 'A0');%pin je odvisen od tega, kje ga postavimo

tempCelcius = (napetost*100) -50; %, podano v priročniku za senzor

tempF (čas) = (tempCelcius*1.8) +32 %znana formula pretvorbe

max = 120; %stopinj F.

writeDigitalPin (a, 'D11', 1);

rem = mod (e, 2);

če je tempF (čas)> = maks

writeDigitalPin (a, 'D11', 0);

writeDigitalPin (a, 'D9', 1);

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

premor (.5)

writeDigitalPin (a, 'D6', 1)

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

premor (.5)

writeDigitalPin (a, 'D9', 1);

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

premor (.5)

writeDigitalPin (a, 'D6', 1)

playTone (a, 'D6', 1000,.5) %predvaja "sireno"

z = 'Pregrevanje.m4a'; %To zvočno datoteko postavi v spremenljivko

[podatki, pogostost] = zvočno branje (z); %Naloži podatke iz zvočne datoteke

o = predvajalnik zvoka (podatki, pogostost); %Ustvari predmet za nadzor predvajanja zvočne datoteke

o.play () %Predvaja zvočno datoteko

o.playblocking () %Predvaja datoteko in počaka, da se konča

konec

če gumb_status == 0 && rem == 0

e = e+1

msgbox ('Dobrodošli na krovu!');

elseif button_status == 0 && rem == 1

e = e+1

msgbox ('Bienvenido a bordo!');

konec

če je e == 5

writeDigitalPin (a, 'D11', 0);

če je x == 0

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

s = 'Opozorilo_EF.m4a'; %To zvočno datoteko postavi v spremenljivko

[podatki, pogostost] = zvočno branje; %Naloži podatke iz zvočne datoteke

o = predvajalnik zvoka (podatki, pogostost); %Ustvari predmet za nadzor predvajanja zvočne datoteke

% o.play () % Predvaja zvočno datoteko

o.playblocking () %Predvaja datoteko in počaka, da se konča

msgbox ('Največja zmogljivost')

x = x+1

konec

sicer e> = 6

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

konec

čas = čas - 1;

% premora (0,1);

%, če je e == 5 && max (tempF)> = 120

% čas = 0

% konec

konec

ee = num2str (e)

t = [1: 200];

tempF2 = fliplr (tempF);

ploskev (t, tempF2);

title ('Čas v primerjavi s temperaturo')

ylabel ('Temperatura (F)')

xlabel ('Čas (i)')

saveas (gcf, 'tempplot.jpg')

mail = '[email protected]'

geslo = 'Srsora123#'

host = 'smtp.gmail.com'

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

setpref ('Internet', 'E_mail', pošta);

setpref ('Internet', 'SMTP_Uporabniško ime', pošta);

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

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, "Pozdravljena železniška postaja! Na vlaku je toliko potnikov", ee, "tempplot.jpg")

5. korak: Rezultati

Priporočena: