Sisällysluettelo:

Sääasema Arduino UNO: n avulla: 7 vaihetta
Sääasema Arduino UNO: n avulla: 7 vaihetta

Video: Sääasema Arduino UNO: n avulla: 7 vaihetta

Video: Sääasema Arduino UNO: n avulla: 7 vaihetta
Video: Radio Frequency Exposure in my Office and at Home (EP39) 2024, Heinäkuu
Anonim
Sääasema käyttäen Arduino UNO: ta
Sääasema käyttäen Arduino UNO: ta

Luoja: Hazel Yang

Tämä projekti on sääasema, joka käyttää Arduino UNO -korttia datavirran hallintaan, DHT22 -anturi tietojen keräämiseen ja OLED -näyttö tietojen näyttämiseen.

Vaihe 1: Tuoteluettelo

Tuoteluettelo
Tuoteluettelo

1. Näyttö: OLED, 1,3 näyttö SH1106, I2C valkoinen väri ---- PID: 18283

2. Anturi: Digitaalinen kosteus- ja lämpötila-anturi DHT22 ---- PID: 7375

3. Yhdistää: hyppyjohtimet ---- PID: 10316 tai 10318 tai 10312 (riippuu pituudesta) tai voit käyttää kiinteää johdinta 22 AWG ---- PID: 22490

Leipälauta ---- PID: 10686 tai 10698 tai 103142 (koosta riippuen)

4. Virta: Tämä kaapeli voidaan yhdistää vain tietokoneen USB -porttiin, ja sitä käytetään myös tiedonsiirtoon IDE- ja Arduino -kortin välillä. USB-KAAPELI, A – B, M/M, 0,5 M (1,5 FT) ---- PID: 29862

Tai voit käyttää tätä virtalähteeseen: 5V 2A AC/DC-sovitin ---- PID: 10817.

Vaihe 2: Suhteellinen johdanto

Suhteellinen johdanto
Suhteellinen johdanto
Suhteellinen johdanto
Suhteellinen johdanto

Näytön esittely: 1,3 OLED -näyttö valkoinen

1. Löydät asiakirjan, joka sisältää perusasetukset ja kuvaukset:

Anturin esittely: Kosteus- ja lämpötila -anturi DHT22 1. Löydät kuvaukset sisältävän asiakirjan:

Vaihe 3: Liitä piiri

Liitä piiri
Liitä piiri

DHT22 -anturi lähettää sarjatietoja nastalle 2. Liitä siis toinen nasta vasemmalta, "SDA" -tappi tulee liittää nastaan 2.

SSH1106 -näytössä se käyttää analogista pin -lähetintä. Näytön piirit ovat "SCL" -nasta Arduinon "A5": lle ja "SDA" -tappi Arduinon "A4": lle. Kun pikselin sijaintitiedot lähetetään jatkuvasti, ohjelman näyttötoiminto käynnistää komennon vain kerran joka kerta, kun se lukee tiedot anturista.

Sekä anturi että näyttö voivat käyttää 3.3 V: n virtaa Arduinon kytkemiseen tasavirtalähteeksi. Virran saamiseksi meidän on yhdistettävä molemmat "VCC" -nastat Arduinon "3.3V" -liitäntään. Ja "GND" nastat voidaan yksinkertaisesti liittää Arduino -kortin "GND" -tappiin.

Liitä Arudino tietokoneeseen USB A - B -kaapelilla.

Vaihe 4: Valmistaudu kääntämiseen

"u8glib" SSH1106 -näytölle Olikrausilta.

"DHT -anturikirjasto" Adafruitin DHT22 -anturille. Lataa kaksi kirjastoa: DHT22-anturikirjasto:

U8glib:

Käytä IDE: n "kirjaston hallintaa", jotta ne voidaan purkaa. Kirjaston hallinnan online-ohje:

Vaihe 5: DHT22 -anturin sarjaportin testauskoodi

DHT22 -anturin sarjaportin testauskoe (joka on DHT22 -kirjaston sisällä >> esimerkkejä):

(Voit ohittaa tämän osan.)

Se vain testata DHT22 anturi lukee tiedot normaalisti

#sisältää

#sisältää

#sisältää

#sisältää

#sisältää

#määritä DHTPIN 2

#define DHTTYPE DHT22

DHT dht (DHTPIN, DHTTYPE);

void setup () {

Sarja.alku (9600);

Serial.println (F ("DHT22 -testi!"));

dht.begin ();

}

void loop () {

// Odota muutama sekunti mittausten välillä.

viive (2000);

// Lämpötilan tai kosteuden lukeminen kestää noin 250 millisekuntia!

// Anturilukemat voivat olla jopa 2 sekuntia vanhoja (anturi on hyvin hidas)

float h = dht.readHumidity ();

// Lue lämpötila celsiusasteena (oletus)

float t = dht.readTemperature ();

// Lue lämpötila Fahrenheitina (isFahrenheit = true)

float f = dht.readTemperature (tosi);

// Tarkista, jos jokin lukeminen epäonnistui, ja poistu aikaisin (yritä uudelleen).

jos (isnan (h) || isnan (t) || isnan (f)) {

Serial.println (F ("DHT -anturin lukeminen epäonnistui!"));

palata;

}

// Laske lämpöindeksi Fahrenheit -asteina (oletus)

float hif = dht.computeHeatIndex (f, h);

// Laske lämpöindeksi celsiusasteina (isFahreheit = false)

float hic = dht.computeHeatIndex (t, h, false);

Serial.print (F ("Kosteus:"));

Sarjanjälki (h);

Sarjajälki (F ("% lämpötila:"));

Sarjanjälki (t);

Sarjanjälki (F ("° C"));

Sarjanjälki (f);

Sarjajälki (F ("° F Lämpöindeksi:"));

Serial.print (hic);

Sarjanjälki (F ("° C"));

Sarjanjälki (hif);

Sarja.println (F ("° F"));

}

// Kun olet koonnut ohjelman, tarkista tiedot valitsemalla TOOLS >> SERIAL MONITOR.

// Testausohjelman loppu.

Vaihe 6: Projektin koodi

#sisältää

#sisältää

#sisältää

#sisältää

#sisältää

#määritä DHTPIN 2

#define DHTTYPE DHT22

#include "U8glib.h"

U8GLIB_SH1106_128X64 u8g (U8G_I2C_OPT_NONE);

DHT -anturi (DHTPIN, DHTTYPE);

mitätön arvonta (mitätön) {

u8g.setFont (u8g_font_unifont);

float h = sensor.readHumidity ();

// Lue lämpötila celsiusasteena (oletus)

float t = sensor.readTemperature ();

// Tarkista, jos jokin lukeminen epäonnistui, ja poistu aikaisin (yritä uudelleen).

jos (isnan (h) || isnan (t)) {

u8g.print ("Virhe");

(;;);

palata;

}

u8g.setPrintPos (4, 10);

u8g.print ("Lämpötila (C):");

u8g.setPrintPos (4, 25);

u8g. paino (t);

u8g.setPrintPos (4, 40);

u8g.print ("Kosteus (%):");

u8g.setPrintPos (4, 55);

u8g. paino (h);

}

mitätön asennus (mitätön) {

u8g.setRot180 ();

Sarja.alku (9600);

sensor.begin ();

}

void loop (void) {

// kuvasilmukka

u8g.firstPage ();

tehdä {

piirtää ();

} while (u8g.nextPage ());

// rakentaa kuva uudelleen jonkin viiveen jälkeen (2000);

}

// Pääohjelman loppu.

Vaihe 7: Kuvaus

Kuvaus
Kuvaus

Alusta sitten nastapiiri Arduino -kortille. Koska anturikirjasto vaatii tiedot objektin ilmoittamiseen.

Voit myös testata anturin tietoja seuraamalla lähtötietoja digitaalisen nastan 2 kautta käyttämällä toimintoa nimeltä "Serial.print ()". Koska tiedonsiirtotaajuus on noin 1 lukema 2 sekunnin välein (joka on 0,5 Hz), meidän on asetettava Arduino IDE: ssä ohjelmoituna viive silmukan sisällä yli 2 sekuntia. Joten silmukkafunktion sisällä on "viive (2000)". Tämä varmistaa, että tiedot päivitetään usein. Hae "piirtää" -funktiossa tiedot sarjatietoportista ja laita ne kelluviin numeroihin käyttämällä "readHumidity" - ja "readTemperature" -toimintoja.

Tulosta kosteus ja lämpötila käyttämällä u8glib -tiedoston tulostustoimintoa. Voit säätää sijaintia muuttamalla numeroa "setPrintPos" -toiminnossa. Tulostustoiminto voi näyttää tekstin ja numerot suoraan.

Asenna laitteisto antamalla sarjaportille 10 sekunnin viive. Soita sitten anturin käynnistystoiminto. Piirini mukaan näyttöni oli ylösalaisin. Joten sisällytin myös "setRot180" -toiminnon näytön kääntämiseen.

Arduino -levyn silmukkatoiminto on päätoiminto. Se kutsuu jatkuvasti piirtotoimintoa näyttämään tekstiä ja tietoja aina, kun anturi päivitetään.

Näyttö näyttää tältä:

Voit irrottaa Arduino UNO -laitteen tietokoneesta ja kytkeä siihen virran käyttämällä 5 V: n tasavirtasovitinta, joka on liitetty sen 2,1 mm: n virtaliitäntään. Se tallentaa ohjelman asemaansa ja voi käynnistää ohjelman jatkuvasti uudelleen virran kytkemisen jälkeen.

Suositeltava: