Table des matières:
- Étape 1: Pièces et matériaux
- Étape 2: Câblage du capteur de température
- Étape 3: sortie du capteur de température
- Étape 4: Entrée du capteur d'eau de pluie
- Étape 5: Sortie du capteur d'eau de pluie
- Étape 6: Entrée du capteur de vibration
- Étape 7: Sortie du capteur de vibrations
- Étape 8: Conclusion
Vidéo: Utilisation de capteurs de température, d'eau de pluie et de vibrations sur un Arduino pour protéger les chemins de fer : 8 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
Dans la société d'aujourd'hui, l'augmentation du nombre de passagers ferroviaires signifie que les entreprises ferroviaires doivent faire davantage pour optimiser les réseaux afin de répondre à la demande. Dans ce projet, nous montrerons à petite échelle comment les capteurs de température, d'eau de pluie et de vibrations sur une carte Arduino peuvent potentiellement aider à augmenter la sécurité des passagers.
Ce Instructable montrera étape par étape le câblage des capteurs de température, d'eau de pluie et de vibration sur l'arduino ainsi que le code MATLAB requis pour exécuter ces capteurs.
Étape 1: Pièces et matériaux
1. Un ordinateur avec la dernière version de MATLAB installée
2. Carte Arduino
3. Capteur de température
4. Capteur d'eau de pluie
5. Capteur de vibrations
6. Lumière LED rouge
7. Lumière LED bleue
8. Lumière LED verte
9. Lumière LED RBG
10. Avertisseur sonore
11. 18 fils mâle-mâle
12. 3 fils femelle-mâle
13. 2 fils femelle-femelle
14. 6 résistances de 330 ohms
15. 1 résistance de 100 ohms
Étape 2: Câblage du capteur de température
Ci-dessus se trouvent également le câblage et le code MATLAB pour l'entrée du capteur de température.
Les fils de la terre et du 5V n'ont besoin d'être reliés respectivement au négatif et au positif qu'une seule fois pour l'ensemble de la carte. À partir de maintenant, toutes les connexions à la terre proviendront de la colonne négative et toutes les connexions 5V proviendront de la colonne positive.
Le code ci-dessous peut être copié et collé pour le capteur de température.
%% CAPTEUR DE TEMPERATURE % Pour le capteur de température, nous avons utilisé la source suivante avec
% de matériel de site Web EF230 pour modifier notre capteur de température pour permettre à l'utilisateur
% d'entrée et 3 sorties de lumière LED avec un graphique.
%Ce croquis a été écrit par SparkFun Electronics, % avec beaucoup d'aide de la communauté Arduino.
%Adapté à MATLAB par Eric Davishahl.
%Visitez https://learn.sparkfun.com/products/2 pour obtenir des informations sur SIK.
tout effacer, clc
tempPin = 'A0'; % Déclarer la broche analogique connectée au capteur de température
a=arduino('/dev/tty.usbserial-DA017PNO', 'uno');
% Définir une fonction anonyme qui convertit la tension en température
tempCfromVolts = @(volts) (volts-0,5)*100;
Durée d'échantillonnage = 30;
Intervalle d'échantillonnage = 2; % secondes entre les lectures de température
%configurer le vecteur des heures d'échantillonnage
samplingTimes = 0:samplingInterval:samplingDuration;
%calculer le nombre d'échantillons en fonction de la durée et de l'intervalle
numSamples = length(samplingTimes);
% préallouer les variables temporaires et la variable pour le nombre de lectures qu'elle stockera
tempC = zeros(numSamples, 1);
tempF = tempC;
% à l'aide de la boîte de dialogue d'entrée pour stocker les températures de rail max et min
dlg_prompts = {'Enter Max Temp', 'Enter Min Temp'};
dlg_title = 'Intervalles de température des rails';
N=22;
dlg_ans = inputdlg(dlg_prompts, dlg_title, [1, length(dlg_title)+N]);
% Stockage des entrées de l'utilisateur et affichage que l'entrée a été enregistrée
max_temp = str2double(dlg_ans{1})
min_temp = str2double(dlg_ans{2})
txt = sprintf('Votre saisie a été enregistrée');
h=msgbox(txt);
attendre(h);
Boucle % For pour lire les températures un certain nombre de fois.
pour l'index = 1: numÉchantillons
% Lire la tension à tempPin et stocker en tant que volts variables
volts = readVoltage(a, tempPin);
tempC(index) = tempCfromVolts(volts);
tempF(indice) = tempC(indice)*9/5+32; % Convertir de Celsius en Fahrenheit
% Si des instructions pour faire clignoter des voyants LED spécifiques en fonction de la condition remplie
if tempF(index) >= max_temp % LED rouge
writeDigitalPin(a, 'D13', 0);
pause(0,5);
writeDigitalPin(a, 'D13', 1);
pause (0,5);
writeDigitalPin(a, 'D13', 0);
elseif tempF(index) >= min_temp && tempF(index) < max_temp % LED verte
writeDigitalPin(a, 'D11', 0);
pause (0,5);
writeDigitalPin(a, 'D11', 1);
pause (0,5);
writeDigitalPin(a, 'D11', 0);
elseif tempF(index) <= min_temp % LED bleue
writeDigitalPin(a, 'D12', 0);
pause (0,5);
writeDigitalPin(a, 'D12', 1);
pause (0,5);
writeDigitalPin(a, 'D12', 0);
finir
% Afficher les températures telles qu'elles sont mesurées
fprintf('La température à %d secondes est de %5.2f C ou %5.2f F.\n', …
samplingTimes(index), tempC(index), tempF(index));
pause(samplingInterval) %délai jusqu'au prochain échantillon
finir
% Tracer les lectures de température
Figure 1)
plot(samplingTimes, tempF, 'r-*')
xlabel('Temps (Secondes)')
ylabel('Température (F)')
title('Lectures de température du RedBoard')
Étape 3: sortie du capteur de température
Ci-dessus se trouve le câblage et le code MATLAB pour la sortie du capteur de température.
Pour ce projet, nous avons utilisé trois lumières LED pour la sortie de notre capteur de température. Nous avons utilisé un rouge si les pistes étaient trop chaudes, un bleu si elles étaient trop froides et un vert si elles étaient entre les deux.
Étape 4: Entrée du capteur d'eau de pluie
Ci-dessus se trouve le câblage du capteur d'eau de pluie et le code MATLAB est affiché ci-dessous.
%% Capteur d'eau
tout effacer, clc
a=arduino('/dev/tty.usbserial-DA017PNO', 'uno');
waterPin = 'A1';
vSec = 4,80; % Tension lorsqu'il n'y a pas d'eau présente
Durée d'échantillonnage = 60;
Intervalle d'échantillonnage = 2;
samplingTimes = 0:samplingInterval:samplingDuration;
numSamples = length(samplingTimes);
% Boucle for pour lire la tension pendant un laps de temps spécifique (60 secondes)
pour index = 1: numÉchantillons
volt2 = readVoltage(a, waterPin); % Lire la tension de l'analogique de la broche d'eau
% Si déclaration pour faire retentir un avertisseur si de l'eau est détectée. Chute de tension = eau
si volt2 < vSec
playTone(a, 'D09', 2400) % fonction playTone de MathWorks
% Afficher un avertissement aux passagers si de l'eau est détectée
waitfor(warndlg('Votre train peut être retardé en raison d'obstacles d'eau'));
finir
% Afficher la tension telle qu'elle est mesurée par le capteur d'eau
fprintf('La tension à %d secondes est de %5.4f V.\n', …
samplingTimes(index), volt2);
pause(samplingInterval)
finir
Étape 5: Sortie du capteur d'eau de pluie
Ci-dessus se trouve le câblage d'un buzzer qui émet un bip chaque fois que trop d'eau tombe sur la piste. Le code du buzzer est intégré au code de l'entrée d'eau de pluie.
Étape 6: Entrée du capteur de vibration
Ci-dessus se trouve le câblage du capteur de vibrations. Les capteurs de vibrations peuvent être importants pour les systèmes ferroviaires en cas de chute de pierres sur une voie. Le code MATLAB est affiché ci-dessous.
%% Capteur de vibrationsTout effacer, clc
PIEZO_PIN = 'A3'; % Déclarer la broche analogique connectée au capteur de vibration a=arduino('/dev/tty.usbserial-DA017PNO', 'uno'); % Initialisation du temps et de l'intervalle pour mesurer l'échantillonnage des vibrationsDuration = 30; % secondes d'intervalle d'échantillonnage = 1;
samplingTimes = 0:samplingInterval:samplingDuration;
numSamples = length(samplingTimes);
% En utilisant le code de la source suivante, nous l'avons modifié pour activer un
% LED violette si une vibration est détectée.
% SparkFun Tinker Kit, LED RVB, écrit par SparkFun Electronics, % avec beaucoup d'aide de la communauté Arduino
% Adapté à MATLAB par Eric Davishahl
% Initialisation de la broche RVB
RED_PIN = 'D5';
GREEN_PIN = 'D6';
BLUE_PIN = 'D7';
% Boucle for pour enregistrer les changements de tension du capteur de vibration sur une
% intervalle de temps spécifique (30 secondes)
pour index = 1: numÉchantillons
volt3 = readVoltage(a, PIEZO_PIN);
% Si instruction pour allumer une LED violette si une vibration est détectée
si volt3>0,025
writeDigitalPin(a, RED_PIN, 1);
% Création d'une lumière violette
writeDigitalPin(a, GREEN_PIN, 0);
writeDigitalPin(a, BLUE_PIN, 1);
sinon % Éteignez la LED si aucune vibration n'est détectée.
writeDigitalPin(a, RED_PIN, 0);
writeDigitalPin(a, GREEN_PIN, 0);
writeDigitalPin(a, BLUE_PIN, 0);
finir
% Affiche la tension telle qu'elle est mesurée.
fprintf('La tension à %d secondes est de %5.4f V.\n', …
samplingTimes(index), volt3);
pause(samplingInterval)
finir
% Couper la lumière lorsque la mesure des vibrations est effectuée
writeDigitalPin(a, RED_PIN, 0);
writeDigitalPin(a, GREEN_PIN, 0);
writeDigitalPin(a, BLUE_PIN, 0);
Étape 7: Sortie du capteur de vibrations
Ci-dessus se trouve le câblage de la lumière LED RBG utilisée. La lumière brillera en violet lorsque des vibrations sont détectées. Le code MATLAB pour la sortie est intégré dans le code pour l'entrée.
Étape 8: Conclusion
Après avoir suivi toutes ces étapes, vous devriez maintenant avoir un arduino capable de détecter la température, l'eau de pluie et les vibrations. En observant le fonctionnement de ces capteurs à petite échelle, il est facile d'imaginer à quel point ils pourraient être vitaux pour les systèmes ferroviaires dans la vie moderne !
Conseillé:
Premiers pas avec les capteurs de température et de vibrations sans fil longue portée : 7 étapes
Premiers pas avec les capteurs de température et de vibration sans fil à longue portée : Parfois, les vibrations sont la cause de graves problèmes dans de nombreuses applications. Des arbres et roulements de la machine aux performances des disques durs, les vibrations provoquent des dommages à la machine, un remplacement précoce, de faibles performances et affectent considérablement la précision. Surveillance
Détecteur de pluie utilisant Arduino et capteur de gouttes de pluie : 8 étapes
Détecteur de pluie à l'aide d'Arduino et d'un capteur de gouttes de pluie : dans ce tutoriel, nous allons apprendre à détecter une pluie à l'aide d'un capteur de pluie et à émettre un son à l'aide d'un module de buzzer et d'un écran OLED et Visuino.Regardez la vidéo
Envoi des données des capteurs de vibrations et de température sans fil vers Excel à l'aide de Node-RED : 25 étapes
Envoi de données de capteur de vibration et de température sans fil vers Excel à l'aide de Node-RED : Présentation du capteur de vibration et de température sans fil industriel IoT à longue portée de NCD, offrant une portée allant jusqu'à 3 km grâce à l'utilisation d'une structure de réseau maillé sans fil. Intégrant un capteur de vibration et de température de précision 16 bits, cet appareil trans
Compteur de capacité de réservoir d'eau de pluie à ultrasons : 10 étapes (avec photos)
Compteur de capacité de réservoir d'eau de pluie à ultrasons : Si vous êtes un peu comme moi et que vous avez un peu de conscience environnementale (ou si vous êtes juste des skinflints désireux d'économiser quelques dollars - ce qui est aussi moi…), vous pouvez avoir un réservoir d'eau de pluie. J'ai un réservoir pour récolter les pluies plutôt rares que nous recevons
Écluse d'eau de pluie : 11 étapes (avec photos)
Ecluse d'eau de pluie : Une forte tempête de pluie peut provoquer un débordement sur nos : trottoirs, puits d'eau de pluie, polders et nos digues. Pour éviter que cela ne se produise, nous avons inventé un sas d'eau de pluie ! L'écluse d'eau de pluie calcule numériquement la distance entre les eaux de pluie