Inhoudsopgave:
- Stap 1: Materialen en benodigdheden
- Stap 2: Board-configuratie
- Stap 3: De code schrijven
- Stap 4: Kopieer de code
- Stap 5: Resultaten
Video: Desert Railroad temperatuurdetector & passagiersteller - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Doel:
Temperatuur: deze instructable leert je hoe je een Arduino RedBoard (met MATLAB) instelt en programmeert om de temperatuur van een spoorweg te detecteren. Wanneer een onveilige temperatuur voor de passagiers wordt bereikt, klinkt er een waarschuwingsbericht, gaan de zoemers af en gaat er een waarschuwingsbord branden.
Passagiersteller: in dit gedeelte leert u hoe u een knop kunt gebruiken om passagiers te tellen en een waarschuwing te laten klinken wanneer de maximale capaciteit is bereikt.
Functies:
- Gebruikt de knop om passagiers te tellen die de trein binnenkomen
- Gebruikt TMP36 (temperatuursensor) om de temperatuur van de spoorweg te detecteren
- Gebruikt een rood LED-lampje om het treinstation te waarschuwen
- Gebruikt zoemers om alarm te slaan
- Stuurt een waarschuwingse-mail met een grafiek van temperatuur versus tijd
- Pop-up waarschuwingsberichten op MATLAB
Stap 1: Materialen en benodigdheden
- 1 laptop
- MATLAB 2017
- Arduino Toolbox downloaden
- Sparkfun RedBoard
- 1 stroomkabel
- broodbord
- 14 draden
- 1 piëzo-zoemer
- 1 drukknop
- 2 weerstanden van 10k ohm
- 1 TMP36-sensor
- Rood LED-licht
- 3D geprint bord (optioneel)
Stap 2: Board-configuratie
Volg de instellingen hierboven
Stap 3: De code schrijven
While-lus: om ervoor te zorgen dat de code de temperatuur blijft testen en de status van de knop (ingedrukt of niet ingedrukt), plaatsen we de code gedurende een bepaalde tijd in de while-lus.
TMP36 gebruiken: We bepalen de temperatuur door de spanning af te lezen en deze om te rekenen naar graden Fahrenheit, met behulp van conversiefactoren. Vervolgens gebruiken we een if-statement om een toon af te spelen en een geluid te geven/waarschuwingen te sturen als de temperatuur hoger is dan of gelijk is aan de ingestelde maximale temperatuur
Knop gebruiken: Met een if-statement kunnen we testen of de knop is ingedrukt met readDigitalPin. Deze opdracht retourneert een Booleaanse waarde (1 of 0). Als de respons 0 is, is de knop ingedrukt en loopt de teller van passagiers op en wordt een welkomstbericht weergegeven. Wanneer de maximale capaciteit is bereikt, klinkt er een waarschuwingsbericht.
Stap 4: Kopieer de code
%Ingangen: Druk op de knop, temperatuursensor
%Uitgangen: lichten, zoemers, audiowaarschuwing, e-mails, grafieken
Doel: Dit product is ontworpen om de veiligheid en het comfort van passagiers die met de trein door de woestijn reizen te helpen verzekeren.
%Gebruik: Detectie van het aantal passagiers met behulp van een drukknop, en %detectie van de warmte met behulp van een temperatuursensor en grafiek en verzendt zowel % passagiersnummers als de temperatuurgrafiek naar het treinstation
configurePin(a, 'D2', 'pullup'); %gebruik in toekomstige releases configurePin
tijd = 200;
e=0;
x=0
terwijl tijd > 0
button_status = readDigitalPin(a, 'D2'); % is gelijk aan nul wanneer de knop wordt ingedrukt, anders is gelijk aan 1
voltage = readVoltage (a, 'A0');% pin hangt af van waar we het plaatsen
tempCelcius = (spanning*100)-50; % gegeven in sensorhandleiding
tempF(time) = (tempCelcius*1.8)+32 % bekende conversieformule
maximaal = 120; % graden F
writeDigitalPin(a, 'D11', 1);
rem=mod(e, 2);
if tempF(tijd)>=max
writeDigitalPin(a, 'D11', 0);
writeDigitalPin(a, 'D9', 1);
speeltoon(a, 'D9', 2400,.5)
pauze (.5)
schrijfDigitalPin(a, 'D6', 1)
speeltoon(a, 'D6', 1000,.5)
pauze (.5)
writeDigitalPin(a, 'D9', 1);
speeltoon(a, 'D9', 2400,.5)
pauze (.5)
schrijfDigitalPin(a, 'D6', 1)
playTone(a, 'D6', 1000,.5) %speelt "sirene"
z='Oververhitting.m4a'; %Dit plaatst het geluidsbestand in een variabele
[data, freq]=audioread(z); %Laadt gegevens uit geluidsbestand
o=audiospeler(data, freq); %Maakt een object om het afspelen van het audiobestand te regelen
o.play() %Speelt audiobestand af
o.playblocking() %Speelt bestand af en wacht tot het klaar is
einde
if button_status == 0 && rem==0
e=e+1
msgbox('Welkom aan boord!');
elseif button_status == 0 && rem==1
e=e+1
msgbox('Bienvenido a bordo!');
einde
als e==5
writeDigitalPin(a, 'D11', 0);
als x==0
speeltoon(a, 'D6', 600, 1);
s='Waarschuwing_EF.m4a'; %Dit plaatst het geluidsbestand in een variabele
[data, freq]=audioread(s); %Laadt gegevens uit geluidsbestand
o=audiospeler(data, freq); %Maakt een object om het afspelen van het audiobestand te regelen
% o.play() %Speelt audiobestand af
o.playblocking() %Speelt bestand af en wacht tot het klaar is
msgbox('Maximale capaciteit')
x=x+1
einde
andersif e>=6
playTone(a, 'D6', 2400, 0);
einde
tijd = tijd - 1;
% pauze(0.1);
% als e==5 && max(tempF)>=120
% tijd=0
% einde
einde
ee=getal2str(e)
t=[1:200];
tempF2=fliplr(tempF);
plot(t, tempF2);
title('Tijd versus temperatuur')
ylabel('Temperatuur(F)')
xlabel('Tijd(en)')
saveas(gcf, 'tempplot.jpg')
mail= '[email protected]'
wachtwoord='Srsora123#'
host='smtp.gmail.com'
setpref('Internet', 'SMTP_Server', host);
setpref('Internet', 'E-mail', mail);
setpref('Internet', 'SMTP_Gebruikersnaam', mail);
setpref('Internet', 'SMTP_Password', wachtwoord);
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(mail, 'Hallo Treinstation! Er zitten zoveel passagiers in de trein', ee, 'tempplot.jpg')
Stap 5: Resultaten
Aanbevolen:
Squeal & schrapen: 5 stappen
Squeal & Scrape: Dit project kan worden gemaakt door een PCB te frezen met behulp van bestanden op github of door vero-board te gebruiken zoals in de afbeelding. Er is wat soldeerwerk vereist, dus de gebruikelijke apparatuur is nodig: soldeerboutstandaardsoldeerdraadtipreinigerdraadknipperdraadstripperhelpt
Python-introductie - Katsuhiko Matsuda & Edwin Cijo - Basis: 7 stappen
Python Introductie - Katsuhiko Matsuda & Edwin Cijo - Basis: Hallo, we zijn 2 studenten in MYP 2. We willen je de basis leren van het coderen van Python. Het werd eind jaren 80 gemaakt door Guido van Rossum in Nederland. Het werd gemaakt als een opvolger van de ABC-taal. Zijn naam is "Python" omdat wanneer
Op LoRa gebaseerd visueel bewakingssysteem voor landbouw Iot - Een fronted applicatie ontwerpen met Firebase & Angular: 10 stappen
Op LoRa gebaseerd visueel bewakingssysteem voor landbouw Iot | Een fronted-applicatie ontwerpen met Firebase & Angular: In het vorige hoofdstuk hebben we het gehad over hoe de sensoren werken met de loRa-module om de Firebase Realtime-database te vullen, en we hebben het diagram op zeer hoog niveau gezien hoe ons hele project werkt. In dit hoofdstuk gaan we het hebben over hoe we
Temperatuur CubeSat Ben & Kaiti & Q Hour 1: 8 stappen
Temperature CubeSat Ben & Kaiti & Q Uur 1: Heb je ooit zelf iets willen maken dat naar de ruimte kan worden gestuurd en de temperatuur van een andere planeet kan opnemen? In onze natuurkundeles op de middelbare school kregen we de opdracht om een CubeSat te bouwen met een functionerende arduino met de hoofdvraag Hoe kunnen we
Nog een Arduino-weerstation (ESP-01 & BMP280 & DHT11 & OneWire): 4 stappen
Nog een Arduino-weerstation (ESP-01 & BMP280 & DHT11 & OneWire): hier vindt u een iteratie van het gebruik van OneWire met de weinige pinnen van een ESP-01. Het apparaat dat in deze instructable is gemaakt, maakt verbinding met het wifi-netwerk van uw keuze (u moet de inloggegevens hebben…) Verzamelt sensorische gegevens van een BMP280 en een DHT11