Tabla de contenido:

Detector de temperatura del ferrocarril del desierto y contador de pasajeros: 5 pasos
Detector de temperatura del ferrocarril del desierto y contador de pasajeros: 5 pasos

Video: Detector de temperatura del ferrocarril del desierto y contador de pasajeros: 5 pasos

Video: Detector de temperatura del ferrocarril del desierto y contador de pasajeros: 5 pasos
Video: Personas Con Peor Suerte Del Mundo 2024, Noviembre
Anonim
Detector de temperatura y contador de pasajeros del ferrocarril del desierto
Detector de temperatura y contador de pasajeros del ferrocarril del desierto

Objetivo:

Temperatura: este instructivo le enseñará cómo configurar y programar un Arduino RedBoard (usando MATLAB) para detectar la temperatura de un ferrocarril. Cuando se alcanza una temperatura peligrosa para los pasajeros, suena un mensaje de advertencia, se activan los timbres y se enciende una señal de advertencia.

Contador de pasajeros: esta parte le enseñará cómo usar un botón para contar pasajeros y hacer sonar una advertencia cuando se haya alcanzado la capacidad máxima.

Características:

  • Utiliza el botón para contar los pasajeros que ingresan al tren
  • Utiliza TMP36 (sensor de temperatura) para detectar la temperatura del ferrocarril
  • Utiliza una luz LED roja para advertir a la estación de tren.
  • Utiliza zumbadores para hacer sonar la alarma.
  • Envía un correo electrónico de alerta con un gráfico de temperatura frente al tiempo
  • Mensajes de advertencia emergentes en MATLAB

Paso 1: Materiales y suministros

Materiales y suministros
Materiales y suministros
  • 1 portátil
  • MATLAB 2017
  • Descarga Arduino Toolbox
  • Sparkfun RedBoard
  • 1 cable de alimentación
  • Breadbord
  • 14 hilos
  • 1 zumbador piezoeléctrico
  • 1 pulsador
  • 2 resistencias de 10k ohmios
  • 1 sensor TMP36
  • Luz LED roja
  • Letrero impreso en 3D (opcional)

Paso 2: Configuración de la placa

Configuración de la placa
Configuración de la placa

Siga la configuración anterior

Paso 3: escribir el código

Bucle while: para garantizar que el código continúe probando la temperatura y detecte el estado del botón (presionado o sin presionar), colocamos el código en el bucle while durante un período de tiempo específico.

Usando TMP36: determinamos la temperatura leyendo el voltaje y convirtiéndolo a grados Fahrenheit, usando factores de conversión. Luego, usamos una declaración if para reproducir un tono y sonar / enviar alertas si la temperatura es mayor o igual a la temperatura máxima establecida

Usando Button: Con una declaración if, podemos probar si el botón fue presionado usando readDigitalPin. Este comando devolverá un booleano (1 o 0). Si la respuesta es 0, entonces se presionó el botón y el contador de pasajeros aumenta y muestra un mensaje de bienvenida. Luego, cuando se alcanza la capacidad máxima, suena un mensaje de advertencia.

Paso 4: copia el código

% De entradas: pulsando el botón, sensor de temperatura

% De salidas: luces, timbres, alerta de audio, correos electrónicos, gráficos

% Propósito: este producto está diseñado para ayudar a garantizar la seguridad y la comodidad de los% pasajeros que viajan en tren por el desierto.

% De uso: Detecta el número de pasajeros usando un botón, y% detecta el calor usando un sensor de temperatura y lo grafica y envía tanto el número de pasajeros como el gráfico de temperatura a la estación de tren.

configurePin (a, 'D2', 'pullup'); % en versiones futuras use configurePin

tiempo = 200;

e = 0;

x = 0

mientras que el tiempo> 0

button_status = readDigitalPin (a, 'D2'); % es igual a cero cuando se presiona el botón; de lo contrario, es igual a 1

voltage = readVoltage (a, 'A0');% pin depende de dónde lo coloquemos

tempCelcius = (voltaje * 100) -50; % dado en el manual del sensor

tempF (tiempo) = (tempCelcius * 1.8) +32% fórmula de conversión conocida

max = 120; % grados F

writeDigitalPin (a, 'D11', 1);

rem = mod (e, 2);

si tempF (tiempo)> = max

writeDigitalPin (a, 'D11', 0);

writeDigitalPin (a, 'D9', 1);

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

pausa (.5)

writeDigitalPin (a, 'D6', 1)

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

pausa (.5)

writeDigitalPin (a, 'D9', 1);

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

pausa (.5)

writeDigitalPin (a, 'D6', 1)

playTone (a, 'D6', 1000,.5)% reproduce "sirena"

z = 'Sobrecalentamiento.m4a'; % Esto coloca el archivo de sonido en una variable

[datos, frecuencia] = lectura de audio (z); % Carga datos del archivo de sonido

o = reproductor de audio (datos, frecuencia); % Crea un objeto para controlar la reproducción del archivo de audio

o.play ()% Reproduce archivos de audio

o.playblocking ()% Reproduce el archivo y espera a que termine

fin

if button_status == 0 && rem == 0

e = e + 1

msgbox ('¡Bienvenido a bordo!');

elseif button_status == 0 && rem == 1

e = e + 1

msgbox ('¡Bienvenido a bordo!');

fin

si e == 5

writeDigitalPin (a, 'D11', 0);

si x == 0

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

s = 'Advertencia_EF.m4a'; % Esto coloca el archivo de sonido en una variable

[datos, frecuencia] = audiolectura (s); % Carga datos del archivo de sonido

o = reproductor de audio (datos, frecuencia); % Crea un objeto para controlar la reproducción del archivo de audio

% o.play ()% Reproduce archivo de audio

o.playblocking ()% Reproduce el archivo y espera a que termine

msgbox ('Capacidad máxima')

x = x + 1

fin

elseif e> = 6

playTone (a, 'D6', 2400, 0);

fin

tiempo = tiempo - 1;

% de pausa (0,1);

% si e == 5 && max (tempF)> = 120

% tiempo = 0

% fin

fin

ee = num2str (e)

t = [1: 200];

tempF2 = fliplr (tempF);

plot (t, tempF2);

título ('Tiempo frente a temperatura')

ylabel ('Temperatura (F)')

xlabel ('Hora (s)')

saveas (mcd, 'tempplot.jpg')

mail = '[email protected]'

contraseña = 'Srsora123 #'

host = 'smtp.gmail.com'

setpref ('Internet', 'SMTP_Server', host);

setpref ('Internet', 'E_mail', correo);

setpref ('Internet', 'SMTP_Username', correo);

setpref ('Internet', 'SMTP_Password', contraseña);

props = java.lang. System.getProperties;

props.setProperty ('mail.smtp.auth', 'verdadero');

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

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

sendmail (mail, 'Hello Train Station! Hay tantos pasajeros en el tren', ee, 'tempplot.jpg')

Paso 5: resultados

Recomendado: