Spisu treści:

Detektor temperatury Desert Railroad i licznik pasażerów: 5 kroków
Detektor temperatury Desert Railroad i licznik pasażerów: 5 kroków

Wideo: Detektor temperatury Desert Railroad i licznik pasażerów: 5 kroków

Wideo: Detektor temperatury Desert Railroad i licznik pasażerów: 5 kroków
Wideo: Тайны Пустынь National Geographic Документальный фильм 2021 2024, Listopad
Anonim
Detektor temperatury Desert Railroad i licznik pasażerów
Detektor temperatury Desert Railroad i licznik pasażerów

Cel, powód:

Temperatura: Ta instrukcja nauczy Cię, jak skonfigurować i zaprogramować Arduino RedBoard (przy użyciu MATLAB) do wykrywania temperatury linii kolejowej. Gdy osiągnięta zostanie temperatura niebezpieczna dla pasażerów, rozlega się komunikat ostrzegawczy, włączają się brzęczyki i zapala się znak ostrzegawczy.

Licznik pasażerów: Ta część nauczy Cię, jak używać przycisku do liczenia pasażerów i ostrzegania dźwiękowego po osiągnięciu maksymalnej pojemności.

Cechy:

  • Używa przycisku do zliczania pasażerów wchodzących do pociągu
  • Wykorzystuje TMP36 (czujnik temperatury) do wykrywania temperatury kolei;
  • Używa czerwonej diody LED, aby ostrzec stację kolejową;
  • Używa brzęczyków do dźwięku alarmu
  • Wysyła wiadomość e-mail z ostrzeżeniem z wykresem temperatury w funkcji czasu
  • Wyskakujące komunikaty ostrzegawcze w MATLAB

Krok 1: Materiały i zaopatrzenie

Materiały i zaopatrzenie
Materiały i zaopatrzenie
  • 1 laptop
  • MATLAB 2017
  • Pobierz zestaw narzędzi Arduino
  • Sparkfun Redboard
  • 1 kabel zasilający
  • Tablica chlebowa
  • 14 przewodów
  • 1 piezoelektryczny brzęczyk
  • 1 przycisk
  • 2 rezystory 10 kΩ
  • 1 czujnik TMP36
  • Czerwone światło LED
  • Znak drukowany w 3D (opcjonalnie)

Krok 2: Przygotowanie planszy

Konfiguracja planszy
Konfiguracja planszy

Postępuj zgodnie z powyższą konfiguracją

Krok 3: Pisanie kodu

Pętla while: Aby upewnić się, że kod nadal testuje temperaturę i wykrywa stan przycisku (wciśnięty lub niewciśnięty), umieszczamy kod w pętli while na określony czas.

Za pomocą TMP36: Określamy temperaturę, odczytując napięcie i przeliczając je na stopnie Fahrenheita, używając współczynników konwersji. Następnie używamy instrukcji if, aby odtworzyć dźwięk i dźwięk / wysłać alerty, jeśli temperatura jest większa lub równa ustawionej temperaturze maksymalnej

Korzystanie z przycisku: Za pomocą instrukcji if możemy sprawdzić, czy przycisk został naciśnięty za pomocą readDigitalPin. To polecenie zwróci wartość logiczną (1 lub 0). Jeśli odpowiedź wynosi 0, to przycisk został naciśnięty, a licznik pasażerów zwiększa się i wyświetla komunikat powitalny. Następnie, gdy zostanie osiągnięta maksymalna pojemność, rozlega się komunikat ostrzegawczy.

Krok 4: Skopiuj kod

% Wejścia: naciśnięcie przycisku, czujnik temperatury

%Wyjścia: światła, brzęczyki, alarm dźwiękowy, e-maile, wykresy

Cel: Ten produkt ma na celu zapewnienie bezpieczeństwa i komfortu pasażerów podróżujących pociągiem przez pustynię.

%Usage: Wykrywanie liczby pasażerów za pomocą przycisku i %wykrywanie ciepła za pomocą czujnika temperatury i wykresu oraz wysyłanie % liczby pasażerów i wykresu temperatury na stację kolejową

configurePin(a, 'D2', 'pullup'); %w przyszłych wydaniach użyj configurePin

czas = 200;

e=0;

x=0

podczas gdy czas > 0

button_status = odczytajPinCyfrowy(a, 'D2'); % równa się zero po naciśnięciu przycisku, w przeciwnym razie równa się 1

napięcie = readVoltage(a, 'A0');%pin zależy od tego, gdzie go umieścimy

temp Celsjusza = (napięcie*100)-50; % podane w instrukcji czujnika

tempF(time) = (tempCelcius*1.8)+32 %znany wzór konwersji

max = 120; % stopni F

writeDigitalPin(a, 'D11', 1);

rem=mod(e, 2);

jeśli tempF(czas)>=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, 'K6', 1000,.5) %odtwarza "syrenę"

z='Przegrzanie.m4a'; % To umieszcza plik dźwiękowy w zmiennej

[dane, częst.]=odczyt audio(z); % Ładuje dane z pliku dźwiękowego

o=odtwarzacz audio(dane, częstotliwość); % Tworzy obiekt do sterowania odtwarzaniem pliku audio

o.play() %Odtwarza plik audio

o.playblocking() %Odtwarza plik i czeka na zakończenie

kończyć się

if button_status == 0 && rem==0

e=e+1

msgbox('Witaj na pokładzie!');

elseif button_status == 0 && rem==1

e=e+1

msgbox('Bienvenido a bordo!');

kończyć się

jeśli e==5

writeDigitalPin(a, 'D11', 0);

jeśli x==0

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

s='Ostrzeżenie_EF.m4a'; % To umieszcza plik dźwiękowy w zmiennej

[dane, częst.]=odczyt(y); % Ładuje dane z pliku dźwiękowego

o=odtwarzacz audio(dane, częstotliwość); % Tworzy obiekt do sterowania odtwarzaniem pliku audio

% o.play() %Odtwarza plik audio

o.playblocking() %Odtwarza plik i czeka na zakończenie

msgbox('Maksymalna pojemność')

x=x+1

kończyć się

elseif e>=6

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

kończyć się

czas = czas - 1;

% pauzy (0,1);

% jeśli e==5 && max(tempF)>=120

% czasu=0

% kończyć się

kończyć się

ee=liczba2str(e)

t=[1:200];

tempF2=fliplr(tempF);

wykres(t, tempF2);

title('Czas a temperatura')

ylabel('Temperatura(F)')

xlabel('Czas(y)')

saveas(gcf, 'tempplot.jpg')

poczta= '[email protected]'

hasło='Srsora123#'

host='smtp.gmail.com'

setpref('Internet', 'Serwer_SMTP', host);

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

setpref('Internet', 'SMTP_Nazwa_użytkownika', poczta);

setpref('Internet', 'SMTP_Hasło', hasło);

rekwizyty = java.lang. System.getProperties;

props.setProperty('mail.smtp.auth', 'prawda');

props.setProperty('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory');

props.setProperty('mail.smtp.socketFactory.port', '465');

sendmail(mail, 'Witaj dworcu! W pociągu jest tylu pasażerów', ee, 'tempplot.jpg')

Krok 5: Wyniki

Zalecana: