Talaan ng mga Nilalaman:

Paggamit ng Mga Sensor ng Temperatura, tubig-ulan, at panginginig sa isang Arduino upang Protektahan ang Mga Riles: 8 Hakbang (na may Mga Larawan)
Paggamit ng Mga Sensor ng Temperatura, tubig-ulan, at panginginig sa isang Arduino upang Protektahan ang Mga Riles: 8 Hakbang (na may Mga Larawan)

Video: Paggamit ng Mga Sensor ng Temperatura, tubig-ulan, at panginginig sa isang Arduino upang Protektahan ang Mga Riles: 8 Hakbang (na may Mga Larawan)

Video: Paggamit ng Mga Sensor ng Temperatura, tubig-ulan, at panginginig sa isang Arduino upang Protektahan ang Mga Riles: 8 Hakbang (na may Mga Larawan)
Video: Proyecto de heliostato Templastat / Templastat Heliostat Project: improvements, updates and test 2024, Hulyo
Anonim
Paggamit ng Mga Sensor ng Temperatura, tubig-ulan, at panginginig sa isang Arduino upang Protektahan ang mga Riles
Paggamit ng Mga Sensor ng Temperatura, tubig-ulan, at panginginig sa isang Arduino upang Protektahan ang mga Riles

Sa modernong lipunan, ang pagtaas ng mga pasahero sa riles ay nangangahulugang ang mga kumpanya ng riles ay dapat gumawa ng higit pa upang ma-optimize ang mga network upang makasabay sa pangangailangan. Sa proyektong ito ipapakita namin sa isang maliit na sukat kung paano ang mga sensor ng temperatura, tubig-ulan, at panginginig sa isang arduino board ay maaaring makatulong na mapataas ang kaligtasan ng mga pasahero.

Ang Instructable na ito ay sunud-sunod na ipapakita ang mga kable para sa temperatura, tubig-ulan, at mga sensor ng panginginig sa arduino pati na rin ipakita ang kinakailangang MATLAB code upang patakbuhin ang mga sensor na ito.

Hakbang 1: Mga Bahagi at Materyales

1. Isang computer na may pinakabagong bersyon ng MATLAB na naka-install

2. Lupon ng Arduino

3. Temperatura Sensor

4. Sensor ng Rainwater

5. Sensor ng Panginginig

6. Pulang LED Light

7. Blue LED Light

8. Green LED Light

9. RBG LED Light

10. Buzzer

11. 18 Mga Kawat Lalaki-Lalaki

12. 3 Babae-Lalaki na Mga Wires

13. 2 Babae-Babae na Mga Wires

14. 6 330 ohm resistors

15. 1 100 ohm risistor

Hakbang 2: Mga Temperatura ng Mga Kable ng Sensor

Mga Kable ng Sensor ng Temperatura
Mga Kable ng Sensor ng Temperatura
Mga Kable ng Sensor ng Temperatura
Mga Kable ng Sensor ng Temperatura

Sa itaas ay ang mga kable at MATLAB code para sa input ng sensor ng temperatura din.

Ang mga wire mula sa lupa at 5V ay kailangan lamang tumakbo sa negatibo at positibo ayon sa pagkakabanggit minsan para sa buong board. Mula dito, ang anumang mga koneksyon sa lupa ay magmumula sa negatibong haligi at anumang mga koneksyon na 5V ay magmumula sa positibong haligi.

Ang code sa ibaba ay maaaring kopyahin at mai-paste para sa temperatura sensor.

%% TEMPERATURE SENSOR% Para sa sensor ng temperatura na ginamit namin ang sumusunod na mapagkukunan kasama ang

% EF230 materyal sa website upang mabago ang aming sensor ng temperatura upang payagan ang gumagamit

% input at 3 LED light output na may isang grap.

% Ang sketch na ito ay isinulat ng SparkFun Electronics, % na may maraming tulong mula sa pamayanan ng Arduino.

% Inangkop sa MATLAB ni Eric Davishahl.

% Bisitahin ang https://learn.sparkfun.com/products/2 para sa impormasyon ng SIK.

limasin lahat, clc

tempPin = 'A0'; % Pagdeklara ng analog pin na konektado sa sensor ng temp

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

% Tukuyin ang hindi nagpapakilalang pagpapaandar na nagko-convert sa boltahe sa temperatura

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

samplingDuration = 30;

samplingInterval = 2; % Segundo sa pagitan ng pagbabasa ng temperatura

% set up vector ng mga oras ng pag-sample

