Obsah:
- Krok 1: Seznam položek
- Krok 2: Relativní úvod
- Krok 3: Připojte obvod
- Krok 4: Připravte se na kompilaci
- Krok 5: Testovací kód pro sériový port snímače DHT22
- Krok 6: Kód pro projekt
- Krok 7: Popis
Video: Meteostanice využívající Arduino UNO: 7 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Vytvořil: Hazel Yang
Tento projekt je meteorologická stanice využívající desku Arduino UNO pro řízení toku dat, snímač DHT22 pro sběr dat a OLED obrazovku pro zobrazení dat.
Krok 1: Seznam položek
1. Obrazovka: OLED, 1,3 displej SH1106, I2C bílá barva ---- PID: 18283
2. Senzor: Digitální snímač vlhkosti a teploty DHT22 ---- PID: 7375
3. Připojuje: propojovací vodiče ---- PID: 10316 nebo 10318 nebo 10312 (v závislosti na délce) nebo můžete použít plný drát 22 AWG ---- PID: 22490
Breadboard ---- PID: 10686 nebo 10698 nebo 103142 (v závislosti na velikosti)
4. Napájení: Tento kabel lze připojit pouze k USB portu počítače a kabel slouží také k přenosu dat mezi deskou IDE a Arduino. USB KABEL, A TO B, M/M, 0,5 M (1,5 ft) ---- PID: 29862
Nebo můžete použít k napájení desky: 5V 2A AC/DC adaptér ---- PID: 10817.
Krok 2: Relativní úvod
Představení obrazovky: 1,3 OLED displej bílý
1. Dokument, který ukazuje základní nastavení a popisy, najdete:
Představení senzoru: Snímač vlhkosti a teploty DHT22 1. Dokument s popisem naleznete zde:
Krok 3: Připojte obvod
Senzor DHT22 odesílá sériová data na pin 2. Připojte tedy druhý pin zleva, pin „SDA“by měl být připojen ke kolíku 2.
U displeje SSH1106 používá k přenosu analogový pin. Obvody obrazovky budou „SCL“pin na Arduino „A5“a „SDA“pin na Arduino „A4“. Zatímco data o poloze pixelu nepřetržitě vysílají, funkce zobrazení v programu spustí příkaz pouze jednou při každém načtení dat ze senzoru.
Senzor i obrazovka mohou pomocí 3,3 V napájet Arduino jako DC napájecí vstup. K napájení potřebujeme připojit oba piny „VCC“k „3.3V“Arduina. A piny „GND“lze jednoduše připojit ke kolíku „GND“na desce Arduino.
Pomocí kabelu USB A na B připojte Arudino k počítači.
Krok 4: Připravte se na kompilaci
„u8glib“pro obrazovku SSH1106 od Olikraus.
„Knihovna snímačů DHT“pro snímač DHT22 od společnosti Adafruit. Měli byste si stáhnout dvě knihovny: knihovna senzorů DHT22:
U8glib:
A pomocí „spravovat knihovnu“v IDE je rozbalte. Online výuka správy knihoven:
Krok 5: Testovací kód pro sériový port snímače DHT22
Testovací coe pro sériový port snímače DHT22 (který je uvnitř knihovny DHT22 >> příklady):
(Tuto část můžete přeskočit.)
Stačí otestovat, zda snímač DHT22 čte data normálně
#zahrnout
#zahrnout
#zahrnout
#zahrnout
#zahrnout
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
neplatné nastavení () {
Serial.begin (9600);
Serial.println (F ("test DHT22!"));
dht.begin ();
}
prázdná smyčka () {
// Mezi měřeními počkejte několik sekund.
zpoždění (2000);
// Čtení teploty nebo vlhkosti trvá asi 250 milisekund!
// Odečty senzorů mohou být také až 2 sekundy staré (je to velmi pomalý senzor)
float h = dht.readHumidity ();
// Čtení teploty jako stupňů Celsia (výchozí)
float t = dht.readTemperature ();
// Odečtěte teplotu jako Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature (true);
// Zkontrolujte, zda některá čtení selhala, a ukončete předčasné (zkuste to znovu).
if (isnan (h) || isnan (t) || isnan (f)) {
Serial.println (F ("Selhalo čtení ze senzoru DHT!"));
vrátit se;
}
// Výpočet tepelného indexu ve stupních Fahrenheita (výchozí)
float hif = dht.computeHeatIndex (f, h);
// Vypočítejte tepelný index ve stupních Celsia (isFahreheit = false)
float hic = dht.computeHeatIndex (t, h, false);
Serial.print (F ("Vlhkost:"));
Serial.print (h);
Serial.print (F ("% Teplota:"));
Serial.print (t);
Serial.print (F ("° C"));
Serial.print (f);
Serial.print (F ("° F Tepelný index:"));
Serial.print (hic);
Serial.print (F ("° C"));
Serial.print (hif);
Serial.println (F ("° F"));
}
// Po zkompilování programu zkontrolujte data kliknutím na NÁSTROJE >> SÉRIOVÝ MONITOR.
// Konec testovacího programu.
Krok 6: Kód pro projekt
#zahrnout
#zahrnout
#zahrnout
#zahrnout
#zahrnout
#define DHTPIN 2
#define DHTTYPE DHT22
#include "U8glib.h"
U8GLIB_SH1106_128X64 u8g (U8G_I2C_OPT_NONE);
Snímač DHT (DHTPIN, DHTTYPE);
void draw (void) {
u8g.setFont (u8g_font_unifont);
float h = sensor.readHumidity ();
// Čtení teploty jako stupňů Celsia (výchozí)
float t = sensor.readTemperature ();
// Zkontrolujte, zda některá čtení selhala, a ukončete předčasné (zkuste to znovu).
if (isnan (h) || isnan (t)) {
u8g.print ("Chyba.");
pro(;;);
vrátit se;
}
u8g.setPrintPos (4, 10);
u8g.print ("Teplota (C):");
u8g.setPrintPos (4, 25);
u8g.print (t);
u8g.setPrintPos (4, 40);
u8g.print ("Vlhkost (%):");
u8g.setPrintPos (4, 55);
u8g.print (h);
}
neplatné nastavení (neplatné) {
u8g.setRot180 ();
Serial.begin (9600);
sensor.begin ();
}
void loop (void) {
// smyčka obrázku
u8g.firstPage ();
udělat {
kreslit();
} while (u8g.nextPage ());
// opětovné vytvoření obrazu s určitým zpožděním zpoždění (2000);
}
// Konec hlavního programu.
Krok 7: Popis
Poté inicializujte obvody pinů pro desku Arduino. Protože knihovna senzorů vyžaduje data k deklaraci objektu.
A data senzoru můžete vyzkoušet sledováním výstupních dat přes digitální pin 2 pomocí funkce nazvané „Serial.print ()“. Protože frekvence přenosu dat je zhruba 1 čtení každé 2 sekundy (což je 0,5 Hz), musíme při naprogramování v Arduino IDE nastavit zpoždění uvnitř funkce smyčky na více než 2 sekundy. Uvnitř funkce smyčky je tedy „zpoždění (2000)“. Tím je zajištěno, že data budou často obnovována. Ve funkci „kreslit“získejte data ze sériového datového portu a vložte je do float čísel pomocí funkcí „readHumidity“a „readTemperature“.
Vlhkost a teplotu vytiskněte pomocí funkce tisku v souboru „u8glib“. Pozici můžete upravit změnou čísla ve funkci „setPrintPos“. Funkce tisku může přímo zobrazit text a čísla.
Chcete -li nastavit hardware, dejte sériovému portu zpoždění 10 sekund. Poté zavolejte funkci zahájení senzoru. Podle mého obvodu byla moje obrazovka vzhůru nohama. Zahrnul jsem tedy také funkci „setRot180“pro otočení displeje.
Funkce smyčky desky Arduino je hlavní funkcí. Stále vyvolává funkci kreslení, která zobrazuje text a data při každém obnovení senzoru.
Obrazovka vypadá takto:
Arduino UNO můžete odpojit od počítače a napájet pomocí 5V stejnosměrného napájecího adaptéru připojeného do 2,1 mm napájecího konektoru. Ukládá program na svůj disk a může jej po zapnutí nepřetržitě spouštět.
Doporučuje:
Meteostanice WIFI s Magicbitem (Arduino): 6 kroků
WIFI meteorologická stanice s Magicbit (Arduino): Tento tutoriál ukazuje, jak vytvořit meteorologickou stanici z Magicbit pomocí Arduina, která dokáže získat podrobnosti z vašeho chytrého telefonu
Meteostanice Hanging Gear: 7 kroků (s obrázky)
Meteostanice se závěsným zařízením: V této instruktáži vám ukážu, jak si postavit vlastní závěsnou meteorologickou stanici, která je vyrobena z CNC laserem řezaných dílů MDF. Krokový motor pohání každý převodový stupeň a Arduino provádí měření teploty a vlhkosti pomocí DHT
Meteostanice využívající Wemos D1 Mini, BME280 a Sensate .: 6 kroků
Meteorologická stanice využívající Wemos D1 Mini, BME280 a Sensate .: V předchozích příspěvcích jsem sdílel různé metody pro stavbu meteorologické stanice. Pokud jste to nezkontrolovali, zde je odkaz. V tomto návodu předvedu, jak vybudovat jednoduchou meteorologickou stanici pomocí Wemos a platformy IoT s názvem Sensate
Meteostanice Arduino využívající BMP280 -DHT11 - teplota, vlhkost a tlak: 8 kroků
Meteostanice Arduino pomocí BMP280 -DHT11 - teplota, vlhkost a tlak: V tomto tutoriálu se naučíme, jak vytvořit meteorologickou stanici, která bude na displeji TFT 7735 zobrazovat TEPLOTU, VLHKOST A TLAK. Podívejte se na ukázkové video
Meteostanice Arduino Ultra Low Power: 5 kroků
Meteostanice Arduino s ultra nízkým výkonem: Tato příručka vám ukáže, jak postavit meteorologickou stanici s velmi nízkým výkonem pomocí arduino nano, bme 280 a rádiového modulu rf433, který na 2 LiPo 18650 a schopnost vydrží asi 1,5 až 2 roky rozšířit o další senzory a solární