Мазмуну:
- 1 -кадам: материалдар жана материалдар
- 2 -кадам: Board орнотуу
- 3 -кадам: Код жазуу
- 4 -кадам: Кодду көчүрүү
- 5 -кадам: Жыйынтыктар
Video: Desert темир жолунун температура детектору жана жүргүнчүлөрдү эсептегич: 5 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Максаты:
Температура: Бул көрсөтмө сизге темир жолдун температурасын аныктоо үчүн Arduino RedBoard (MATLAB аркылуу) орнотууну жана программалоону үйрөтөт. Жүргүнчүлөр үчүн кооптуу температурага жеткенде, эскертүүчү билдирүү угулат, ызылдагандар өчөт жана эскертүү белгиси күйөт.
Жүргүнчүлөрдү эсептегич: Бул бөлүк сизге жүргүнчүлөрдү эсептөө үчүн баскычты колдонууну үйрөтөт жана максималдуу сыйымдуулукка жеткенде эскертүү берет.
Өзгөчөлүктөрү:
- Поездге кирген жүргүнчүлөрдү эсептөө үчүн баскычты колдонот
- Темир жолдун температурасын аныктоо үчүн TMP36 (температура сенсору) колдонот
- Темир жол станциясына эскертүү берүү үчүн Кызыл LED чырак колдонулат
- Ойготкуч үчүн сигналдарды колдонот
- Температура менен убакытты камтыган эскертүү электрондук кат жөнөтөт
- MATLAB боюнча калкыма эскертүү билдирүүлөрү
1 -кадам: материалдар жана материалдар
- 1 ноутбук
- MATLAB 2017
- Arduino Toolboxту жүктөп алыңыз
- Sparkfun RedBoard
- 1 Power Cable
- Breadbord
- 14 зым
- 1 Piezo Buzzer
- 1 баскыч
- 2 10k ohm резисторлор
- 1 TMP36 сенсор
- Кызыл LED жарык
- 3D басылган белги (милдеттүү эмес)
2 -кадам: Board орнотуу
Жогорудагы орнотууну ээрчиңиз
3 -кадам: Код жазуу
Цикл: коддун температураны текшерүүсүн жана баскычтын абалын сезүүсүн камсыз кылуу үчүн (басылган же басылбаган), биз кодду белгилүү бир убакыт аралыгында while циклине жайгаштырабыз.
TMP36 колдонуу: Конверсиялык факторлорду колдонуу менен температураны чыңалууну окуп, Фаренгейт градусына айландыруу менен аныктайбыз. Андан кийин, биз эгерде темп белгиленген максималдуу температурадан чоң же ага барабар болсо, үн билдирүү жана үн чыгаруу/эскертүүлөрдү жөнөтүү үчүн if операторун колдонобуз.
Баскычты колдонуу: if операторунун жардамы менен, биз баскычтын readDigitalPin аркылуу басылганын текшере алабыз. Бул буйрук логикалык (1 же 0) кайтып келет. Эгерде жооп 0 болсо, анда баскыч басылып, жүргүнчүлөрдүн эсептегичи көбөйүп, саламдашуу билдирүүсү көрсөтүлөт. Андан кийин, максималдуу кубаттуулукка жеткенде, эскертүүчү билдирүү угулат.
4 -кадам: Кодду көчүрүү
%Киргизүүлөр: Баскычты басуу, температура сенсору
%Чыгыштар: жарыктар, сигналдар, аудио эскертүү, электрондук каттар, графиктер
%Максаты: Бул продукт чөл менен поезд менен бараткан %жүргүнчүлөрдүн коопсуздугун жана жайлуулугун камсыздоого жардам берүү үчүн иштелип чыккан.
%Колдонуу: Баскычтын жардамы менен жүргүнчүлөрдүн санын аныктоо жана %температура сенсорунун жардамы менен жылуулукту аныктоо жана аны график кылуу жана %жүргүнчүлөрдүн санын жана температура графигин темир жол станциясына жөнөтөт
configurePin (a, 'D2', 'pullup'); %келечектеги релиздерде configurePin колдонот
убакыт = 200;
e = 0;
x = 0
убакыт> 0
button_status = readDigitalPin (a, 'D2'); Кнопка басылганда % нөлгө барабар, болбосо 1ге барабар
Voltage = readVoltage (a, 'A0');%пин биз койгон жерге көз каранды
tempCelcius = (чыңалуу*100) -50; %сенсордун колдонмосунда берилген
tempF (убакыт) = (tempCelcius*1.8) +32 %белгилүү формула
max = 120; %градус F
writeDigitalPin (a, 'D11', 1);
rem = mod (e, 2);
if tempF (time)> = max
writeDigitalPin (a, 'D11', 0);
writeDigitalPin (a, 'D9', 1);
playTone (a, 'D9', 2400,.5)
тындыруу (.5)
writeDigitalPin (a, 'D6', 1)
playTone (a, 'D6', 1000,.5)
тындыруу (.5)
writeDigitalPin (a, 'D9', 1);
playTone (a, 'D9', 2400,.5)
тындыруу (.5)
writeDigitalPin (a, 'D6', 1)
playTone (a, 'D6', 1000,.5) %"сиренаны" ойнойт
z = 'Overheat.m4a'; %Бул үн файлын өзгөрмөгө киргизет
[маалымат, freq] = аудио окуу (z); %Үн файлынан маалыматтарды жүктөйт
o = аудио ойнотуучу (маалымат, жыштык); %Аудио файлдын ойнотулушун көзөмөлдөө үчүн объект түзөт
o.play () %Аудио файлды ойнотот
o.playblocking () %Файлды ойнотот жана анын бүтүшүн күтөт
аяктоо
if button_status == 0 && rem == 0
e = e+1
msgbox ('Кош келиңиз! );
elseif button_status == 0 && rem == 1
e = e+1
msgbox ('Bienvenido a bordo!');
аяктоо
эгер e == 5
writeDigitalPin (a, 'D11', 0);
эгер x == 0
playTone (a, 'D6', 600, 1);
s = 'Warning_EF.m4a'; %Бул үн файлын өзгөрмөгө киргизет
[маалыматтар, freq] = аудио окуу (лар); %Үн файлынан маалыматтарды жүктөйт
o = аудио ойнотуучу (маалымат, жыштык); %Аудио файлдын ойнотулушун көзөмөлдөө үчүн объект түзөт
% o.play () % Аудио файлды ойнотот
o.playblocking () %Файлды ойнотот жана анын бүтүшүн күтөт
msgbox ('Max Capacity')
x = x+1
аяктоо
elseif e> = 6
playTone (a, 'D6', 2400, 0);
аяктоо
убакыт = убакыт - 1;
% тыным (0.1);
% эгерде e == 5 && max (tempF)> = 120
% убакыт = 0
% аягы
аяктоо
ee = num2str (e)
t = [1: 200];
tempF2 = fliplr (tempF);
сюжет (t, tempF2);
аталышы ('Убакыт vs. Температура')
ylabel ('Температура (F)')
xlabel ('Time (s)')
сактоо (gcf, 'tempplot.jpg')
почта = '[email protected]'
password = 'Srsora123#'
хост = 'smtp.gmail.com'
setpref ('Интернет', 'SMTP_Server', хост);
setpref ('Интернет', 'E_mail', почта);
setpref ('Интернет', 'SMTP_Username', почта);
setpref ('Интернет', 'SMTP_Password', пароль);
реквизиттер = java.lang. System.getProperties;
props.setProperty ('mail.smtp.auth', 'true');
props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory');
props.setProperty ('mail.smtp.socketFactory.port', '465');
sendmail (почта, 'Hello Train Station! Поездде көптөгөн жүргүнчүлөр бар', ee, 'tempplot.jpg')
5 -кадам: Жыйынтыктар
Сунушталууда:
Клавиатура менен башкарылган модель темир жолунун жайгашуусу V2.5 - PS/2 Interface: 12 кадам
Клавиатура менен башкарылган модель темир жолунун жайгашуусу V2.5 | PS/2 Interface: Arduino микроконтроллерлерин колдонуп, темир жолдун моделдерин башкаруунун көптөгөн жолдору бар. Баскычтоптун көптөгөн артыкчылыктары бар, алар көптөгөн функцияларды кошуу үчүн көптөгөн баскычтарга ээ. Бул жерде локомотив менен жөнөкөй макетти кантип баштоону карап көрөлү
555 Таймер он жылдыкты эсептегич жана LEDS жана Piezo Buzzer менен; Райондун негизги сыпаттамасы: 6 кадам
555 Таймер он жылдыкты эсептегич жана LEDS жана Piezo Buzzer менен; микросхеманын негизги сыпаттамасы: Бул схема үч бөлүктөн турат. Алар үн чыгаруучу пьезо баззери. Код (программа) " Туулган күнүң менен " piezo аркылуу Arduino. Кийинки кадам сааттын милдетин аткаруучу импульстарды чыгаруучу 555 таймер болуп саналат
Темир жолдорду коргоо үчүн Arduinoдо температура, жамгыр суусу жана дирилдөө сенсорлорун колдонуу: 8 кадам (сүрөттөр менен)
Темир жолдорду коргоо үчүн Arduinoдогу температура, жамгыр суусу жана дирилдөө сенсорлорун колдонуу: Заманбап коомдо темир жолчулардын көбөйүшү темир жол компаниялары суроо-талапка жооп берүү үчүн тармактарды оптималдаштыруу үчүн дагы көп нерселерди жасашы керек дегенди билдирет. Бул долбоордо биз кичине масштабда температура, жамгыр суусу жана дирилдөө сенсорлорунун кандай экенин көрсөтөбүз
Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: 13 кадам (сүрөттөр менен)
Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: Киришүү: Бул Ардуино тактасын, Sensor (DHT11), Windows компьютери жана Processing (бекер жүктөлүүчү) программасын колдонуп, Температураны, Нымдуулукту санариптик жана тилке графасынын формасы, убакытты жана күндү көрсөтүү жана эсептөө убактысын иштетүү
Чагылган детектору жана эсептегич: 8 кадам (сүрөттөр менен)
Чагылган детектору жана эсептегич: Мен ар дайым чагылган детекторун жасагым келген, бирок схемалардын схемаларын менин мүмкүнчүлүктөрүмдөн бир аз ашкан. Жакында торду кыдырып жүргөндө, мен чагылган түшкөнүн эсептеген абдан сонун схемага туш келдим! Карагандан кийин