Агуулгын хүснэгт:

Цөлийн төмөр замын температур мэдрэгч ба зорчигчийн тоолуур: 5 алхам
Цөлийн төмөр замын температур мэдрэгч ба зорчигчийн тоолуур: 5 алхам
Anonim
Цөлийн төмөр замын температур мэдрэгч ба зорчигчийн тоолуур
Цөлийн төмөр замын температур мэдрэгч ба зорчигчийн тоолуур

Зорилго:

Температур: Энэхүү заавар нь төмөр замын температурыг илрүүлэхийн тулд Arduino RedBoard (MATLAB ашиглан) хэрхэн тохируулах, програмчлах талаар танд заах болно. Зорчигчдын хувьд аюултай температурт хүрэхэд анхааруулах дохио дуугарч, дуугаралт дуугарч, анхааруулах тэмдэг асдаг.

Зорчигчийн тоолуур: Энэ хэсэг нь зорчигчдыг тоолохын тулд товчлуурыг хэрхэн ашиглах, хамгийн их багтаамжид хүрсэн үед анхааруулга өгөхийг заах болно.

Онцлог:

  • Галт тэрэг рүү орж буй зорчигчдыг тоолохын тулд товчлуурыг ашиглана
  • Төмөр замын температурыг илрүүлэхийн тулд TMP36 (температур мэдрэгч) ашигладаг
  • Галт тэрэгний буудлыг анхааруулахын тулд Улаан LED гэрлийг ашигладаг
  • Сэрүүлэг дуугаргахын тулд дуут дохио ашигладаг
  • Температур ба цагийг харуулсан анхааруулах имэйл илгээдэг
  • MATLAB дээр гарч ирэх анхааруулах зурвасууд

Алхам 1: Материал ба хангамж

Материал ба хангамж
Материал ба хангамж
  • 1 зөөврийн компьютер
  • MATLAB 2017
  • Arduino Toolbox татаж авах
  • Sparkfun RedBoard
  • 1 Цахилгаан кабель
  • Breadbord
  • 14 утас
  • 1 Piezo Buzzer
  • 1 товчлуур
  • 2 10 к ом эсэргүүцэл
  • 1 TMP36 мэдрэгч
  • Улаан LED гэрэл
  • 3D хэвлэсэн тэмдэг (заавал биш)

Алхам 2: ТУЗ -ийн тохиргоо

Удирдах зөвлөлийн тохиргоо
Удирдах зөвлөлийн тохиргоо

Дээрх тохиргоог дагана уу

Алхам 3: Код бичих

Loop байхад: Код нь температурыг үргэлжлүүлэн шалгаж, товчлуурын төлөвийг (дарагдсан эсвэл дарагдаагүй) мэдрэхийн тулд кодыг тогтоосон хугацаанд while циклд байрлуулна.

TMP36 ашиглах: Бид хөрвүүлэлтийн хүчин зүйлийг ашиглан хүчдэлийг уншаад Фаренгейтийн градус болгон хөрвүүлэх замаар температурыг тодорхойлдог. Дараа нь, хэрэв if нь температурыг тогтоосон хамгийн их температуртай тэнцүү эсвэл тэнцүү байвал дуу, дуу тоглуулах/дохио өгөх зорилгоор if илэрхийлэлийг ашигладаг.

Товчлуурыг ашиглах: if мэдэгдлийн тусламжтайгаар бид readDigitalPin ашиглан товчлуур дарагдсан эсэхийг шалгаж болно. Энэ тушаал нь логик (1 эсвэл 0) буцаана. Хэрэв хариулт 0 байвал товчлуурыг дарахад зорчигчдын тоолуур нэмэгдэж, тавтай морилно уу гэсэн мессеж гарч ирнэ. Дараа нь хамгийн их багтаамжид хүрэх үед анхааруулах мессеж дуугардаг.

Алхам 4: Кодыг хуулна уу

%Оролт: Товчлуур, температур мэдрэгч

%Гаралт: гэрэл, дуут дохио, аудио дохио, имэйл, график

%Зорилго: Энэхүү бүтээгдэхүүн нь галт тэргээр цөлөөр аялж буй зорчигчдын аюулгүй байдал, тав тухыг хангахад зориулагдсан болно.

%Хэрэглээ: Зорчигчдын тоог товчлуур ашиглан, мөн температур мэдрэгч ашиглан дулааныг илрүүлж, графикаар оруулж, зорчигчдын %болон температурын графикийг хоёуланг нь галт тэрэгний буудал руу илгээнэ.

configurePin (a, 'D2', 'pullup'); %ирээдүйн хувилбаруудад configurePin ашиглана

цаг = 200;

e = 0;

x = 0

цаг> 0

button_status = readDigitalPin (a, 'D2'); Товчлуур дарахад % нь тэгтэй тэнцүү, эс бөгөөс 1 -тэй тэнцэнэ

хүчдэл = readVoltage (a, 'A0');%пин нь бидний хаана байрлуулахаас хамаарна

tempCelcius = (хүчдэл*100) -50; %-ийг мэдрэгчийн гарын авлагад өгсөн болно

tempF (time) = (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) %"сирена" тоглодог

z = 'Хэт халалт.m4a'; %Энэ нь дууны файлыг хувьсагч болгоно

[өгөгдөл, давтамж] = аудио унших (z); %Дууны файлаас өгөгдлийг ачаална

o = аудио тоглуулагч (өгөгдөл, давтамж); %Аудио файлыг тоглуулахад хяналт тавих объект үүсгэнэ

o.play () %Аудио файлыг тоглуулдаг

o.playblocking () %Файлыг тоглуулж дуусгахыг хүлээнэ

Төгсгөл

хэрэв button_status == 0 && rem == 0

e = e+1

msgbox ('Тавтай морилно уу!');

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 = 'Warning_EF.m4a'; %Энэ нь дууны файлыг хувьсагч болгоно

[өгөгдөл, давтамж] = аудио унших (ууд); %Дууны файлаас өгөгдлийг ачаална

o = аудио тоглуулагч (өгөгдөл, давтамж); %Аудио файлын тоглуулалтыг хянах объектыг бий болгодог

% o.play () % Аудио файл тоглуулдаг

o.playblocking () %Файлыг тоглуулж дуусгахыг хүлээнэ

msgbox ('Хамгийн их багтаамж')

x = x+1

Төгсгөл

өөр бол e> = 6

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

Төгсгөл

цаг = цаг - 1;

% түр зогсоох (0.1);

% бол e == 5 && max (tempF)> = 120

% цаг = 0

% Төгсгөл

Төгсгөл

ee = num2str (e)

t = [1: 200];

tempF2 = fliplr (tempF);

талбай (t, tempF2);

гарчиг ('Цаг ба Температур')

ylabel ('Температур (F)')

xlabel ('Цаг (ууд)')

хадгалах (gcf, 'tempplot.jpg')

шуудан = '[email protected]'

нууц үг = 'Srsora123#'

хост = 'smtp.gmail.com'

setpref ('Интернет', 'SMTP_Server', хост);

setpref ('Интернет', 'E_mail', имэйл);

setpref ('Интернет', 'SMTP_Username', имэйл);

setpref ('Интернет', 'SMTP_Password', нууц үг);

тулгуур = java.lang. System.getProperties;

props.setProperty ('mail.smtp.auth', 'үнэн');

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

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

sendmail (мэйл, 'Сайн уу галт тэрэгний буудал! Галт тэргэнд ийм олон зорчигч байна', ee, 'tempplot.jpg')

Алхам 5: Үр дүн

Зөвлөмж болгож буй: