Isi kandungan:

Pengesan Suhu Kereta Api Gurun & Kaunter Penumpang: 5 Langkah
Pengesan Suhu Kereta Api Gurun & Kaunter Penumpang: 5 Langkah

Video: Pengesan Suhu Kereta Api Gurun & Kaunter Penumpang: 5 Langkah

Video: Pengesan Suhu Kereta Api Gurun & Kaunter Penumpang: 5 Langkah
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, November
Anonim
Pengesan Suhu Kereta Api Gurun & Kaunter Penumpang
Pengesan Suhu Kereta Api Gurun & Kaunter Penumpang

Tujuan:

Suhu: Instruksional ini akan mengajar anda cara mengatur dan memprogram Arduino RedBoard (menggunakan MATLAB) untuk mengesan suhu landasan kereta api. Apabila suhu yang tidak selamat untuk penumpang tercapai, mesej amaran berbunyi, bel berbunyi, dan tanda amaran menyala.

Kaunter Penumpang: Bahagian ini akan mengajar anda cara menggunakan butang untuk menghitung penumpang dan membunyikan amaran apabila kapasiti maksimum telah tercapai.

Ciri-ciri:

  • Butang Menggunakan untuk mengira penumpang yang memasuki kereta api
  • Menggunakan TMP36 (sensor suhu) untuk mengesan suhu landasan kereta api
  • Menggunakan lampu LED Merah untuk memberi amaran kepada stesen kereta api
  • Menggunakan buzzer untuk membunyikan penggera
  • Menghantar e-mel amaran dengan sebilangan suhu vs masa
  • Mesej amaran timbul di MATLAB

Langkah 1: Bahan dan Bekalan

Bahan dan Bekalan
Bahan dan Bekalan
  • 1 Komputer riba
  • MATLAB 2017
  • Muat turun Kotak Alat Arduino
  • Papan Merah Sparkfun
  • 1 Kabel Kuasa
  • Breadbord
  • 14 wayar
  • 1 Buzzer Piezo
  • 1 Butang Tekan
  • 2 perintang 10k ohm
  • 1 sensor TMP36
  • Lampu LED merah
  • Tanda bercetak 3D (pilihan)

Langkah 2: Persediaan Papan

Persediaan Papan
Persediaan Papan

Ikuti persediaan di atas

Langkah 3: Menulis Kod

While Loop: Untuk memastikan kod terus menguji suhu dan merasakan status butang (ditekan atau tidak ditekan), kami meletakkan kod dalam gelung sementara untuk jangka masa yang ditentukan.

Menggunakan TMP36: Kami menentukan suhu dengan membaca voltan dan mengubahnya menjadi darjah Fahrenheit, menggunakan faktor penukaran. Kemudian, kami menggunakan pernyataan if untuk memainkan nada dan suara / menghantar amaran jika suhu lebih besar atau sama dengan suhu maksimum yang ditetapkan

Menggunakan Butang: Dengan pernyataan if, kita dapat menguji apakah butang ditekan menggunakan readDigitalPin. Perintah ini akan mengembalikan Boolean (1 atau 0). Sekiranya respons 0, maka butang ditekan dan kaunter penumpang meningkat dan memaparkan mesej selamat datang. Kemudian, apabila kapasiti maksimum tercapai, mesej amaran dibunyikan.

Langkah 4: Salin Kod

% Input: Menekan butang, sensor suhu

% Keluaran: lampu, buzzer, amaran audio, e-mel, grafik

% Tujuan: Produk ini direka untuk membantu memastikan keselamatan dan keselesaan% penumpang yang bergerak dengan kereta api melalui padang pasir.

% Penggunaan: Mengesan bilangan penumpang menggunakan butang tekan, dan% mengesan kepanasan menggunakan sensor suhu dan menandakannya dan menghantar kedua-dua nombor penumpang dan grafik suhu ke stesen kereta api

configurePin (a, 'D2', 'pullup'); % dalam siaran masa depan menggunakan configurePin

masa = 200;

e = 0;

x = 0

semasa masa> 0

button_status = readDigitalPin (a, 'D2'); % sama dengan sifar apabila butang ditekan, sebaliknya sama dengan 1

voltan = readVoltage (a, 'A0');% pin bergantung pada tempat kita meletakkannya

tempCelcius = (voltan * 100) -50; % diberikan dalam manual sensor

tempF (time) = (tempCelcius * 1.8) +32% formula penukaran yang diketahui

maks = 120; % darjah F

tulisDigitalPin (a, 'D11', 1);

rem = mod (e, 2);

jika tempF (masa)> = maks

tulisDigitalPin (a, 'D11', 0);

tulisDigitalPin (a, 'D9', 1);

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

jeda (.5)

tulisDigitalPin (a, 'D6', 1)

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

jeda (.5)

tulisDigitalPin (a, 'D9', 1);

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

jeda (.5)

tulisDigitalPin (a, 'D6', 1)

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

z = 'Overheat.m4a'; Ini meletakkan fail suara menjadi pemboleh ubah

[data, freq] = audioread (z); % Memuatkan data dari fail suara

o = pemain audio (data, freq); % Membuat objek untuk mengawal pemutaran fail audio

o.play ()% Memainkan fail audio

o.playblocking ()% Memainkan fail dan menunggu ia selesai

akhir

jika butang_status == 0 && rem == 0

e = e + 1

msgbox ('Selamat Datang Di Atas!');

elseif button_status == 0 && rem == 1

e = e + 1

msgbox ('Bienvenido a bordo!');

akhir

jika e == 5

tulisDigitalPin (a, 'D11', 0);

jika x == 0

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

s = 'Amaran_EF.m4a'; Ini meletakkan fail suara menjadi pemboleh ubah

[data, freq] = bacaan audio; % Memuatkan data dari fail suara

o = pemain audio (data, freq); % Membuat objek untuk mengawal pemutaran fail audio

% o.play ()% Memainkan fail audio

o.playblocking ()% Memainkan fail dan menunggu ia selesai

kotak msg ('Kapasiti Maksimum')

x = x + 1

akhir

otherif e> = 6

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

akhir

masa = masa - 1;

% jeda (0.1);

% jika e == 5 && max (tempF)> = 120

% masa = 0

% akhir

akhir

ee = num2str (e)

t = [1: 200];

tempF2 = fliplr (tempF);

plot (t, tempF2);

tajuk ('Masa vs Suhu')

ylabel ('Suhu (F)')

xlabel ('Masa)')

saveas (gcf, 'tempplot.jpg')

mel = '[email protected]'

kata laluan = 'Srsora123 #'

hos = 'smtp.gmail.com'

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

setpref ('Internet', 'E_mail', mel);

setpref ('Internet', 'SMTP_Username', mel);

setpref ('Internet', 'SMTP_Password', kata laluan);

alat peraga = java.lang. System.getProperties;

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

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

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

sendmail (mel, 'Hello Train Station! Terdapat banyak penumpang di dalam kereta api', ee, 'tempplot.jpg')

Langkah 5: Hasil

Disyorkan: