Բովանդակություն:

Անապատային երկաթուղու ջերմաստիճանի հայտնաբերման և ուղևորների հաշվիչ ՝ 5 քայլ
Անապատային երկաթուղու ջերմաստիճանի հայտնաբերման և ուղևորների հաշվիչ ՝ 5 քայլ

Video: Անապատային երկաթուղու ջերմաստիճանի հայտնաբերման և ուղևորների հաշվիչ ՝ 5 քայլ

Video: Անապատային երկաթուղու ջերմաստիճանի հայտնաբերման և ուղևորների հաշվիչ ՝ 5 քայլ
Video: «Հարավկովկասյան երկաթուղի»-ն 5 ու կես միլիոն դոլարի ներդրում է խոստանում 2024, Նոյեմբեր
Anonim
Անապատի երկաթուղու ջերմաստիճանի հայտնաբերման և ուղևորների հաշվիչ
Անապատի երկաթուղու ջերմաստիճանի հայտնաբերման և ուղևորների հաշվիչ

Նպատակը:

Temերմաստիճանը. Այս հրահանգը ձեզ կսովորեցնի, թե ինչպես ստեղծել և ծրագրավորել Arduino RedBoard (օգտագործելով MATLAB) ՝ երկաթգծի ջերմաստիճանը հայտնաբերելու համար: Երբ ուղևորների համար անապահով ջերմաստիճանը հասնում է, նախազգուշական հաղորդագրություն է հնչում, բզզոցներն անջատվում են, և նախազգուշական նշանը լույս է տալիս:

Ուղևորների հաշվիչ. Այս հատվածը կսովորեցնի ձեզ, թե ինչպես օգտագործել կոճակը `ուղևորներին հաշվելու և նախազգուշացում հնչեցնելու համար, երբ առավելագույն տարողությունը հասել է:

Հատկություններ:

  • Օգտագործում է կոճակը ՝ գնացք մտնող ուղևորներին հաշվելու համար
  • Երկաթուղու ջերմաստիճանը հայտնաբերելու համար օգտագործում է TMP36 (ջերմաստիճանի տվիչ)
  • Օգտագործում է կարմիր LED լույս ՝ երկաթուղային կայարանը զգուշացնելու համար
  • Ահազանգ հնչեցնելու համար օգտագործում է ազդանշաններ
  • Ուղարկում է ահազանգ նամակ ջերմաստիճանի և ժամանակի գծապատկերով
  • Թռուցիկ նախազգուշացնող հաղորդագրություններ MATLAB- ում

Քայլ 1: Նյութեր և պարագաներ

Նյութեր և պարագաներ
Նյութեր և պարագաներ
  • 1 նոութբուք
  • MATLAB 2017
  • Ներբեռնեք Arduino Toolbox- ը
  • Sparkfun RedBoard
  • 1 հոսանքի մալուխ
  • Breadbord
  • 14 լար
  • 1 Piezo Buzzer
  • 1 սեղմիչ կոճակ
  • 2 10k ohm դիմադրություն
  • 1 TMP36 ցուցիչ
  • Կարմիր LED լույս
  • 3D տպագիր նշան (ըստ ցանկության)

Քայլ 2: Տախտակի կարգավորում

Տախտակի կարգավորում
Տախտակի կարգավորում

Հետևեք վերը նշված կարգավորմանը

Քայլ 3: Գրեք օրենսգիրքը

Մինչ օղակ. Որպեսզի ապահովվի, որ ծածկագիրը շարունակի ստուգել ջերմաստիճանը և զգալ կոճակի կարգավիճակը (սեղմված կամ չճզմված), մենք ծածկագիրը տեղադրում ենք while հանգույցում `որոշակի ժամանակահատվածի համար:

TMP36- ի օգտագործումը. Մենք որոշում ենք ջերմաստիճանը ՝ կարդալով լարումը և այն փոխարկելով Ֆարենհայտի աստիճանի ՝ օգտագործելով փոխակերպման գործոնները: Հետո, մենք օգտագործում ենք if հայտարարություն ՝ հնչերանգ և ձայն հնչեցնելու/ազդանշաններ ուղարկելու համար, եթե ջերմաստիճանը ավելի մեծ է կամ հավասար է սահմանված առավելագույն ջերմաստիճանին

Օգտագործելով կոճակը. If հայտարարությամբ մենք կարող ենք ստուգել, արդյոք կոճակը սեղմված է readDigitalPin- ի միջոցով: Այս հրամանը կվերադարձնի բուլյան (1 կամ 0): Եթե պատասխանը 0 է, ապա կոճակը սեղմված է, և ուղևորների հաշվիչը մեծանում է և ցուցադրում ողջույնի ուղերձ: Հետո, երբ առավելագույն հզորությունը հասնում է, նախազգուշական հաղորդագրություն է հնչում:

Քայլ 4: Պատճենեք ծածկագիրը

%Մուտք. Կոճակը սեղմելը, ջերմաստիճանի տվիչը

%Արդյունքներ. Լույսեր, ազդանշաններ, ձայնային ազդանշան, էլ. Նամակներ, գրաֆիկներ

Նպատակը. Այս ապրանքը նախատեսված է օգնելու ապահովել գնացքով անապատով ճանապարհորդող %ուղևորների անվտանգությունն ու հարմարավետությունը:

%Օգտագործում. Ուղևորների թվի հայտնաբերում `սեղմման կոճակի միջոցով, և %ջերմության հայտնաբերում` օգտագործելով ջերմաստիճանի տվիչ և գծագրեք այն և ուղարկում և՛ ուղևորների համարները, և՛ ջերմաստիճանի գրաֆիկը երկաթուղային կայարան

configurePin (a, 'D2', 'pullup'); %ապագա թողարկումներում օգտագործում են configurePin

ժամանակ = 200;

e = 0;

x = 0

ժամանակ> 0

button_status = readDigitalPin (a, 'D2'); % -ը հավասար է զրոյի, երբ կոճակը սեղմվում է, հակառակ դեպքում `հավասար է 1 -ի

լարման = ընթերցում Լարման (a, 'A0');%քորոցը կախված է այն բանից, թե որտեղ ենք այն տեղադրում

tempCelcius = (լարումը*100) -50; %տրված է սենսորների ձեռնարկում

tempF (ժամանակ) = (tempCelcius*1.8) +32 %հայտնի փոխակերպման բանաձև

առավելագույն = 120; %աստիճան F

writeDigitalPin (a, 'D11', 1);

rem = mod (e, 2);

եթե tempF (ժամանակ)> = առավելագույն

writeDigitalPin (a, 'D11', 0);

writeDigitalPin (a, 'D9', 1);

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

դադար (.5)

writeDigitalPin (a, 'D6', 1)

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

դադար (.5)

writeDigitalPin (a, 'D9', 1);

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

դադար (.5)

writeDigitalPin (a, 'D6', 1)

playTone (a, 'D6', 1000,.5) %նվագում է «siren»

z = 'Գերտաքացում. m4a'; Սա ձայնային ֆայլը դնում է փոփոխականի մեջ

[տվյալներ, հաճախականություն] = աուդիոառաքում (z); %Բեռնում է տվյալները ձայնային ֆայլից

o = աուդիո նվագարկիչ (տվյալներ, հաճախականություն); %Ստեղծում է օբյեկտ `վերահսկելու աուդիո ֆայլի նվագարկումը

o.play () %Խաղում է աուդիո ֆայլ

o.playblocking () %Խաղում է ֆայլը և սպասում դրա ավարտին

վերջ

եթե button_status == 0 && rem == 0

e = e+1

msgbox ('Welcome Aboard!');

elseif button_status == 0 && rem == 1

e = e+1

msgbox ('Bienvenido a bordo!');

վերջ

եթե e == 5

writeDigitalPin (a, 'D11', 0);

եթե x == 0

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

s = 'arnգուշացում_EF.m4a'; Սա ձայնային ֆայլը դնում է փոփոխականի մեջ

[տվյալներ, հաճախականություն] = աուդիոառաքում (ներ); %Բեռնում է տվյալները ձայնային ֆայլից

o = աուդիո նվագարկիչ (տվյալներ, հաճախականություն); %Ստեղծում է օբյեկտ `վերահսկելու աուդիո ֆայլի նվագարկումը

% o.play () % Խաղում է աուդիո ֆայլ

o.playblocking () %Խաղում է ֆայլը և սպասում դրա ավարտին

msgbox ('Առավելագույն հզորություն')

x = x+1

վերջ

elseif e> = 6

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

վերջ

ժամանակ = ժամանակ - 1;

% դադար (0.1);

% եթե e == 5 && max (tempF)> = 120

% ժամանակ = 0

% վերջ

վերջ

ee = num2str (ե)

t = [1: 200];

tempF2 = fliplr (tempF);

հողամաս (t, tempF2);

վերնագիր («vամանակն ընդդեմ ջերմաստիճանի»)

ylabel ('peratերմաստիճանը (F)')

xlabel ('Timeամանակ (ներ)')

saveas (gcf, 'tempplot.jpg')

փոստ = '[email protected]'

գաղտնաբառ = 'Srsora123#'

հյուրընկալող = 'smtp.gmail.com'

setpref («Ինտերնետ», «SMTP_Server», հաղորդավար);

setpref («Ինտերնետ», «E_mail», փոստ);

setpref («Ինտերնետ», «SMTP_Username», փոստ);

setpref ('ինտերնետ', 'SMTP_Password', գաղտնաբառ);

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 (փոստ ՝ «Բարև երկաթուղային կայարան! Գնացքում այսքան ուղևոր կա», ee, «tempplot.jpg»)

Քայլ 5: Արդյունքներ

Խորհուրդ ենք տալիս: