6.9 KiB
Mäta temperatur - Wio Terminal
I den här delen av lektionen kommer du att lägga till en temperatursensor till din Wio Terminal och läsa av temperaturvärden från den.
Hårdvara
Wio Terminal behöver en temperatursensor.
Sensorn du kommer att använda är en DHT11 fukt- och temperatursensor, som kombinerar två sensorer i en enhet. Den är ganska populär och det finns flera kommersiellt tillgängliga sensorer som kombinerar temperatur, fuktighet och ibland även atmosfärstryck. Temperaturkomponenten är en negativ temperaturkoefficient (NTC) termistor, en termistor där resistansen minskar när temperaturen ökar.
Detta är en digital sensor, så den har en inbyggd ADC som skapar en digital signal med temperatur- och fuktdata som mikrokontrollern kan läsa av.
Anslut temperatursensorn
Grove-temperatursensorn kan anslutas till Wio Terminals digitala port.
Uppgift - anslut temperatursensorn
Anslut temperatursensorn.
-
Sätt ena änden av en Grove-kabel i uttaget på fukt- och temperatursensorn. Den går bara att sätta i på ett sätt.
-
Med Wio Terminal frånkopplad från din dator eller annan strömkälla, anslut den andra änden av Grove-kabeln till det högra Grove-uttaget på Wio Terminal när du tittar på skärmen. Detta är uttaget längst bort från strömbrytaren.
Programmera temperatursensorn
Wio Terminal kan nu programmeras för att använda den anslutna temperatursensorn.
Uppgift - programmera temperatursensorn
Programmera enheten.
-
Skapa ett helt nytt Wio Terminal-projekt med PlatformIO. Ge projektet namnet
temperature-sensor
. Lägg till kod i funktionensetup
för att konfigurera den seriella porten.⚠️ Du kan hänvisa till instruktionerna för att skapa ett PlatformIO-projekt i projekt 1, lektion 1 om det behövs.
-
Lägg till ett bibliotek för Seeed Grove Humidity and Temperature-sensorn i projektets
platformio.ini
-fil:lib_deps = seeed-studio/Grove Temperature And Humidity Sensor @ 1.0.1
⚠️ Du kan hänvisa till instruktionerna för att lägga till bibliotek i ett PlatformIO-projekt i projekt 1, lektion 4 om det behövs.
-
Lägg till följande
#include
-direktiv högst upp i filen, under det befintliga#include <Arduino.h>
:#include <DHT.h> #include <SPI.h>
Detta importerar filer som behövs för att interagera med sensorn. Header-filen
DHT.h
innehåller koden för själva sensorn, och genom att lägga tillSPI.h
säkerställer du att koden som behövs för att kommunicera med sensorn länkas in när appen kompileras. -
Före funktionen
setup
, deklarera DHT-sensorn:DHT dht(D0, DHT11);
Detta deklarerar en instans av klassen
DHT
som hanterar den Digitala Humidity och Temperature-sensorn. Den är ansluten till portD0
, det högra Grove-uttaget på Wio Terminal. Den andra parametern anger att sensorn som används är DHT11 - biblioteket du använder stödjer andra varianter av denna sensor. -
I funktionen
setup
, lägg till kod för att konfigurera den seriella anslutningen:void setup() { Serial.begin(9600); while (!Serial) ; // Wait for Serial to be ready delay(1000); }
-
I slutet av funktionen
setup
, efter den sistadelay
, lägg till ett anrop för att starta DHT-sensorn:dht.begin();
-
I funktionen
loop
, lägg till kod för att anropa sensorn och skriva ut temperaturen till den seriella porten: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); }
Denna kod deklarerar en tom array med två flyttal och skickar den till anropet
readTempAndHumidity
på instansenDHT
. Detta anrop fyller arrayen med två värden - fuktigheten placeras i det första elementet (index 0) och temperaturen placeras i det andra elementet (index 1).Temperaturen läses från det andra elementet i arrayen och skrivs ut till den seriella porten.
🇺🇸 Temperaturen läses av i Celsius. För amerikaner, för att konvertera detta till Fahrenheit, dela Celsius-värdet med 5, multiplicera med 9 och lägg till 32. Till exempel blir en temperaturavläsning på 20°C ((20/5)*9) + 32 = 68°F.
-
Bygg och ladda upp koden till Wio Terminal.
⚠️ Du kan hänvisa till instruktionerna för att skapa ett PlatformIO-projekt i projekt 1, lektion 1 om det behövs.
-
När koden har laddats upp kan du övervaka temperaturen med den seriella monitorn:
> 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
💁 Du kan hitta denna kod i mappen code-temperature/wio-terminal.
😀 Ditt program för temperatursensorn blev en framgång!
Ansvarsfriskrivning:
Detta dokument har översatts med hjälp av AI-översättningstjänsten Co-op Translator. Även om vi strävar efter noggrannhet, bör det noteras att automatiserade översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess originalspråk bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för eventuella missförstånd eller feltolkningar som uppstår vid användning av denna översättning.