Съдържание:

Детектор за температура на пустинята и брояч на пътници: 5 стъпки
Детектор за температура на пустинята и брояч на пътници: 5 стъпки

Видео: Детектор за температура на пустинята и брояч на пътници: 5 стъпки

Видео: Детектор за температура на пустинята и брояч на пътници: 5 стъпки
Видео: 3000+ Common Spanish Words with Pronunciation 2024, Юли
Anonim
Детектор за температура на пустинята и брояч на пътници
Детектор за температура на пустинята и брояч на пътници

Предназначение:

Температура: Тази инструкция ще ви научи как да настроите и програмирате Arduino RedBoard (използвайки MATLAB) за откриване на температурата на железопътна линия. Когато се достигне опасна температура за пътниците, се чува предупредително съобщение, звукови сигнали изгасват и светва предупредителен знак.

Брояч на пътници: Тази част ще ви научи как да използвате бутон, за да броите пътниците и да издадете предупреждение, когато бъде достигнат максимален капацитет.

Характеристика:

  • Използва бутона за преброяване на пътниците, влизащи във влака
  • Използва TMP36 (температурен сензор) за откриване на температурата на железницата
  • Използва червена LED светлина, за да предупреди гарата
  • Използва звукови сигнали за звукова аларма
  • Изпраща предупредителен имейл с график на температурата спрямо времето
  • Изскачащи предупредителни съобщения в MATLAB

Стъпка 1: Материали и консумативи

Материали и консумативи
Материали и консумативи
  • 1 лаптоп
  • MATLAB 2017 г.
  • Изтеглете Arduino Toolbox
  • Sparkfun RedBoard
  • 1 Захранващ кабел
  • Breadbord
  • 14 жици
  • 1 пиезо зумер
  • 1 Натиснете бутона
  • 2 10k ома резистора
  • 1 сензор TMP36
  • Червена LED светлина
  • 3D отпечатан знак (по избор)

Стъпка 2: Настройка на борда

Настройка на борда
Настройка на борда

Следвайте настройките по -горе

Стъпка 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

напрежение = readVoltage (a, 'A0');%пин зависи от това къде го поставяме

tempCelcius = (напрежение*100) -50; %, дадени в ръководството за сензора

tempF (време) = (tempCelcius*1.8) +32 %известна формула за преобразуване

макс = 120; %градуса F.

writeDigitalPin (a, 'D11', 1);

rem = mod (e, 2);

ако tempF (време)> = макс

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 = 'Прегряване.m4a'; %Това поставя звуковия файл в променлива

[данни, честота] = аудиопрочитане (z); %Зарежда данни от звуков файл

o = аудиоплейър (данни, честота); %Създава обект, който да контролира възпроизвеждането на аудио файла

o.play () %Възпроизвежда аудио файл

o.playblocking () %Възпроизвежда файла и чака да завърши

край

ако button_status == 0 && rem == 0

e = e+1

msgbox ('Добре дошли на борда!');

elseif button_status == 0 && rem == 1

e = e+1

msgbox ('Bienvenido a bordo!');

край

ако е == 5

writeDigitalPin (a, 'D11', 0);

ако x == 0

playTone (a, 'D6', 600, 1);

s = 'Warning_EF.m4a'; %Това поставя звуковия файл в променлива

[данни, честота] = аудиопрочитане (и); %Зарежда данни от звуков файл

o = аудиоплейър (данни, честота); %Създава обект, който да контролира възпроизвеждането на аудио файла

% o.play () % Възпроизвежда аудио файл

o.playblocking () %Възпроизвежда файла и чака да завърши

msgbox ('Максимален капацитет')

x = x+1

край

иначе 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);

заглавие („Време спрямо температура“)

ylabel ('Температура (F)')

xlabel ('Време (и)')

saveas (gcf, 'tempplot.jpg')

поща = '[email protected]'

password = 'Srsora123#'

host = 'smtp.gmail.com'

setpref ('Интернет', 'SMTP_Server', хост);

setpref ('Интернет', 'E_mail', поща);

setpref ('Интернет', 'SMTP_Потребителско име', поща);

setpref ('Интернет', 'SMTP_Password', парола);

реквизит = java.lang. System.getProperties;

props.setProperty ('mail.smtp.auth', 'вярно');

props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory');

props.setProperty ('mail.smtp.socketFactory.port', '465');

sendmail (поща, „Здравей, ЖП гара! Има толкова много пътници във влака“, ее, „tempplot.jpg“)

Стъпка 5: Резултати

Препоръчано: