Përmbajtje:

Detektori i Temperaturës i Hekurudhave të Shkretëtirës dhe Numëruesi i Pasagjerëve: 5 Hapa
Detektori i Temperaturës i Hekurudhave të Shkretëtirës dhe Numëruesi i Pasagjerëve: 5 Hapa

Video: Detektori i Temperaturës i Hekurudhave të Shkretëtirës dhe Numëruesi i Pasagjerëve: 5 Hapa

Video: Detektori i Temperaturës i Hekurudhave të Shkretëtirës dhe Numëruesi i Pasagjerëve: 5 Hapa
Video: Naser Rafuna - Temperatura Humor 2024, Nëntor
Anonim
Zbulues i Temperaturës së Hekurudhave të Shkretëtirës dhe Numërues të Pasagjerëve
Zbulues i Temperaturës së Hekurudhave të Shkretëtirës dhe Numërues të Pasagjerëve

Qëllimi:

Temperatura: Ky udhëzues do t'ju mësojë se si të krijoni dhe programoni një Arduino RedBoard (duke përdorur MATLAB) për të zbuluar temperaturën e një hekurudhe. Kur arrihet një temperaturë e pasigurt për udhëtarët, tingëllon një mesazh paralajmërues, zhurmat fiken dhe një shenjë paralajmëruese ndizet.

Numëruesi i pasagjerëve: Kjo pjesë do t'ju mësojë se si të përdorni një buton për të numëruar pasagjerët dhe për të dhënë një paralajmërim kur të jetë arritur kapaciteti maksimal.

Karakteristikat:

  • Përdor butonin për të numëruar pasagjerët që hyjnë në tren
  • Përdor TMP36 (sensori i temperaturës) për të zbuluar temperaturën e hekurudhës
  • Përdor një dritë LED të Kuqe për të paralajmëruar stacionin e trenit
  • Përdor zhurmat për të dhënë alarm
  • Dërgon një email paralajmërues me një komplot të temperaturës kundrejt kohës
  • Mesazhe paralajmëruese pop-up në MATLAB

Hapi 1: Materialet dhe Furnizimet

Materialet dhe Furnizimet
Materialet dhe Furnizimet
  • 1 Laptop
  • MATLAB 2017
  • Shkarkoni Arduino Toolbox
  • Sparkfun RedBoard
  • 1 Kabllo energjie
  • Breadbord
  • 14 tela
  • 1 Piezo Buzzer
  • 1 buton shtyse
  • 2 rezistente 10khm
  • 1 sensor TMP36
  • Dritë LED e kuqe
  • Shenjë e printuar 3D (opsionale)

Hapi 2: Konfigurimi i bordit

Konfigurimi i bordit
Konfigurimi i bordit

Ndiqni konfigurimin e mësipërm

Hapi 3: Shkrimi i Kodit

Ndërsa Loop: Për të siguruar që kodi të vazhdojë të testojë temperaturën dhe të ndiejë statusin e butonit (të shtypur ose të pa shtypur), ne e vendosim kodin në lakin while për një periudhë të caktuar kohore.

Përdorimi i TMP36: Ne përcaktojmë temperaturën duke lexuar tensionin dhe duke e konvertuar atë në gradë Fahrenheit, duke përdorur faktorët e konvertimit. Pastaj, ne përdorim një deklaratë if për të luajtur një ton dhe për të shëndoshë/dërguar njoftime nëse temperatura është më e madhe ose e barabartë me temperaturën maksimale të vendosur

Përdorimi i butonit: Me një deklaratë if, ne mund të provojmë nëse butoni është shtypur duke përdorur readDigitalPin. Kjo komandë do të kthejë një Boolean (1 ose 0). Nëse përgjigja është 0, atëherë butoni është shtypur dhe sporteli i pasagjerëve rritet dhe shfaq një mesazh mirëseardhjeje. Pastaj, kur të arrihet kapaciteti maksimal, dëgjohet një mesazh paralajmërues.

Hapi 4: Kopjoni Kodin

%Hyrjet: Shtypja e butonit, sensori i temperaturës

%Rezultatet: dritat, gumëzhitësit, alarmi audio, emailet, grafikët

%Qëllimi: Ky produkt është krijuar për të ndihmuar në sigurimin dhe komoditetin e %pasagjerëve që udhëtojnë me tren nëpër shkretëtirë.

%Përdorimi: Zbulimi i numrit të pasagjerëve duke përdorur një buton, dhe %zbulimi i nxehtësisë duke përdorur një sensor të temperaturës dhe grafikoni atë dhe dërgon si %numrat e udhëtarëve ashtu edhe grafikun e temperaturës në stacionin e trenit

configurePin (a, 'D2', 'pullup'); %në lëshimet e ardhshme përdorin configurePin

koha = 200;

e = 0;

x = 0

ndërsa koha> 0

butoni_status = lexoDigitalPin (a, 'D2'); % është e barabartë me zero kur shtypet butoni, përndryshe është e barabartë me 1

tension = lexoTension (a, 'A0');%pin varet nga vendi ku e vendosim

tempCelcius = (tension*100) -50; %e dhënë në manualin e sensorit

tempF (koha) = (tempCelcius*1.8) +32 %formula e njohur e konvertimit

max = 120; %gradë F

writeDigitalPin (a, 'D11', 1);

rem = mod (e, 2);

nëse tempF (koha)> = max

writeDigitalPin (a, 'D11', 0);

writeDigitalPin (a, 'D9', 1);

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

pauzë (.5)

shkruajDigitalPin (a, 'D6', 1)

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

pauzë (.5)

writeDigitalPin (a, 'D9', 1);

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

pauzë (.5)

shkruajDigitalPin (a, 'D6', 1)

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

z = 'Mbinxehje.m4a'; %Kjo e vendos skedarin e zërit në një ndryshore

[të dhëna, frekuenca] = audioread (z); %Ngarkon të dhënat nga skedari i zërit

o = audioplayer (të dhëna, frekuenca); %Krijon një objekt për të kontrolluar luajtjen e skedarit audio

o.play () %Luan skedarin audio

o.playblocking () %Luan skedarin dhe pret që të përfundojë

fund

nëse butoni_status == 0 && rem == 0

e = e+1

msgbox ('Mirësevini në bord!');

elseif button_status == 0 && rem == 1

e = e+1

msgbox ('Bienvenido a bordo!');

fund

nëse e == 5

writeDigitalPin (a, 'D11', 0);

nëse x == 0

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

s = 'Paralajmërim_EF.m4a'; %Kjo e vendos skedarin e zërit në një ndryshore

[të dhëna, frekuenca] = audioread (a); %Ngarkon të dhënat nga skedari i zërit

o = audioplayer (të dhëna, frekuenca); %Krijon një objekt për të kontrolluar luajtjen e skedarit audio

% o.play () % Luan skedarin audio

o.playblocking () %Luan skedarin dhe pret që të përfundojë

msgbox ('Kapaciteti maksimal')

x = x+1

fund

elseif e> = 6

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

fund

koha = koha - 1;

% pauzë (0.1);

% nëse e == 5 && max (tempF)> = 120

% kohë = 0

% fund

fund

ee = num2str (e)

t = [1: 200];

tempF2 = fliplr (tempF);

komplot (t, tempF2);

titulli ('Koha kundrejt temperaturës')

ylabel ('Temperatura (F)')

xlabel ("Koha (et)")

saveas (gcf, 'tempplot.jpg')

mail = '[email protected]'

fjalëkalim = 'Srsora123#'

host = 'smtp.gmail.com'

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

setpref ('Internet', 'E_mail', postë);

setpref ('Internet', 'SMTP_Username', postë);

setpref ('Internet', 'SMTP_Password', fjalëkalim);

props = java.lang. System.getProposies;

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

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

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

sendmail (postë, 'Përshëndetje Stacioni i Trenit! Ka kaq shumë pasagjerë në tren', ee, 'tempplot.jpg')

Hapi 5: Rezultatet

Recommended: