Turinys:
- 1 žingsnis: medžiagos ir reikmenys
- 2 žingsnis: plokštės sąranka
- 3 žingsnis: kodo rašymas
- 4 žingsnis: nukopijuokite kodą
- 5 žingsnis: Rezultatai
Video: Dykumos geležinkelio temperatūros detektorius ir keleivių skaitiklis: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Tikslas:
Temperatūra: Ši instrukcija mokys jus, kaip nustatyti ir užprogramuoti „Arduino RedBoard“(naudojant MATLAB), kad būtų galima nustatyti geležinkelio temperatūrą. Pasiekus nesaugią temperatūrą keleiviams, pasigirsta įspėjamasis pranešimas, išsijungia garsiniai signalai ir užsidega įspėjamasis ženklas.
Keleivių skaitiklis: ši dalis išmokys jus naudotis mygtuku, kad būtų galima suskaičiuoti keleivius, ir įspėti, kai pasiekiama maksimali talpa.
Funkcijos:
- Naudojamas mygtukas keleiviams, įeinantiems į traukinį, suskaičiuoti
- Naudoja TMP36 (temperatūros jutiklį) geležinkelio temperatūrai nustatyti
- Naudoja raudoną šviesos diodą, kad įspėtų traukinių stotį
- Signalui skambėti naudoja signalus
- Siunčia įspėjimo el. Laišką su temperatūros ir laiko grafiku
- Iššokantys įspėjamieji pranešimai MATLAB
1 žingsnis: medžiagos ir reikmenys
- 1 nešiojamas kompiuteris
- MATLAB 2017 m
- Atsisiųskite „Arduino Toolbox“
- „Sparkfun RedBoard“
- 1 Maitinimo kabelis
- Breadbord
- 14 laidų
- 1 pjezo garsinis signalas
- 1 Paspauskite mygtuką
- 2 10k omų rezistoriai
- 1 TMP36 jutiklis
- Raudona LED lemputė
- 3D spausdintas ženklas (neprivaloma)
2 žingsnis: plokštės sąranka
Vykdykite aukščiau pateiktą sąranką
3 žingsnis: kodo rašymas
Nors ciklas: norėdami užtikrinti, kad kodas ir toliau tikrintų temperatūrą ir pajustų mygtuko būseną (paspaustas arba nespaustas), kodą dedame į laikui skirtą ciklą tam tikrą laikotarpį.
Naudojant TMP36: Mes nustatome temperatūrą, nuskaitę įtampą ir konvertuodami ją į Farenheito laipsnius, naudodami perskaičiavimo koeficientus. Tada mes naudojame sakinį if, norėdami paleisti toną ir garsą/siųsti įspėjimus, jei temperatūra yra didesnė arba lygi nustatyta maksimaliai temperatūrai
Mygtuko naudojimas: naudodami teiginį „if“galime patikrinti, ar mygtukas buvo paspaustas, naudojant „readDigitalPin“. Ši komanda grąžins loginę reikšmę (1 arba 0). Jei atsakymas yra 0, tada buvo paspaustas mygtukas, o keleivių skaitiklis padidėja ir rodomas pasveikinimo pranešimas. Pasiekus maksimalią talpą, pasigirsta įspėjamasis pranešimas.
4 žingsnis: nukopijuokite kodą
%Įėjimai: mygtuko paspaudimas, temperatūros jutiklis
%Išėjimai: žibintai, garsiniai signalai, garso įspėjimas, el. Laiškai, grafikai
Tikslas: Šis produktas yra skirtas padėti užtikrinti keleivių, keliaujančių traukiniu per dykumą, saugumą ir komfortą.
Naudojimas: Keleivių skaičiaus nustatymas mygtuko paspaudimu, %šilumos nustatymas naudojant temperatūros jutiklį ir jo grafikas bei siunčiamas %keleivių skaičius ir temperatūros grafikas į traukinių stotį
configurePin (a, 'D2', 'pullup'); %būsimų leidimų naudoja configurePin
laikas = 200;
e = 0;
x = 0
o laikas> 0
button_status = readDigitalPin (a, 'D2'); % lygus nuliui, kai paspaudžiamas mygtukas, kitaip lygus 1
įtampa = skaitymo įtampa (a, 'A0');%kaištis priklauso nuo to, kur mes jį dedame
tempCelcius = (įtampa*100) -50; %nurodyta jutiklio vadove
tempF (laikas) = (tempCelcius*1.8) +32 %žinoma konversijos formulė
maks. = 120; %laipsnių F.
writeDigitalPin (a, 'D11', 1);
rem = mod (e, 2);
jei tempF (laikas)> = maks
writeDigitalPin (a, 'D11', 0);
writeDigitalPin (a, 'D9', 1);
playTone (a, „D9“, 2400,.5)
pauzė (.5)
writeDigitalPin (a, 'D6', 1)
playTone (a, 'D6', 1000,.5)
pauzė (.5)
writeDigitalPin (a, 'D9', 1);
playTone (a, „D9“, 2400,.5)
pauzė (.5)
writeDigitalPin (a, 'D6', 1)
playTone (a, 'D6', 1000,.5) %paleidžia "sireną"
z = 'Perkaitimas.m4a'; %Tai įkelia garso failą į kintamąjį
[duomenys, dažnis] = garso skaitymas (z); %Įkelia duomenis iš garso failo
o = garso grotuvas (duomenys, dažnis); %Sukuria objektą garso failo leidimui valdyti
o.play () %Paleidžia garso failą
o.playblocking () %Paleidžia failą ir laukia, kol jis bus baigtas
galas
jei mygtuko_stata == 0 && rem == 0
e = e+1
msgbox ('Sveiki atvykę!');
elseif button_status == 0 && rem == 1
e = e+1
msgbox ('Bienvenido a bordo!');
galas
jei e == 5
writeDigitalPin (a, 'D11', 0);
jei x == 0
playTone (a, 'D6', 600, 1);
s = 'Įspėjimas_EF.m4a'; %Tai įkelia garso failą į kintamąjį
[duomenys, dažnis] = garso skaitymas (-ai); %Įkelia duomenis iš garso failo
o = garso grotuvas (duomenys, dažnis); %Sukuria objektą garso failo leidimui valdyti
% o.play () % Paleidžia garso failą
o.playblocking () %Paleidžia failą ir laukia, kol jis bus baigtas
„msgbox“(„Maksimali talpa“)
x = x+1
galas
jei e> = 6
„playTone“(a, „D6“, 2400, 0);
galas
laikas = laikas - 1;
% pauzė (0,1);
%, jei e == 5 && max (tempF)> = 120
% laiko = 0
% galas
galas
ee = num2str (e)
t = [1: 200];
tempF2 = fliplr (tempF);
grafikas (t, tempF2);
pavadinimas („Laikas prieš temperatūrą“)
ylabel („Temperatūra (F)“)
xlabel ('Laikas (-ai)')
saveas (gcf, 'tempplot.jpg')
paštas = '[email protected]'
slaptažodis = 'Srsora123#'
priegloba = 'smtp.gmail.com'
setpref ('Internetas', 'SMTP_Server', priegloba);
setpref („Internetas“, „El. paštas“, paštas);
setpref ('Internetas', 'SMTP_vartotojo vardas', paštas);
setpref („Internetas“, „SMTP_Password“, slaptažodis);
rekvizitai = 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 (paštas, „Sveiki, traukinių stotis! Traukinyje yra tiek daug keleivių“, ee, „tempplot.jpg“)
5 žingsnis: Rezultatai
Rekomenduojamas:
Modelio geležinkelio „WiFi DCC“valdymo stotis: 5 žingsniai
„WiFi DCC“valdymo stotis modelio geležinkeliui: Atnaujinta 2021 m. Balandžio 5 d.: Naujas eskizas ir modulis grandinės komponentams. Naujas eskizas: command_station_wifi_dcc3_LMD18200_v4.ino Nauja DCC sistema, naudojanti „WiFi“, skirta instrukcijoms perduoti už
Temperatūros skaitymas naudojant LM35 temperatūros jutiklį su „Arduino Uno“: 4 žingsniai
Temperatūros skaitymas naudojant LM35 temperatūros jutiklį su „Arduino Uno“: Sveiki, vaikinai, šioje instrukcijoje mes išmoksime naudoti LM35 su „Arduino“. Lm35 yra temperatūros jutiklis, galintis nuskaityti temperatūros reikšmes nuo -55 ° C iki 150 ° C. Tai 3 gnybtų įrenginys, kuris tiekia analoginę įtampą, proporcingą temperatūrai. Hig
Kaip naudoti DHT11 temperatūros jutiklį su „Arduino“ir spausdinimo temperatūros šiluma ir drėgme: 5 žingsniai
Kaip naudoti DHT11 temperatūros jutiklį su „Arduino“ir spausdinimo temperatūros šiluma ir drėgme: DHT11 jutiklis naudojamas temperatūrai ir drėgmei matuoti. Jie yra labai populiarūs elektronikos mėgėjai. DHT11 drėgmės ir temperatūros jutiklis leidžia lengvai pridėti drėgmės ir temperatūros duomenis prie „pasidaryk pats“elektronikos projektų. Tai už
ESP32 NTP temperatūros zondo virimo termometras su Steinhart-Hart korekcija ir temperatūros aliarmu: 7 žingsniai (su nuotraukomis)
ESP32 NTP temperatūros zondo virimo termometras su Steinhart-Hart korekcija ir temperatūros aliarmu: vis dar keliaujate užbaigti „būsimo projekto“, „ESP32 NTP temperatūros zondo virimo termometras su Steinhart-Hart korekcija ir temperatūros aliarmu“. yra instrukcija, rodanti, kaip pridedu NTP temperatūros zondą, pjezo b
Žaibo detektorius ir skaitiklis: 8 žingsniai (su nuotraukomis)
Žaibo detektorius ir skaitiklis: Aš visada norėjau padaryti žaibo detektorių, bet radau, kad grandinės schemos šiek tiek viršija mano galimybes. Neseniai naršydamas internete radau labai šaunią grandinę, kurioje skaičiuojami žaibo smūgiai! Pažiūrėjus