Obsah:

Detektor teploty pouštní železnice a počítadlo cestujících: 5 kroků
Detektor teploty pouštní železnice a počítadlo cestujících: 5 kroků

Video: Detektor teploty pouštní železnice a počítadlo cestujících: 5 kroků

Video: Detektor teploty pouštní železnice a počítadlo cestujících: 5 kroků
Video: Vodík jako zdroj domácí výroby energie: Odpovědi na vaše otázky 2024, Listopad
Anonim
Detektor teploty pouštní železnice a počítadlo cestujících
Detektor teploty pouštní železnice a počítadlo cestujících

Účel:

Teplota: Tento návod vás naučí, jak nastavit a naprogramovat Arduino RedBoard (pomocí MATLAB), aby detekoval teplotu železnice. Když je dosažena nebezpečná teplota pro cestující, zazní varovná zpráva, zazní bzučáky a rozsvítí se varovná značka.

Počítadlo cestujících: Tato část vás naučí, jak používat tlačítko k počítání cestujících a po dosažení maximální kapacity vydat varování.

Funkce:

  • Používá tlačítko k počítání cestujících vstupujících do vlaku
  • K detekci teploty železnice používá TMP36 (teplotní senzor)
  • Na výstrahu vlakového nádraží používá červenou LED diodu
  • Ke zvukovému alarmu používá bzučáky
  • Odešle výstražný e -mail s grafem teploty vs času
  • Vyskakovací upozornění na MATLAB

Krok 1: Materiály a zásoby

Materiály a zásoby
Materiály a zásoby
  • 1 notebook
  • MATLAB 2017
  • Stáhněte si Arduino Toolbox
  • Sparkfun RedBoard
  • 1 Napájecí kabel
  • Breadbord
  • 14 drátů
  • 1 Piezo bzučák
  • 1 Tlačítko
  • 2 10k ohmové odpory
  • 1 snímač TMP36
  • Červené LED světlo
  • 3D tištěný nápis (volitelně)

Krok 2: Nastavení desky

Nastavení desky
Nastavení desky

Postupujte podle výše uvedeného nastavení

Krok 3: Psaní kódu

Zatímco smyčka: Abychom zajistili, že kód bude nadále testovat teplotu a snímat stav tlačítka (stisknuté nebo nestlačené), umístíme kód do smyčky while na zadané časové období.

Pomocí TMP36: Teplotu určíme odečtením napětí a jeho převodem na stupně Fahrenheita pomocí převodních faktorů. Poté použijeme příkaz if pro přehrání tónu a upozornění na zvuk/odeslání, pokud je teplota větší nebo rovna nastavené maximální teplotě

Pomocí tlačítka: Pomocí příkazu if můžeme otestovat, zda bylo tlačítko stisknuto pomocí readDigitalPin. Tento příkaz vrátí logickou hodnotu (1 nebo 0). Pokud je odpověď 0, bylo tlačítko stisknuto a počítadlo cestujících se zvýší a zobrazí uvítací zprávu. Poté, co je dosaženo maximální kapacity, zazní varovná zpráva.

Krok 4: Zkopírujte kód

%Vstupy: Stisknutí tlačítka, teplotní čidlo

%Výstupy: světla, bzučáky, zvukové upozornění, e -maily, grafy

%Účel: Tento produkt je navržen tak, aby pomohl zajistit bezpečnost a pohodlí %cestujících cestujících vlakem přes poušť.

%Využití: Detekce počtu cestujících pomocí tlačítka a %detekce tepla pomocí teplotního čidla a jeho vykreslení a odeslání jak %počtu cestujících, tak teplotního grafu na vlakové nádraží

configurePin (a, 'D2', 'pullup'); %v budoucích vydáních použije configurePin

čas = 200;

e = 0;

x = 0

zatímco čas> 0

button_status = readDigitalPin (a, 'D2'); % se rovná nule při stisknutí tlačítka, jinak se rovná 1

napětí = readVoltage (a, 'A0');%pin závisí na tom, kam jej umístíme

tempCelcius = (napětí*100) -50; %uvedeno v manuálu senzoru

tempF (čas) = (tempCelcius*1,8) +32 %známý převodní vzorec

max = 120; %stupňů F

writeDigitalPin (a, 'D11', 1);

rem = mod (e, 2);

pokud tempF (čas)> = max

writeDigitalPin (a, 'D11', 0);

writeDigitalPin (a, 'D9', 1);

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

pauza (.5)

writeDigitalPin (a, 'D6', 1)

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

pauza (.5)

writeDigitalPin (a, 'D9', 1);

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

pauza (.5)

writeDigitalPin (a, 'D6', 1)

playTone (a, 'D6', 1000,.5) %hraje „sirénu“

z = 'Přehřátí.m4a'; %Tím se zvukový soubor vloží do proměnné

[data, freq] = audioread (z); %Načte data ze zvukového souboru

o = audioplayer (data, freq); %Vytvoří objekt pro ovládání přehrávání zvukového souboru

o.play () %Přehraje zvukový soubor

o.playblocking () %Přehraje soubor a čeká na jeho dokončení

konec

if button_status == 0 && rem == 0

e = e+1

msgbox ('Welcome Aboard!');

elseif button_status == 0 && rem == 1

e = e+1

msgbox ('Bienvenido a bordo!');

konec

pokud e == 5

writeDigitalPin (a, 'D11', 0);

pokud x == 0

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

s = 'Warning_EF.m4a'; %Tím se zvukový soubor vloží do proměnné

[data, freq] = audiočtení (y); %Načte data ze zvukového souboru

o = audioplayer (data, freq); %Vytvoří objekt pro ovládání přehrávání zvukového souboru

% o.play () % Přehraje zvukový soubor

o.playblocking () %Přehraje soubor a čeká na jeho dokončení

msgbox ('Max Capacity')

x = x+1

konec

elseif e> = 6

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

konec

čas = čas - 1;

% pauza (0,1);

%, pokud e == 5 && max (tempF)> = 120

% času = 0

% konec

konec

ee = num2str (e)

t = [1: 200];

tempF2 = fliplr (tempF);

plot (t, tempF2);

název ('Čas vs. teplota')

ylabel ('Teplota (F)')

xlabel ('Time (s)')

saveas (gcf, 'tempplot.jpg')

mail = '[email protected]'

heslo = 'Srsora123#'

host = 'smtp.gmail.com'

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

setpref ('Internet', 'E_mail', pošta);

setpref ('Internet', 'SMTP_Uživatelské jméno', pošta);

setpref ('Internet', 'SMTP_Password', heslo);

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 (pošta: „Dobrý den, vlakové nádraží! Ve vlaku je tolik cestujících“, ee, „tempplot.jpg“)

Krok 5: Výsledky

Doporučuje: