6.8 KiB
Merjenje temperature - Wio Terminal
V tem delu lekcije boste dodali temperaturni senzor na vaš Wio Terminal in iz njega prebrali temperaturne vrednosti.
Strojna oprema
Wio Terminal potrebuje temperaturni senzor.
Senzor, ki ga boste uporabili, je DHT11 senzor za vlago in temperaturo, ki združuje dva senzorja v enem paketu. Ta senzor je precej priljubljen, saj številni komercialno dostopni senzorji združujejo merjenje temperature, vlage in včasih tudi atmosferskega tlaka. Komponenta za merjenje temperature je termistor z negativnim temperaturnim koeficientom (NTC), kar pomeni, da se njegova upornost zmanjšuje z naraščanjem temperature.
To je digitalni senzor, zato ima vgrajen ADC, ki ustvari digitalni signal s podatki o temperaturi in vlagi, ki jih lahko mikrokrmilnik prebere.
Povežite temperaturni senzor
Grove temperaturni senzor lahko povežete na digitalni priključek Wio Terminala.
Naloga - povežite temperaturni senzor
Povežite temperaturni senzor.
-
En konec Grove kabla vstavite v vtičnico na senzorju za vlago in temperaturo. Kabel bo šel v vtičnico le v eni smeri.
-
Ko je Wio Terminal odklopljen od računalnika ali drugega vira napajanja, povežite drugi konec Grove kabla z desno Grove vtičnico na Wio Terminalu, gledano s sprednje strani zaslona. To je vtičnica, ki je najbolj oddaljena od gumba za vklop.
Programiranje temperaturnega senzorja
Zdaj lahko Wio Terminal programirate za uporabo priključenega temperaturnega senzorja.
Naloga - programirajte temperaturni senzor
Programirajte napravo.
-
Ustvarite nov projekt za Wio Terminal z uporabo PlatformIO. Projekt poimenujte
temperature-sensor
. Dodajte kodo v funkcijosetup
, da konfigurirate serijski priključek.⚠️ Navodila za ustvarjanje PlatformIO projekta najdete v projektu 1, lekcija 1, če je potrebno.
-
Dodajte knjižnično odvisnost za knjižnico Seeed Grove Humidity and Temperature senzorja v datoteko
platformio.ini
projekta:lib_deps = seeed-studio/Grove Temperature And Humidity Sensor @ 1.0.1
⚠️ Navodila za dodajanje knjižnic v PlatformIO projekt najdete v projektu 1, lekcija 4, če je potrebno.
-
Na vrh datoteke, pod obstoječo vrstico
#include <Arduino.h>
, dodajte naslednje#include
direktive:#include <DHT.h> #include <SPI.h>
To uvozi datoteke, potrebne za interakcijo s senzorjem. Glavna datoteka
DHT.h
vsebuje kodo za sam senzor, medtem ko dodajanjeSPI.h
zagotovi, da je koda za komunikacijo s senzorjem vključena pri prevajanju aplikacije. -
Pred funkcijo
setup
deklarirajte senzor DHT:DHT dht(D0, DHT11);
To deklarira instanco razreda
DHT
, ki upravlja Digitalni Humidity in Temperature senzor. Ta je povezan na priključekD0
, desno Grove vtičnico na Wio Terminalu. Drugi parameter pove kodi, da uporabljate senzor DHT11 - knjižnica, ki jo uporabljate, podpira tudi druge različice tega senzorja. -
V funkciji
setup
dodajte kodo za nastavitev serijske povezave:void setup() { Serial.begin(9600); while (!Serial) ; // Wait for Serial to be ready delay(1000); }
-
Na koncu funkcije
setup
, po zadnjemdelay
, dodajte klic za zagon senzorja DHT:dht.begin();
-
V funkciji
loop
dodajte kodo za klic senzorja in izpis temperature na serijski priključek:void loop() { float temp_hum_val[2] = {0}; dht.readTempAndHumidity(temp_hum_val); Serial.print("Temperature: "); Serial.print(temp_hum_val[1]); Serial.println ("°C"); delay(10000); }
Ta koda deklarira prazen niz dveh plavajočih števil (float) in ga posreduje klicu
readTempAndHumidity
na instanciDHT
. Ta klic napolni niz z dvema vrednostma - vlaga se shrani v 0. element niza (v C++ so nizi indeksirani z 0, zato je 0. element 'prvi' element), temperatura pa v 1. element.Temperatura se prebere iz 1. elementa niza in izpiše na serijski priključek.
🇺🇸 Temperatura je izmerjena v stopinjah Celzija. Za Američane: za pretvorbo v Fahrenheit delite vrednost v Celziju s 5, nato pomnožite z 9 in dodajte 32. Na primer, odčitek temperature 20°C postane ((20/5)*9) + 32 = 68°F.
-
Sestavite in naložite kodo na Wio Terminal.
⚠️ Navodila za ustvarjanje PlatformIO projekta najdete v projektu 1, lekcija 1, če je potrebno.
-
Ko je koda naložena, lahko spremljate temperaturo z uporabo serijskega monitorja:
> Executing task: platformio device monitor < --- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time --- More details at http://bit.ly/pio-monitor-filters --- Miniterm on /dev/cu.usbmodem1201 9600,8,N,1 --- --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- Temperature: 25.00°C Temperature: 25.00°C Temperature: 25.00°C Temperature: 24.00°C
💁 To kodo najdete v mapi code-temperature/wio-terminal.
😀 Vaš program za temperaturni senzor je bil uspešen!
Omejitev odgovornosti:
Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco Co-op Translator. Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni človeški prevod. Ne prevzemamo odgovornosti za morebitna napačna razumevanja ali napačne interpretacije, ki bi nastale zaradi uporabe tega prevoda.