11 KiB
Измерение температуры - Wio Terminal
В этой части урока вы добавите датчик температуры к вашему Wio Terminal и будете считывать значения температуры с него.
Аппаратное обеспечение
Для Wio Terminal требуется датчик температуры.
Датчик, который вы будете использовать, — это датчик влажности и температуры DHT11, объединяющий два датчика в одном корпусе. Это довольно популярное устройство, и существует множество коммерчески доступных датчиков, которые объединяют измерение температуры, влажности, а иногда и атмосферного давления. Компонент для измерения температуры представляет собой термистор с отрицательным температурным коэффициентом (NTC), сопротивление которого уменьшается с увеличением температуры.
Это цифровой датчик, поэтому он имеет встроенный АЦП (аналогово-цифровой преобразователь), который создает цифровой сигнал с данными о температуре и влажности, которые может считывать микроконтроллер.
Подключение датчика температуры
Датчик температуры Grove можно подключить к цифровому порту Wio Terminal.
Задание - подключите датчик температуры
Подключите датчик температуры.
-
Вставьте один конец кабеля Grove в разъем на датчике влажности и температуры. Кабель вставляется только в одном направлении.
-
Отключив Wio Terminal от компьютера или другого источника питания, подключите другой конец кабеля Grove к правому разъему Grove на Wio Terminal, если смотреть на экран. Это разъем, который находится дальше всего от кнопки питания.
Программирование датчика температуры
Теперь Wio Terminal можно запрограммировать для работы с подключенным датчиком температуры.
Задание - программирование датчика температуры
Программируйте устройство.
-
Создайте новый проект для Wio Terminal с использованием PlatformIO. Назовите проект
temperature-sensor
. Добавьте код в функциюsetup
для настройки последовательного порта.⚠️ Вы можете обратиться к инструкциям по созданию проекта PlatformIO в проекте 1, уроке 1, если это необходимо.
-
Добавьте зависимость от библиотеки Seeed Grove Humidity and Temperature sensor в файл
platformio.ini
проекта:lib_deps = seeed-studio/Grove Temperature And Humidity Sensor @ 1.0.1
⚠️ Вы можете обратиться к инструкциям по добавлению библиотек в проект PlatformIO в проекте 1, уроке 4, если это необходимо.
-
Добавьте следующие директивы
#include
в начало файла, под существующей строкой#include <Arduino.h>
:#include <DHT.h> #include <SPI.h>
Эти директивы импортируют файлы, необходимые для взаимодействия с датчиком. Заголовочный файл
DHT.h
содержит код для работы с самим датчиком, а добавление заголовочного файлаSPI.h
гарантирует, что код, необходимый для связи с датчиком, будет подключен при компиляции приложения. -
Перед функцией
setup
объявите датчик DHT:DHT dht(D0, DHT11);
Это объявляет экземпляр класса
DHT
, который управляет Digital Humidity and Temperature датчиком. Он подключен к портуD0
, правому разъему Grove на Wio Terminal. Второй параметр указывает, что используется датчик DHT11 — библиотека, которую вы используете, поддерживает и другие варианты этого датчика. -
В функции
setup
добавьте код для настройки последовательного соединения:void setup() { Serial.begin(9600); while (!Serial) ; // Wait for Serial to be ready delay(1000); }
-
В конце функции
setup
, после последней строкиdelay
, добавьте вызов для запуска датчика DHT:dht.begin();
-
В функции
loop
добавьте код для вызова датчика и вывода температуры в последовательный порт: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); }
Этот код объявляет пустой массив из двух чисел с плавающей точкой и передает его в вызов
readTempAndHumidity
экземпляраDHT
. Этот вызов заполняет массив двумя значениями — влажность записывается в 0-й элемент массива (помните, что в C++ массивы нумеруются с 0, поэтому 0-й элемент — это "первый" элемент массива), а температура записывается в 1-й элемент.Температура считывается из 1-го элемента массива и выводится в последовательный порт.
🇺🇸 Температура считывается в градусах Цельсия. Для американцев: чтобы преобразовать это значение в градусы Фаренгейта, разделите значение в Цельсиях на 5, затем умножьте на 9 и добавьте 32. Например, значение температуры 20°C преобразуется в ((20/5)*9) + 32 = 68°F.
-
Соберите и загрузите код на Wio Terminal.
⚠️ Вы можете обратиться к инструкциям по созданию проекта PlatformIO в проекте 1, уроке 1, если это необходимо.
-
После загрузки вы можете отслеживать температуру с помощью последовательного монитора:
> 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.
😀 Ваше приложение для работы с датчиком температуры успешно создано!
Отказ от ответственности:
Этот документ был переведен с помощью сервиса автоматического перевода Co-op Translator. Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода.