Table des matières:

Détecteur de température et compteur de passagers Desert Railroad : 5 étapes
Détecteur de température et compteur de passagers Desert Railroad : 5 étapes

Vidéo: Détecteur de température et compteur de passagers Desert Railroad : 5 étapes

Vidéo: Détecteur de température et compteur de passagers Desert Railroad : 5 étapes
Vidéo: Cette Fille a 200 de QI 2024, Juillet
Anonim
Détecteur de température et compteur de passagers Desert Railroad
Détecteur de température et compteur de passagers Desert Railroad

But:

Température: cette instructable vous apprendra comment configurer et programmer un Arduino RedBoard (à l'aide de MATLAB) pour détecter la température d'un chemin de fer. Lorsqu'une température dangereuse pour les passagers est atteinte, un message d'avertissement retentit, des avertisseurs sonores se déclenchent et un panneau d'avertissement s'allume.

Compteur de passagers: cette partie vous apprendra comment utiliser un bouton pour compter les passagers et émettre un avertissement lorsque la capacité maximale est atteinte.

Caractéristiques:

  • Utilise le bouton pour compter les passagers entrant dans le train
  • Utilise le TMP36 (capteur de température) pour détecter la température du chemin de fer
  • Utilise une lumière LED rouge pour avertir la gare
  • Utilise des buzzers pour déclencher l'alarme
  • Envoie un e-mail d'alerte avec un graphique de la température en fonction du temps
  • Messages d'avertissement contextuels sur MATLAB

Étape 1: Matériaux et fournitures

Matériaux et fournitures
Matériaux et fournitures
  • 1 ordinateur portable
  • MATLAB 2017
  • Télécharger la boîte à outils Arduino
  • Tableau Rouge Sparkfun
  • 1 câble d'alimentation
  • Planche à pain
  • 14 fils
  • 1 buzzer piézo
  • 1 bouton poussoir
  • 2 résistances de 10k ohms
  • 1 capteur TMP36
  • Lumière LED rouge
  • Panneau imprimé en 3D (facultatif)

Étape 2: configuration de la carte

Configuration de la carte
Configuration de la carte

Suivez la configuration ci-dessus

Étape 3: Rédaction du code

Boucle While: pour garantir que le code continue de tester la température et de détecter l'état du bouton (appuyé ou non enfoncé), nous plaçons le code dans la boucle while pendant une période de temps spécifiée.

Utilisation du TMP36: nous déterminons la température en lisant la tension et en la convertissant en degrés Fahrenheit, à l'aide de facteurs de conversion. Ensuite, nous utilisons une instruction if pour jouer une tonalité et sonner/envoyer des alertes si la température est supérieure ou égale à la température maximale définie

Utilisation du bouton: avec une instruction if, nous pouvons tester si le bouton a été enfoncé à l'aide de readDigitalPin. Cette commande renverra un booléen (1 ou 0). Si la réponse est 0, alors le bouton a été enfoncé et le compteur de passagers augmente et affiche un message de bienvenue. Ensuite, lorsque la capacité maximale est atteinte, un message d'avertissement retentit.

Étape 4: copiez le code

%Entrées: Appuyer sur le bouton, capteur de température

%Sorties: lumières, buzzers, alerte audio, e-mails, graphiques

% Objectif: ce produit est conçu pour assurer la sécurité et le confort des % passagers voyageant en train dans le désert.

% Utilisation: détection du nombre de passagers à l'aide d'un bouton-poussoir et % détection de la chaleur à l'aide d'un capteur de température et graphique et envoi à la fois du nombre de passagers et du graphique de température à la gare

configurePin(a, 'D2', 'pullup'); %dans les futures versions, utilisez configurePin

temps = 200;

e=0;

x=0

pendant que le temps > 0

button_status = readDigitalPin(a, 'D2'); % est égal à zéro lorsque le bouton est enfoncé, sinon égal à 1

voltage = readVoltage(a, 'A0');%pin dépend de l'endroit où nous le plaçons

tempCelcius = (tension*100)-50; % donné dans le manuel du capteur

tempF(time) = (tempCelcius*1.8)+32% formule de conversion connue

max = 120; %degrés F

writeDigitalPin(a, 'D11', 1);

rem=mod(e, 2);

si tempF(temps)>=max

writeDigitalPin(a, 'D11', 0);

writeDigitalPin(a, 'D9', 1);

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

pause(.5)

writeDigitalPin(a, 'D6', 1)

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

pause(.5)

writeDigitalPin(a, 'D9', 1);

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

pause(.5)

writeDigitalPin(a, 'D6', 1)

playTone(a, 'D6', 1000,.5) % joue "sirène"

z='Surchauffe.m4a'; %Cela met le fichier son dans une variable

[données, fréquence]=audioread(z); %Charge les données du fichier son

o=audioplayer(data, freq); %Crée un objet pour contrôler la lecture du fichier audio

o.play() % Lit le fichier audio

o.playblocking() % Lit le fichier et attend qu'il se termine

finir

si button_status == 0 && rem==0

e=e+1

msgbox('Bienvenue à bord !');

elseif button_status == 0 && rem==1

e=e+1

msgbox('Bienvenue à bord !');

finir

si e==5

writeDigitalPin(a, 'D11', 0);

si x==0

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

s='Avertissement_EF.m4a'; %Cela met le fichier son dans une variable

[data, freq]=audioread(s); %Charge les données du fichier son

o=audioplayer(data, freq); %Crée un objet pour contrôler la lecture du fichier audio

% o.play() % Lit le fichier audio

o.playblocking() % Lit le fichier et attend qu'il se termine

msgbox('Capacité maximale')

x=x+1

finir

sinon e>=6

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

finir

heure = heure - 1;

% pause(0.1);

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

% temps=0

% finir

finir

ee=num2str(e)

t=[1:200];

tempF2=fliplr(tempF);

plot(t, tempF2);

title('Temps vs Température')

ylabel('Température(F)')

xlabel('Heure(s)')

saveas(gcf, 'tempplot.jpg')

mail= '[email protected]'

mot de passe='Srsora123#'

hôte='smtp.gmail.com'

setpref('Internet', 'SMTP_Server', hôte);

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

setpref('Internet', 'SMTP_Nom d'utilisateur', courrier);

setpref('Internet', 'Mot de passe_SMTP', mot de passe);

props = 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(mail, 'Bonjour la gare ! Il y a autant de passagers dans le train', ee, 'tempplot.jpg')

Étape 5: Résultats

Conseillé: