Оглавление:

Датчик температуры Desert Railroad и счетчик пассажиров: 5 шагов
Датчик температуры Desert Railroad и счетчик пассажиров: 5 шагов

Видео: Датчик температуры Desert Railroad и счетчик пассажиров: 5 шагов

Видео: Датчик температуры Desert Railroad и счетчик пассажиров: 5 шагов
Видео: БОКОВУШЕЧКА У ТУАЛЕТА в плацкарте 2024, Ноябрь
Anonim
Датчик температуры пустынной железной дороги и счетчик пассажиров
Датчик температуры пустынной железной дороги и счетчик пассажиров

Цель:

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

Счетчик пассажиров: в этой части вы узнаете, как использовать кнопку для подсчета пассажиров и подавать предупреждение при достижении максимальной вместимости.

Функции:

  • Использует кнопку для подсчета пассажиров, заходящих в поезд
  • Использует TMP36 (датчик температуры) для определения температуры на железной дороге
  • Использует красный светодиод, чтобы предупредить вокзал
  • Использует зуммеры для подачи сигналов тревоги
  • Отправляет оповещение по электронной почте с графиком зависимости температуры от времени.
  • Всплывающие предупреждающие сообщения на MATLAB

Шаг 1. Материалы и принадлежности

Материалы и принадлежности
Материалы и принадлежности
  • 1 ноутбук
  • MATLAB 2017
  • Скачать Arduino Toolbox
  • Sparkfun RedBoard
  • 1 кабель питания
  • Breadbord
  • 14 проводов
  • 1 пьезо-зуммер
  • 1 кнопка
  • 2 резистора по 10 кОм
  • 1 датчик TMP36
  • Красный светодиодный индикатор
  • Знак, напечатанный на 3D-принтере (по желанию)

Шаг 2: Настройка платы

Настройка платы
Настройка платы

Следуйте инструкциям выше

Шаг 3: Написание кода

Цикл while: чтобы код продолжал проверять температуру и определять состояние кнопки (нажата или не нажата), мы помещаем код в цикл while на определенный период времени.

Использование TMP36: мы определяем температуру, считывая напряжение и преобразуя его в градусы Фаренгейта, используя коэффициенты преобразования. Затем мы используем оператор if для воспроизведения тонального сигнала и звука / отправки предупреждений, если температура больше или равна установленной максимальной температуре.

Использование кнопки: с помощью оператора if мы можем проверить, была ли нажата кнопка, с помощью readDigitalPin. Эта команда вернет логическое значение (1 или 0). Если ответ 0, значит была нажата кнопка и счетчик пассажиров увеличивается и отображается приветственное сообщение. Затем, когда будет достигнута максимальная емкость, прозвучит предупреждающее сообщение.

Шаг 4. Скопируйте код

% Входы: нажатие кнопки, датчик температуры

% Выходы: индикаторы, зуммеры, звуковое оповещение, электронные письма, графики

% Назначение: Этот продукт разработан для обеспечения безопасности и комфорта% пассажиров, путешествующих поездом по пустыне.

% Использование: определение количества пассажиров с помощью кнопки и% обнаружения тепла с помощью датчика температуры и построение графика, а также отправка% количества пассажиров и графика температуры на вокзал.

configurePin (a, 'D2', 'pullup'); % в будущих выпусках использовать configurePin

время = 200;

е = 0;

х = 0

пока время> 0

button_status = readDigitalPin (а, 'D2'); % равен нулю при нажатии кнопки, в противном случае равен 1

Voltage = readVoltage (a, 'A0'); вывод% зависит от того, где мы его разместили

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

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

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

writeDigitalPin (а, 'D11', 1);

rem = mod (e, 2);

если tempF (время)> = макс.

writeDigitalPin (a, 'D11', 0);

writeDigitalPin (а, 'D9', 1);

playTone (a, 'D9', 2400,.5)

пауза (.5)

writeDigitalPin (a, 'D6', 1)

playTone (a, 'D6', 1000,.5)

пауза (.5)

writeDigitalPin (а, 'D9', 1);

playTone (a, 'D9', 2400,.5)

пауза (.5)

writeDigitalPin (a, 'D6', 1)

playTone (a, 'D6', 1000,.5)% играет "сирену"

z = 'Перегрев.m4a'; % Это помещает звуковой файл в переменную

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

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

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

o.playblocking ()% Воспроизводит файл и ожидает его завершения

конец

если button_status == 0 && rem == 0

е = е + 1

msgbox («Добро пожаловать на борт!»);

elseif button_status == 0 && rem == 1

е = е + 1

msgbox ('Bienvenido a bordo!');

конец

если e == 5

writeDigitalPin (a, 'D11', 0);

если x == 0

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

s = 'Предупреждение_EF.m4a'; % Это помещает звуковой файл в переменную

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

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

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

o.playblocking ()% Воспроизводит файл и ожидает его завершения

msgbox ("Максимальная емкость")

х = х + 1

конец

иначе, если е> = 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);

title ("Время против температуры")

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

xlabel ('Время (а)')

saveas (gcf, 'tempplot.jpg')

mail = '[email protected]'

пароль = 'Srsora123 #'

host = 'smtp.gmail.com'

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

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

setpref ('Интернет', 'SMTP_Username', почта);

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

props = 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 (mail, 'Здравствуйте, вокзал! В поезде столько пассажиров', ee, 'tempplot.jpg')

Шаг 5: результаты

Рекомендуемые: