Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-23 15:14
Zamonaviy jamiyatda temir yo'l yo'lovchilarining ko'payishi shuni anglatadiki, temir yo'l kompaniyalari talabni qondirish uchun tarmoqlarni optimallashtirish uchun ko'proq harakat qilishlari kerak. Ushbu loyihada biz arduino bortidagi harorat, yomg'ir suvi va tebranish sensori yo'lovchilar xavfsizligini oshirishga qanday yordam berishi mumkinligini kichik hajmda ko'rsatamiz.
Bu ko'rsatma asta-sekin arduino-dagi harorat, yomg'ir suvi va tebranish datchiklarining simlarini ko'rsatadi va bu sensorlarni ishga tushirish uchun zarur bo'lgan MATLAB kodini ko'rsatadi.
1 -qadam: ehtiyot qismlar va materiallar
1. MATLAB -ning eng so'nggi versiyasi o'rnatilgan kompyuter
2. Arduino taxtasi
3. Harorat sensori
4. Yomg'ir suvi sensori
5. Vibratsiyali sensor
6. Qizil LED chiroq
7. Moviy LED chiroq
8. Yashil LED chiroq
9. RBG LED chirog'i
10. Buzzer
11. 18 erkak-erkak simlari
12. 3 ta ayol-erkak simlari
13. 2 ta ayol-ayol simlari
14. 6 330 ohmli rezistorlar
15. 100 ohmlik qarshilik
2 -qadam: harorat sensori simlari
Yuqorida harorat sensori kiritish uchun simlar va MATLAB kodi ko'rsatilgan.
Erdan va 5V dan keladigan simlar butun taxta uchun faqat bir marta manfiy va musbatga o'tkazilishi kerak. Bu erdan har qanday erga ulanishlar manfiy ustundan, har qanday 5V ulanishlari esa musbat ustundan keladi.
Quyidagi kodni harorat sensori uchun nusxalash va joylashtirish mumkin.
%% TEMPERATURE SENSOR % Harorat sensori uchun biz quyidagi manbadan foydalanganmiz
% EF230 veb -sayti foydalanuvchiga ruxsat berish uchun harorat sensori o'zgartirish uchun
% kirish va grafikli 3 ta LED yorug'lik chiqishi.
%Bu eskiz SparkFun Electronics tomonidan yozilgan, %Arduino hamjamiyatining katta yordami bilan.
%Erik Davishahl tomonidan MATLABga moslashtirilgan.
%SIK ma'lumotlari uchun https://learn.sparkfun.com/products/2 saytiga tashrif buyuring.
Hammasini tozalash, clc
tempPin = 'A0'; % Harorat sensori ulangan analog pinni e'lon qilish
a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno');
% Kuchlanishni haroratga aylantiradigan anonim funktsiyani aniqlang
tempCfromVolts = @(volts) (volts-0,5)*100;
namuna olish muddati: 30;
namuna olish Interval = 2; % Harorat ko'rsatkichlari orasidagi soniya
%namuna olish vaqtining vektorini sozlash
samplingTimes = 0: samplingInterval: samplelingDuration;
%davomiyligi va intervaliga qarab namunalar sonini hisoblab chiqadi
numSamples = uzunlik (samplelingTimes);
%temp o'zgaruvchilarini va saqlanadigan o'qishlar soni uchun o'zgaruvchini oldindan ajratadi
tempC = nol (numSamples, 1);
tempF = tempC;
% maksimal va minimal temir yo'l haroratini saqlash uchun kirish dialog oynasi yordamida
dlg_prompts = {'Maksimal haroratni kiriting', 'Min haroratni kiriting'};
dlg_title = 'Temir yo'l harorati intervallari';
N = 22;
dlg_ans = inputdlg (dlg_prompts, dlg_title, [1, uzunlik (dlg_title)+N]);
% Foydalanuvchining kirishini saqlash va kirish yozilganligini ko'rsatish
max_temp = str2double (dlg_ans {1})
min_temp = str2double (dlg_ans {2})
txt = sprintf ('Sizning kirishingiz yozildi');
h = msgbox (txt);
kutish (h);
% Haroratni ma'lum vaqtlarda o'qish uchun.
index = 1 uchun: numSamples
% TempPin -dagi kuchlanishni o'qing va o'zgarmaydigan volt sifatida saqlang
volt = o'qish voltaji (a, tempPin);
tempC (indeks) = tempCfromVolts (volt);
tempF (indeks) = tempC (indeks)*9/5+32; % Selsiydan Farengeytga aylantirish
% Agar ma'lum bir LED chiroqlari qaysi shart bajarilganiga qarab yonib -o'chadigan bo'lsa
agar tempF (indeks)> = max_temp % Qizil LED
writeDigitalPin (a, 'D13', 0);
pauza (0,5);
writeDigitalPin (a, 'D13', 1);
pauza (0,5);
writeDigitalPin (a, 'D13', 0);
elseif tempF (indeks)> = min_temp && tempF (indeks) <max_temp % Yashil LED
writeDigitalPin (a, 'D11', 0);
pauza (0,5);
writeDigitalPin (a, 'D11', 1);
pauza (0,5);
writeDigitalPin (a, 'D11', 0);
elseif tempF (indeks) <= min_temp % Moviy LED
writeDigitalPin (a, 'D12', 0);
pauza (0,5);
writeDigitalPin (a, 'D12', 1);
pauza (0,5);
writeDigitalPin (a, 'D12', 0);
oxiri
% Haroratni o'lchaganicha ko'rsatish
fprintf (' %d soniyadagi harorat %5.2f S yoki %5.2f F. / n',…
samplingTimes (indeks), tempC (indeks), tempF (indeks));
pauza (samplingInterval) %kechikish keyingi namunaga qadar
oxiri
% Harorat ko'rsatkichlarini chizish
raqam (1)
uchastka (samplepingTimes, tempF, 'r-*')
xlabel ('Vaqt (soniya)')
ylabel ('Harorat (F)')
sarlavha ("Qizil taxtadan harorat ko'rsatkichlari")
3 -qadam: harorat sensori chiqishi
Yuqorida harorat sensori chiqishi uchun simlar va MATLAB kodi ko'rsatilgan.
Ushbu loyiha uchun biz harorat sensori chiqishi uchun uchta LED chiroqdan foydalanganmiz. Agar biz yo'llar juda issiq bo'lsa, qizil rangni, agar ular juda sovuq bo'lsa, ko'kni va agar ular o'rtasida bo'lsa, yashil rangni ishlatardik.
4 -qadam: Yomg'ir suvi sensori kirishi
Yuqorida yomg'ir suvi sensori uchun simlar bor va MATLAB kodi quyida keltirilgan.
%% suv sensori
Hammasini tozalash, clc
a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno');
waterPin = 'A1';
vDry = 4.80; % Suv yo'q bo'lganda kuchlanish
namuna olish muddati: 60;
namuna olish Interval = 2;
samplingTimes = 0: samplingInterval: samplelingDuration;
numSamples = uzunlik (samplelingTimes);
% Loop ma'lum bir vaqt (60 soniya) davomida kuchlanishni o'qishi uchun
index = 1 uchun: numSamples
volt2 = readVoltage (a, waterPin); % Suv pinining analogidan kuchlanishni o'qing
% If, agar suv aniqlansa, ovozli signal eshitiladi. Voltaj tushishi = suv
agar volt2 <vDry
playTone (a, 'D09', 2400) % playTone funktsiyasi MathWorks -dan
% Suv aniqlansa, yo'lovchilarga ogohlantirish ko'rsatilsin
waitfor (ogohlantirish ('Sizning xavfingiz tufayli sizning poyezdingiz kechikishi mumkin')));
oxiri
% Voltajni suv sensori o'lchaganidek ko'rsatish
fprintf (' %d soniyadagi kuchlanish %5.4f V. / n',…
samplingTimes (indeks), volt2);
pauza (vaqt oralig'ida namuna olish)
oxiri
5 -qadam: Yomg'ir suvi sensori chiqishi
Yuqorida - yo'lga suv ko'p tushganda signal beradigan signal signalizatori. Buzzer kodi yomg'ir suvini kiritish kodiga kiritilgan.
6 -qadam: tebranish sensori kirishi
Yuqorida tebranish sensori uchun simlar joylashgan. Vibratsiyali datchiklar temir yo'l tizimlari uchun tog 'jinslari tushgan taqdirda muhim bo'lishi mumkin. MATLAB kodi quyida joylashtirilgan.
%% Vibratsiyali sensori Hammasi aniq, clc
PIEZO_PIN = 'A3'; % A = arduino tebranish sensoriga ulangan analog pinni e'lon qilish ('/dev/tty.usbserial-DA017PNO', 'uno'); % Vibratsiyali namuna olishni o'lchash uchun vaqt va intervalni ishga tushirishDuration = 30; % Saniyali namuna olish Interval = 1;
samplingTimes = 0: samplingInterval: samplelingDuration;
numSamples = uzunlik (samplelingTimes);
% Quyidagi manbadan olingan kodni ishlatib, uni yoqish uchun o'zgartirdik
% binafsha rangli LED, agar tebranish aniqlansa.
% SparkFun Tinker Kit, RGB LED, SparkFun Electronics tomonidan yozilgan, % Arduino hamjamiyatining katta yordami bilan
% Erik Davishahl tomonidan MATLABga moslashtirilgan
% RGB pinini ishga tushirish
RED_PIN = 'D5';
GREEN_PIN = 'D6';
BLUE_PIN = 'D7';
% A ga tebranish sensori orqali kuchlanish o'zgarishini qayd qilish uchun
% aniq vaqt oralig'i (30 soniya)
index = 1 uchun: numSamples
volt3 = o'qish voltaji (a, PIEZO_PIN);
Agar tebranish aniqlansa, binafsha rangli LEDni yoqish uchun if ifoda
agar volt3> 0,025 bo'lsa
writeDigitalPin (a, RED_PIN, 1);
Binafsha rang chiroqni yaratish
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 1);
boshqa % Agar tebranish aniqlanmasa, LEDni o'chiring.
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 0);
oxiri
% Voltani o'lchaganicha ko'rsatish.
fprintf (' %d soniyadagi kuchlanish %5.4f V. / n',…
samplingTimes (indeks), volt3);
pauza (vaqt oralig'ida namuna olish)
oxiri
% Vibratsiyani o'lchashda yorug'likni o'chiring
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 0);
7 -qadam: tebranish sensori chiqishi
Yuqorida RBG LED yoritgichining simi ishlatiladi. Vibratsiyani aniqlaganda yorug'lik binafsha rangda yonadi. Chiqish uchun MATLAB kodi kirish kodi ichiga joylashtirilgan.
8 -qadam: Xulosa
Ushbu qadamlarning barchasini bajarganingizdan so'ng, sizda harorat, yomg'ir suvi va tebranishlarni aniqlash qobiliyatiga ega bo'lgan arduino bo'lishi kerak. Bu datchiklarning kichik hajmda ishlashini ko'rib, ularning zamonaviy hayotda temir yo'l tizimlari uchun qanchalik muhimligini tasavvur qilish oson!
Tavsiya:
Fuqarolik infratuzilmasining simsiz tebranish sensorlaridan foydalangan holda tuzilmaviy salomatlik monitoringi: 8 qadam
Fuqarolik infratuzilmasining simsiz tebranish datchiklaridan foydalangan holda tuzilmaviy salomatlik monitoringi: Eski bino va fuqaro infratuzilmasining buzilishi halokatli va xavfli vaziyatga olib kelishi mumkin. Ushbu tuzilmalarni doimiy monitoring qilish majburiydir. Strukturaviy sog'liqni saqlash monitoringi - bu holatni baholashda juda muhim metodologiya
Harorat, PH va erigan kislorod uchun ma'lumotlarni qayd qilish vositasini qanday qilish kerak: 11 qadam (rasmlar bilan)
Harorat, PH va erigan kislorod uchun ma'lumotlarni qayd qilish vositasini qanday qilish kerak: Maqsadlar: ≤ 500 dollarga ma'lumot yozuvchi yasang. U harorat, pH va DO ma'lumotlarini vaqt tamg'asi va I2C aloqasi yordamida saqlaydi. Nima uchun I2C (Inter-Integrated Circuit)? Bir nechta sensorlarni bir qatorga yig'ish mumkin, chunki ularning har birida
Yo'lda temir yo'lda yuqori temir yo'lni qanday o'rnatish kerak: 10 qadam (rasmlar bilan)
Yo'lda temir yo'lda yuqori tezlikda harakatlanadigan transport vositasini qanday o'rnatish kerak: xavfsizlik choralari: temir yo'lda yuqori temir yo'l yuk mashinasini o'rnatgan va yordam berayotgan odam ko'rinadigan bo'lishi uchun yuqori ko'rinadigan kiyimlarni (masalan, yelek, kozok, palto) kiyishi kerak. yaqinlashib kelayotgan tirbandlik tufayli. Qo'lqop va qo'lqop ham kiyish kerak
Yomg'ir suvi: 11 qadam (rasmlar bilan)
Yomg'ir suvi: kuchli yomg'ir yog'ishi bizning yo'limizga toshib ketishiga olib kelishi mumkin: yo'laklar, yomg'ir suvi quduqlari, polders va bizning daryolar. Bunga yo'l qo'ymaslik uchun biz yomg'ir suvi shlyuzini kashf qildik! Yomg'ir suvi shlyuzi yomg'ir suvi orasidagi masofani raqamli hisoblab chiqadi
Noutbukda ma'lumotlarni himoya qilish va himoya qilish: 6 qadam
Noutbukda ma'lumotlarni himoya qiling va saqlang: noutbukni yo'qotib yuborish yomon; muhim ma'lumotlar va parollarni yo'qotish ancha yomon. Ma'lumotlarimni himoya qilish uchun nima qilishim kerak