Obsah:

Meteostanice využívající Arduino UNO: 7 kroků
Meteostanice využívající Arduino UNO: 7 kroků

Video: Meteostanice využívající Arduino UNO: 7 kroků

Video: Meteostanice využívající Arduino UNO: 7 kroků
Video: Hrajeme si s Arduinem 7: Světelný theremin - AlzaTech #53 2024, Listopad
Anonim
Meteostanice využívající Arduino UNO
Meteostanice využívající Arduino UNO

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

Seznam položek
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

Relativní úvod
Relativní úvod
Relativní úvod
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

Připojte obvod
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

Popis
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: