Isi kandungan:

Menggunakan Sensor Suhu, Air Hujan, dan Getaran pada Arduino untuk Melindungi Rel: 8 Langkah (dengan Gambar)
Menggunakan Sensor Suhu, Air Hujan, dan Getaran pada Arduino untuk Melindungi Rel: 8 Langkah (dengan Gambar)

Video: Menggunakan Sensor Suhu, Air Hujan, dan Getaran pada Arduino untuk Melindungi Rel: 8 Langkah (dengan Gambar)

Video: Menggunakan Sensor Suhu, Air Hujan, dan Getaran pada Arduino untuk Melindungi Rel: 8 Langkah (dengan Gambar)
Video: Membuat Alat Sistem Kendali + Monitoring Kadar pH Air dan Amonia (NH3) Air 2024, Julai
Anonim
Menggunakan Sensor Suhu, Air Hujan, dan Getaran pada Arduino untuk Melindungi Rel
Menggunakan Sensor Suhu, Air Hujan, dan Getaran pada Arduino untuk Melindungi Rel

Dalam masyarakat moden, peningkatan penumpang kereta api bermaksud syarikat kereta api harus melakukan lebih banyak usaha untuk mengoptimumkan rangkaian agar sesuai dengan permintaan. Dalam projek ini kita akan menunjukkan secara kecil-kecilan bagaimana suhu, air hujan, dan sensor getaran pada papan arduino berpotensi membantu meningkatkan keselamatan penumpang.

Instructable ini akan menunjukkan langkah demi langkah pendawaian untuk sensor suhu, air hujan, dan getaran pada arduino serta menunjukkan kod MATLAB yang diperlukan untuk menjalankan sensor ini.

Langkah 1: Bahagian dan Bahan

1. Komputer dengan MATLAB versi terkini dipasang

2. Dewan Arduino

3. Sensor Suhu

4. Sensor Air Hujan

5. Sensor Getaran

6. Lampu LED Merah

7. Lampu LED Biru

8. Lampu LED Hijau

9. Lampu LED RBG

10. Buzzer

11. 18 Kawat Lelaki-Lelaki

12. 3 Wayar Perempuan-Lelaki

13. 2 Wayar Perempuan-Perempuan

14. 6 330 ohm perintang

15. 1 perintang 100 ohm

Langkah 2: Pendawaian Sensor Suhu

Pendawaian Sensor Suhu
Pendawaian Sensor Suhu
Pendawaian Sensor Suhu
Pendawaian Sensor Suhu

Di atas adalah kod pendawaian dan MATLAB untuk input sensor suhu juga.

Kabel dari tanah dan 5V hanya perlu disambungkan ke negatif dan positif masing-masing sekali untuk keseluruhan papan. Dari sini dan seterusnya, sebarang sambungan darat akan datang dari lajur negatif dan sebarang sambungan 5V akan datang dari lajur positif.

Kod di bawah boleh disalin dan ditampal untuk sensor suhu.

%% TEMPERATURE SENSOR% Untuk sensor suhu kami menggunakan sumber berikut bersama dengan

% Bahan laman web EF230 untuk mengubah suai suhu kami untuk membolehkan pengguna

% input dan 3 output cahaya LED dengan graf.

Sketsa ini ditulis oleh SparkFun Electronics, % dengan banyak pertolongan dari komuniti Arduino.

% Diadaptasi ke MATLAB oleh Eric Davishahl.

% Lawati https://learn.sparkfun.com/products/2 untuk maklumat SIK.

jelas semua, clc

tempPin = 'A0'; % Menyatakan pin analog yang disambungkan ke sensor suhu

a = arduino ('/ dev / tty.usbserial-DA017PNO', 'uno');

% Tentukan fungsi tanpa nama yang menukar voltan kepada suhu

tempCfromVolts = @ (volt) (volt-0.5) * 100;

persampelanDurasi = 30;

persampelanInterval = 2; % Detik antara bacaan suhu

% menetapkan vektor masa persampelan

samplingTimes = 0: samplingInterval: samplingDuration;

% mengira bilangan sampel berdasarkan jangka masa dan selang

numSamples = panjang (samplingTimes);

% peruntukkan pemboleh ubah temp dan pemboleh ubah untuk bilangan bacaan yang akan disimpannya

tempC = nol (numSample, 1);

tempF = tempC;

% menggunakan kotak dialog input untuk menyimpan suhu rel maksimum dan min

dlg_prompts = {'Enter Temp Max', 'Enter Min Temp'};

dlg_title = 'Selang Suhu Rel';

N = 22;

dlg_ans = inputdlg (dlg_prompts, dlg_title, [1, length (dlg_title) + N]);

Menyimpan input dari pengguna dan menunjukkan bahawa input direkodkan

max_temp = str2double (dlg_ans {1})

min_temp = str2double (dlg_ans {2})

txt = sprintf ('Input anda telah direkodkan');

h = msgbox (txt);

menunggu (h);

% Untuk gelung membaca suhu beberapa kali.

untuk indeks = 1: numSampel

% Baca voltan pada tempPin dan simpan sebagai voltan berubah

volt = readVoltage (a, tempPin);

tempC (index) = tempCfromVolts (volt);

tempF (indeks) = tempC (indeks) * 9/5 + 32; % Tukar dari Celsius ke Fahrenheit

% Sekiranya pernyataan untuk membuat lampu LED tertentu berkedip bergantung pada keadaan mana yang dipenuhi

jika tempF (indeks)> = max_temp% LED Merah

tulisDigitalPin (a, 'D13', 0);

berhenti seketika (0.5);

tulisDigitalPin (a, 'D13', 1);

berhenti seketika (0.5);

tulisDigitalPin (a, 'D13', 0);

elseif tempF (index)> = min_temp && tempF (index) <max_temp% LED Hijau

tulisDigitalPin (a, 'D11', 0);

berhenti seketika (0.5);

tulisDigitalPin (a, 'D11', 1);

berhenti seketika (0.5);

tulisDigitalPin (a, 'D11', 0);

elseif tempF (indeks) <= min_temp% LED Biru

tulisDigitalPin (a, 'D12', 0);

berhenti seketika (0.5);

tulisDigitalPin (a, 'D12', 1);

berhenti seketika (0.5);

tulisDigitalPin (a, 'D12', 0);

akhir

% Paparkan suhu semasa diukur

fprintf ('Suhu pada% d saat adalah% 5.2f C atau% 5.2f F. / n',…

samplingTimes (index), tempC (index), tempF (index));

jeda (samplingInterval)% kelewatan sehingga sampel seterusnya

akhir

% Merangka bacaan suhu

Rajah 1)

plot (samplingTimes, tempF, 'r- *')

xlabel ('Masa (Detik)')

ylabel ('Suhu (F)')

tajuk ('Bacaan Suhu dari Papan Merah')

Langkah 3: Output Sensor Suhu

Output Sensor Suhu
Output Sensor Suhu
Output Sensor Suhu
Output Sensor Suhu

Di atas adalah kod pendawaian dan MATLAB untuk output sensor suhu.

Untuk projek ini, kami menggunakan tiga lampu LED untuk output sensor suhu kami. Kami menggunakan warna merah jika trek terlalu panas, biru jika terlalu sejuk, dan hijau jika berada di antara.

Langkah 4: Input Sensor Air Hujan

Input Sensor Air Hujan
Input Sensor Air Hujan
Input Sensor Air Hujan
Input Sensor Air Hujan

Di atas adalah pendawaian untuk sensor air hujan dan kod MATLAB dipaparkan di bawah.

Sensor air%%

jelas semua, clc

a = arduino ('/ dev / tty.usbserial-DA017PNO', 'uno');

waterPin = 'A1';

vDry = 4.80; Voltan apabila tiada air

persampelanDurasi = 60;

persampelanInterval = 2;

samplingTimes = 0: samplingInterval: samplingDuration;

numSamples = panjang (samplingTimes);

% Untuk gelung membaca voltan untuk jangka masa tertentu (60 saat)

untuk indeks = 1: numSampel

volt2 = readVoltage (a, waterPin); % Baca voltan dari analog pin air

Jika pernyataan untuk membunyikan bel jika air dikesan. Kejatuhan voltan = air

jika volt2 <vDry

playTone (a, 'D09', 2400)% fungsi playTone dari MathWorks

% Menunjukkan amaran kepada penumpang sekiranya air dikesan

waitfor (warndlg ('Kereta anda mungkin tertangguh kerana bahaya air'));

akhir

% Paparkan voltan kerana diukur oleh sensor air

fprintf ('Voltan pada% d saat ialah% 5.4f V. / n',…

samplingTimes (indeks), volt2);

jeda (pensampelanInterval)

akhir

Langkah 5: Output Sensor Air Hujan

Output Sensor Air Hujan
Output Sensor Air Hujan

Di atas adalah pendawaian untuk bel yang berbunyi apabila air terlalu banyak jatuh di trek. Kod untuk bel disertakan dalam kod untuk input air hujan.

Langkah 6: Input Sensor Getaran

Input Sensor Getaran
Input Sensor Getaran
Input Sensor Getaran
Input Sensor Getaran

Di atas adalah pendawaian untuk sensor getaran. Sensor getaran boleh menjadi penting bagi sistem keretapi sekiranya jatuh batu di trek. Kod MATLAB dipaparkan di bawah.

%% Sensor Getaran jelas semua, clc

PIEZO_PIN = 'A3'; % Menyatakan pin analog yang disambungkan ke sensor getaran a = arduino ('/ dev / tty.usbserial-DA017PNO', 'uno'); % Memulakan masa dan selang untuk mengukur pengambilan getaranDurasi = 30; Persampelan% Detik = 1;

samplingTimes = 0: samplingInterval: samplingDuration;

numSamples = panjang (samplingTimes);

% Menggunakan kod dari sumber berikut, kami mengubahnya untuk menghidupkan a

% ungu LED jika getaran dikesan.

% SparkFun Tinker Kit, RGB LED, ditulis oleh SparkFun Electronics, % dengan banyak pertolongan dari komuniti Arduino

% Diadaptasi ke MATLAB oleh Eric Davishahl

% Memulakan pin RGB

RED_PIN = 'D5';

HIJAU_PIN = 'D6';

BLUE_PIN = 'D7';

% Untuk gelung untuk merekod perubahan voltan dari sensor getaran di atas a

% selang waktu tertentu (30 saat)

untuk indeks = 1: numSampel

volt3 = readVoltage (a, PIEZO_PIN);

% Jika pernyataan untuk menyalakan LED ungu jika getaran dikesan

jika volt3> 0.025

tulisDigitalPin (a, RED_PIN, 1);

% Menciptakan cahaya ungu

tulisDigitalPin (a, GREEN_PIN, 0);

tulisDigitalPin (a, BLUE_PIN, 1);

lain% Matikan LED jika tiada getaran dikesan.

tulisDigitalPin (a, RED_PIN, 0);

tulisDigitalPin (a, GREEN_PIN, 0);

tulisDigitalPin (a, BLUE_PIN, 0);

akhir

% Paparkan voltan semasa diukur.

fprintf ('Voltan pada% d saat ialah% 5.4f V. / n',…

samplingTimes (indeks), volt3);

jeda (pensampelanInterval)

akhir

Memotong cahaya semasa mengukur getaran selesai

tulisDigitalPin (a, RED_PIN, 0);

tulisDigitalPin (a, GREEN_PIN, 0);

tulisDigitalPin (a, BLUE_PIN, 0);

Langkah 7: Output Sensor Getaran

Output Sensor Getaran
Output Sensor Getaran

Di atas adalah pendawaian untuk lampu LED RBG yang digunakan. Cahaya akan menyala ungu apabila getaran dikesan. Kod MATLAB untuk output tertanam dalam kod untuk input.

Langkah 8: Kesimpulannya

Setelah mengikuti semua langkah ini, anda kini harus memiliki arduino dengan kemampuan untuk mengesan suhu, air hujan, dan getaran. Semasa melihat bagaimana sensor ini berfungsi dalam skala kecil, mudah untuk membayangkan betapa pentingnya sensor ini untuk sistem kereta api dalam kehidupan moden!

Disyorkan: