Cuprins:

Detector de temperatură feroviară în deșert și contor pasageri: 5 pași
Detector de temperatură feroviară în deșert și contor pasageri: 5 pași

Video: Detector de temperatură feroviară în deșert și contor pasageri: 5 pași

Video: Detector de temperatură feroviară în deșert și contor pasageri: 5 pași
Video: Part 3 - The House of Mirth Audiobook by Edith Wharton (Book 1 - Chs 11-15) 2024, Noiembrie
Anonim
Detector de temperatură feroviară în deșert și contor de pasageri
Detector de temperatură feroviară în deșert și contor de pasageri

Scop:

Temperatură: această instrucțiune vă va învăța cum să configurați și să programați un Arduino RedBoard (folosind MATLAB) pentru a detecta temperatura unei căi ferate. Când se atinge o temperatură nesigură pentru pasageri, se aude un mesaj de avertizare, sonerii se sting și se aprinde un semn de avertizare.

Contor pasageri: această porțiune vă va învăța cum să utilizați un buton pentru a număra pasagerii și pentru a emite un avertisment când capacitatea maximă a fost atinsă.

Caracteristici:

  • Utilizează butonul pentru a număra pasagerii care intră în tren
  • Folosește TMP36 (senzor de temperatură) pentru a detecta temperatura căii ferate
  • Folosește o lumină LED roșie pentru a avertiza gara
  • Folosește sonerii pentru a alarma
  • Trimite un e-mail de alertă cu un grafic de temperatură vs timp
  • Mesaje de avertizare pop-up pe MATLAB

Pasul 1: Materiale și consumabile

Materiale și consumabile
Materiale și consumabile
  • 1 laptop
  • MATLAB 2017
  • Descărcați Arduino Toolbox
  • Sparkfun RedBoard
  • 1 cablu de alimentare
  • Breadbord
  • 14 fire
  • 1 Piezo Buzzer
  • 1 Buton
  • 2 rezistențe de 10k ohm
  • 1 senzor TMP36
  • Lumină LED roșie
  • Semn imprimat 3D (opțional)

Pasul 2: Configurarea plăcii

Configurarea plăcii
Configurarea plăcii

Urmați configurarea de mai sus

Pasul 3: Scrierea codului

While Buclă: Pentru a ne asigura că codul continuă să testeze temperatura și să detecteze starea butonului (apăsat sau neaprins), plasăm codul în bucla while pentru o perioadă de timp specificată.

Utilizarea TMP36: Determinăm temperatura citind tensiunea și transformând-o în grade Fahrenheit, utilizând factori de conversie. Apoi, folosim o declarație if pentru a reda un ton și a auzi / trimite alerte dacă temperatura este mai mare sau egală cu temperatura maximă setată

Utilizarea butonului: Cu o declarație if, putem testa dacă butonul a fost apăsat folosind readDigitalPin. Această comandă va returna un Boolean (1 sau 0). Dacă răspunsul este 0, atunci butonul a fost apăsat și contorul pasagerilor crește și afișează un mesaj de întâmpinare. Apoi, când se atinge capacitatea maximă, se aude un mesaj de avertizare.

Pasul 4: Copiați codul

% Intrări: Apăsarea butonului, senzor de temperatură

% Ieșiri: lumini, sonerii, alertă audio, e-mailuri, grafice

Scop: Acest produs este conceput pentru a asigura siguranța și confortul a% pasagerilor care călătoresc cu trenul prin deșert.

% Utilizare: detectarea numărului de pasageri cu ajutorul unui buton și% detectarea căldurii folosind un senzor de temperatură și graficarea acestuia și trimite atât numărul de pasageri cât și graficul temperaturii la gară

configurePin (a, 'D2', 'pullup'); % în versiunile viitoare utilizează configurePin

timp = 200;

e = 0;

x = 0

timp timp> 0

button_status = readDigitalPin (a, 'D2'); % este egal cu zero când butonul este apăsat, altfel este egal cu 1

tensiune = readVoltage (a, 'A0');% pin depinde de locul în care îl plasăm

tempCelcius = (tensiune * 100) -50; % dat în manualul senzorului

tempF (time) = (tempCelcius * 1.8) +32% formulă de conversie cunoscută

max = 120; % grade F

writeDigitalPin (a, 'D11', 1);

rem = mod (e, 2);

dacă tempF (timp)> = max

writeDigitalPin (a, 'D11', 0);

writeDigitalPin (a, 'D9', 1);

playTone (a, „D9”, 2400,.5)

pauză (.5)

writeDigitalPin (a, 'D6', 1)

playTone (a, „D6”, 1000,.5)

pauză (.5)

writeDigitalPin (a, 'D9', 1);

playTone (a, „D9”, 2400,.5)

pauză (.5)

writeDigitalPin (a, 'D6', 1)

playTone (a, 'D6', 1000,.5)% joacă „sirena”

z = 'Supraîncălzire.m4a'; % Aceasta plasează fișierul audio într-o variabilă

[date, freq] = audioread (z); % Încarcă date din fișierul de sunet

o = audioplayer (date, frecvente); % Creează un obiect pentru a controla redarea fișierului audio

o.play ()% Redă fișierul audio

o.playblocking ()% Redă fișierul și așteaptă să se termine

Sfârșit

if button_status == 0 && rem == 0

e = e + 1

msgbox ('Welcome Aboard!');

elseif button_status == 0 && rem == 1

e = e + 1

msgbox ('Bienvenido a bordo!');

Sfârșit

dacă e == 5

writeDigitalPin (a, 'D11', 0);

dacă x == 0

playTone (a, „D6”, 600, 1);

s = 'Warning_EF.m4a'; % Aceasta plasează fișierul audio într-o variabilă

[date, freq] = audioread (s); % Încarcă date din fișierul de sunet

o = audioplayer (date, frecvente); % Creează un obiect pentru a controla redarea fișierului audio

% o.play ()% Redă fișierul audio

o.playblocking ()% Redă fișierul și așteaptă să se termine

msgbox („Capacitate maximă”)

x = x + 1

Sfârșit

elseif e> = 6

playTone (a, „D6”, 2400, 0);

Sfârșit

timp = timp - 1;

% pauză (0,1);

% dacă e == 5 && max (tempF)> = 120

% timp = 0

% Sfârșit

Sfârșit

ee = num2str (e)

t = [1: 200];

tempF2 = fliplr (tempF);

grafic (t, tempF2);

titlu („Timp vs. Temperatură”)

ylabel („Temperatură (F)”)

xlabel („Timp (uri)”)

saveas (gcf, 'tempplot.jpg')

mail = '[email protected]'

parola = 'Srsora123 #'

host = 'smtp.gmail.com'

setpref ('Internet', 'SMTP_Server', gazdă);

setpref ('Internet', 'E-mail', mail);

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

setpref ('Internet', 'SMTP_Password', parolă);

props = 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 (e-mail, „Hello Train Station! Sunt atât de mulți pasageri în tren”, ee, „tempplot.jpg”)

Pasul 5: Rezultate

Recomandat: