Talaan ng mga Nilalaman:
- Hakbang 1: Mga Bahagi at Materyales
- Hakbang 2: Mga Temperatura ng Mga Kable ng Sensor
- Hakbang 3: Output ng Sensor ng Temperatura
- Hakbang 4: Input ng Sensor ng Tubig ng ulan
- Hakbang 5: Output ng Sensor ng Tubig
- Hakbang 6: Pag-input ng Sensor ng Panginginig
- Hakbang 7: Output ng Sensor ng Panginginig
- Hakbang 8: Konklusyon
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)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
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
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
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
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
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
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
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:
[2020] Paggamit ng Dalawang (x2) Micro: mga piraso upang Makontrol ang isang RC Kotse: 6 na Hakbang (na may Mga Larawan)
[2020] Paggamit ng Dalawang (x2) Micro: bits upang Makontrol ang isang RC Car: Kung mayroon kang dalawang (x2) micro: bits, naisip mo bang gamitin ang mga ito para sa malayuang pagkontrol ng isang RC car? Maaari mong kontrolin ang isang kotseng RC sa pamamagitan ng paggamit ng isang micro: kagaya ng transmiter at isa pa bilang tatanggap. Kapag ginamit mo ang editor ng MakeCode para sa pag-coding ng isang micro: b
Mga Laruang Switch-Adapt: Mga Paglalakad sa Tubig na Lumalakad sa Tubig na Naa-access !: 7 Mga Hakbang (na may Mga Larawan)
Mga Laruang Switch-Adapt: Mga Paglalakad sa Tubig na Lumalakad sa Dragon na Naa-access !: Ang pagbagay ng laruan ay nagbubukas ng mga bagong paraan at na-customize na solusyon upang payagan ang mga bata na may limitadong mga kakayahan sa motor o mga kapansanan sa pag-unlad na makipag-ugnay sa mga laruan nang nakapag-iisa. Sa maraming mga kaso, ang mga bata na nangangailangan ng inangkop na mga laruan ay hindi maaring
Babala sa Tubig - isang Device upang I-save ang Iyong Bangka: 5 Hakbang (na may Mga Larawan)
Babala sa Tubig - isang Device upang I-save ang Iyong Bangka: Kung ikaw ay may-ari ng bangka mayroong solidong ginhawa sa wakas na makuha ang bangka sa tuyong lupa. Hindi ito maaaring lumubog doon. Kahit saan man humarap ito sa isang pare-pareho na labanan upang mapagtagumpayan ang pagkahilig na madulas sa ilalim ng mga alon at mawala. Sa taglamig dito sa Alas
Protektahan ang Iyong Mga Ideya, Protektahan ang Iyong Trabaho: 8 Hakbang
Protektahan ang Iyong Mga Ideya, Protektahan ang Iyong Trabaho: Nawalan ako ng data ilang araw na ang nakakalipas sa pamamagitan ng isang pag-crash ng PC. Nawala ang trabaho ng isang araw.:/ Nai-save ko ang aking data sa cloud upang maiwasan ang isang depekto ng hard disk. Gumagamit ako ng isang bersyon ng software upang maibalik ko ang mga mas lumang bersyon ng aking trabaho. Gumagawa ako ng isang backup araw-araw. Ngunit sa oras na ito
Makatipid ng Tubig at Pera Gamit ang Shower Monitor ng Tubig: 15 Hakbang (na may Mga Larawan)
Makatipid ng Tubig at Pera Gamit ang Shower Water Monitor: Alin ang gumagamit ng mas maraming tubig - isang paliguan o isang shower? Kamakailan ko lang naisip ang tungkol sa katanungang ito, at napagtanto ko na hindi ko talaga alam kung magkano ang ginamit na tubig kapag nag-shower ako. Alam ko kapag nasa shower ako kung minsan gumagala ang aking isip, iniisip ang tungkol sa isang cool na ne