7.6 KiB
Hőmérséklet mérése - Wio Terminal
Ebben a leckében hozzáadunk egy hőmérséklet-érzékelőt a Wio Terminalhoz, és kiolvassuk belőle a hőmérsékleti értékeket.
Hardver
A Wio Terminalhoz szükség van egy hőmérséklet-érzékelőre.
Az érzékelő, amit használni fogsz, egy DHT11 páratartalom- és hőmérséklet-érzékelő, amely két érzékelőt kombinál egy csomagban. Ez egy meglehetősen népszerű érzékelő, és számos kereskedelmi forgalomban kapható változata létezik, amelyek hőmérsékletet, páratartalmat és néha légnyomást is mérnek. A hőmérséklet-érzékelő komponens egy negatív hőmérsékleti együtthatójú (NTC) termisztor, amelynek ellenállása csökken, ahogy a hőmérséklet nő.
Ez egy digitális érzékelő, amely beépített ADC-vel rendelkezik, hogy digitális jelet hozzon létre, amely tartalmazza a hőmérséklet- és páratartalom-adatokat, amelyeket a mikrokontroller ki tud olvasni.
Csatlakoztasd a hőmérséklet-érzékelőt
A Grove hőmérséklet-érzékelő csatlakoztatható a Wio Terminal digitális portjához.
Feladat - csatlakoztasd a hőmérséklet-érzékelőt
Csatlakoztasd a hőmérséklet-érzékelőt.
-
Illeszd be a Grove kábel egyik végét a páratartalom- és hőmérséklet-érzékelő aljzatába. Csak egyféleképpen illeszkedik.
-
Miután a Wio Terminal nincs csatlakoztatva a számítógéphez vagy más áramforráshoz, csatlakoztasd a Grove kábel másik végét a Wio Terminal jobb oldali Grove aljzatába, ahogy a képernyőre nézel. Ez az aljzat van a legtávolabb a bekapcsológombtól.
Programozd a hőmérséklet-érzékelőt
Most programozhatod a Wio Terminalt, hogy használja a csatlakoztatott hőmérséklet-érzékelőt.
Feladat - programozd a hőmérséklet-érzékelőt
Programozd az eszközt.
-
Hozz létre egy teljesen új Wio Terminal projektet a PlatformIO segítségével. Nevezd el ezt a projektet
temperature-sensor
-nak. Adj hozzá kódot asetup
függvényben a soros port konfigurálásához.⚠️ Hivatkozhatsz az 1. projekt, 1. lecke PlatformIO projekt létrehozására vonatkozó utasításaira, ha szükséges.
-
Adj hozzá egy könyvtárfüggőséget a Seeed Grove páratartalom- és hőmérséklet-érzékelő könyvtárhoz a projekt
platformio.ini
fájljában:lib_deps = seeed-studio/Grove Temperature And Humidity Sensor @ 1.0.1
⚠️ Hivatkozhatsz az 1. projekt, 4. lecke PlatformIO projekthez könyvtárak hozzáadására vonatkozó utasításaira, ha szükséges.
-
Add hozzá a következő
#include
direktívákat a fájl tetejére, a meglévő#include <Arduino.h>
alá:#include <DHT.h> #include <SPI.h>
Ez importálja az érzékelővel való interakcióhoz szükséges fájlokat. A
DHT.h
fejlécfájl tartalmazza az érzékelőhöz szükséges kódot, és aSPI.h
fejléc hozzáadása biztosítja, hogy az érzékelővel való kommunikációhoz szükséges kód is bekerüljön a fordítás során. -
A
setup
függvény előtt deklaráld a DHT érzékelőt:DHT dht(D0, DHT11);
Ez deklarál egy példányt a
DHT
osztályból, amely kezeli a Digitális Humidity és Temperature érzékelőt. Ez aD0
porthoz van csatlakoztatva, amely a Wio Terminal jobb oldali Grove aljzata. A második paraméter megadja, hogy a használt érzékelő a DHT11 típusú - a használt könyvtár más változatokat is támogat. -
A
setup
függvényben adj hozzá kódot a soros kapcsolat beállításához:void setup() { Serial.begin(9600); while (!Serial) ; // Wait for Serial to be ready delay(1000); }
-
A
setup
függvény végén, az utolsódelay
után, add hozzá a DHT érzékelő indítására vonatkozó hívást:dht.begin();
-
A
loop
függvényben adj hozzá kódot az érzékelő hívásához és a hőmérséklet soros portra történő kiírásához: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); }
Ez a kód deklarál egy üres tömböt 2 lebegőpontos számmal, és ezt adja át a
readTempAndHumidity
hívásnak aDHT
példányon. Ez a hívás feltölti a tömböt 2 értékkel - a páratartalom a tömb 0. elemébe kerül (ne feledd, hogy a C++ tömbök 0-alapúak, tehát a 0. elem az első elem), a hőmérséklet pedig az 1. elembe.A hőmérséklet az 1. elemből kerül kiolvasásra, és kiírásra kerül a soros portra.
🇺🇸 A hőmérséklet Celsiusban kerül kiolvasásra. Az amerikaiak számára, ha ezt Fahrenheitre szeretnéd átváltani, oszd el a Celsius értéket 5-tel, majd szorozd meg 9-cel, és adj hozzá 32-t. Például egy 20°C-os hőmérséklet ((20/5)*9) + 32 = 68°F lesz.
-
Fordítsd le és töltsd fel a kódot a Wio Terminalra.
⚠️ Hivatkozhatsz az 1. projekt, 1. lecke PlatformIO projekt létrehozására vonatkozó utasításaira, ha szükséges.
-
Feltöltés után a soros monitor segítségével figyelheted a hőmérsékletet:
> 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
💁 Ezt a kódot megtalálod a code-temperature/wio-terminal mappában.
😀 Sikeresen elkészült a hőmérséklet-érzékelő programod!
Felelősség kizárása:
Ez a dokumentum az AI fordítási szolgáltatás, a Co-op Translator segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.