Turinys:
- 1 žingsnis: elementų sąrašas
- 2 žingsnis: santykinis įvadas
- 3 žingsnis: prijunkite grandinę
- 4 žingsnis: pasiruoškite kompiliavimui
- 5 žingsnis: DHT22 jutiklio nuoseklaus prievado bandymo kodas
- 6 žingsnis: projekto kodas
- 7 žingsnis: aprašymas
Video: Orų stotis naudojant „Arduino UNO“: 7 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Kūrėjas: Hazel Yang
Šis projektas yra orų stotis, naudojanti „Arduino UNO“plokštę duomenų srautui valdyti, DHT22 jutiklis duomenims rinkti ir OLED ekranas duomenims rodyti.
1 žingsnis: elementų sąrašas
1. Ekranas: OLED, 1,3 colio ekranas SH1106, I2C balta spalva ---- PID: 18283
2. Jutiklis: skaitmeninis drėgmės ir temperatūros jutiklis DHT22 ---- PID: 7375
3. Jungiasi: jungiamieji laidai ---- PID: 10316 arba 10318 arba 10312 (priklauso nuo ilgio) arba galite naudoti 22 AWG vielos laidą ---- PID: 22490
Duonos lenta ---- PID: 10686 arba 10698 arba 103142 (priklauso nuo dydžio)
4. Maitinimas: Šis kabelis gali būti prijungtas tik prie kompiuterio USB prievado, o kabelis taip pat naudojamas duomenims perduoti tarp IDE ir „Arduino“plokštės. USB KABELIS, A – B, M/M, 0.5M (1.5FT) ---- PID: 29862
Arba galite tai naudoti maitindami plokštę: 5V 2A AC/DC adapteris ---- PID: 10817.
2 žingsnis: santykinis įvadas
Ekrano pristatymas: 1,3 colio OLED ekranas baltas
1. Dokumentą, kuriame parodyta pagrindinė sąranka ir aprašymai, rasite:
Jutiklio pristatymas: drėgmės ir temperatūros jutiklis DHT22 1. Dokumentą, kuriame rodomi aprašymai, rasite:
3 žingsnis: prijunkite grandinę
DHT22 jutiklis siunčia serijinius duomenis į 2 kaištį. Taigi, prijunkite antrą kaištį iš kairės, „SDA“kaištis turi būti prijungtas prie 2 kaiščio.
SSH1106 ekranui perduoti naudojamas analoginis kaištis. Ekrano grandinės bus „SCL“kaištis prie „Arduino“„A5“ir „SDA“kaištis - prie „Arduino“„A4“. Kol pikselių padėties duomenys nuolat perduodami, programos rodymo funkcija komandą suaktyvina tik vieną kartą kiekvieną kartą, kai ji nuskaito duomenis iš jutiklio.
Tiek jutiklis, tiek ekranas gali naudoti 3.3 V, kad įjungtų „Arduino“kaip nuolatinės srovės maitinimą. Norėdami įjungti maitinimą, turime prijungti abu „VCC“kaiščius prie „Arduino“„3.3V“. „GND“kaiščius galima tiesiog prijungti prie „GND“kaiščio „Arduino“plokštėje.
Naudokite USB A – B kabelį, prijunkite „Arudino“prie kompiuterio.
4 žingsnis: pasiruoškite kompiliavimui
„u8glib“SSH1106 ekranui iš „Olikraus“.
„DHT jutiklių biblioteka“, skirta DHT22 jutikliui iš „Adafruit“. Turėtumėte atsisiųsti dvi bibliotekas: DHT22 jutiklių biblioteka:
U8glib:
Ir naudokite „tvarkyti biblioteką“IDE, kad jie būtų išpakuoti. Internetinė bibliotekų valdymo instrukcija:
5 žingsnis: DHT22 jutiklio nuoseklaus prievado bandymo kodas
Išbandykite DHT22 jutiklio nuosekliojo prievado kodą (kuris yra DHT22 bibliotekos >> pavyzdžiuose):
(Galite praleisti šią dalį.)
Tai tik norint patikrinti, ar DHT22 jutiklis paprastai nuskaito duomenis
#įtraukti
#įtraukti
#įtraukti
#įtraukti
#įtraukti
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
void setup () {
Serial.begin (9600);
Serial.println (F ("DHT22 testas!"));
dht.begin ();
}
void loop () {
// Palaukite kelias sekundes tarp matavimų.
vėlavimas (2000 m.);
// Temperatūros ar drėgmės nuskaitymas trunka apie 250 milisekundžių!
// Jutiklio rodmenys taip pat gali būti senesni nei 2 sekundės (tai labai lėtas jutiklis)
plūdė h = dht.readHumidity ();
// Skaityti temperatūrą kaip Celsijų (numatytasis)
plūdė t = dht.readTemperature ();
// Skaityti temperatūrą kaip Farenheitą (isFahrenheit = tiesa)
plūdė f = dht.readTemperature (tiesa);
// Patikrinkite, ar nepavyko nuskaityti, ir išeikite anksčiau (bandykite dar kartą).
jei (isnan (h) || isnan (t) || isnan (f)) {
Serial.println (F ("Nepavyko nuskaityti iš DHT jutiklio!"));
grįžti;
}
// Skaičiuoti šilumos indeksą Farenheitu (numatytasis)
plūdė hif = dht.computeHeatIndex (f, h);
// Apskaičiuoti šilumos indeksą Celsijaus (isFahreheit = false)
float hic = dht.computeHeatIndex (t, h, false);
Serijinis atspaudas (F („Drėgmė:“));
Serijinis atspaudas (h);
Serijinis atspaudas (F ("% temperatūra:"));
Serijinis atspaudas (t);
Serijinis atspaudas (F ("° C"));
Serijinis atspaudas (f);
Serijinis atspaudas (F ("° F šilumos indeksas:"));
Serial.print (hic);
Serijinis atspaudas (F ("° C"));
Serijinis atspaudas (hif);
Serial.println (F ("° F"));
}
// Sudarę programą, spustelėkite ĮRANKIAI >> SERIJOS MONITORIUS, kad patikrintumėte duomenis.
// Bandymo programos pabaiga.
6 žingsnis: projekto kodas
#įtraukti
#įtraukti
#įtraukti
#įtraukti
#įtraukti
#define DHTPIN 2
#define DHTTYPE DHT22
#include "U8glib.h"
U8GLIB_SH1106_128X64 u8g (U8G_I2C_OPT_NONE);
DHT jutiklis (DHTPIN, DHTTYPE);
void draw (void) {
u8g.setFont (u8g_font_unifont);
plūdė h = sensor.readHumidity ();
// Skaityti temperatūrą kaip Celsijų (numatytasis)
plūdė t = sensor.readTemperature ();
// Patikrinkite, ar nepavyko nuskaityti, ir išeikite anksčiau (bandykite dar kartą).
jei (isnan (h) || isnan (t)) {
u8g.print („Klaida“);
dėl(;;);
grįžti;
}
u8g.setPrintPos (4, 10);
u8g.print ("Temperatūra (C):");
u8g.setPrintPos (4, 25);
u8g.print (t);
u8g.setPrintPos (4, 40);
u8g.print ("Drėgmė (%):");
u8g.setPrintPos (4, 55);
u8g.print (h);
}
void setup (void) {
u8g.setRot180 ();
Serial.begin (9600);
sensor.begin ();
}
void loop (void) {
// paveikslo kilpa
u8g.firstPage ();
daryti {
piešti ();
} while (u8g.nextPage ());
// atstatyti paveikslėlį po tam tikro uždelsimo (2000);
}
// Pagrindinės programos pabaiga.
7 žingsnis: aprašymas
Tada inicijuokite „Arduino“plokštės kaiščio grandinę. Kadangi jutiklių biblioteka reikalauja duomenų objektui deklaruoti.
Jutiklio duomenis galite patikrinti stebėdami išvesties duomenis per 2 skaitmeninį kaištį, naudodami funkciją „Serial.print ()“. Kadangi duomenų perdavimo dažnis yra maždaug 1 skaitymas kas 2 sekundes (tai yra 0,5 Hz), užprogramavus „Arduino IDE“, mes turime nustatyti, kad delsos ciklo funkcijos viduje būtų daugiau nei 2 sekundės. Taigi ciklo funkcijos viduje yra „uždelsimas (2000)“. Tai užtikrina, kad duomenys bus dažnai atnaujinami. Funkcijoje „atkreipti“gaukite duomenis iš nuoseklaus duomenų prievado ir sudėkite juos į plūduriuojančius skaičius naudodami funkcijas „readHumidity“ir „readTemperature“.
Išspausdinkite drėgmę ir temperatūrą naudodami spausdinimo funkciją „u8glib“faile. Padėtį galite reguliuoti pakeisdami funkciją „setPrintPos“. Spausdinimo funkcija gali tiesiogiai parodyti tekstą ir skaičius.
Norėdami nustatyti aparatinę įrangą, atidėkite nuoseklųjį prievadą 10 sekundžių. Tada iškvieskite jutiklio pradžios funkciją. Pagal mano schemą mano ekranas buvo apverstas aukštyn kojomis. Taigi aš taip pat įtraukiau „setRot180“funkciją, kad pasuktų ekraną.
„Arduino“plokštės kilpos funkcija yra pagrindinė funkcija. Jis kaskart atnaujina jutiklio skambinimo funkciją, kad būtų rodomas tekstas ir duomenys.
Ekranas atrodo taip:
Galite atjungti „Arduino UNO“nuo kompiuterio ir įjungti maitinimą naudodami 5 V nuolatinės srovės maitinimo adapterį, prijungtą prie jo 2,1 mm maitinimo lizdo. Ji saugo programą savo diske ir gali nepertraukiamai paleisti programą po maitinimo.
Rekomenduojamas:
Profesionali orų stotis naudojant „ESP8266“ir „ESP32 pasidaryk pats“: 9 žingsniai (su nuotraukomis)
Profesionali orų stotis, naudojant „pasidaryk pats“ESP8266 ir ESP32: „LineaMeteoStazione“yra visiška orų stotis, kurią galima sujungti su profesionaliais „Sensirion“jutikliais ir kai kuriais „Davis“prietaiso komponentais (lietaus matuoklis, anemometras)
Paprasta orų stotis naudojant ESP8266 .: 6 žingsniai (su nuotraukomis)
Paprasta orų stotis naudojant ESP8266 .: Šioje instrukcijoje aš pasidalinsiu, kaip naudoti ESP8266, norint gauti tokius duomenis kaip temperatūra, slėgis, klimatas ir tt Ir „YouTube“duomenys, pvz., Prenumeratoriai & Bendras peržiūrų skaičius. rodyti duomenis serijiniame monitoriuje ir rodyti LCD ekrane. Duomenys bus f
Mini orų stotis naudojant „Arduino“ir „ThingSpeak“: 4 žingsniai
Mini orų stotis naudojant „Arduino“ir „ThingSpeak“: Sveiki visi. Šioje instrukcijoje nurodysiu, kaip sukurti personalizuotą mini orų stotį. Be to, mes naudosime „ThingSpeak“API, kad įkeltume orų duomenis į jų serverius, kitaip - koks yra oro sąlygų tikslas
„NaTaLia“orų stotis: „Arduino“saulės energija varoma oro stotis padaryta teisingai: 8 žingsniai (su nuotraukomis)
„NaTaLia“orų stotis: „Arduino Solar Powered Weather Station“padaryta teisingai: Po vienerių metų sėkmingo veikimo 2 skirtingose vietose dalinuosi saulės kolektorių projektų planais ir paaiškinu, kaip ji išsivystė į sistemą, kuri tikrai gali išgyventi ilgą laiką laikotarpius nuo saulės energijos. Jei sekate
„Arduino“orų stotis naudojant BMP280 -DHT11 - temperatūra, drėgmė ir slėgis: 8 žingsniai
„Arduino“orų stotis naudojant BMP280 -DHT11 - Temperatūra, drėgmė ir slėgis: Šioje pamokoje sužinosime, kaip sukurti orų stotį, kuri TFT 7735 LCD ekrane rodys TEMPERATŪRĄ, DRĖGMĘ IR SLĖGĮ Žiūrėkite demonstracinį vaizdo įrašą