Satura rādītājs:

Tuksneša dzelzceļa temperatūras detektors un pasažieru skaitītājs: 5 soļi
Tuksneša dzelzceļa temperatūras detektors un pasažieru skaitītājs: 5 soļi

Video: Tuksneša dzelzceļa temperatūras detektors un pasažieru skaitītājs: 5 soļi

Video: Tuksneša dzelzceļa temperatūras detektors un pasažieru skaitītājs: 5 soļi
Video: Амбициозный план Египта по внедрению высокоскоростной железной дороги 2024, Novembris
Anonim
Tuksneša dzelzceļa temperatūras detektors un pasažieru skaitītājs
Tuksneša dzelzceļa temperatūras detektors un pasažieru skaitītājs

Mērķis:

Temperatūra: Šī pamācība iemācīs jums izveidot un programmēt Arduino RedBoard (izmantojot MATLAB), lai noteiktu dzelzceļa temperatūru. Kad tiek sasniegta pasažieriem nedroša temperatūra, atskan brīdinājuma ziņojums, atskan skaņas signāli un iedegas brīdinājuma zīme.

Pasažieru skaitītājs: šī daļa iemācīs jums izmantot pogu, lai saskaitītu pasažierus, un brīdina, kad ir sasniegta maksimālā ietilpība.

Iespējas:

  • Izmanto pogu, lai saskaitītu vilcienā ienākošos pasažierus
  • Izmanto TMP36 (temperatūras sensoru), lai noteiktu dzelzceļa temperatūru
  • Izmanto sarkanu LED gaismu, lai brīdinātu dzelzceļa staciju
  • Trauksmes signālu atskaņošanai izmanto skaņas signālus
  • Nosūta brīdinājuma e -pastu ar temperatūras un laika grafiku
  • Uznirstošie brīdinājuma ziņojumi vietnē MATLAB

1. darbība: materiāli un izejmateriāli

Materiāli un piederumi
Materiāli un piederumi
  • 1 klēpjdators
  • MATLAB 2017
  • Lejupielādējiet Arduino rīklodziņu
  • Sparkfun RedBoard
  • 1 barošanas kabelis
  • Breadbord
  • 14 vadi
  • 1 Piezo skaņas signāls
  • 1 Nospiediet pogu
  • 2 10k omu rezistori
  • 1 TMP36 sensors
  • Sarkana LED gaisma
  • 3D drukāta zīme (pēc izvēles)

2. darbība. Plāksnes iestatīšana

Plāksnes iestatīšana
Plāksnes iestatīšana

Izpildiet iepriekš norādīto iestatīšanu

3. darbība: koda rakstīšana

Kamēr cilpa: lai nodrošinātu, ka kods turpina pārbaudīt temperatūru un uztver pogas statusu (nospiests vai nenospiests), mēs ievietojam kodu kamēr cilpā uz noteiktu laiku.

Izmantojot TMP36: mēs nosakām temperatūru, nolasot spriegumu un pārvēršot to pēc Fārenheita grādiem, izmantojot konversijas koeficientus. Pēc tam mēs izmantojam paziņojumu if, lai atskaņotu signālu un skaņu/nosūtītu brīdinājumus, ja temperatūra ir lielāka vai vienāda ar iestatīto maksimālo temperatūru.

Izmantojot pogu: Izmantojot paziņojumu if, mēs varam pārbaudīt, vai poga tika nospiesta, izmantojot readDigitalPin. Šī komanda atgriezīs Būla vērtību (1 vai 0). Ja atbilde ir 0, tad tika nospiesta poga, un pasažieru skaitītājs palielinās un tiek parādīts sveiciena ziņojums. Pēc tam, kad ir sasniegta maksimālā ietilpība, atskan brīdinājuma ziņojums.

4. darbība: kopējiet kodu

%Ievadi: Nospiežot pogu, temperatūras sensors

%Rezultāti: gaismas, skaņas signāli, audio brīdinājumi, e -pasti, grafiki

