Talaan ng mga Nilalaman:

Desert Railway Temperature Detector at Passenger Counter: 5 Mga Hakbang
Desert Railway Temperature Detector at Passenger Counter: 5 Mga Hakbang

Video: Desert Railway Temperature Detector at Passenger Counter: 5 Mga Hakbang

Video: Desert Railway Temperature Detector at Passenger Counter: 5 Mga Hakbang
Video: ✨A Will Eternal EP 01 - 106 Full Version [MULTI SUB] 2024, Nobyembre
Anonim
Detector Temperatura ng Desyerto ng Riles at Counter ng Pasahero
Detector Temperatura ng Desyerto ng Riles at Counter ng Pasahero

Layunin:

Temperatura: Ang itinuturo na ito ay magtuturo sa iyo kung paano mag-set up at mag-program ng isang Arduino RedBoard (gamit ang MATLAB) upang makita ang temperatura ng isang riles. Kapag naabot ang isang hindi ligtas na temperatura para sa mga pasahero, tunog ng isang babalang mensahe, pumapatay ang mga buzzer, at isang ilaw ng babala ang magsisindi.

Passenger Counter: Ang bahaging ito ay magtuturo sa iyo kung paano gumamit ng isang pindutan upang mabilang ang mga pasahero at tunog ng isang babala kapag naabot ang maximum na kapasidad.

Mga Tampok:

  • Gumagamit ng Button upang mabilang ang mga pasahero na pumapasok sa tren
  • Gumagamit ng TMP36 (sensor ng temperatura) upang makita ang temperatura ng riles
  • Gumagamit ng isang pulang LED light upang bigyan ng babala ang istasyon ng tren
  • Gumagamit ng mga buzzer upang mag-alarma
  • Nagpadala ng isang alerto sa email na may isang lagay ng temperatura kumpara sa oras
  • Mga mensahe ng babalang pop-up sa MATLAB

Hakbang 1: Mga Materyales at Suplay

Mga Materyales at Kagamitan
Mga Materyales at Kagamitan
  • 1 Laptop
  • MATLAB 2017
  • I-download ang Arduino Toolbox
  • Sparkfun RedBoard
  • 1 Power Cable
  • Breadbord
  • 14 na mga wire
  • 1 Piezo Buzzer
  • 1 Push Button
  • 2 10k ohm resistors
  • 1 sensor ng TMP36
  • Pulang LED light
  • 3D print sign (opsyonal)

Hakbang 2: Pag-setup ng Lupon

Pag-setup ng Lupon
Pag-setup ng Lupon

Sundin ang setup sa itaas

Hakbang 3: Pagsulat ng Code

Habang Loop: Upang matiyak na ang code ay patuloy na sumusubok sa temperatura at nadarama ang katayuan ng pindutan (pinindot o hindi naka-compress), inilalagay namin ang code sa habang loop para sa isang tinukoy na tagal ng panahon.

Paggamit ng TMP36: Natutukoy namin ang temperatura sa pamamagitan ng pagbabasa ng boltahe at pag-convert nito sa degree Fahrenheit, gamit ang mga kadahilanan ng conversion. Pagkatapos, gumagamit kami ng isang kung pahayag upang patugtugin ang isang tono at tunog / magpadala ng mga alerto kung ang temp ay mas malaki kaysa o katumbas ng itinakdang pinakamataas na temperatura

Paggamit ng Button: Sa isang pahayag na kung, maaari naming subukan kung ang pindutan ay pinindot gamit ang readDigitalPin. Ang utos na ito ay magbabalik ng isang Boolean (1 o 0). Kung ang tugon ay 0, pagkatapos ang pindutan ay pinindot at ang counter ng mga pasahero ay tumataas at nagpapakita ng isang maligayang mensahe. Pagkatapos, kapag naabot ang maximum na kapasidad, isang mensahe ng babala ang ipapatunog.

Hakbang 4: Kopyahin ang Code

% Mga Input: Pagtulak sa pindutan, sensor ng temperatura

% Mga Output: ilaw, buzzer, audio alert, mga email, graph

% Layunin: Ang produktong ito ay dinisenyo upang makatulong na matiyak ang kaligtasan at ginhawa ng% mga pasahero na naglalakbay sa pamamagitan ng tren sa disyerto.

% Paggamit: Ang pagtuklas ng bilang ng mga pasahero gamit ang isang pindutan ng itulak, at% ang pagtuklas ng init gamit ang isang sensor ng temperatura at i-grap ito at ipapadala ang parehong% mga numero ng pasahero at ang graph ng temperatura sa istasyon ng tren

configurePin (a, 'D2', 'pullup'); % sa mga hinaharap na paglabas ay gumagamit ng configurePin

oras = 200;

e = 0;

x = 0

habang oras> 0

button_status = readDigitalPin (a, 'D2'); % ay katumbas ng zero kapag ang pindutan ay hunhon, kung hindi man ay katumbas ng 1

boltahe = readVoltage (a, 'A0'); Ang% pin ay nakasalalay sa kung saan natin ito inilalagay

tempCelcius = (boltahe * 100) -50; % na ibinigay sa manual ng sensor

tempF (oras) = (tempCelcius * 1.8) +32% kilalang formula ng conversion

max = 120; % degree F

isulatDigitalPin (a, 'D11', 1);

rem = mod (e, 2);

kung tempF (oras)> = max

isulatDigitalPin (a, 'D11', 0);

isulatDigitalPin (a, 'D9', 1);

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

i-pause (.5)

isulatDigitalPin (a, 'D6', 1)

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

i-pause (.5)

isulatDigitalPin (a, 'D9', 1);

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

i-pause (.5)

isulatDigitalPin (a, 'D6', 1)

playTone (a, 'D6', 1000,.5)% gumaganap "siren"

z = 'Overheat.m4a'; % Inilalagay nito ang file ng tunog sa isang variable

[data, freq] = audioread (z); % Naglo-load ng data mula sa file ng tunog

o = audioplayer (data, freq); % Lumilikha ng isang bagay upang makontrol ang pag-play ng audio file

o.play ()% Nagpe-play ng audio file

o.playblocking ()% Nagpe-play ang file at hinihintay itong matapos

magtapos

kung button_status == 0 && rem == 0

e = e + 1

msgbox ('Maligayang Aboard!');

kung hindi man button_status == 0 && rem == 1

e = e + 1

msgbox ('Bienvenido a bordo!');

magtapos

kung e == 5

isulatDigitalPin (a, 'D11', 0);

kung x == 0

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

s = 'Babala_EF.m4a'; % Inilalagay nito ang file ng tunog sa isang variable

[data, freq] = (mga) audioread; % Naglo-load ng data mula sa file ng tunog

o = audioplayer (data, freq); % Lumilikha ng isang bagay upang makontrol ang pag-play ng audio file

% o.play ()% Nagpe-play ng audio file

o.playblocking ()% Nagpe-play ang file at hinihintay itong matapos

msgbox ('Max Capacity')

x = x + 1

magtapos

kung hindi man>> 6

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

magtapos

oras = oras - 1;

% pause (0.1);

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

% oras = 0

% pagtatapos

magtapos

ee = num2str (e)

t = [1: 200];

tempF2 = fliplr (tempF);

balangkas (t, tempF2);

pamagat ('Oras kumpara sa Temperatura')

ylabel ('Temperatura (F)')

xlabel ('Mga Oras')

saveas (gcf, 'tempplot.jpg')

mail = '[email protected]'

password = 'Srsora123 #'

host = 'smtp.gmail.com'

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

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

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

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

props = java.lang. System.getProperties;

props.setProperty ('mail.smtp.auth', 'totoo');

props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory');

props.setProperty ('mail.smtp.socketFactory.port', '465');

sendmail (mail, 'Hello Train Station! Marami itong mga pasahero sa tren', ee, 'tempplot.jpg')

Hakbang 5: Mga Resulta

Inirerekumendang: