Mündəricat:

Çöl Dəmiryolu İstilik Dedektoru və Sərnişin Sayğacı: 5 addım
Çöl Dəmiryolu İstilik Dedektoru və Sərnişin Sayğacı: 5 addım

Video: Çöl Dəmiryolu İstilik Dedektoru və Sərnişin Sayğacı: 5 addım

Video: Çöl Dəmiryolu İstilik Dedektoru və Sərnişin Sayğacı: 5 addım
Video: Электрический или водяной полотенцесушитель? Что выбрать? Установка. #25 2024, Noyabr
Anonim
Çöl Dəmiryolu İstilik Dedektoru və Sərnişin Sayğacı
Çöl Dəmiryolu İstilik Dedektoru və Sərnişin Sayğacı

Məqsəd:

Temperatur: Bu təlimat, bir dəmir yolunun istiliyini aşkar etmək üçün bir Arduino RedBoard (MATLAB istifadə edərək) qurmağı və proqramlaşdırmağı öyrədəcək. Sərnişinlər üçün təhlükəli bir temperatura çatanda bir xəbərdarlıq mesajı eşidilir, siqnallar sönür və xəbərdarlıq işarəsi yanır.

Sərnişin Sayğacı: Bu hissə, sərnişinləri saymaq və maksimum tutuma çatdıqda xəbərdarlıq etmək üçün bir düymədən istifadə etməyi öyrədəcək.

Xüsusiyyətləri:

  • Qatara girən sərnişinləri saymaq üçün Düyməni istifadə edir
  • Dəmir yolunun istiliyini təyin etmək üçün TMP36 (temperatur sensoru) istifadə edir
  • Dəmiryol stansiyasını xəbərdar etmək üçün Qırmızı LED işığı istifadə edir
  • Zəngli siqnallardan istifadə etmək üçün
  • İstilik və zamana dair bir xəbərdarlıq e -poçtu göndərir
  • MATLAB-da pop-up xəbərdarlıq mesajları

Addım 1: Materiallar və Təchizatlar

Materiallar və Təchizatlar
Materiallar və Təchizatlar
  • 1 noutbuk
  • MATLAB 2017
  • Arduino Toolbox yükləyin
  • Sparkfun RedBoard
  • 1 Güc Kabeli
  • Breadbord
  • 14 tel
  • 1 Piezo Buzzer
  • 1 Düymə
  • 2 10k ohm müqavimət
  • 1 TMP36 sensoru
  • Qırmızı LED işıq
  • 3D çap işarəsi (isteğe bağlı)

Addım 2: Kartın Qurulması

Lövhə Quraşdırması
Lövhə Quraşdırması

Yuxarıdakı quruluşu izləyin

Addım 3: Kod yazmaq

Döngə edərkən: Kodun temperaturu yoxlamağa davam etməsini və düymənin vəziyyətini (sıxılmış və ya sıxılmamış) hiss etməsini təmin etmək üçün kodu müəyyən bir müddət ərzində while döngəsinə yerləşdiririk.

TMP36 istifadə edərək: Çevrilmə faktorlarından istifadə edərək temperaturu gərginliyi oxuyub Fahrenheit dərəcələrinə çevirərək təyin edirik. Daha sonra, bir temp və təyin olunan maksimum temperaturdan yüksək və ya bərabər olduqda bir ton və səs çalmaq/xəbərdarlıq göndərmək üçün if ifadəsindən istifadə edirik.

Düymənin istifadəsi: if ifadəsi ilə, düymənin readDigitalPin istifadə edərək basıldığını yoxlaya bilərik. Bu əmr bir Boolean (1 və ya 0) qaytaracaq. Cavab 0 olarsa, düyməyə basıldı və sərnişin sayğacı artır və xoş bir mesaj göstərilir. Sonra maksimum tutuma çatanda bir xəbərdarlıq mesajı səslənir.

Addım 4: Kodu kopyalayın

Girişlər: Düyməni basaraq, temperatur sensoru

Çıxışlar: işıqlar, səs siqnalları, səs siqnalı, e -poçtlar, qrafiklər

Məqsəd: Bu məhsul təhlükəsizliyi və rahatlığını təmin etmək üçün nəzərdə tutulmuşdur ki, səhrada qatarla səyahət edən sərnişinlər.

İstifadə: Bir düyməni istifadə edərək sərnişinlərin sayını və bir temperatur sensoru istifadə edərək istiliyi aşkar edərək qrafikə salın və həm %sərnişin nömrələrini, həm də temperatur qrafikini qatar stansiyasına göndərir.

configurePin (a, 'D2', 'çəkmə'); Gələcək buraxılışlarda %configurePin istifadə edir

vaxt = 200;

e = 0;

x = 0

vaxt> 0

button_status = readDigitalPin (a, 'D2'); Düymə basıldıqda % sıfıra bərabərdir, əks halda 1 -ə bərabərdir

gərginlik = readVoltage (a, 'A0');%pin onu yerləşdirdiyimiz yerdən asılıdır

tempCelcius = (gərginlik*100) -50; %sensor təlimatında verilmişdir

tempF (vaxt) = (tempCelcius*1.8) +32 %məlum dönüşüm formulu

maksimum = 120; %dərəcə F

writeDigitalPin (a, 'D11', 1);

rem = mod (e, 2);

əgər tempF (vaxt)> = maks

writeDigitalPin (a, 'D11', 0);

writeDigitalPin (a, 'D9', 1);

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

fasilə (.5)

writeDigitalPin (a, 'D6', 1)

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

fasilə (.5)

writeDigitalPin (a, 'D9', 1);

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

fasilə (.5)

writeDigitalPin (a, 'D6', 1)

playTone (a, 'D6', 1000,.5) %"siren" çalır

z = 'Aşırı ısınma.m4a'; Bu səs faylını bir dəyişənə qoyur

[data, freq] = audio oxu (z); Səs faylından məlumat yükləyir

o = audioplayer (məlumat, tezlik); Səs faylının çalınmasını idarə etmək üçün bir obyekt yaradır

o.play () %Səs faylını oxudur

o.playblocking () %Fayl oxuyur və bitməsini gözləyir

bitmək

əgər button_status == 0 && rem == 0 olarsa

e = e+1

msgbox ('Aboard xoş gəlmisiniz!');

elseif button_status == 0 && rem == 1

e = e+1

msgbox ('Bienvenido a bordo!');

bitmək

əgər e == 5

writeDigitalPin (a, 'D11', 0);

əgər x == 0 olarsa

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

s = 'Warning_EF.m4a'; Bu səs faylını bir dəyişənə qoyur

[data, freq] = audio oxu (lar); Səs faylından məlumat yükləyir

o = audioplayer (məlumat, tezlik); Səs faylının çalınmasını idarə etmək üçün bir obyekt yaradır

% o.play () % Səs faylını oxudur

o.playblocking () %Fayl oxuyur və bitməsini gözləyir

msgbox ('Maksimum Tutum')

x = x+1

bitmək

başqa əgər e> = 6

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

bitmək

vaxt = vaxt - 1;

% fasilə (0.1);

% əgər e == 5 && max (tempF)> = 120

% vaxt = 0

% son

bitmək

ee = sayı2str (e)

t = [1: 200];

tempF2 = fliplr (tempF);

süjet (t, tempF2);

başlıq ('Zaman vs Temperatur')

ylabel ('Temperatur (F)')

xlabel ('Zaman (lar)')

qənaət (gcf, 'tempplot.jpg')

poçt = '[email protected]'

parol = 'Srsora123#'

host = 'smtp.gmail.com'

setpref ('İnternet', 'SMTP_Server', ana);

setpref ('İnternet', 'E_mail', poçt);

setpref ('İnternet', 'SMTP_Username', poçt);

setpref ('İnternet', 'SMTP_Password', parol);

rekvizit = java.lang. System.getProperties;

props.setProperty ('mail.smtp.auth', 'doğru');

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

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

sendmail (poçt, 'Salam Qatar Stansiyası! Qatarda bu qədər sərnişin var', ee, 'tempplot.jpg')

Addım 5: Nəticələr

Tövsiyə: