Sadržaj:
- Korak 1: Popis stavki
- Korak 2: Relativni uvod
- Korak 3: Spojite krug
- Korak 4: Pripremite se za sastavljanje
- Korak 5: Ispitni kôd za serijski priključak osjetnika DHT22
- Korak 6: Kôd za projekt
- Korak 7: Opis
Video: Meteorološka postaja koja koristi Arduino UNO: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:34
Autor: Hazel Yang
Ovaj projekt je meteorološka stanica koja koristi Arduino UNO ploču za kontrolu protoka podataka, DHT22 senzor za prikupljanje podataka i OLED zaslon za prikaz podataka.
Korak 1: Popis stavki
1. Zaslon: OLED, 1,3-inčni zaslon SH1106, I2C bijela boja ---- PID: 18283
2. Senzor: Digitalni osjetnik vlage i temperature DHT22 ---- PID: 7375
3. Priključuje: Žice kratkospojnika ---- PID: 10316 ili 10318 ili 10312 (ovisi o duljini) ili možete koristiti punu žicu 22 AWG ---- PID: 22490
Oglasna ploča ---- PID: 10686 ili 10698 ili 103142 (ovisi o veličini)
4. Napajanje: Ovaj kabel može se povezati samo s USB priključkom računala, a kabel se također koristi za prijenos podataka između IDE -a i Arduino ploče. USB KABL, A DO B, M/M, 0,5 M (1,5FT) ---- PID: 29862
Ili možete koristiti ovo za napajanje ploče: 5V 2A AC/DC adapter ---- PID: 10817.
Korak 2: Relativni uvod
Predstavljanje ekrana: 1,3 OLED ekran bijele boje
1. Dokument koji prikazuje osnovne postavke i opise možete pronaći:
Predstavljanje senzora: Senzor vlage i temperature DHT22 1. Dokument koji prikazuje opise možete pronaći na:
Korak 3: Spojite krug
Senzor DHT22 šalje serijske podatke na pin 2. Dakle, spojite drugi pin s lijeve strane, pin "SDA" treba spojiti na pin 2.
Za zaslon SSH1106 za prijenos koristi analogni pin. Sklopovi zaslona bit će "SCL" pin na Arduinovom "A5" i "SDA" pin na Arduinovom "A4". Dok se podaci o položaju piksela kontinuirano prenose, funkcija prikaza u programu pokreće naredbu samo jednom svaki put kada pročita podatke sa senzora.
Senzor i zaslon mogu koristiti 3,3 V za napajanje Arduina kao istosmjernog ulaza napajanja. Za napajanje moramo spojiti oba "VCC" pina na Arduino "3.3V". Igle "GND" mogu se jednostavno spojiti na pin "GND" na Arduino ploči.
Upotrijebite USB A do B kabel, spojite Arudino na računalo.
Korak 4: Pripremite se za sastavljanje
"u8glib" za zaslon SSH1106 od Olikrausa.
"Knjižnica DHT senzora" za DHT22 osjetnik iz Adafruit -a. Trebali biste preuzeti dvije knjižnice: DHT22 senzorsku knjižnicu:
U8glib:
I upotrijebite "upravljanje knjižnicom" u IDE -u da biste ih raspakirali. Mrežne upute za upravljanje knjižnicama:
Korak 5: Ispitni kôd za serijski priključak osjetnika DHT22
Testni koeficijent za serijski port DHT22 osjetnika (koji se nalazi unutar knjižnice DHT22 >> primjeri):
(Ovaj dio možete preskočiti.)
Samo za testiranje DHT22 osjetnik normalno čita podatke
#uključi
#uključi
#uključi
#uključi
#uključi
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
void setup () {
Serial.begin (9600);
Serial.println (F ("DHT22 test!"));
dht.begin ();
}
void loop () {{100} {101}
// Pričekajte nekoliko sekundi između mjerenja.
odgoda (2000);
// Čitanje temperature ili vlažnosti traje oko 250 milisekundi!
// Očitavanja senzora mogu biti i do 2 sekunde "stara" (senzor je vrlo spor)
float h = dht.readHumidity ();
// Očitavanje temperature u Celzijusima (zadano)
float t = dht.readTemperature ();
// Očitavanje temperature kao Fahrenheita (isFahrenheit = istina)
float f = dht.readTemperature (true);
// Provjerite neuspjelo čitanje i prijevremeno izađite (za ponovni pokušaj).
if (isnan (h) || isnan (t) || isnan (f)) {
Serial.println (F ("Očitavanje nije uspjelo s DHT senzora!"));
povratak;
}
// Izračunajte toplinski indeks u Fahrenheitu (zadano)
float hif = dht.computeHeatIndex (f, h);
// Izračunajte toplinski indeks u Celzijusima (isFahreheit = false)
float hic = dht.computeHeatIndex (t, h, false);
Serial.print (F ("Vlažnost:"));
Serijski.tisak (h);
Serial.print (F ("% Temperatura:"));
Serijski.tisak (t);
Serijski.ispis (F ("° C"));
Serijski.ispis (f);
Serial.print (F ("° F Toplinski indeks:"));
Serijski.ispis (hic);
Serijski.ispis (F ("° C"));
Serijski.ispis (hif);
Serial.println (F ("° F"));
}
// Nakon sastavljanja programa kliknite ALATI >> SERIJSKI MONITOR za provjeru podataka.
// Završetak programa testiranja.
Korak 6: Kôd za projekt
#uključi
#uključi
#uključi
#uključi
#uključi
#define DHTPIN 2
#define DHTTYPE DHT22
#uključuje "U8glib.h"
U8GLIB_SH1106_128X64 u8g (U8G_I2C_OPT_NONE);
DHT senzor (DHTPIN, DHTTYPE);
void draw (void) {
u8g.setFont (u8g_font_unifont);
plovak h = senzor.readHumidity ();
// Očitavanje temperature kao Celzijusa (zadano)
float t = sensor.readTemperature ();
// Provjerite neuspjelo čitanje i prijevremeno izađite (za ponovni pokušaj).
if (isnan (h) || isnan (t)) {
u8g.print ("Pogreška.");
za(;;);
povratak;
}
u8g.setPrintPos (4, 10);
u8g.print ("Temperatura (C):");
u8g.setPrintPos (4, 25);
u8g.tisak (t);
u8g.setPrintPos (4, 40);
u8g.print ("Vlažnost (%):");
u8g.setPrintPos (4, 55);
u8g.tisak (h);
}
void setup (void) {
u8g.setRot180 ();
Serial.begin (9600);
sensor.begin ();
}
void loop (void) {
// petlja slike
u8g.firstPage ();
čini {
crtati();
} while (u8g.nextPage ());
// obnoviti sliku nakon nekog kašnjenja (2000);
}
// Kraj glavnog programa.
Korak 7: Opis
Zatim inicijalizirajte pin sklop za Arduino ploču. Budući da knjižnica senzora zahtijeva podatke za deklaraciju objekta.
Podatke senzora možete testirati praćenjem izlaznih podataka putem digitalnog pina 2 pomoću funkcije pod nazivom "Serial.print ()". Budući da je učestalost prijenosa podataka otprilike 1 očitanje svake 2 sekunde (što je 0,5 Hz), kada smo programirani u Arduino IDE -u, moramo postaviti kašnjenje unutar funkcije petlje na više od 2 sekunde. Dakle, unutar funkcije petlje postoji "kašnjenje (2000)". To osigurava da će se podaci često osvježavati. U funkciji "draw" preuzmite podatke sa serijskog podatkovnog porta i stavite ih u plutajuće brojeve pomoću funkcija "readHumidity" i "readTemperature".
Ispišite vlagu i temperaturu pomoću funkcije ispisa u datoteci "u8glib". Položaj možete prilagoditi promjenom broja u funkciji "setPrintPos". Funkcija ispisa može izravno prikazati tekst i brojeve.
Za postavljanje hardvera, dajte serijskom priključku kašnjenje od 10 sekundi. Zatim pozovite start funkciju senzora. Prema mojem krugu, zaslon mi je bio okrenut naopako. Tako sam uključio i funkciju "setRot180" za rotiranje zaslona.
Funkcija petlje Arduino ploče je glavna funkcija. Stalno poziva funkciju crtanja za prikaz teksta i podataka svaki put kad se senzor osvježi.
Zaslon izgleda ovako:
Arduino UNO možete odspojiti s računala i napajati ga pomoću 5V DC adaptera za napajanje koji se spaja na njegovu 2,1 mm utičnicu. Program pohranjuje unutar pogona i može ga kontinuirano pokrenuti nakon uključivanja.
Preporučeni:
Profesionalna meteorološka stanica koja koristi ESP8266 i ESP32 DIY: 9 koraka (sa slikama)
Profesionalna meteorološka postaja pomoću ESP8266 i ESP32 DIY: LineaMeteoStazione je potpuna meteorološka stanica koja se može povezati s profesionalnim senzorima tvrtke Sensirion, kao i nekim Davisovim instrumentom (mjerač kiše, anemometar) Projekt je namijenjen kao DIY meteorološka stanica, ali samo zahtijeva
Mini meteorološka postaja koja koristi Arduino i ThingSpeak: 4 koraka
Mini meteorološka postaja koja koristi Arduino i ThingSpeak: Pozdrav svima. U ovom Instructableu vodit ću vas kroz korake za izradu personalizirane mini meteorološke postaje. Također, koristit ćemo ThingSpeak API za prijenos naših vremenskih podataka na njihove poslužitelje, ili koja je svrha vremenske prognoze
Osobna meteorološka postaja koja koristi Raspberry Pi s BME280 na Javi: 6 koraka
Osobna meteorološka postaja koja koristi Raspberry Pi s BME280 na Javi: Loše vrijeme uvijek izgleda gore kroz prozor. Uvijek smo bili zainteresirani za praćenje našeg lokalnog vremena i onoga što vidimo kroz prozor. Također smo željeli bolju kontrolu nad našim sustavom grijanja i klimatizacije. Izgradnja osobne vremenske postaje velika je
Meteorološka postaja koja koristi Raspberry Pi s BME280 u Pythonu: 6 koraka
Meteorološka postaja koja koristi Raspberry Pi s BME280 u Pythonu: is maith an scéalaí an aimir (The Weather is Good Storyteller) S globalnim zatopljenjem i problemima klimatskih promjena, globalni vremenski uzorak postaje nestalan u cijelom svijetu što dovodi do brojnih vremenskih uvjeta prirodne katastrofe (suše, ekstremne
Meteorološka postaja koja koristi veliki zaslon ST7920: 4 koraka
Meteorološka postaja koja koristi veliki zaslon ST7920: Dragi prijatelji, dobrodošli na još jednu instrukciju! U ovom ćemo vodiču prvi put pogledati ovaj veliki LCD zaslon i s njim ćemo napraviti monitor za temperaturu i vlagu. Uvijek sam želio pronaći zaslon sličan disp -u