
Tartalomjegyzék:
2025 Szerző: John Day | [email protected]. Utoljára módosítva: 2025-01-23 14:47

Készítette: Hazel Yang
Ez a projekt egy meteorológiai állomás, amely egy Arduino UNO kártyát használ az adatáramlás szabályozására, egy DHT22 érzékelőt az adatok gyűjtésére és egy OLED képernyőt az adatok megjelenítésére.
1. lépés: Elemlista

1. Képernyő: OLED, 1,3 hüvelykes kijelző SH1106, I2C fehér színű ---- PID: 18283
2. Érzékelő: Digitális páratartalom- és hőmérsékletérzékelő DHT22 ---- PID: 7375
3. Csatlakoztatás: Jumper vezetékek ---- PID: 10316 vagy 10318 vagy 10312 (a hosszúságtól függően), vagy használhat tömör vezetéket 22 AWG ---- PID: 22490
Kenyeretábla ---- PID: 10686 vagy 10698 vagy 103142 (mérettől függően)
4. Tápellátás: Ez a kábel csak a számítógép USB -portjához csatlakoztatható, és a kábel adatátvitelre is használható az IDE és az Arduino kártya között. USB KÁBEL, A-B, M/M, 0,5M (1,5FT) ---- PID: 29862
Vagy használhatja a tápellátást: 5V 2A AC/DC adapter ---- PID: 10817.
2. lépés: Relatív bevezetés


A képernyő bemutatása: 1,3 -os OLED kijelző fehér
1. Az alapvető beállításokat és leírásokat bemutató dokumentumot megtalálja:
Az érzékelő bemutatása: Páratartalom és hőmérséklet érzékelő DHT22 1. A leírást tartalmazó dokumentum megtalálható:
3. lépés: Csatlakoztassa az áramkört

A DHT22 érzékelő soros adatokat küld a 2 -es tűre. Tehát csatlakoztassa a második tűt balról, az "SDA" csapot a 2 -es tűhöz kell csatlakoztatni.
Az SSH1106 kijelző esetében az analóg tűt használja az átvitelhez. A képernyő áramköre "SCL" érintkező lesz Arduino "A5" és "SDA" érintkezője Arduino "A4". Amíg a képpont pozíció adatai folyamatosan továbbítanak, a program megjelenítési funkciója csak egyszer aktiválja a parancsot minden alkalommal, amikor az adatokat kiolvassa az érzékelőből.
Mind az érzékelő, mind a képernyő a 3.3 V -ot használhatja az Arduino egyenáramú bemenetként történő bekapcsolására. Az áramellátáshoz mindkét "VCC" csatlakozót az Arduino "3.3V" -ához kell csatlakoztatnunk. És a "GND" csapok egyszerűen csatlakoztathatók az Arduino táblán lévő "GND" csapokhoz.
Az USB A -B kábellel csatlakoztassa az Arudino -t a számítógéphez.
4. lépés: Felkészülés a fordításra
"u8glib" az Olikraus SSH1106 képernyőjéhez.
"DHT szenzortár" az Adafruit DHT22 érzékelőjéhez. Töltse le a két könyvtárat: DHT22 szenzortár:
U8glib:
És használja a „könyvtár kezelését” az IDE -ben, hogy kicsomagolja őket. Online utasítások a könyvtárak kezeléséhez:
5. lépés: A DHT22 érzékelő soros portjának tesztkódja
Vizsgálja meg a DHT22 érzékelő soros portját (amely a DHT22 könyvtárban található >> példák):
(Ezt a részt kihagyhatja.)
Csak a DHT22 érzékelő teszteléséhez rendesen leolvassa az adatokat
#befoglalni
#befoglalni
#befoglalni
#befoglalni
#befoglalni
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
void setup () {
Sorozat.kezdet (9600);
Soros.println (F ("DHT22 teszt!"));
dht.begin ();
}
void loop () {
// Várjon néhány másodpercet a mérések között.
késleltetés (2000);
// A hőmérséklet vagy páratartalom leolvasása körülbelül 250 milliszekundumot vesz igénybe!
// Az érzékelő leolvasása akár 2 másodperces "régi" is lehet (nagyon lassú érzékelő)
float h = dht.readHumidity ();
// A hőmérséklet olvasása Celsius -ban (alapértelmezett)
float t = dht.readTemperature ();
// A hőmérséklet olvasása Fahrenheit szerint (isFahrenheit = igaz)
float f = dht.readTemperature (igaz);
// Ellenőrizze, hogy valamelyik olvasás nem sikerült -e, és lépjen ki korán (újrapróbálkozáshoz).
if (isnan (h) || isnan (t) || isnan (f)) {
Serial.println (F ("Nem sikerült olvasni a DHT érzékelőből!"));
Visszatérés;
}
// Hőindex kiszámítása Fahrenheitben (alapértelmezett)
float hif = dht.computeHeatIndex (f, h);
// Hőindex számítása Celsius -ban (isFahreheit = false)
float hic = dht.computeHeatIndex (t, h, false);
Soros.nyomat (F ("Páratartalom:"));
Soros.nyomat (h);
Soros.nyomat (F ("% hőmérséklet:"));
Soros.nyomat (t);
Soros.nyomat (F ("° C"));
Sorozatnyomat (f);
Soros.nyomat (F ("° F hőindex:"));
Soros.nyomtatás (hic);
Soros.nyomat (F ("° C"));
Soros.nyomat (hif);
Soros.println (F ("° F"));
}
// A program összeállítása után kattintson a TOOLS >> SERIAL MONITOR elemre az adatok ellenőrzéséhez.
// A tesztprogram vége.
6. lépés: A projekt kódja
#befoglalni
#befoglalni
#befoglalni
#befoglalni
#befoglalni
#define DHTPIN 2
#define DHTTYPE DHT22
#include "U8glib.h"
U8GLIB_SH1106_128X64 u8g (U8G_I2C_OPT_NONE);
DHT érzékelő (DHTPIN, DHTTYPE);
void draw (void) {
u8g.setFont (u8g_font_unifont);
float h = sensor.readHumidity ();
// A hőmérséklet olvasása Celsius -ban (alapértelmezett)
float t = sensor.readTemperature ();
// Ellenőrizze, hogy valamelyik olvasás nem sikerült -e, és lépjen ki korán (újrapróbálkozáshoz).
if (isnan (h) || isnan (t)) {
u8g.print ("Hiba");
a (;;);
Visszatérés;
}
u8g.setPrintPos (4, 10);
u8g.print ("Hőmérséklet (C):");
u8g.setPrintPos (4, 25);
u8g.nyom (t);
u8g.setPrintPos (4, 40);
u8g.print ("Páratartalom (%):");
u8g.setPrintPos (4, 55);
u8g.nyomtatás (h);
}
void setup (void) {
u8g.setRot180 ();
Sorozat.kezdet (9600);
sensor.begin ();
}
void loop (void) {
// képhurok
u8g.firstPage ();
csinál {
húz();
} while (u8g.nextPage ());
// némi késleltetés után újjáépíteni a képet (2000);
}
// A fő program vége.
7. lépés: Leírás

Ezután inicializálja a pin áramkört az Arduino kártyához. Mivel az érzékelőkönyvtár megköveteli az adatokat az objektum deklarálásához.
És tesztelheti az érzékelő adatait úgy, hogy figyeli a kimeneti adatokat a 2. digitális tűn keresztül a "Serial.print ()" nevű funkció használatával. Mivel az adatátvitel gyakorisága nagyjából 1 leolvasás 2 másodpercenként (ami 0,5 Hz), az Arduino IDE programozásakor a cikluson belüli késleltetést 2 másodpercnél hosszabbra kell állítanunk. Tehát van egy "késleltetés (2000)" a ciklusfüggvényen belül. Ez biztosítja az adatok gyakori frissítését. A "draw" funkcióban szerezze be az adatokat a soros adatportról, és tegye őket úszószámokba a "readHumidity" és a "readTemperature" függvények segítségével.
Nyomtassa ki a páratartalmat és a hőmérsékletet az "u8glib" fájl nyomtatási funkciójával. A pozíciót a "setPrintPos" funkció számának megváltoztatásával állíthatja be. A nyomtatási funkció közvetlenül megjeleníti a szöveget és a számokat.
A hardver beállításához adjon 10 másodperces késést a soros portnak. Ezután hívja az érzékelő start funkcióját. Az áramköröm szerint a képernyő fejjel lefelé volt. Tehát a kijelző elforgatásához egy "setRot180" funkciót is beépítettem.
Az Arduino kártya hurokfüggvénye a fő funkció. Folyamatosan hívja a rajzolási funkciót, hogy megjelenítse a szöveget és az adatokat minden alkalommal, amikor az érzékelő frissül.
A képernyő így néz ki:
Az Arduino UNO -t leválaszthatja a számítógépről, és a 2,1 mm -es hálózati aljzathoz csatlakoztatott 5 V -os egyenáramú tápegység segítségével bekapcsolhatja. Tárolja a programot a meghajtójában, és folyamatosan tudja futtatni a programot, miután bekapcsolta.
Ajánlott:
Egyszerű időjárás állomás az ESP8266 használatával: 6 lépés (képekkel)

Egyszerű időjárás állomás az ESP8266 használatával: Ebben az utasításban megosztom, hogyan kell használni az ESP8266 -t olyan adatok beszerzéséhez, mint a hőmérséklet, a nyomás, az éghajlat stb., Valamint a YouTube -adatokat, például az előfizetőket Teljes megtekintések száma. és jelenítse meg az adatokat a soros monitoron, és jelenítse meg az LCD -n. Az adatok f
Mini időjárás állomás az Arduino és a ThingSpeak használatával: 4 lépés

Mini meteorológiai állomás az Arduino és a ThingSpeak használatával: Üdv mindenkinek. Ebben az utasításban végigvezetem a személyre szabott mini időjárás -állomás létrehozásának lépésein. Ezenkívül a ThingSpeak API -t fogjuk használni időjárási adataink feltöltésére a szervereikre, vagy mi az időjárás -megfigyelés célja
Személyes időjárás állomás a Raspberry Pi használatával a BME280 -val Java -ban: 6 lépés

Személyes időjárás -állomás a Raspberry Pi használatával a BME280 -al Java -ban: A rossz idő mindig rosszabbul néz ki az ablakon keresztül. Mindig is érdekelt volt a helyi időjárás és az ablakon látott dolgok figyelemmel kísérése. Szerettük volna jobban szabályozni a fűtési és légkondicionáló rendszert is. Egy személyes meteorológiai állomás építése nagyszerű dolog
Intelligens időjárás állomás (Arduino használatával): 5 lépés

Intelligens időjárás -állomás (Arduino használatával): Az időjárás -állomás szárazföldi vagy tengeri létesítmény, amely a légköri viszonyok mérésére szolgáló eszközökkel és berendezésekkel szolgál az időjárás -előrejelzésekhez, valamint az időjárás és az éghajlat tanulmányozásához. A mérések tartalmazzák a hőmérsékletet
Külső időjárás állomás az Arduino használatával: 7 lépés

Külső időjárás állomás Arduino használatával: Felhasznált anyagok: Az árak hozzávetőlegesek és memória alapján. NodeMCU V3 Lua - 3 € Digitális hőmérséklet és páratartalom DTH 22 - 2 € Fotorezisztoros (LDR) érzékelő modul érzékeli a fényérzékeny fotodiódát az Arduino számára - 0,80 € 1 készlet/tétel Hó/esőcseppek érzékelő érzékelő