Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38
V moderní společnosti znamená nárůst počtu cestujících v železniční dopravě, že železniční společnosti musí udělat více pro optimalizaci sítí, aby udržely krok s poptávkou. V tomto projektu v malém měřítku ukážeme, jak mohou snímače teploty, dešťové vody a vibrací na desce arduino potenciálně pomoci zvýšit bezpečnost cestujících.
Tento instruktážní krok za krokem ukáže zapojení snímačů teploty, dešťové vody a vibrací na Arduinu a také ukáže kód MATLAB potřebný ke spuštění těchto senzorů.
Krok 1: Díly a materiály
1. Počítač s nainstalovanou nejnovější verzí MATLABu
2. Deska Arduino
3. Teplotní senzor
4. Čidlo dešťové vody
5. Senzor vibrací
6. Červené LED světlo
7. Modré LED světlo
8. Zelené LED světlo
9. RBG LED světlo
10. Bzučák
11. 18 Muž-Muž dráty
12. 3 Ženské-mužské dráty
13. 2 dráty žena-žena
14. 6 330 ohmové odpory
15. Rezistor 1 100 ohmů
Krok 2: Zapojení teplotního senzoru
Nahoře je také zapojení a kód MATLAB pro vstup teplotního senzoru.
Dráty ze země a 5V je třeba vést pouze na záporný a kladný pól pro celou desku. Od této chvíle budou všechna zemní spojení pocházet ze záporného sloupce a všechna 5V připojení budou vycházet ze kladného sloupce.
Níže uvedený kód lze zkopírovat a vložit pro teplotní čidlo.
%% TEMPERATURE SENSOR % Pro teplotní čidlo jsme použili následující zdroj spolu s
% EF230 webový materiál pro úpravu našeho teplotního senzoru, aby umožnil uživateli
% vstupu a 3 světelné výstupy LED s grafem.
%Tuto skicu napsala společnost SparkFun Electronics, %se spoustou pomoci komunity Arduino.
%Přizpůsobeno MATLABu Ericem Davishahlem.
%Navštivte https://learn.sparkfun.com/products/2 informace o SIK.
vymazat vše, clc
tempPin = 'A0'; % Deklarace analogového pinu připojeného k teplotnímu čidlu
a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno');
% Definujte anonymní funkci, která převádí napětí na teplotu
tempCfromVolts = @(volty) (volty-0,5)*100;
samplingDuration = 30;
samplingInterval = 2; % Sekund mezi odečty teploty
%nastavit vektor vzorkovací doby
samplingTimes = 0: samplingInterval: samplingDuration;
%vypočítat počet vzorků na základě doby trvání a intervalu
numSamples = délka (samplingTimes);
%preallocate temp variables and variable for the number of read it will store
tempC = nuly (numSamples, 1);
tempF = tempC;
% pomocí vstupního dialogového okna pro uložení maximální a minimální teploty kolejnice
dlg_prompts = {'Zadejte maximální teplotu', 'Zadejte minimální teplotu'};
dlg_title = 'Intervaly teploty kolejnice';
N = 22;
dlg_ans = inputdlg (dlg_prompts, dlg_title, [1, délka (dlg_title)+N]);
% Uložení vstupů od uživatele a zobrazení, že byl vstup zaznamenán
max_temp = str2double (dlg_ans {1})
min_temp = str2double (dlg_ans {2})
txt = sprintf ('Váš vstup byl zaznamenán');
h = msgbox (txt);
čekat na (h);
% Pro smyčku ke čtení teplot určitý počet opakování.
pro index = 1: numSamples
% Odečtěte napětí na tempPin a uložte jako proměnné volty
volts = readVoltage (a, tempPin);
tempC (index) = tempCfromVolts (volty);
tempF (index) = tempC (index)*9/5+32; % Převod z Celsia na Fahrenheita
% Pokud příkazy k provedení konkrétních LED diod blikají podle toho, která podmínka je splněna
pokud tempF (index)> = max_temp % Červená LED
writeDigitalPin (a, 'D13', 0);
pauza (0,5);
writeDigitalPin (a, 'D13', 1);
pauza (0,5);
writeDigitalPin (a, 'D13', 0);
elseif tempF (index)> = min_temp && tempF (index) <max_temp % Zelená LED
writeDigitalPin (a, 'D11', 0);
pauza (0,5);
writeDigitalPin (a, 'D11', 1);
pauza (0,5);
writeDigitalPin (a, 'D11', 0);
elseif tempF (index) <= min_temp % Modrá LED
writeDigitalPin (a, 'D12', 0);
pauza (0,5);
writeDigitalPin (a, 'D12', 1);
pauza (0,5);
writeDigitalPin (a, 'D12', 0);
konec
% Zobrazte teploty při jejich měření
fprintf ('Teplota v %d sekundách je %5,2f C nebo %5,2f F. / n',…
samplingTimes (index), tempC (index), tempF (index));
pauza (samplingInterval) %zpoždění do dalšího vzorku
konec
% Vynesení naměřených hodnot teploty
Obrázek 1)
plot (samplingTimes, tempF, 'r-*')
xlabel ('Time (Seconds)')
ylabel ('Teplota (F)')
title ('Teplotní údaje z RedBoardu')
Krok 3: Výstup teplotního senzoru
Nahoře je kabeláž a kód MATLAB pro výstup teplotního čidla.
Pro tento projekt jsme použili tři LED světla pro výstup našeho teplotního senzoru. Použili jsme červenou, pokud byly stopy příliš horké, modrou, pokud byly příliš studené, a zelenou, pokud byly mezi nimi.
Krok 4: Vstup senzoru dešťové vody
Nahoře je zapojení senzoru dešťové vody a kód MATLAB je uveden níže.
%% Čidlo vody
vymazat vše, clc
a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno');
waterPin = 'A1';
vDry = 4,80; % Napětí, když není přítomna voda
samplingDuration = 60;
samplingInterval = 2;
samplingTimes = 0: samplingInterval: samplingDuration;
numSamples = délka (samplingTimes);
% Pro smyčku ke čtení napětí po určitou dobu (60 sekund)
pro index = 1: numSamples
volt2 = readVoltage (a, waterPin); % Odečtěte napětí z analogového vodního kolíku
% Pokud zazní voda, zazní bzučák. Pokles napětí = voda
pokud volt2 <vDry
playTone (a, 'D09', 2400) % funkce playTone od MathWorks
% Zobrazit varování cestujícím, pokud je detekována voda
waitfor (warndlg („Váš vlak může mít zpoždění kvůli nebezpečí pro vodu“));
konec
% Zobrazte napětí měřené snímačem vody
fprintf ('Napětí v %d sekundách je %5,4f V. / n',…
samplingTimes (index), volt2);
pauza (vzorkovací interval)
konec
Krok 5: Výstup snímače dešťové vody
Nahoře je zapojení bzučáku, který pípne, kdykoli na trať spadne příliš mnoho vody. Kód pro bzučák je vložen do kódu pro vstup dešťové vody.
Krok 6: Vstup snímače vibrací
Nahoře je kabeláž pro snímač vibrací. V případě padajících kamení na trati mohou být senzory vibrací důležité pro železniční systémy. Kód MATLAB je uveden níže.
%% Vibration Sensorclear all, clc
PIEZO_PIN = 'A3'; % Deklarace analogového pinu připojeného k senzoru vibrací a = arduino ('/dev/tty.usbserial-DA017PNO', 'uno'); % Inicializace času a intervalu pro měření vzorkování vibrací Trvání = 30; Interval vzorkování % sekund = 1;
samplingTimes = 0: samplingInterval: samplingDuration;
numSamples = délka (samplingTimes);
% Pomocí kódu z následujícího zdroje jsme jej upravili tak, aby zapnul a
% fialové LED, pokud jsou detekovány vibrace.
% SparkFun Tinker Kit, RGB LED, napsáno SparkFun Electronics, % se spoustou pomoci komunity Arduino
% Přizpůsobeno MATLABu Ericem Davishahlem
% Inicializace kolíku RGB
RED_PIN = 'D5';
GREEN_PIN = 'D6';
BLUE_PIN = 'D7';
% Aby smyčka zaznamenala změny napětí ze snímače vibrací za a
% specifický časový interval (30 sekund)
pro index = 1: numSamples
volt3 = readVoltage (a, PIEZO_PIN);
% Příkaz pro zapnutí fialové LED, pokud jsou detekovány vibrace
pokud volt3> 0,025
writeDigitalPin (a, RED_PIN, 1);
% Vytvoření fialového světla
writeDigitalPin (a, ZELENÝ_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 1);
else % Vypněte LED, pokud nejsou detekovány žádné vibrace.
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, ZELENÝ_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 0);
konec
% Zobrazte napětí při jeho měření.
fprintf ('Napětí v %d sekundách je %5,4f V. / n',…
samplingTimes (index), volt3);
pauza (vzorkovací interval)
konec
% Odřízněte světlo při měření vibrací
writeDigitalPin (a, RED_PIN, 0);
writeDigitalPin (a, ZELENÝ_PIN, 0);
writeDigitalPin (a, BLUE_PIN, 0);
Krok 7: Výstup snímače vibrací
Nahoře je použito zapojení pro LED světlo RBG. Když jsou detekovány vibrace, světlo bude svítit purpurově. Kód MATLAB pro výstup je vložen do kódu pro vstup.
Krok 8: Závěr
Po provedení všech těchto kroků byste nyní měli mít arduino se schopností detekovat teplotu, dešťovou vodu a vibrace. Při pohledu na to, jak tyto senzory fungují v malém měřítku, je snadné si představit, jak důležité by mohly být pro železniční systémy v moderním životě!
Doporučuje:
Začínáme s bezdrátovými senzory teploty a vibrací s dlouhým dosahem: 7 kroků
Začínáme s bezdrátovými senzory teploty a vibrací s dlouhým dosahem: Někdy jsou vibrace příčinou vážných problémů v mnoha aplikacích. Od hřídelí strojů a ložisek po výkon pevného disku, vibrace způsobují poškození stroje, brzkou výměnu, nízký výkon a způsobují zásadní zásah do přesnosti. Monitorování
IoT-Ubidots-ESP32+Bezdrátový snímač vibrací a teploty s dlouhým dosahem: 7 kroků
IoT-Ubidots-ESP32+Bezdrátový vibrační a teplotní senzor s dlouhým dosahem: Vibrace jsou skutečně pohyby sem a tam-nebo oscilace-strojů a komponent v motorizovaných přístrojích. Vibrace v průmyslovém systému mohou být symptomem nebo motivem potíží nebo mohou být spojeny s každodenním provozem. Například osci
Data bezdrátového snímače vibrací a teploty do MySQL pomocí Node-RED: 40 kroků
Data bezdrátového senzoru vibrací a teploty do MySQL pomocí Node-RED: Představujeme průmyslový bezdrátový snímač vibrací a teploty NCD s dlouhým dosahem IoT od společnosti NCD, který se může pochlubit dosahem až 2 míle použitím struktury bezdrátové síťové sítě. Toto zařízení obsahuje přesný 16bitový snímač vibrací a teploty a
Strukturální monitorování zdravotního stavu civilních infrastruktur pomocí bezdrátových snímačů vibrací: 8 kroků
Monitorování strukturálního zdraví civilních infrastruktur pomocí bezdrátových senzorů vibrací: Zhoršení staré budovy a civilní infrastruktury může vést k smrtelné a nebezpečné situaci. Neustálé sledování těchto struktur je povinné. Strukturální monitorování zdraví je nesmírně důležitou metodikou při hodnocení
Odtok dešťové vody: 11 kroků (s obrázky)
Odtok dešťové vody: Silná bouřka může způsobit přetečení nad našimi: chodníky, studny na dešťovou vodu, poldry a naše hráze. Abychom tomu zabránili, vynalezli jsme dešťovou propust! Stavidlo dešťové vody vypočítává digitálně vzdálenost mezi dešťovou vodou