Sadržaj:
- Korak 1: Lista stavki
- Korak 2: Relativni uvod
- Korak 3: Spojite krug
- Korak 4: Pripremite se za kompajliranje
- Korak 5: Kôd za testiranje za serijski port senzora DHT22
- Korak 6: Kôd za projekat
- Korak 7: Opis
Video: Meteorološka stanica koja koristi Arduino UNO: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
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 ekran za prikaz podataka.
Korak 1: Lista stavki
1. Ekran: OLED, 1,3-inčni ekran SH1106, I2C bijela boja ---- PID: 18283
2. Senzor: Digitalni osjetnik vlage i temperature DHT22 ---- PID: 7375
3. Povezuje: kratkospojne žice ---- PID: 10316 ili 10318 ili 10312 (ovisno o dužini) 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 se može povezati samo s USB portom računala, a kabel se koristi i 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 bele boje
1. Možete pronaći dokument koji prikazuje osnovne postavke i opise:
Predstavljanje senzora: Senzor vlažnosti 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, "SDA" pin bi trebao biti spojen na pin 2.
Za ekran SSH1106 koristi analogni pin za prijenos. Sklop ekrana će biti "SCL" pin na Arduino "A5" i "SDA" pin na Arduino "A4". Dok se podaci o položaju piksela neprestano prenose, funkcija prikaza u programu pokreće naredbu samo jednom svaki put kada pročita podatke sa senzora.
I senzor i zaslon mogu koristiti 3.3V za napajanje Arduina kao ulaza za istosmjernu struju. Za napajanje moramo spojiti oba "VCC" pina na Arduino "3.3V". Igle "GND" se mogu 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 kompajliranje
"u8glib" za ekran SSH1106 kompanije Olikraus.
"Biblioteka DHT senzora" za DHT22 senzor iz Adafruit -a. Trebali biste preuzeti dvije biblioteke: DHT22 senzorsku biblioteku:
U8glib:
I upotrijebite "upravljanje bibliotekom" u IDE -u da biste ih raspakirali. Mrežne upute za upravljanje bibliotekama:
Korak 5: Kôd za testiranje za serijski port senzora DHT22
Testni koeficijent za serijski port DHT22 osjetnika (koji se nalazi unutar biblioteke DHT22 >> primjeri):
(Ovaj dio možete preskočiti.)
Samo za testiranje DHT22 senzor normalno čita podatke
#include
#include
#include
#include
#include
#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}
// Sačekajte nekoliko sekundi između merenja.
kašnjenje (2000);
// Očitavanje temperature ili vlažnosti traje oko 250 milisekundi!
// Očitavanja senzora mogu biti i do 2 sekunde "stara" (to je vrlo spor senzor)
float h = dht.readHumidity ();
// očitavanje temperature kao Celzijusa (zadano)
float t = dht.readTemperature ();
// Očitavanje temperature kao Fahrenheita (isFahrenheit = true)
float f = dht.readTemperature (true);
// Provjerite da li neko čitanje nije uspjelo i izađite ranije (da pokušate ponovo).
if (isnan (h) || isnan (t) || isnan (f)) {
Serial.println (F ("Očitavanje nije uspjelo sa DHT senzora!"));
return;
}
// 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:"));
Serial.print (h);
Serial.print (F ("% Temperatura:"));
Serial.print (t);
Serial.print (F ("° C"));
Serial.print (f);
Serial.print (F ("° F Indeks topline:"));
Serial.print (hic);
Serial.print (F ("° C"));
Serial.print (hif);
Serial.println (F ("° F"));
}
// Nakon sastavljanja programa, kliknite ALATI >> SERIJSKI MONITOR kako biste provjerili podatke.
// Završetak programa testiranja.
Korak 6: Kôd za projekat
#include
#include
#include
#include
#include
#define DHTPIN 2
#define DHTTYPE DHT22
#include "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 da li neko čitanje nije uspjelo i izađite ranije (da pokušate ponovo).
if (isnan (h) || isnan (t)) {
u8g.print ("Greška.");
za (;;);
return;
}
u8g.setPrintPos (4, 10);
u8g.print ("Temperatura (C):");
u8g.setPrintPos (4, 25);
u8g.print (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 ();
uraditi {
draw ();
} while (u8g.nextPage ());
// obnavlja sliku nakon nekog kašnjenja (2000);
}
// Kraj glavnog programa.
Korak 7: Opis
Zatim inicijalizirajte pin sklopove za Arduino ploču. Zato što 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čitavanje 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)". Ovo osigurava da će se podaci često osvježavati. U funkciji "draw" preuzmite podatke sa serijskog porta za podatke i stavite ih u plutajuće brojeve pomoću funkcija "readHumidity" i "readTemperature".
Odštampajte vlažnost i temperaturu pomoću funkcije štampanja u datoteci "u8glib". Položaj možete prilagoditi promjenom broja u funkciji "setPrintPos". Funkcija ispisa može direktno prikazati tekst i brojeve.
Za postavljanje hardvera, dajte serijskom portu kašnjenje od 10 sekundi. Zatim pozovite start funkciju za senzor. Prema mom krugu, moj ekran je bio okrenut naopačke. Tako sam uključio i funkciju "setRot180" za rotiranje ekrana.
Funkcija petlje Arduino ploče je glavna funkcija. Stalno poziva funkciju crtanja za prikaz teksta i podataka svaki put kada se senzor osvježi.
Ekran izgleda ovako:
Možete odspojiti Arduino UNO sa računara i napajati ga pomoću 5V DC adaptera za napajanje koji se povezuje na njegovu 2,1 mm utičnicu za napajanje. Pohranjuje program unutar pogona i može ga kontinuirano pokrenuti nakon uključivanja.
Preporučuje se:
Profesionalna meteorološka stanica koja koristi ESP8266 i ESP32 DIY: 9 koraka (sa slikama)
Profesionalna meteorološka stanica koja koristi ESP8266 i ESP32 DIY: LineaMeteoStazione je potpuna meteorološka stanica koja se može povezati s profesionalnim senzorima iz Sensiriona, kao i nekim Davisovim instrumentom (mjerač kiše, anemometar) Projekt je namijenjen kao DIY meteorološka stanica, ali samo zahtijeva
Mini meteorološka stanica koja koristi Arduino i ThingSpeak: 4 koraka
Mini meteorološka stanica koja koristi Arduino i ThingSpeak: Pozdrav svima. U ovom Instructable -u vodit ću vas kroz korake za izradu personalizirane mini meteorološke stanice. Također, koristit ćemo ThingSpeak API za postavljanje naših vremenskih podataka na njihove poslužitelje, ili koja je svrha vremenske prognoze
Lična meteorološka stanica koja koristi Raspberry Pi sa BME280 na Javi: 6 koraka
Osobna meteorološka stanica 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đe smo želeli bolju kontrolu nad našim sistemom grejanja i klimatizacije. Izgradnja lične meteorološke stanice veliko je
Meteorološka stanica koja koristi Wemos D1 Mini, BME280 i Sensate .: 6 koraka
Meteorološka stanica koja koristi Wemos D1 Mini, BME280 i Sensate .: U prethodnim postovima dijelila sam različite metode za izgradnju meteorološke stanice. Ako niste provjerili, ovdje je veza. U ovom uputstvu pokazat ću kako izgraditi jednostavnu meteorološku stanicu koristeći Wemos i IoT platformu pod nazivom Sensate
Meteorološka stanica koja koristi Raspberry Pi sa BME280 u Pythonu: 6 koraka
Meteorološka stanica koja koristi Raspberry Pi s BME280 u Pythonu: is maith an scéalaí and aimir (The Weather is Good Storyteller) Uz globalno zagrijavanje i klimatske promjene, globalni vremenski uzorak postaje nestabilan u cijelom svijetu, što dovodi do brojnih vremenskih uvjeta prirodne katastrofe (suše, ekstremne