INHOUDSOPGAWE:
- Stap 1: Itemlys
- Stap 2: Relatiewe inleiding
- Stap 3: Koppel die stroombaan
- Stap 4: Berei voor om saam te stel
- Stap 5: Toetskode vir die seriële poort van die DHT22 -sensor
- Stap 6: Kode vir die projek
- Stap 7: Beskrywing
Video: Weerstasie met behulp van Arduino UNO: 7 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
Geskep deur: Hazel Yang
Hierdie projek is 'n weerstasie wat 'n Arduino UNO -bord gebruik om die datavloei te beheer, 'n DHT22 -sensor om die data te versamel en 'n OLED -skerm om die data te wys.
Stap 1: Itemlys
1. Skerm: OLED, 1,3 skerm SH1106, I2C wit kleur ---- PID: 18283
2. Sensor: Digitale humiditeits- en temperatuursensor DHT22 ---- PID: 7375
3. Verbind: Jumper Wires ---- PID: 10316 of 10318 of 10312 (hang af van die lengte) of u kan soliede draad 22 AWG gebruik ---- PID: 22490
Broodbord ---- PID: 10686 of 10698 of 103142 (hang af van grootte)
4. Krag: Hierdie kabel kan slegs met 'n rekenaar -USB -poort verbind word, en die kabel word ook gebruik vir data -oordrag tussen die IDE- en Arduino -bord. USB-KABEL, A TOT B, M/M, 0.5M (1.5FT) ---- PID: 29862
Of u kan dit gebruik om die bord aan te dryf: 5V 2A AC/DC-adapter ---- PID: 10817.
Stap 2: Relatiewe inleiding
Bekendstelling van die skerm: 1.3 OLED -skerm wit
1. U kan die dokument vind met die basiese opstelling en beskrywings:
Bekendstelling van sensor: humiditeits- en temperatuursensor DHT22 1. U kan die dokument vind met die beskrywings:
Stap 3: Koppel die stroombaan
Die DHT22 -sensor stuur seriële data na pen 2. Koppel dus die tweede pen van links, die "SDA" -pen moet aan pen 2 gekoppel word.
Vir die SSH1106 -skerm gebruik dit die analoog pen om oor te dra. Die kring van die skerm sal 'SCL' pen na Arduino se 'A5' en 'SDA' pen na Arduino se 'A4' wees. Terwyl die pixelposisie -data deurlopend oorgedra word, aktiveer die vertoningsfunksie in die program slegs een keer die opdrag wanneer dit die data van die sensor lees.
Beide die sensor en die skerm kan die 3.3V gebruik om Arduino as 'n GS -ingang aan te skakel. Om krag te kry, moet ons albei die "VCC" -penne aan die Arduino se "3.3V" koppel. En die "GND" -penne kan eenvoudig aan die "GND" -pen op die Arduino -bord gekoppel word.
Gebruik die USB A tot B -kabel, verbind die Arudino met die rekenaar.
Stap 4: Berei voor om saam te stel
"u8glib" vir SSH1106 -skerm van Olikraus.
"DHT -sensorbiblioteek" vir DHT22 -sensor van Adafruit. U moet die twee biblioteke aflaai: DHT22 sensorbiblioteek:
U8glib:
En gebruik 'bestuur biblioteek' in IDE om dit uit te rits. Aanlyn instruksie vir die bestuur van biblioteke:
Stap 5: Toetskode vir die seriële poort van die DHT22 -sensor
Toets die seriële poort van die DHT22 -sensor (wat binne die DHT22 -biblioteek >> voorbeelde is):
(U kan hierdie deel oorslaan.)
Dit is net om die DHT22 -sensor te toets, lees data normaalweg
#insluit
#insluit
#insluit
#insluit
#insluit
#definieer DHTPIN 2
#definieer DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
ongeldige opstelling () {
Serial.begin (9600);
Serial.println (F ("DHT22 -toets!"));
dht.begin ();
}
leemte -lus () {
// Wag 'n paar sekondes tussen metings.
vertraging (2000);
// Leestemperatuur of humiditeit neem ongeveer 250 millisekondes!
// Sensorlesings kan ook tot 2 sekondes oud wees (dit is 'n baie stadige sensor)
float h = dht.readHumidity ();
// Lees temperatuur as Celsius (standaard)
float t = dht.readTemperature ();
// Lees temperatuur as Fahrenheit (isFahrenheit = waar)
float f = dht.readTemperature (waar);
// Kontroleer of enige lees misluk het en vertrek vroeg (om weer te probeer).
as (isnan (h) || isnan (t) || isnan (f)) {
Serial.println (F ("Kan nie lees van DHT -sensor nie!"));
terugkeer;
}
// Bereken hitte -indeks in Fahrenheit (die standaard)
float hif = dht.computeHeatIndex (f, h);
// Bereken hitte -indeks in Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex (t, h, false);
Serial.print (F ("Humidity:"));
Reeks.afdruk (h);
Serial.print (F ("% temperatuur:"));
Reeks.afdruk (t);
Serial.print (F ("° C"));
Reeks.afdruk (f);
Serial.print (F ("° F Warmte -indeks:"));
Serial.print (hic);
Serial.print (F ("° C"));
Reeks.afdruk (hif);
Serial.println (F ("° F"));
}
// Nadat u die program saamgestel het, klik op TOOLS >> SERIAL MONITOR om die data na te gaan.
// Einde van die toetsprogram.
Stap 6: Kode vir die projek
#insluit
#insluit
#insluit
#insluit
#insluit
#definieer DHTPIN 2
#definieer DHTTYPE DHT22
#sluit "U8glib.h" in
U8GLIB_SH1106_128X64 u8g (U8G_I2C_OPT_NONE);
DHT -sensor (DHTPIN, DHTTYPE);
leegte trek (leeg) {
u8g.setFont (u8g_font_unifont);
float h = sensor.readHumidity ();
// Lees temperatuur as Celsius (standaard)
float t = sensor.readTemperature ();
// Kontroleer of enige lees misluk het en vertrek vroeg (om weer te probeer).
as (isnan (h) || isnan (t)) {
u8g.print ("Fout.");
vir (;;);
terugkeer;
}
u8g.setPrintPos (4, 10);
u8g.print ("Temperatuur (C):");
u8g.setPrintPos (4, 25);
u8g.print (t);
u8g.setPrintPos (4, 40);
u8g.print ("Humiditeit (%):");
u8g.setPrintPos (4, 55);
u8g.print (h);
}
ongeldige opstelling (ongeldig) {
u8g.setRot180 ();
Serial.begin (9600);
sensor.begin ();
}
leegte -lus (leegte) {
// prentlus
u8g.firstPage ();
doen {
trek ();
} terwyl (u8g.nextPage ());
// herbou die prentjie na 'n vertraging (2000);
}
// Einde van die hoofprogram.
Stap 7: Beskrywing
Inisialiseer dan die penkringe vir die Arduino -bord. Omdat die sensorbiblioteek die data benodig om die voorwerp te verklaar.
En u kan die sensor se data toets deur die uitvoerdata deur middel van digitale pen 2 te monitor deur die funksie genaamd "Serial.print ()" te gebruik. Omdat die frekwensie van data -oordrag ongeveer 1 lesing elke 2 sekondes is (wat 0,5 Hz is), moet ons die vertraging binne die lusfunksie meer as 2 sekondes stel as dit in Arduino IDE geprogrammeer word. Daar is dus 'n "vertraging (2000)" in die lusfunksie. Dit verseker dat die data gereeld verfris word. In die funksie "trek", kry die data van die seriële data -poort en sit dit in getalle met behulp van die "readHumidity" en "readTemperature" funksies.
Druk die humiditeit en temperatuur uit met die afdrukfunksie in die "u8glib" -lêer. U kan die posisie aanpas deur die nommer in die "setPrintPos" -funksie te verander. Die drukfunksie kan die teks en syfers direk wys.
Gee die seriële poort 'n vertraging van 10 sekondes om die hardeware op te stel. Bel dan die beginfunksie vir die sensor. Volgens my kring was my skerm onderstebo. Ek het dus ook 'n "setRot180" -funksie ingesluit om die skerm te draai.
Die lusfunksie van die Arduino -bord is die belangrikste funksie. Dit bel die tekenfunksie steeds om die teks en data te vertoon elke keer as die sensor opgedateer word.
Die skerm lyk so:
U kan die Arduino UNO van u rekenaar ontkoppel en met 'n 5V DC -adapter aansluit wat aansluit op die 2,1 mm -aansluiting. Dit stoor die program in sy skyf en kan die program voortdurend weer uitvoer nadat dit aangeskakel is.
Aanbeveel:
Professionele weerstasie met behulp van ESP8266 en ESP32 DIY: 9 stappe (met foto's)
Professionele weerstasie met behulp van ESP8266 en ESP32 DIY: LineaMeteoStazione is 'n volledige weerstasie wat met professionele sensors van Sensirion sowel as 'n Davis -instrumentkomponent (reënmeter, windmeter) verbind kan word
Eenvoudige weerstasie met behulp van ESP8266 .: 6 stappe (met foto's)
Eenvoudige weerstasie met behulp van ESP8266 .: In hierdie instruksies sal ek deel hoe ek ESP8266 kan gebruik om data soos temperatuur, druk, klimaat ens te kry. En YouTube -data soos intekenare en amp; Totale aantal kyke. en vertoon die data op Serial monitor en vertoon dit op LCD. Die data sal f
Beheer oor die hele wêreld met behulp van internet met behulp van Arduino: 4 stappe
Beheer oor die hele wêreld met behulp van internet met behulp van Arduino: Hallo, ek is Rithik. Ons gaan 'n internetbeheerde LED maak met u telefoon. Ons gaan sagteware soos Arduino IDE en Blynk gebruik. Dit is eenvoudig, en as u daarin geslaag het, kan u soveel elektroniese komponente beheer as wat u wil
DIY weerstasie met behulp van DHT11, BMP180, Nodemcu met Arduino IDE oor Blynk -bediener: 4 stappe
DIY weerstasie met behulp van DHT11, BMP180, Nodemcu met Arduino IDE oor Blynk -bediener: Github: DIY_Weather_Station Hackster.io: Weerstasie U sou die weertoepassing reg gesien het? Soos, as u dit oopmaak, leer u die weerstoestande, soos temperatuur, humiditeit, ens., Die gemiddelde waarde van 'n groot is
Acurite 5 in 1 weerstasie met behulp van 'n Raspberry Pi en Weewx (ander weerstasies is versoenbaar): 5 stappe (met foto's)
Acurite 5 in 1 weerstasie met behulp van 'n Raspberry Pi en Weewx (ander weerstasies is versoenbaar): Toe ek die Acurite 5 in 1 weerstasie gekoop het, wou ek die weer by my huis kon sien terwyl ek weg was. Toe ek by die huis kom en dit opstel, besef ek dat ek óf die skerm aan 'n rekenaar moet koppel, óf hul slim hub moet koop