Оглавление:
- Шаг 1. Материалы и принадлежности
- Шаг 2: Настройка платы
- Шаг 3: Написание кода
- Шаг 4. Скопируйте код
- Шаг 5: результаты
Видео: Датчик температуры Desert Railroad и счетчик пассажиров: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Цель:
Температура: это руководство научит вас, как настроить и запрограммировать 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: результаты
Рекомендуемые:
Датчик температуры и освещенности: 8 шагов
Датчик температуры и освещенности: эта инструкция предназначена для базового датчика температуры и освещенности. Вот об этом
Датчик / датчик температуры двигателя с беспроводным датчиком для классических автомобилей: 7 шагов
Датчик / датчик температуры двигателя с беспроводным датчиком для классических автомобилей: я сделал этот датчик для своего любимого Çipitak. Автомобиль fiat 126 с 2-цилиндровым двигателем с воздушным охлаждением под задним капотом. У ipitak нет датчика температуры, показывающего, насколько горячий двигатель, поэтому я подумал, что датчик будет полезен. Также хотел, чтобы датчик был проводным
ESP8266 NodeMCU Access Point (AP) для веб-сервера с датчиком температуры DT11 и печатью температуры и влажности в браузере: 5 шагов
ESP8266 NodeMCU Access Point (AP) для веб-сервера с датчиком температуры DT11 и печатью температуры и влажности в браузере: Привет, ребята, в большинстве проектов мы используем ESP8266, а в большинстве проектов мы используем ESP8266 в качестве веб-сервера, чтобы данные могли быть доступны на любое устройство через Wi-Fi, получив доступ к веб-серверу, размещенному на ESP8266, но единственная проблема в том, что нам нужен рабочий маршрутизатор для
Счетчик Гейгера счетчик PKE: 7 шагов (с изображениями)
Счетчик Гейгера PKE Meter: Я давно хотел построить счетчик Гейгера, чтобы дополнить мою охлаждаемую камеру Пельтье. Есть (надеюсь) не очень полезная цель владения счетчиком Гейгера, но мне просто нравятся старые русские лампы, и я подумал, что это будет
Датчик движения / счетчик контролируемых огней: 7 шагов
Освещение с датчиком движения / счетчиком: этот проект был создан как заключительный проект для курса цифрового дизайна в Калифорнийском Поли, Сан-Луис-Обиспо (CPE 133). Почему мы это делаем? Мы хотим помочь сохранить природные ресурсы в мире. Наш проект ориентирован на экономию электроэнергии. Сохраняя больше элементов