|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "59263d094f20b302053888cd236880c3",
|
|
|
"translation_date": "2025-08-28T11:35:58+00:00",
|
|
|
"source_file": "2-farm/lessons/1-predict-plant-growth/wio-terminal-temp.md",
|
|
|
"language_code": "bg"
|
|
|
}
|
|
|
-->
|
|
|
# Измерване на температура - Wio Terminal
|
|
|
|
|
|
В тази част от урока ще добавите температурен сензор към вашия Wio Terminal и ще четете стойности на температурата от него.
|
|
|
|
|
|
## Хардуер
|
|
|
|
|
|
Wio Terminal се нуждае от температурен сензор.
|
|
|
|
|
|
Сензорът, който ще използвате, е [DHT11 сензор за влажност и температура](https://www.seeedstudio.com/Grove-Temperature-Humidity-Sensor-DHT11.html), който комбинира два сензора в един пакет. Това е доста популярен сензор, като много от наличните на пазара комбинират измерване на температура, влажност и понякога атмосферно налягане. Компонентът за измерване на температура е термистор с отрицателен температурен коефициент (NTC), при който съпротивлението намалява с увеличаване на температурата.
|
|
|
|
|
|
Това е цифров сензор, който има вграден АЦП (аналогово-цифров преобразувател), за да създаде цифров сигнал, съдържащ данни за температурата и влажността, които микроконтролерът може да прочете.
|
|
|
|
|
|
### Свързване на температурния сензор
|
|
|
|
|
|
Grove температурният сензор може да бъде свързан към цифровия порт на Wio Terminal.
|
|
|
|
|
|
#### Задача - свържете температурния сензор
|
|
|
|
|
|
Свържете температурния сензор.
|
|
|
|
|
|

|
|
|
|
|
|
1. Поставете единия край на Grove кабела в гнездото на сензора за влажност и температура. Той ще влезе само в една посока.
|
|
|
|
|
|
1. С изключен Wio Terminal от вашия компютър или друг източник на захранване, свържете другия край на Grove кабела към десния Grove порт на Wio Terminal, когато гледате екрана. Това е портът, който е най-далеч от бутона за захранване.
|
|
|
|
|
|

|
|
|
|
|
|
## Програмиране на температурния сензор
|
|
|
|
|
|
Сега Wio Terminal може да бъде програмиран да използва свързания температурен сензор.
|
|
|
|
|
|
### Задача - програмирайте температурния сензор
|
|
|
|
|
|
Програмирайте устройството.
|
|
|
|
|
|
1. Създайте нов проект за Wio Terminal, използвайки PlatformIO. Наречете този проект `temperature-sensor`. Добавете код във функцията `setup`, за да конфигурирате серийния порт.
|
|
|
|
|
|
> ⚠️ Можете да се обърнете към [инструкциите за създаване на PlatformIO проект в проект 1, урок 1, ако е необходимо](../../../1-getting-started/lessons/1-introduction-to-iot/wio-terminal.md#create-a-platformio-project).
|
|
|
|
|
|
1. Добавете зависимост за библиотеката Seeed Grove Humidity and Temperature sensor в `platformio.ini` файла на проекта:
|
|
|
|
|
|
```ini
|
|
|
lib_deps =
|
|
|
seeed-studio/Grove Temperature And Humidity Sensor @ 1.0.1
|
|
|
```
|
|
|
|
|
|
> ⚠️ Можете да се обърнете към [инструкциите за добавяне на библиотеки към PlatformIO проект в проект 1, урок 4, ако е необходимо](../../../1-getting-started/lessons/4-connect-internet/wio-terminal-mqtt.md#install-the-wifi-and-mqtt-arduino-libraries).
|
|
|
|
|
|
1. Добавете следните директиви `#include` в началото на файла, под съществуващото `#include <Arduino.h>`:
|
|
|
|
|
|
```cpp
|
|
|
#include <DHT.h>
|
|
|
#include <SPI.h>
|
|
|
```
|
|
|
|
|
|
Това импортира файловете, необходими за взаимодействие със сензора. Хедър файлът `DHT.h` съдържа кода за самия сензор, а добавянето на `SPI.h` гарантира, че кодът, необходим за комуникация със сензора, ще бъде свързан при компилиране на приложението.
|
|
|
|
|
|
1. Преди функцията `setup`, декларирайте DHT сензора:
|
|
|
|
|
|
```cpp
|
|
|
DHT dht(D0, DHT11);
|
|
|
```
|
|
|
|
|
|
Това декларира инстанция на класа `DHT`, който управлява **D**igital **H**umidity и **T**emperature сензора. Той е свързан към порт `D0`, десния Grove порт на Wio Terminal. Вторият параметър указва, че използваният сензор е *DHT11* - библиотеката, която използвате, поддържа и други варианти на този сензор.
|
|
|
|
|
|
1. Във функцията `setup` добавете код за настройка на серийната връзка:
|
|
|
|
|
|
```cpp
|
|
|
void setup()
|
|
|
{
|
|
|
Serial.begin(9600);
|
|
|
|
|
|
while (!Serial)
|
|
|
; // Wait for Serial to be ready
|
|
|
|
|
|
delay(1000);
|
|
|
}
|
|
|
```
|
|
|
|
|
|
1. В края на функцията `setup`, след последния `delay`, добавете извикване за стартиране на DHT сензора:
|
|
|
|
|
|
```cpp
|
|
|
dht.begin();
|
|
|
```
|
|
|
|
|
|
1. Във функцията `loop` добавете код за извикване на сензора и отпечатване на температурата в серийния порт:
|
|
|
|
|
|
```cpp
|
|
|
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);
|
|
|
}
|
|
|
```
|
|
|
|
|
|
Този код декларира празен масив от 2 числа с плаваща запетая и го предава на извикването на `readTempAndHumidity` на инстанцията `DHT`. Това извикване попълва масива с 2 стойности - влажността се записва в 0-ия елемент на масива (помнете, че в C++ масивите са базирани на индекс 0, така че 0-ият елемент е "първият"), а температурата се записва в 1-вия елемент.
|
|
|
|
|
|
Температурата се чете от 1-вия елемент на масива и се отпечатва в серийния порт.
|
|
|
|
|
|
> 🇺🇸 Температурата се чете в Целзий. За американците, за да преобразувате в Фаренхайт, разделете стойността в Целзий на 5, умножете по 9 и добавете 32. Например, температура от 20°C става ((20/5)*9) + 32 = 68°F.
|
|
|
|
|
|
1. Компилирайте и качете кода на Wio Terminal.
|
|
|
|
|
|
> ⚠️ Можете да се обърнете към [инструкциите за създаване на PlatformIO проект в проект 1, урок 1, ако е необходимо](../../../1-getting-started/lessons/1-introduction-to-iot/wio-terminal.md#write-the-hello-world-app).
|
|
|
|
|
|
1. След като качите, можете да наблюдавате температурата, използвайки серийния монитор:
|
|
|
|
|
|
```output
|
|
|
> 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
|
|
|
```
|
|
|
|
|
|
> 💁 Можете да намерите този код в папката [code-temperature/wio-terminal](../../../../../2-farm/lessons/1-predict-plant-growth/code-temperature/wio-terminal).
|
|
|
|
|
|
😀 Вашата програма за температурния сензор беше успешна!
|
|
|
|
|
|
---
|
|
|
|
|
|
**Отказ от отговорност**:
|
|
|
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод. |