Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Dette er et studentprosjekt som kombinerer funksjonene til en LCD -skjerm, en summer, en RGB og en DHT -temperatursensor.
Den nåværende omgivende temperaturen vises og oppdateres på LCD -skjermen.
Meldingen som skrives ut på LCD -skjermen informerer brukeren om nivået på "brannfare".
Skjermen dempes og blinker for å varsle brukeren om fare.
Summeren blir høyere og raskere for å varsle brukeren om fare, avhengig av gjeldende risiko.
RGB endres grønt, gult, oransje og rødt avhengig av gjeldende risiko.
Kan settes inn i et 3D -trykt kabinett for et mer profesjonelt utseende.
Dette løser et reelt problem med at folk ikke vet når det er fare for brann før det er for sent
Trinn 1: Samle materialer
Materialer som brukes i dette prosjektet:
1x LCD -skjerm
1x DHT_11 temperatursensor
1x RGB
1x Piezo passiv summer 1.0v
2x små brødbrett
3x standard motstander
1x brødstørrelse med normal størrelse
1x Arduino UNO
Bluetack for å låse ledninger på plass.
Et utvalg av ledninger med forskjellige ender, både åpne og enkle.
En enhet for å kjøre koden
Tilgang til en 3D -skriver hvis du ønsker det ytre skallet og et mer polert utseende
Trinn 2: Sette opp brødbrettene
1. Koble den oransje ledningen fra pinnen merket "GND" på Arduino -brettet og koble den til den negative siden (blå) på brødbrettet. Fra dette tidspunktet vil vi ganske enkelt sette dem i samme kolonne som dette på brødbrettet hvis vi trenger å bruke GND for eksterne enheter.
2. Koble den røde ledningen fra pinnen merket "5V" på Arduino -brettet og koble den til den positive (røde) siden av brødbrettet. Fra dette tidspunktet vil vi ganske enkelt sette dem i samme kolonne som dette på brødbrettet hvis vi trenger å bruke 5V for eksterne enheter.
Trinn 3: Sette opp LCD -skjerm
1. Snu brettet så det vender opp ned med alle pinnene på venstre side.
2. Koble en ledning 5 øverst til venstre på den øverste raden av pinner og koble den til pinne nummer 4 på Arduino UNO.
3. Koble en ledning 6 øverst til venstre på den øverste raden av pinner og koble den til pinne nummer 5 på Arduino UNO.
4. Koble en ledning 7 øverst til venstre på den øverste raden med pinner og koble den til pinne 6 på Arduino UNO.
5. Koble en ledning 8 øverst til venstre på den øverste raden med pinner og koble den til pinne 7 på Arduino UNO.
6. Koble en ledning 9 øverst til venstre på den øverste raden av pinner og koble den til pinne nummer 8 på Arduino UNO.
7. Koble en ledning 10 øverst til venstre på den øverste pinnen og koble den til pinne 9 på Arduino UNO.
8. Koble en ledning 3 nederst til høyre og koble den til 5V -raden på brødbrettet
9. Koble en ledning 4 nederst til høyre og koble den til GND -raden på brødbrettet
SE BILDER SOM KRETSSKJEMA VISER ULIKE LCD
Trinn 4: Sette opp Piezo Buzzer
1. Koble en ledning fra GND -pinnen på summeren til GND -kolonnen (blå) på brødbrettet
2. Koble en ledning fra VCC -pinnen på summeren til 5V -kolonnen (rød) på brødbrettet
3. Koble en ledning fra SIG -pinnen på summeren til pinnen nummerert "10" på arduino UNO -kortet
SE OVENNEN BILDER SOM KRETSSKJEMA Viser ULIKE BUZZER
Trinn 5: Sette opp DHT -temperatursensoren
1. Sett opp DHT -sensoren i brødbrettet som vist ovenfor
2. Koble den første pinnen til venstre for DHT -sensoren (merket VCC i deldiagrammet) til 5V -kolonnen (rød) på brødbrettet
3. Koble den andre pinnen til venstre for DHT -sensoren (merket DATA i deldiagrammet) til A0 -porten på Arduino UNO
4. Koble den første pinnen til høyre på DHT -sensoren (merket GND i deldiagrammet) til GND -kolonnen (blå) på brødbrettet
5. Se en opplæring og legg til dht.h -biblioteket som er funnet på slutten av instruksjonsboken til Arduino. (Dette er obligatorisk)
Trinn 6: Konfigurere RGB
1. Plasser RGB i et lite brødbrett som vist ovenfor, med vekt på at det andre benet fra venstre på RGB er ett spor nærmere enn de tre andre
2. Plasser standardmotstander på den første, tredje og fjerde pinnen. La plass til minst én ledning til (som vist ovenfor).
3. Koble en ledning bak motstanden på venstre pinne på RGB til pinnen merket 2 på Arduino UNO
4. Koble en ledning bak den andre seksten fra venstre pinne på RGB til GND (blå) kolonnen på brødbrettet.
5. Koble en ledning bak motstanden på den andre fra høyre pinne på RGB til pinnen merket 1 på Arduino UNO
6. Koble en ledning bak motstanden på høyre pinne på RGB til pinnen merket 3 på Arduino UNO
Trinn 7: Valgfritt 3D -utskriftshus
1. Finn en veiledning om hvordan du skriver ut i 3D.
2. Skriv ut det vedlagte designet nedenfor på Autodesk Fusion 360 (.stl -fil)
3. Skrap av overflødig 3D -materiale og glatt over overflaten
4. Se bildet ovenfor for veiledning om hvor du skal plassere Arduino -deler.
Trinn 8: Koden og filene
-DHT.h -biblioteket er vedlagt. (UNZIP)
-Koden med detaljerte kommentarer er vedlagt, men er også på neste trinn.
-STL -filen for 3D -huset er vedlagt
-Kretsdiagrammet er igjen vedlagt. Sørg for å referere til de faktiske trinnene for LCD -skjermen og piezo -summeren da forskjellige komponenter ble brukt.
Trinn 9: Arduino -kode
// LCD -BRANNVARSLINGSSYSTEM // Leser inngang fra DHT -temperaturpinne, og avhengig av om det er varmt eller ikke, endrer en rgb og høyttaler for å indikere brukeren hvis det er fare for brann. // Viser også temperaturen på LCD -skjermen.
// DHT SETUP
#include // Inkluder DHT -biblioteket
#define dht_dpin A0 // Forteller brettet at DHT -pinnen er i analog inngang 0
dht DHT; // dht = DHT
// FLYTENDE KRYSTALOPPSETT
#include // Inkluder Liquid Crystal -biblioteket
LiquidCrystal lcd (8, 9, 4, 5, 6, 7); // Forkort til LCD /forteller arduino hvilke porter LCD -skjermen har
// DEFINERING RGB + BUZZER
#define redpin 1 // Definerer redpin for RGB i port 1
#define greenpin 2 // Definerer greenpin for RGB i port 2
#define bluepin 3 // Definerer bluepin for RGB i port 3
#define buzzerpin 10 // Definerer buzzerpin i port 10
// VARIABLE/S
int temp = analogRead (DHT.temperatur); // Etablerer heltall "temp" som er verdien fra kommandoen DHT.temperature
ugyldig oppsett () {
// UTGANG/INNGANG
analogWrite (redpin, OUTPUT); // Deklarere/definere redpin som Output
analogWrite (greenpin, OUTPUT); // Deklarere/definere greenpin som Output
analogWrite (bluepin, OUTPUT); // Deklarere/definere bluepin som Output
pinMode (buzzerpin, OUTPUT); // Deklarere/definere buzzerpin som Output
// LCD SKJERM
lcd.begin (16, 2); // Definer LCD -skjermen som 16 kolonner og 2 rader}
void loop () {
// LCD -KODE UTEN VARIABILITET
DHT.read11 (dht_dpin); // Les også input fra dht_dpin (A0)
lcd.setCursor (0, 0); // Setter forbannelse til kolonne 0, rad 0
lcd.print ("Det er"); // Skriver "It's" på LCD -skjermen
lcd.print (DHT.temperatur); // Skriver ut DHT.temperaturverdien fra DHT -pinnen på kolonne 0, rad 0
lcd.print (""); // Skriver ut et mellomrom etter temperaturen
lcd.print ((røyke) 223); // skriver ut Gradskilt etter temperatur
lcd.print ("C"); // Skriver ut en "c" etter graderstegnet for å symbolisere celsius
// LCD -BLINKER
lcd.setCursor (0, 1); // Setter forbannelsen til kolonne 0, rad 1
lcd.noDisplay ();
lcd.print ("Ingen brannfare"); // Skriver ut "Ingen sjanse for brann"
lcd.noDisplay (); // Slår av LCD -skjermen (del av blits)
forsinkelse (1000); // Stopper i 1 sekund
LCD-skjerm(); // Slår LCD -skjermen på igjen
forsinkelse (1000); // Står på i 1 sekund
// RGB + BRUKERKODE
analogWrite (rødnål, 0); // Ingen utgang fra rød pin
analogWrite (greenpin, 255); // 255 utgang fra greenpin (gjør RGB grønn)
analogWrite (bluepin, 0); // Ingen utgang fra blå pin
tone (buzzerpin, 20, 20); // // Sender frekvens på 20 hertz i 0,02 sekunder fra summer
// HVIS TEMPEN ER 25-30
hvis ((int (DHT.temperatur)> = 25,00) && (int (DHT.temperatur) <= 30,00)) {
lcd.clear (); // Sletter LCD -skjermen
lcd.setCursor (0, 1); // Setter forbannelse til kolonne 0, rad 1
lcd.print ("Small Alert"); // Skriver ut "Small Alert" på kolonne 0, rad 1
lcd.noDisplay (); // Slår av LCD -skjermen (del av blits)
forsinkelse (1000); // Stopper i 1 sekund
LCD-skjerm(); // Slår LCD -skjermen på igjen
forsinkelse (1000); // Står på i 1 sekund
analogWrite (redpin, 255); // 255 output from redpin (Gjør RGB gul)
analogWrite (greenpin, 255); // 255 utgang fra greenpin (Gjør RGB gul)
analogWrite (bluepin, 0); // Ingen utgang fra blå pin
tone (buzzerpin, 200, 100); // Sender frekvens på 200 hertz i 0,1 sekunder fra summer
forsinkelse (300); //.3 Andre forsinkelse
} // HVIS TEMP ER 31-37 annet hvis ((int (DHT.temperatur) = 37,00)) {
lcd.clear (); // Sletter LCD -skjermen
lcd.setCursor (0, 1); // Setter forbannelsen til kolonne 0, rad 1
lcd.print ("Middels varsel"); // Skriver ut "Medium varsel" på kolonne 0, rad 1
lcd.noDisplay (); // Slår av LCD -skjermen (del av blits)
forsinkelse (500); // Holder seg i 0,5 sekund
LCD-skjerm(); // Slår LCD -skjermen på igjen
forsinkelse (500); // Står på i 0,5 sekund
analogWrite (redpin, 255); // 255 utgang fra redpin (gjør RGB oransje)
analogWrite (greenpin, 165); // 165 utgang fra greenpin (gjør RGB oransje)
analogWrite (bluepin, 0); // Ingen utdata fra bluepin
tone (buzzerpin, 500, 900); // Sender frekvens på 500 hertz i 0,9 sekunder fra summer
forsinkelse (300); //.3 Andre forsinkelse
} // HVIS TEMPEN ER 38-100
annet hvis ((int (DHT.temperatur) = 100,00)) {
lcd.clear (); // Sletter LCD -skjermen
lcd.setCursor (0, 1); // Setter forbannelse til kolonne 0, rad 1
lcd.print ("Ring 000"); // Skriver ut "Ring 000" på kolonne 0, rad 1
lcd.noDisplay (); // Slår av LCD -skjermen (del av blits)
forsinkelse (250); // Stopper i 0,25 sekunder
LCD-skjerm(); // Slår LCD -skjermen på igjen
forsinkelse (250); // Står på i 0,25 sekunder
analogWrite (redpin, 255); // 255 utgang fra redpin (Gjør RGB rød)
analogWrite (greenpin, 0); // Ingen utgang fra greenpin
analogWrite (bluepin, 0); // Ingen utdata fra bluepin
tone (buzzerpin, 1000, 900); // Sender frekvens på 1000 hertz i 0,9 sekunder fra summer
forsinkelse (300); //.3 Andre forsinkelse
}}