samplingTime = 0: samplingInterval: samplingDuration;

% kalkulahin ang bilang ng mga sample batay sa tagal at agwat

numSamples = haba (samplingTime);

% preallocate temp variable at variable para sa bilang ng mga pagbasa na itatabi nito

tempC = zero (numSamples, 1);

tempF = tempC;

% gamit ang input dialog box upang mag-imbak ng mga temperatura ng max at min na riles

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

dlg_title = 'Mga agwat ng Temperatura ng Rail';

N = 22;

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

% Pag-iimbak ng mga input mula sa gumagamit at pagpapakita na naitala ang naitala

max_temp = str2double (dlg_ans {1})

min_temp = str2double (dlg_ans {2})

txt = sprintf ('Naitala ang iyong input');

h = msgbox (txt);

waitfor (h);

% Para sa loop na basahin ang mga temperatura ng isang tiyak na bilang ng mga beses.

para sa index = 1: numSamples

% Basahin ang boltahe sa tempPin at iimbak bilang variable volts

volts = readVoltage (a, tempPin);

tempC (index) = tempCfromVolts (volts);

tempF (index) = tempC (index) * 9/5 + 32; % I-convert mula sa Celsius patungong Fahrenheit

% Kung ang mga pahayag upang gumawa ng tukoy na mga ilaw ng LED ay kumukurap depende sa kung aling kalagayan ang natutugunan

kung tempF (index)> = max_temp% Red LED

isulatDigitalPin (a, 'D13', 0);

i-pause (0.5);

isulatDigitalPin (a, 'D13', 1);

i-pause (0.5);

isulatDigitalPin (a, 'D13', 0);

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

isulatDigitalPin (a, 'D11', 0);

i-pause (0.5);

isulatDigitalPin (a, 'D11', 1);

i-pause (0.5);

isulatDigitalPin (a, 'D11', 0);

otherwiseif tempF (index) <= min_temp% Blue LED

isulatDigitalPin (a, 'D12', 0);

i-pause (0.5);

isulatDigitalPin (a, 'D12', 1);

i-pause (0.5);

isulatDigitalPin (a, 'D12', 0);

magtapos

% Ipakita ang mga temperatura habang sinusukat ito

fprintf ('Temperatura sa% d segundo ay% 5.2f C o% 5.2f F. / n',…

samplingTime (index), tempC (index), tempF (index));

pause (samplingInterval)% pagkaantala hanggang sa susunod na sample

magtapos

% Plotting ang temperatura readings

pigura (1)

balangkas (samplingTime, tempF, 'taf *')

xlabel ('Oras (Segundo)')

ylabel ('Temperatura (F)')

pamagat ('Mga Pagbasa ng Temperatura mula sa RedBoard')

Hakbang 3: Output ng Sensor ng Temperatura

Temperatura Sensor Output
Temperatura Sensor Output
Temperatura Sensor Output
Temperatura Sensor Output

Sa itaas ay ang mga kable at MATLAB code para sa output ng sensor ng temperatura.

Para sa proyektong ito, gumamit kami ng tatlong mga ilaw ng LED para sa output ng aming sensor ng temperatura. Gumamit kami ng pula para kung ang mga track ay masyadong mainit, isang asul kung ang mga ito ay masyadong malamig, at isang berde kung sila ay nasa pagitan.

Hakbang 4: Input ng Sensor ng Tubig ng ulan

Input ng Sensor ng Tubig ng ulan
Input ng Sensor ng Tubig ng ulan
Input ng Sensor ng Tubig ng ulan
Input ng Sensor ng Tubig ng ulan

Sa itaas ay ang mga kable para sa sensor ng tubig sa ulan at ang MATLAB code ay nai-post sa ibaba.

%% Sensor ng tubig

limasin lahat, clc

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

waterPin = 'A1';

vDry = 4.80; % Boltahe kapag walang tubig na naroroon

samplingDuration = 60;

samplingInterval = 2;

samplingTime = 0: samplingInterval: samplingDuration;

numSamples = haba (samplingTime);

% Para sa loop na mabasa ang boltahe para sa isang tiyak na dami ng oras (60 segundo)

para sa index = 1: numSamples

volt2 = readVoltage (a, waterPin); % Basahin ang boltahe mula sa water pin analog

% Kung pahayag na tunog ng isang buzzer kung ang tubig ay napansin. Pag-drop ng boltahe = tubig

kung volt2 <vDry

playTone (a, 'D09', 2400)% function ng playTone mula sa MathWorks

% Magpakita ng isang babala sa mga pasahero kung may napansin na tubig

waitfor (warndlg ('Maaaring maantala ang iyong tren dahil sa mga panganib sa tubig'));

magtapos

% Ipakita ang boltahe habang sinusukat ito ng water sensor

fprintf ('Boltahe sa% d segundo ay% 5.4f V. / n',…

samplingTime (index), volt2);

pause (samplingInterval)

magtapos

Hakbang 5: Output ng Sensor ng Tubig

Output ng Sensor ng Tubig
Output ng Sensor ng Tubig

Sa itaas ay ang mga kable para sa isang buzzer na nagbubunyi tuwing maraming tubig ang nahuhulog sa track. Ang code para sa buzzer ay naka-embed sa loob ng code para sa input ng tubig-ulan.

Hakbang 6: Pag-input ng Sensor ng Panginginig

Input ng Vibration Sensor
Input ng Vibration Sensor
Input ng Vibration Sensor
Input ng Vibration Sensor

Sa itaas ay ang mga kable para sa sensor ng panginginig ng boses. Ang mga sensor ng panginginig ay maaaring maging mahalaga para sa mga system ng riles sa kaso ng pagbagsak ng mga bato sa isang track. Ang MATLAB code ay nai-post sa ibaba.

%% Sensorclear ng Vibration lahat, clc

PIEZO_PIN = 'A3'; % Pagdeklara ng analog pin na konektado sa vibration sensor a = arduino ('/ dev / tty.usbserial-DA017PNO', 'uno'); % Inisyal ang oras at agwat upang masukat ang pang-sample na panginginig ng boses = 30; % Segundo samplingInterval = 1;

samplingTime = 0: samplingInterval: samplingDuration;

numSamples = haba (samplingTime);

% Gamit ang code mula sa sumusunod na mapagkukunan binago namin ito upang buksan ang a

% lila LED kung nakita ang panginginig ng boses.

% SparkFun Tinker Kit, RGB LED, isinulat ng SparkFun Electronics, % na may maraming tulong mula sa pamayanan ng Arduino

% Inangkop sa MATLAB ni Eric Davishahl

% Pinasimulan ang RGB pin

RED_PIN = 'D5';

GREEN_PIN = 'D6';

BLUE_PIN = 'D7';

% Para sa loop upang maitala ang mga pagbabago sa boltahe mula sa sensor ng panginginig ng boses sa a

% tukoy na agwat ng oras (30 segundo)

para sa index = 1: numSamples

volt3 = readVoltage (a, PIEZO_PIN);

% Kung pahayag upang buksan ang isang lilang LED kung nakita ang panginginig ng boses

kung volt3> 0.025

isulatDigitalPin (a, RED_PIN, 1);

% Lumilikha ng isang lilang ilaw

isulatDigitalPin (a, GREEN_PIN, 0);

isulatDigitalPin (a, BLUE_PIN, 1);

iba pa% Patayin ang LED kung walang nakita na panginginig ng boses.

isulatDigitalPin (a, RED_PIN, 0);

isulatDigitalPin (a, GREEN_PIN, 0);

isulatDigitalPin (a, BLUE_PIN, 0);

magtapos

% Ipakita ang boltahe habang sinusukat ito.

fprintf ('Boltahe sa% d segundo ay% 5.4f V. / n',…

samplingTime (index), volt3);

pause (samplingInterval)

magtapos

% Putulin ang ilaw kapag tapos na ang pagsukat ng mga panginginig

isulatDigitalPin (a, RED_PIN, 0);

isulatDigitalPin (a, GREEN_PIN, 0);

isulatDigitalPin (a, BLUE_PIN, 0);

Hakbang 7: Output ng Sensor ng Panginginig

Output ng Sensor ng Panginginig
Output ng Sensor ng Panginginig

Sa itaas ay ang mga kable para sa ginamit na ilaw na RBG LED. Ang ilaw ay mamula-mula sa lila kapag nakita ang mga panginginig. Ang MATLAB code para sa output ay naka-embed sa loob ng code para sa input.

Hakbang 8: Konklusyon

Matapos sundin ang lahat ng mga hakbang na ito ay mayroon ka na ngayong isang arduino na may kakayahang makita ang temperatura, tubig-ulan, at mga panginginig. Habang tinitingnan kung paano gumagana ang mga sensor na ito sa isang maliit na sukat, madaling isipin kung gaano kahalaga ang mga ito sa mga sistema ng riles sa modernong buhay!

Inirerekumendang: