Tartalomjegyzék:

Sivatagi vasúti hőmérséklet -érzékelő és utasszámláló: 5 lépés
Sivatagi vasúti hőmérséklet -érzékelő és utasszámláló: 5 lépés

Videó: Sivatagi vasúti hőmérséklet -érzékelő és utasszámláló: 5 lépés

Videó: Sivatagi vasúti hőmérséklet -érzékelő és utasszámláló: 5 lépés
Videó: Így Élnek Az Emberek A Leghidegebb Helyen A Földön! 2024, November
Anonim
Sivatagi vasúti hőmérséklet -érzékelő és utasszámláló
Sivatagi vasúti hőmérséklet -érzékelő és utasszámláló

Célja:

Hőmérséklet: Ez az utasítás megtanítja, hogyan kell beállítani és programozni egy Arduino RedBoard -ot (a MATLAB használatával) a vasút hőmérsékletének érzékelésére. Amikor eléri az utasok számára nem biztonságos hőmérsékletet, figyelmeztető üzenet hallható, a hangjelzők kialszanak, és figyelmeztető jelzés világít.

Utasszámláló: Ez a rész megtanítja, hogyan kell használni a gombot az utasok számlálásához, és figyelmeztető hangot ad a maximális kapacitás elérésekor.

Jellemzők:

  • A gombbal számlálja a vonatba belépő utasokat
  • TMP36 (hőmérséklet -érzékelő) segítségével érzékeli a vasút hőmérsékletét
  • Piros LED -lámpával figyelmezteti a vasútállomást
  • Hangjelzőket használ a riasztáshoz
  • Riasztó e -mailt küld a hőmérséklet és az idő diagramjával
  • Felugró figyelmeztető üzenetek a MATLAB-on

1. lépés: Anyagok és kellékek

Anyagok és kellékek
Anyagok és kellékek
  • 1 Laptop
  • MATLAB 2017
  • Töltse le az Arduino Toolbox alkalmazást
  • Sparkfun RedBoard
  • 1 Tápkábel
  • Breadbord
  • 14 vezeték
  • 1 Piezo csengő
  • 1 Nyomógomb
  • 2 db 10k ohmos ellenállás
  • 1 TMP36 érzékelő
  • Piros LED fény
  • 3D nyomtatott jel (opcionális)

2. lépés: A tábla beállítása

Board beállítása
Board beállítása

Kövesse a fenti beállítást

3. lépés: A kód írása

Míg Loop: Annak érdekében, hogy a kód továbbra is tesztelje a hőmérsékletet, és érzékelje a gomb állapotát (lenyomva vagy nem nyomva), a kódot a while ciklusba helyezzük egy meghatározott időtartamra.

A TMP36 használata: A hőmérsékletet úgy határozzuk meg, hogy leolvassuk a feszültséget, és átszámítjuk Fahrenheit -fokra, konverziós tényezők segítségével. Ezután az if utasítással hangot és hangjelzést adunk/riasztásokat küldünk, ha a hőmérséklet magasabb vagy egyenlő a beállított maximális hőmérséklettel

A gomb használata: Az if utasítással a readDigitalPin segítségével tesztelhetjük, hogy megnyomták -e a gombot. Ez a parancs egy logikai értéket ad vissza (1 vagy 0). Ha a válasz 0, akkor megnyomta a gombot, és az utasok számlálója növekszik, és üdvözlő üzenetet jelenít meg. Ezután, amikor eléri a maximális kapacitást, figyelmeztető üzenet hallható.

Lépés: Másolja ki a kódot

%Bemenetek: A gomb megnyomása, hőmérséklet -érzékelő

%Kimenetek: fények, hangjelzők, hangjelzés, e -mailek, grafikonok

%Cél: Ezt a terméket úgy tervezték, hogy segítse a sivatagon keresztül vonattal utazó %utas biztonságát és kényelmét.

%Használat: Az utasok számának felismerése egy nyomógombbal, és %a hő észlelése egy hőmérséklet -érzékelő segítségével, és grafikonon, és elküldi mind a %utasszámot, mind a hőmérsékleti grafikont a vasútállomásra

configurePin (a, 'D2', 'pullup'); %a jövőbeli kiadásokban a configurePin programot használja

idő = 200;

e = 0;

x = 0

míg az idő> 0

button_status = readDigitalPin (a, 'D2'); % nulla, ha megnyomja a gombot, ellenkező esetben 1

feszültség = readVoltage (a, 'A0');%pin attól függ, hogy hol helyezzük el

tempCelcius = (feszültség*100) -50; %megadva az érzékelő kézikönyvében

tempF (idő) = (tempCelcius*1,8) +32 %ismert konverziós képlet

max = 120; %F fok

writeDigitalPin (a, 'D11', 1);

rem = mod (e, 2);

ha tempF (idő)> = max

writeDigitalPin (a, 'D11', 0);

writeDigitalPin (a, 'D9', 1);

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

szünet (.5)

writeDigitalPin (a, 'D6', 1)

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

szünet (.5)

writeDigitalPin (a, 'D9', 1);

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

szünet (.5)

writeDigitalPin (a, 'D6', 1)

playTone (a, 'D6', 1000,.5) %"sziréna"

z = 'Túlmelegedés.m4a'; %Ez a hangfájlt egy változóba helyezi

[adatok, gyakoriság] = audioread (z); %Adatokat tölt be hangfájlból

o = audioplayer (adatok, gyakoriság); %Létrehoz egy objektumot az audio fájl lejátszásának vezérlésére

o.play () %Hangfájl lejátszása

o.playblocking () %Lejátssza a fájlt, és várja, hogy befejeződjön

vége

ha gomb_állapot == 0 && rem == 0

e = e+1

msgbox ('Üdvözöljük a fedélzeten!');

elseif gomb_állapot == 0 && rem == 1

e = e+1

msgbox ('Bienvenido a bordo!');

vége

ha e == 5

writeDigitalPin (a, 'D11', 0);

ha x == 0

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

s = 'Figyelmeztetés_EF.m4a'; %Ez a hangfájlt egy változóba helyezi

[adatok, gyakoriság] = hangolvasás (ok); %Adatokat tölt be hangfájlból

o = audioplayer (adatok, gyakoriság); %Létrehoz egy objektumot az audio fájl lejátszásának vezérlésére

% o.play () % Hangfájlt játszik le

o.playblocking () %Lejátssza a fájlt, és várja, hogy befejeződjön

msgbox ("Max. kapacitás")

x = x+1

vége

elseif e> = 6

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

vége

idő = idő - 1;

% szünet (0,1);

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

% time = 0

% vége

vége

ee = szám2str (e)

t = [1: 200];

tempF2 = fliplr (tempF);

grafikon (t, tempF2);

cím ("Idő vs. hőmérséklet")

ylabel ('Hőmérséklet (F)')

xlabel ('Idő (k)')

saveas (gcf, 'tempplot.jpg')

mail = '[email protected]'

password = 'Srsora123#'

host = 'smtp.gmail.com'

setpref ('Internet', 'SMTP_Server', gazdagép);

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

setpref ('Internet', 'SMTP_felhasználónév', mail);

setpref ('Internet', 'SMTP_Password', jelszó);

kellékek = 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, 'Hello Train Station! Ennyi utas van a vonaton', ee, 'tempplot.jpg')

5. lépés: Eredmények

Ajánlott: