![Темир жолдорду коргоо үчүн Arduinoдо температура, жамгыр суусу жана дирилдөө сенсорлорун колдонуу: 8 кадам (сүрөттөр менен) Темир жолдорду коргоо үчүн Arduinoдо температура, жамгыр суусу жана дирилдөө сенсорлорун колдонуу: 8 кадам (сүрөттөр менен)](https://i.howwhatproduce.com/images/002/image-5673-46-j.webp)
Мазмуну:
2025 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2025-01-23 14:53
![Темир жолдорду коргоо үчүн Arduinoдогу температура, жамгыр суусу жана дирилдөө сенсорлорун колдонуу Темир жолдорду коргоо үчүн Arduinoдогу температура, жамгыр суусу жана дирилдөө сенсорлорун колдонуу](https://i.howwhatproduce.com/images/002/image-5673-47-j.webp)
Заманбап коомдо темир жолчулардын көбөйүшү темир жол компаниялары суроо-талапты канааттандыруу үчүн тармактарды оптималдаштыруу үчүн көбүрөөк аракет кылышы керек дегенди билдирет. Бул долбоордо биз кичинекей масштабда ардуино тактасындагы температура, жамгыр суусу жана дирилдөө сенсорлору жүргүнчүлөрдүн коопсуздугун жогорулатууга кандайча жардам берерин көрсөтөбүз.
Бул Instructable этап-этабы менен ардуинодогу температуранын, жамгырдын жана дирилдөө сенсорлорунун зымдарын көрсөтөт, ошондой эле бул сенсорлорду иштетүү үчүн керектүү MATLAB кодун көрсөтөт.
1 -кадам: Бөлүктөр жана материалдар
1. MATLABнын акыркы версиясы орнотулган компьютер
2. Arduino Board
3. Температура сенсору
4. Жамгыр суусу сенсору
5. Дирилдөө сенсору
6. Кызыл LED жарык
7. Blue LED Light
8. Жашыл LED жарык
9. RBG LED Light
10. Зумзер
11. 18 Эркек-Эркек зымдары
12. 3 Аял-Эркек зымдары
13. 2 Аял-Аял зымдары
14. 6 330 омдук резисторлор
15. 1 100 омдук резистор
2 -кадам: Температура сенсорунун зымдары
![Температура сенсорунун зымдары Температура сенсорунун зымдары](https://i.howwhatproduce.com/images/002/image-5673-48-j.webp)
![Температура сенсорунун зымдары Температура сенсорунун зымдары](https://i.howwhatproduce.com/images/002/image-5673-49-j.webp)
Жогоруда температура сенсорун киргизүү үчүн өткөргүчтөр жана MATLAB коду бар.
Жерден жана 5Вдан келген зымдар бүтүндөй такта үчүн бир жолу терс жана позитивдүү болуш керек. Мындан ары, бардык жердеги туташуулар терс мамычадан жана 5В туташуулары оң колонкадан келет.
Төмөндөгү кодду температура сенсоруна көчүрүү жана чаптоо мүмкүн.
%% TEMPERATURE SENSOR % Температура сенсору үчүн биз төмөнкү булакты колдондук
% EF230 веб -сайтынын материалдары колдонуучуга уруксат берүү үчүн биздин температура сенсорун өзгөртөт
% киргизүү жана 3 LED жарыгы график менен.
%Бул эскиз SparkFun Electronics тарабынан жазылган, %Arduino коомчулугунун көп жардамы менен.
%Эрик Давишахл тарабынан MATLABка ылайыкташтырылган.
%SIK маалыматы үчүн https://learn.sparkfun.com/products/2 дарегине баш багыңыз.
баарын тазалоо, clc
tempPin = 'A0'; % Температура сенсоруна туташкан аналогдук пинди жарыялоо
a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno');
% Чыңалууну температурага айландыруучу анонимдүү функцияны аныктаңыз
tempCfromVolts = @(вольт) (вольт-0,5)*100;
samplingDuration = 30;
samplingInterval = 2; % Температуранын көрсөткүчтөрүнүн ортосунда секундалар
%үлгүсүн алуу векторун орнотту
samplingTimes = 0: samplingInterval: samplingDuration;
%узактыгына жана интервалына жараша үлгүлөрдүн санын эсептейт
numSamples = узундугу (samplingTimes);
%сактай турган окуулардын саны үчүн температуранын өзгөрмөлөрүн жана өзгөрмөлөрүн алдын ала бөлүштүрөт
tempC = нөлдөр (numSamples, 1);
tempF = tempC;
% темир жолдун максималдуу жана минималдуу температураларын сактоо үчүн киргизүү диалог кутусун колдонуу
dlg_prompts = {'Макс темпти киргизиңиз', 'Мин Темпти киргизиңиз}};
dlg_title = 'Темир жол температурасынын интервалдары';
N = 22;
dlg_ans = inputdlg (dlg_prompts, dlg_title, [1, узундук (dlg_title)+N]);
% Колдонуучунун кириштерин сактоо жана киргизүү жазылганын көрсөтүү
max_temp = str2double (dlg_ans {1})
min_temp = str2double (dlg_ans {2})
txt = sprintf ('Сиздин киргизилгениңиз жазылды');
h = msgbox (txt);
күтүү (h);
% Температураны белгилүү бир жолу окуу үчүн цикл үчүн.
индекс = 1 үчүн: numSamples
% TempPinдеги чыңалууну окуп, өзгөрмө вольт катары сактаңыз
вольт = readVoltage (a, tempPin);
tempC (индекс) = tempCfromVolts (вольт);
tempF (индекс) = tempC (индекс)*9/5+32; % Цельсийден Фаренгейтке которуу
% Кайсы шарт аткарылганына жараша конкреттүү LED чырактарын жасоо боюнча билдирүүлөр
if tempF (index)> = max_temp % Red LED
writeDigitalPin (a, 'D13', 0);
тыным (0,5);
writeDigitalPin (a, 'D13', 1);
тыным (0,5);
writeDigitalPin (a, 'D13', 0);
elseif tempF (index)> = min_temp && tempF (index) <max_temp % Green LED
writeDigitalPin (a, 'D11', 0);
тыным (0,5);
writeDigitalPin (a, 'D11', 1);
тыным (0,5);
writeDigitalPin (a, 'D11', 0);
elseif tempF (index) <= min_temp % Blue LED
writeDigitalPin (a, 'D12', 0);
тыным (0,5);
writeDigitalPin (a, 'D12', 1);
тыным (0,5);
writeDigitalPin (a, 'D12', 0);
аяктоо
% Температураны алар өлчөнгөндөй көрсөтүү
fprintf (' %d секундадагы температура %5.2f C же %5.2f F. / n',…
samplingTimes (индекс), tempC (индекс), tempF (индекс));
пауза (samplingInterval) %кечиктирүү кийинки үлгүгө чейин
аяктоо
% Температуранын көрсөткүчтөрүн пландаштыруу
сүрөт (1)
сюжет (samplingTimes, tempF, 'r-*')
xlabel ('Убакыт (секунд)')
ylabel ('Температура (F)')
аталышы ('RedBoardдун Температура Окуулары')
3 -кадам: Температура сенсорунун чыгышы
![Температура сенсорунун чыгышы Температура сенсорунун чыгышы](https://i.howwhatproduce.com/images/002/image-5673-50-j.webp)
![Температура сенсорунун чыгышы Температура сенсорунун чыгышы](https://i.howwhatproduce.com/images/002/image-5673-51-j.webp)
Жогоруда температура сенсорунун чыгышы үчүн өткөргүчтөр жана MATLAB коду көрсөтүлгөн.
Бул долбоор үчүн биз температура сенсорубуздун чыгышы үчүн үч LED чырак колдондук. Биз тректер өтө ысык болсо, кызыл, эгер өтө муздак болсо көк, экөөнүн ортосунда жашыл түстү колдонгонбуз.
4 -кадам: Жамгыр суусу сенсорунун кириши
![Жамгыр суу сенсорунун кириши Жамгыр суу сенсорунун кириши](https://i.howwhatproduce.com/images/002/image-5673-52-j.webp)
![Жамгыр суусу сенсорунун кириши Жамгыр суусу сенсорунун кириши](https://i.howwhatproduce.com/images/002/image-5673-53-j.webp)
Жогоруда жамгыр суу сенсорунун зымдары бар жана MATLAB коду төмөндө жайгаштырылган.
%% Суу сенсору
баарын тазалоо, clc
a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno');
waterPin = 'A1';
vDry = 4.80; % Суу жок болгондо чыңалуу
samplingDuration = 60;
samplingInterval = 2;
samplingTimes = 0: samplingInterval: samplingDuration;
numSamples = узундугу (samplingTimes);
Белгилүү бир убакытка (60 секунд) чыңалууну окуу үчүн цикл үчүн
индекс = 1 үчүн: numSamples
volt2 = readVoltage (a, waterPin); % Суу пин аналогунан чыңалууну окуу
% Эгерде суу табылса, коңгуроо кагуу үчүн билдирүү. Чыңалуу төмөндөшү = суу
Эгерде volt2 <vDry
playTone (a, 'D09', 2400) % playTone функциясы MathWorksтон
% Суу аныкталса, жүргүнчүлөргө эскертүү көрсөтүү
waitfor (warningdlg ('Сиздин поезд суу коркунучунан улам кармалып калышы мүмкүн'));
аяктоо
% Чыңалууну суу сенсору менен өлчөгүлө
fprintf (' %d секунддагы чыңалуу %5.4f V. / n',…
samplingTimes (индекс), вольт2);
пауза (үлгү алуу аралыгы)
аяктоо
5 -кадам: Жамгыр суусу сенсорунун чыгышы
![Жамгыр суусу сенсорунун чыгышы Жамгыр суусу сенсорунун чыгышы](https://i.howwhatproduce.com/images/002/image-5673-54-j.webp)
Жогоруда трекке суу өтө көп түшкөндө сигнал бере турган сигналдын зымдары бар. Коңгуроонун коду жамгыр суусун киргизүү кодунун ичине камтылган.
6 -кадам: Vibration Sensor Input
![Vibration Sensor Input Vibration Sensor Input](https://i.howwhatproduce.com/images/002/image-5673-55-j.webp)
![Vibration Sensor Input Vibration Sensor Input](https://i.howwhatproduce.com/images/002/image-5673-56-j.webp)
Жогоруда титирөө сенсорунун зымдары бар. Вибрация сенсорлору темир жол системалары үчүн рокко таш түшкөн учурда маанилүү болушу мүмкүн. MATLAB коду төмөндө жайгаштырылган.
%% Vibration Sensor Бардыгын тазалоо, clc
PIEZO_PIN = 'A3'; % Вибрация сенсоруна туташкан аналогдук пин жарыялоо a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno'); % Вибрация үлгүлөрүн өлчөө үчүн убакытты жана интервалды баштооDuration = 30; % Seconds samplingInterval = 1;
samplingTimes = 0: samplingInterval: samplingDuration;
numSamples = узундугу (samplingTimes);
% Төмөнкү булактын кодун колдонуп, биз аны күйгүзүү үчүн өзгөрттүк
Вибрация аныкталса % кочкул кызыл LED.
% SparkFun Tinker Kit, RGB LED, SparkFun Electronics тарабынан жазылган, % Arduino коомчулугунун көп жардамы менен
% Эрик Давишахл тарабынан MATLABка ылайыкташтырылган
% RGB пин орнотуу
RED_PIN = 'D5';
GREEN_PIN = 'D6';
BLUE_PIN = 'D7';
% Виркуляция сенсорунан чыңалуу өзгөрүүлөрүн жазуу үчүн
% белгилүү убакыт аралыгы (30 секунд)
индекс = 1 үчүн: numSamples
volt3 = readVoltage (a, PIEZO_PIN);
% Эгерде дирилдөө аныкталса, кызгылт көк LEDди күйгүзүү үчүн билдирүү
эгерде вольт3> 0,025
writeDigitalPin (a, RED_PIN, 1);
% Кызгылт көк жарыкты жаратуу
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 1);
башка % Эгерде дирилдөө аныкталбаса, LEDди өчүрүңүз.
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 0);
аяктоо
% Чыңалууну өлчөнгөндөй көрсөтүү.
fprintf (' %d секунддагы чыңалуу %5.4f V. / n',…
samplingTimes (индекс), вольт3);
пауза (үлгү алуу аралыгы)
аяктоо
% Дирилдөөнү өлчөөдө жарыкты өчүрүү жасалат
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, GREEN_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 0);
7 -кадам: Vibration Sensor Output
![Vibration Sensor Output Vibration Sensor Output](https://i.howwhatproduce.com/images/002/image-5673-57-j.webp)
Жогоруда RBG LED жарыгынын зымдары колдонулат. Вибрация аныкталганда жарык кызгылт көк түскө боёлот. Чыгуу үчүн MATLAB коду киргизүү кодунун ичине камтылган.
8 -кадам: Жыйынтык
Бул кадамдардын бардыгын аткаргандан кийин, азыр температураны, жамгырдын суусун жана дирилдөөнү аныктоо жөндөмүнө ээ болгон ардуино болушуңуз керек. Бул сенсорлордун кичинекей масштабда кантип иштээрин көрүп жатып, алардын азыркы жашоодо темир жол системалары үчүн канчалык маанилүү экенин элестетүү оңой!
Сунушталууда:
Узун диапазондогу зымсыз температура жана дирилдөө сенсорлору менен иштөөнү баштоо: 7 кадам
![Узун диапазондогу зымсыз температура жана дирилдөө сенсорлору менен иштөөнү баштоо: 7 кадам Узун диапазондогу зымсыз температура жана дирилдөө сенсорлору менен иштөөнү баштоо: 7 кадам](https://i.howwhatproduce.com/images/001/image-149-j.webp)
Узун диапазондогу зымсыз температура жана дирилдөө сенсорлорун баштоо: Кээде дирилдөө көптөгөн колдонмолордо олуттуу көйгөйлөрдүн себеби болуп саналат. Машина шахталары менен подшипниктерден баштап катуу дисктин иштешине чейин, вибрация машинанын бузулушуна, эрте алмаштырууга, начар иштөөгө алып келет жана тактыкка чоң сокку урат. Мониторинг
Arduino жана жамгыр тамчыларынын жардамы менен жамгыр детектору: 8 кадам
![Arduino жана жамгыр тамчыларынын жардамы менен жамгыр детектору: 8 кадам Arduino жана жамгыр тамчыларынын жардамы менен жамгыр детектору: 8 кадам](https://i.howwhatproduce.com/images/001/image-524-20-j.webp)
Жамгыр детектору Arduino жана жамгыр тамчыларынын сенсорун колдонот: Бул үйрөткүчтө жамгырдын сенсорунун жардамы менен жамгырды кантип аныктоону жана ызы -чуу модулун, OLED Display жана Visuino аркылуу үн чыгарууну үйрөнөбүз
Node-REDди колдонуп зымсыз дирилдөө жана температура тууралуу маалыматты Google баракчаларына жөнөтүү: 37 кадам
![Node-REDди колдонуп зымсыз дирилдөө жана температура тууралуу маалыматты Google баракчаларына жөнөтүү: 37 кадам Node-REDди колдонуп зымсыз дирилдөө жана температура тууралуу маалыматты Google баракчаларына жөнөтүү: 37 кадам](https://i.howwhatproduce.com/images/010/image-28733-j.webp)
Node-RED аркылуу Google Барактарына Зымсыз Дирилдөө жана Температура Маалыматтарын Жөнөтүү: NCDдин Узун Аралыктагы IoT Өнөр жай зымсыз титирөө жана температура сенсорун киргизүү, 2 милге чейин зымсыз сетка тармагын колдонуу менен мактануу. Так 16 биттик титирөө жана температура сенсорун камтыган бул аппарат
Температура сенсорлорун текшерүү - Мен үчүн кайсынысы?: 15 кадам (Сүрөттөр менен)
![Температура сенсорлорун текшерүү - Мен үчүн кайсынысы?: 15 кадам (Сүрөттөр менен) Температура сенсорлорун текшерүү - Мен үчүн кайсынысы?: 15 кадам (Сүрөттөр менен)](https://i.howwhatproduce.com/images/002/image-4560-95-j.webp)
Температура сенсорлорун тестирлөө - Мен үчүн кайсынысы?: Физикалык эсептөөгө жаңы келгендер температураны өлчөөчү нерселерди сынап көргүсү келген биринчи сенсорлордун бири. Эң популярдуу сенсорлордун төртөө - аналогдук чыгууга ээ болгон жана санариптик которгучтун аналогуна муктаж болгон TMP36, DS18B20
Жамгыр суусу: 11 кадам (сүрөттөр менен)
![Жамгыр суусу: 11 кадам (сүрөттөр менен) Жамгыр суусу: 11 кадам (сүрөттөр менен)](https://i.howwhatproduce.com/images/001/image-818-130-j.webp)
Жамгыр суусу: Катуу жамгыр биздин үстүбүзгө толуп кетишине себеп болушу мүмкүн: тротуарлар, жамгыр суусу кудуктары, полдор жана биздин дамбалар. Мунун алдын алуу үчүн биз жамгыр суусунун шлюзун ойлоп таптык! Жамгыр суусу шлюзи жамгырдын ортосундагы аралыкты санарип түрдө эсептейт