Mērķis: Šis produkts ir izstrādāts, lai palīdzētu nodrošināt drošību un komfortu %pasažieru, kuri ceļo ar vilcienu pa tuksnesi.

%Lietošana: Pasažieru skaita noteikšana, izmantojot spiedpogu, un %siltuma noteikšana, izmantojot temperatūras sensoru un tā grafiku, un nosūta dzelzceļa stacijai gan %pasažieru skaitu, gan temperatūras grafiku

configurePin (a, 'D2', 'pullup'); %turpmākajos laidienos izmanto configurePin

laiks = 200;

e = 0;

x = 0

kamēr laiks> 0

button_status = readDigitalPin (a, 'D2'); % ir vienāds ar nulli, nospiežot pogu, pretējā gadījumā vienāds ar 1

spriegums = lasītspriegums (a, 'A0');%tapa ir atkarīga no tā, kur mēs to ievietojam

tempCelcius = (spriegums*100) -50; %norādīts sensoru rokasgrāmatā

tempF (laiks) = (tempCelcius*1.8) +32 %zināma konversijas formula

maks. = 120; %grādi F.

writeDigitalPin (a, 'D11', 1);

rem = mod (e, 2);

ja tempF (laiks)> = maks

writeDigitalPin (a, 'D11', 0);

writeDigitalPin (a, 'D9', 1);

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

pauze (.5)

writeDigitalPin (a, 'D6', 1)

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

pauze (.5)

writeDigitalPin (a, 'D9', 1);

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

pauze (.5)

writeDigitalPin (a, 'D6', 1)

playTone (a, 'D6', 1000,.5) %atskaņo sirēnu

z = 'Pārkarst.m4a'; %Tas skaņas failu ievieto mainīgā

[dati, biežums] = audiolasījums (z); %Ielādē datus no skaņas faila

o = audio atskaņotājs (dati, biežums); %Izveido objektu, lai kontrolētu audio faila atskaņošanu

o.play () %Atskaņo audio failu

o.playblocking () %Atskaņo failu un gaida tā pabeigšanu

beigas

ja pogas_statuss == 0 && rem == 0

e = e+1

msgbox ('Laipni lūdzam!');

elseif button_status == 0 && rem == 1

e = e+1

msgbox ('Bienvenido a bordo!');

beigas

ja e == 5

writeDigitalPin (a, 'D11', 0);

ja x == 0

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

s = 'Brīdinājums_EF.m4a'; %Tas skaņas failu ievieto mainīgā

[dati, biežums] = audiolasījums (-i); %Ielādē datus no skaņas faila

o = audio atskaņotājs (dati, biežums); %Izveido objektu, lai kontrolētu audio faila atskaņošanu

% o.play () % Atskaņo audio failu

o.playblocking () %Atskaņo failu un gaida tā pabeigšanu

msgbox ('Maksimālā ietilpība')

x = x+1

beigas

citādi e> = 6

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

beigas

laiks = laiks - 1;

% pauze (0,1);

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

% laiks = 0

% beigas

beigas

ee = num2str (e)

t = [1: 200];

tempF2 = fliplr (tempF);

diagramma (t, tempF2);

nosaukums ("Laiks pret temperatūru")

ylabel ('Temperatūra (F)')

xlabel ('Laiks (-i)')

saveas (gcf, 'tempplot.jpg')

pasts = '[email protected]'

parole = 'Srsora123#'

saimnieks = 'smtp.gmail.com'

setpref ('Internets', 'SMTP_Server', resursdators);

setpref ('Internets', 'E -pasts', pasts);

setpref ('Internets', 'SMTP_Lietotājvārds', pasts);

setpref ('Internets', 'SMTP_Password', parole);

rekvizīti = 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 (pasts, 'Sveiki, dzelzceļa stacija! Vilcienā ir tik daudz pasažieru', ee, 'tempplot.jpg')

5. darbība. Rezultāti

Ieteicams: