
Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-23 15:10

Skapad av: Hazel Yang
Detta projekt är en väderstation som använder ett Arduino UNO -kort för att styra dataflödet, en DHT22 -sensor för att samla in data och en OLED -skärm för att visa data.
Steg 1: Objektlista

1. Skärm: OLED, 1,3 Display SH1106, I2C vit färg ---- PID: 18283
2. Sensor: Digital fukt- och temperatursensor DHT22 ---- PID: 7375
3. Ansluter: Jumper Wires ---- PID: 10316 eller 10318 eller 10312 (beror på längden) eller så kan du använda solid tråd 22 AWG ---- PID: 22490
Brödbräda ---- PID: 10686 eller 10698 eller 103142 (beror på storlek)
4. Ström: Denna kabel kan endast anslutas med en dator USB -port och kabeln används också för dataöverföring mellan IDE och Arduino -kortet. USB-KABEL, A TILL B, M/M, 0,5M (1,5FT) ---- PID: 29862
Eller så kan du använda detta för att driva kortet: 5V 2A AC/DC-adapter ---- PID: 10817.
Steg 2: Relativ introduktion


Introduktion av skärmen: 1,3 OLED -skärm Vit
1. Du hittar dokumentet som visar den grundläggande installationen och beskrivningarna:
Introduktion av sensor: fukt- och temperatursensor DHT22 1. Du hittar dokumentet som visar beskrivningarna:
Steg 3: Anslut kretsen

DHT22 -sensorn skickar seriell data till stift 2. Så, anslut den andra stiftet från vänster, "SDA" -stiften bör anslutas till stift 2.
För SSH1106 -skärmen använder den analoga stiftet för att överföra. Skärmens kretsar kommer att vara "SCL" -stift till Arduinos "A5" och "SDA" -stift till Arduinos "A4". Medan pixelpositionsdata sänder kontinuerligt, utlöser displayfunktionen i programmet bara kommandot en gång varje gång det läser data från sensorn.
Både sensorn och skärmen kan använda 3.3V för att slå på Arduino som en likströmseffekt. För att få ström måste vi ansluta båda "VCC" -pinnarna till Arduinos "3.3V". Och "GND" -pinnarna kan enkelt anslutas till "GND" -pinnen på Arduino -kortet.
Använd USB A till B -kabeln, anslut Arudino till datorn.
Steg 4: Förbered dig på att kompilera
"u8glib" för SSH1106 -skärm från Olikraus.
"DHT -sensorbibliotek" för DHT22 -sensor från Adafruit. Du bör ladda ner de två biblioteken: DHT22 sensorbibliotek:
U8glib:
Och använd "hantera bibliotek" i IDE för att göra dem uppackade. Online instruktion för att hantera bibliotek:
Steg 5: Testkod för DHT22 Sensor Serial Port
Test coe för DHT22 -sensorns seriella port (som finns i DHT22 -biblioteket >> exempel):
(Du kan hoppa över den här delen.)
Det är bara för att testa DHT22 -sensorn läser data normalt
#omfatta
#omfatta
#omfatta
#omfatta
#omfatta
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
void setup () {
Serial.begin (9600);
Serial.println (F ("DHT22 -test!"));
dht.begin ();
}
void loop () {
// Vänta några sekunder mellan mätningarna.
fördröjning (2000);
// Avläsningstemperatur eller luftfuktighet tar cirka 250 millisekunder!
// Sensoravläsningar kan också vara upp till 2 sekunder gamla (det är en mycket långsam sensor)
float h = dht.readHumidity ();
// Läs temperaturen som Celsius (standard)
float t = dht.readTemperature ();
// Läs temperaturen som Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature (true);
// Kontrollera om någon läsning misslyckades och avsluta tidigt (för att försöka igen).
om (isnan (h) || isnan (t) || isnan (f)) {
Serial.println (F ("Det gick inte att läsa från DHT -sensorn!"));
lämna tillbaka;
}
// Beräkna värmeindex i Fahrenheit (standard)
float hif = dht.computeHeatIndex (f, h);
// Beräkna värmeindex i Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex (t, h, false);
Serial.print (F ("Luftfuktighet:"));
Serial.print (h);
Serial.print (F ("% Temperatur:"));
Serial.print (t);
Serial.print (F ("° C"));
Serial.print (f);
Serial.print (F ("° F Värmeindex:"));
Serial.print (hic);
Serial.print (F ("° C"));
Serial.print (hif);
Serial.println (F ("° F"));
}
// Efter att ha sammanställt programmet, klicka på VERKTYG >> SERIALMONITOR för att kontrollera data.
// Slut på testprogrammet.
Steg 6: Kod för projektet
#omfatta
#omfatta
#omfatta
#omfatta
#omfatta
#define DHTPIN 2
#define DHTTYPE DHT22
#inkludera "U8glib.h"
U8GLIB_SH1106_128X64 u8g (U8G_I2C_OPT_NONE);
DHT -sensor (DHTPIN, DHTTYPE);
void draw (void) {
u8g.setFont (u8g_font_unifont);
float h = sensor.readHumidity ();
// Läs temperaturen som Celsius (standard)
float t = sensor.readTemperature ();
// Kontrollera om någon läsning misslyckades och avsluta tidigt (för att försöka igen).
om (isnan (h) || isnan (t)) {
u8g.print ("Fel.");
för(;;);
lämna tillbaka;
}
u8g.setPrintPos (4, 10);
u8g.print ("Temperatur (C):");
u8g.setPrintPos (4, 25);
u8g.print (t);
u8g.setPrintPos (4, 40);
u8g.print ("Luftfuktighet (%):");
u8g.setPrintPos (4, 55);
u8g.print (h);
}
void setup (void) {
u8g.setRot180 ();
Serial.begin (9600);
sensor.begin ();
}
void loop (void) {
// bildslinga
u8g.firstPage ();
gör {
dra();
} medan (u8g.nextPage ());
// bygga om bilden efter en viss fördröjning (2000);
}
// Slut på huvudprogrammet.
Steg 7: Beskrivning

Initiera sedan stiftkretsen för Arduino -kortet. Eftersom sensorbiblioteket kräver data för att deklarera objektet.
Och du kan testa sensorns data genom att övervaka utdata via digital pin 2 med funktionen "Serial.print ()". Eftersom frekvensen för dataöverföring är ungefär 1 avläsning varannan sekund (vilket är 0,5 Hz), när vi programmerar den i Arduino IDE, måste vi ställa in fördröjningen inuti slingfunktionen till mer än 2 sekunder. Så det finns en "fördröjning (2000)" inuti slingfunktionen. Detta säkerställer att data uppdateras ofta. I funktionen "draw", hämta data från den seriella dataporten och sätt in dem i float -nummer med funktionerna "readHumidity" och "readTemperature".
Skriv ut luftfuktigheten och temperaturen med utskriftsfunktionen i filen "u8glib". Du kan justera positionen genom att ändra numret i funktionen "setPrintPos". Utskriftsfunktionen kan direkt visa text och siffror.
Ge den seriella porten en fördröjning på 10 sekunder för att installera hårdvaran. Ring sedan startfunktionen för sensorn. Enligt min krets var min skärm upp och ner. Så jag inkluderade också en "setRot180" -funktion för att rotera displayen.
Arduino -kortets loop -funktion är huvudfunktionen. Det fortsätter att rita funktionen för att visa text och data varje gång sensorn uppdateras.
Skärmen ser ut så här:
Du kan koppla bort Arduino UNO från din dator och driva den med en 5V DC -nätadapter som ansluts till dess 2,1 mm strömuttag. Det lagrar programmet inuti sin enhet och kan kontinuerligt köra programmet igen efter att det har drivits.
Rekommenderad:
Professionell väderstation med ESP8266 och ESP32 DIY: 9 steg (med bilder)

Professionell väderstation med hjälp av ESP8266 och ESP32 DIY: LineaMeteoStazione är en komplett väderstation som kan anslutas till professionella sensorer från Sensirion samt en viss Davis Instrument -komponent (regnmätare, vindmätare) Projektet är avsett som en DIY väderstation men kräver bara
Enkel väderstation med ESP8266 .: 6 steg (med bilder)

Enkel väderstation som använder ESP8266 .: I den här instruktionsboken kommer jag att dela hur jag använder ESP8266 för att få data som temperatur, tryck, klimat etc. Och YouTube -data som prenumeranter och amp; Totalt antal visningar. och visa data på seriell bildskärm och visa dem på LCD. Uppgifterna kommer att vara
Väderstation med Arduino, BME280 och display för att se trenden inom de senaste 1-2 dagarna: 3 steg (med bilder)

Väderstation Med Arduino, BME280 & Display för att se trenden under de senaste 1-2 dagarna: Hej! Här på instruerbara väderstationer har redan införts. De visar det aktuella lufttrycket, temperaturen och luftfuktigheten. Vad de saknade hittills var en presentation av kursen under de senaste 1-2 dagarna. Denna process skulle ha
DIY väderstation med DHT11, BMP180, Nodemcu med Arduino IDE över Blynk -server: 4 steg

DIY Weather Station Använda DHT11, BMP180, Nodemcu Med Arduino IDE Över Blynk Server: Github: DIY_Weather_Station Hackster.io: Weather StationDu skulle ha sett Weather Application rätt? Som när du öppnar den får du veta väderförhållandena som temperatur, luftfuktighet etc. Dessa avläsningar är medelvärdet för en stor är
Hur man gör en enkel väderstation med Arduino: 6 steg (med bilder)

Hur man gör en enkel väderstation med Arduino: Hej killar, I denna instruktionsbok kommer jag att förklara hur man gör en enkel väderstation för att känna av temperatur och fukt med DHT11 -sensorn och Arduino, de avkända data kommer att visas på LCD -skärmen. Innan du börjar denna instruerbara måste du veta så