Как проверить температуру процессора и жесткого диска в ubuntu и других linux

Подключение DHT11 и DHT22/AM2302 к Arduino UNO

Теперь, когда у нас есть полное понимание того, как работает датчик DHT, мы можем начать подключать его к нашей плате Arduino!

К счастью, подключение датчиков DHT11, DHT22/AM2302 к Arduino довольно тривиально. У них довольно длинные выводы с шагом 0,1 дюйма (2,54 м), поэтому вы можете легко вставить их в любую макетную плату. Подайте на датчик питание 5 В и подключите землю. Наконец, подключите вывод данных к цифровому выводу 2 на Arduino.

Помните, как обсуждалось ранее, между VCC и линией данных нам нужно установить подтягивающий резистор 10 кОм, чтобы поддерживать высокий логический уровень на линии данных для правильной связи между датчиком и микроконтроллером. Если у вас есть готовый модуль датчика, вам не нужно добавлять какие-либо внешние подтягивающие резисторы. Модуль поставляется со встроенным подтягивающим резистором.

Рисунок 6 – Подключение DHT11 к Arduino UNOРисунок 7 – Подключение DHT22/AM2302 к Arduino UNO

Теперь вы готовы загрузить в Arduino код и заставить ее работать.

Обзор аппаратного обеспечения

Теперь давайте перейдем к более интересным вещам. Давайте разберем оба датчика DHT11 и DHT22/AM2302 и посмотрим, что внутри.

Корпус состоит из двух частей, поэтому для его вскрытия достаточно просто достать острый нож и разделить корпус на части. Внутри корпуса на стороне датчиков находятся датчик влажности и датчик температуры NTC (термистор).

Рисунок 2 – Внутренности датчиков температуры и влажности DHT11 DHT22/AM2302

Чувствительный к влажности компонент, который используется, разумеется, для измерения влажности, имеет два электрода с влагоудерживающей подложкой (обычно соль или проводящий пластиковый полимер), зажатой между ними. По мере поглощения водяного пара подложка высвобождает ионы, что, в свою очередь, увеличивает проводимость между электродами. Изменение сопротивления между двумя электродами пропорционально относительной влажности. Более высокая относительная влажность уменьшает сопротивление между электродами, в то время как более низкая относительная влажность увеличивает это сопротивление.

Рисунок 3 – Внутренняя структура датчика влажности в DHT11 и DHT22

Кроме того, в этих датчиках для измерения температуры имеется датчик температуры NTC (термистор). Термистор – это терморезистор – резистор, который меняет свое сопротивление в зависимости от температуры. Технически все резисторы являются термисторами – их сопротивление слегка изменяется в зависимости от температуры, но обычно это изменение очень мало и его трудно измерить.

Термисторы сделаны так, чтобы их сопротивление резко изменялось при изменении температуры, и изменение на один градус может составлять 100 Ом или более! Термин «NTC» означает «Negative Temperature Coefficient» (отрицательный температурный коэффициент), что означает, что с ростом температуры сопротивление уменьшается.

Рисунок 4 – График зависимости сопротивления NTC термистора от температуры

С другой стороны имеется небольшая печатная плата с 8-разрядной микросхемой в корпусе SOIC-14. Эта микросхема измеряет и обрабатывает аналоговый сигнал с сохраненными калибровочными коэффициентами, выполняет аналого-цифровое преобразование и выдает цифровой сигнал с данными о температуре и влажности.

Решение проблем

Модуль K10Temp

На проблемных машинах модуль сообщит «unreliable CPU thermal sensor; monitoring disabled». Можно принудительно загрузить его:

# rmmod k10temp
# modprobe k10temp force=1

Убедитесь, что датчик действительно является достоверными и надежными. Если это так, то можно отредактировать , добавив:

options k10temp force=1

Это позволит подгрузить модуль при загрузке системы.

Материнские платы Asus H97/Z97/Z170/X570/B550

Некоторые последние платы Asus требуют загруженного модуля ядра для доступа к вентиляторам и вольтажу.

Вам также, вероятно, понадобится добавить следующий параметр ядра:

acpi_enforce_resources=lax

Материнские платы Gigabyte B250/Z370/B450M

acpi_enforce_resources=lax

Кроме этого, укажите идентификатор чипа при загрузке модуля следующим образом:

# modprobe it87 force_id=0x8686

Или вы можете загружать модуль в процессе загрузки системы, создав два файла:

/etc/modules-load.d/it87.conf
it87
/etc/modprobe.d/it87.conf
options it87 force_id=0x8686

Как модуль будет загружен, используйте sensors для исследования чипа.
Теперь вы также можете использовать fancontrol для управления скорости вращения вашего вентилятора корпуса.

В дополнение установка AUR позволит тонко настроить систему охлаждения материнской платы, однако отключит стандартный модуль k10temp.

Gigabyte GA-J1900N-D3V

Вы можете загрузить модуль в рантайме:

$ modprobe it87 force_id=0x8728

Или вы можете загружать модуль в процессе загрузки системы, создав два файла:

/etc/modules-load.d/it87.conf
it87
/etc/modprobe.d/it87.conf
options it87 force_id=0x8603

Как модуль будет загружен, используйте sensors для исследования чипа.

Теперь вы также можете использовать fancontrol для управления скорости вращения вашего вентилятора корпуса.

Добавление в приложение

Процесс добавления в Mi Home ничем не отличается от других подобных устройств и выглядит следующим образом:

  • заходим в приложение и нажимаем на “+” в правом верхнем углу;
  • выбираем Aqara temperature and Humidity sensor из списка устройств;
  • нажимаем и удерживаем кнопку сопряжения в течение пяти секунд, после отпускаем и дожидаемся добавления в приложение.

Все готово, теперь он доступен в общем списке устройств, а под его иконкой отображаются текущие значения температуры и влажности. Такое отображение очень удобно и позволяет обойтись без постоянного открывания плагина в случае необходимости узнать текущие показатели. Для того, чтобы отвязать устройство от шлюза нужно нажать и удерживать более 5 секунд кнопку на датчике.

В сети периодически попадаются сообщения, что датчик иногда отваливается от шлюза. За несколько месяцев использования круглого и квадратного датчиков у меня такой проблемы не было, все работает стабильно.

Typical setup: Heating floor system~

A typical setup for heating room systems can be found in the picture below. A conventional room thermostat is connected to a heating floor valve actuator, both running at AC voltage (f.i. 220V). The thermostat is connected to neutral as well as to the phase, the actuator to the same neutral connection of the thermostat and to its actuation signal. The actuation signal will switch between the neutral voltage (actuation Off) and the phase voltage (actuation On).

The conventional room thermostats offer nowadays either 2 point control with hysteresis or a more advanced PI (Proportional-Integral) control. The result of the PI control is typically transformed into a PWM signal with a pre-defined period and a variable duty cycle.

Use of tasmota switch to bypass an existing wall thermostat

A tasmota switch can be installed in a way that it bypasses the existing wall thermostat. The advantage of this setup is that the thermostat driver offers the possibility to follow the output of the existing wall thermostat or acting autonomously. This setup allows a seamless integration with existing wall thermostats and gives the user the freedom to still use them.

Below you can find an example of a Shelly switch bypassing a wall thermostat:

Плагин устройства

На главной странице плагина выводятся все текущие показатели – влажность, давление и температура. Ниже – кнопка “Автоматизация”, служащая для перехода на страницу составления сценариев, в которых датчик выступает в качестве условия и на выбор доступны – выше/ниже заданной температуры и выше/ниже заданного значения влажности. Показатели давления в сценариях не используются, хотя можно бы было реализовать отправку сообщения на смартфон при выходе за пределы нормы.

Если нажать на любой из показателей, то перед нами открывается история измерений за день, неделю, месяц.

Аналогичные графики можно посмотреть и при открытии датчика в плагине шлюза. Тут они более красивые.

Так же есть вкладка с общими настройками, которая не отличается от других устройств. Доступно задание пароля на запуск плагина, выбор часового пояса и комнаты и ряд других параметров.

Как часто Aqara temperature and Humidity sensor передает данные в приложение? При незначительном изменении измеряемых показателей передача происходит раз в час. Если изменение одного из показателей превышает 0.5°C (для температуры)/6% (для влажности)/25 гектопаскаль (для давления), то данные передаются сразу же.

Кстати, давление тут выводится кПа. Один кПа равен 7,5 мм ртутного столба, а нормальным считается значение 760 мм ртутного столба или 101,3 кПа.

Отображение температуры процессора в командной строке

Мы успешно установили пакет lm-sensor и успешно обнаружили поддерживаемые датчики на нашем ноутбуке с Ubuntu Linux.

Теперь мы можем выполнить следующую команду, чтобы увидеть данные о температуре:

Обратите внимание, что результаты будут отличаться для вашего компьютера. Вы также можете использовать команду watch для постоянного запуска команды датчиков, которая будет отображать изменения выходного сигнала датчика на экране:

Вы также можете использовать команду watch для постоянного запуска команды датчиков, которая будет отображать изменения выходного сигнала датчика на экране:

Зачем следить за температурой оборудования?

Обычных пользователей этот вопрос, конечно, может совсем и не волновать. За температурами следят администраторы, геймеры, тестеры и оверклокеры. Представитель из каждой из обозначенных категорий деятельности делает это в целях, непосредственно связанных с родом деятельности

Так, например, для администратора критически важно не допустить перегрева, иначе велик риск завалить систему. Для тестеров важно выявить стабильные характеристики режимов работы оборудования в различных режимах использования

В том числе и температурных. Практически во всех случаях, когда речь идёт о комнатном использовании оборудования, в частности, компьютерного железа, важно не допускать именно высоких температур. Ведь вся современная электроника построена на полупроводниках. Для которых «комфортным» для рабочих температур является диапазон от -40 до +60 градусов по Цельсию. По этой причине все геймеры и оверклокеры так стремятся оснастить свои системы максимально эффективными системами охлаждения. Подобный подход позволяет существенно компенсировать температурный нагрев в самых требовательных приложениях и играх. А также при разгоне тех же процессоров и графических чипов.

Метод 1 — Lm_Sensors

Lm_Sensors — это служебная программа командной строки, которую можно настроить для сканирования различных аппаратных датчиков на ПК с Linux для сообщения о состоянии температуры. Lm_Sensors — полезный инструмент для проверки температуры вашего процессора в крайнем случае.

В настоящее время Lm_Sensors не поставляется ни в одном из дистрибутивов Linux, поэтому, прежде чем мы перейдем к тому, как его использовать, мы должны продемонстрировать, как установить программу на ваш компьютер с Linux.

Чтобы начать установку, откройте окно терминала, нажав Ctrl + Alt + T или Ctrl + Shift + T на клавиатуре. Оттуда следуйте приведенным ниже инструкциям командной строки, которые соответствуют вашей операционной системе Linux.

Ubuntu

В Ubuntu приложение Lm_Sensors легко устанавливается с помощью приведенной ниже команды Apt.

sudo apt install lm-sensors

Debian

Используете Debian Linux? Вы сможете установить программу с помощью следующей команды Apt-get.

sudo apt-get install lm-sensors

Arch Linux

Приложение Lm_Sensors доступно пользователям Arch Linux в репозитории программного обеспечения «Дополнительно». Убедитесь, что в вашей системе Arch включен «Extra». Затем используйте следующую команду Pacman, чтобы настроить его.

sudo pacman -S lm_sensors

Fedora

Чтобы установить Lm_Sensors в Fedora Linux, используйте команду Dnf ниже, чтобы настроить программу в вашей системе.

sudo dnf install lm_sensors

OpenSUSE

Официально OpenSUSE не содержит приложения Lm_Sensors. Однако должна быть возможность установить пакет Fedora Linux.

Предупреждение: версия Lm_Sensors для Fedora может не работать в OpenSUSE Linux. Попробуйте этот метод на свой страх и риск!

wget https://download-ib01.fedoraproject.org/pub/fedora/linux/releases/30/Everything/x86_64/os/Packages/l/lm_sensors-3.5.0-3.fc30.x86_64.rpm
sudo zypper install lm_sensors-3.5.0-3.fc30.x86_64.rpm

Настройка Lm_Sensors

После установки приложения Lm_Sensors процесс начальной настройки не завершается. Перед использованием приложения его необходимо настроить для работы с аппаратными датчиками на вашем компьютере.

Чтобы начать процесс настройки, перейдите в окно терминала и получите root-доступ с помощью команды su или sudo -s.

su

или же

sudo -s

При наличии root-прав запустите в терминале команду sensor-detect, и начнется процесс начальной настройки.

sensors-detect

Первый экран, который появляется в процессе настройки датчика, говорит: «Некоторые южные мосты, процессоры или контроллеры памяти содержат встроенные датчики. Вы хотите их сканировать? Это совершенно безопасно ».

Чтобы начать, напишите «Да» в подсказке.

После выбора «ДА» появится следующий вопрос. В этом вопросе говорится: «Некоторые Super I / O содержат встроенные датчики. Мы должны писать в стандартные порты ввода-вывода, чтобы проверить их. Обычно это безопасно. Вы хотите сканировать датчики Super I / O? »

Еще раз выберите «Да», чтобы разрешить сканирование Lm_Sensors.

После двух основных вопросов программа задаст еще несколько. Ответьте «да» на те вопросы, где слово «да» написано заглавными буквами, и «нет» на те, где слово «нет» написано заглавными буквами.

Когда Lm_Sensors закончит задавать вопросы, настройка завершена.

Проверьте температуру процессора с помощью Lm-Sensors

Проверка температуры процессора в Linux с помощью Lm-Sensors выполняется с помощью команды датчиков. Чтобы быстро проверить показания температуры вашего процессора (и других устройств, обнаруженных Lm-Sensors), откройте окно терминала с помощью Ctrl + Alt + T или Ctrl + Shift + T на клавиатуре.

Затем запустите команду датчиков, чтобы просмотреть показания различных температур датчиков.

sensors

В качестве альтернативы, если вы хотите сохранить показания температуры процессора в текстовый файл для последующего чтения, запустите команду датчиков и перенаправьте ее с помощью символа «>».

sensors > cpu-temp.txt

Advanced features~

Multi-controller

The tasmota driver can be compiled to be used in devices with more than one output, allowing independant controllers for each one of the outputs. This feature has been successfully tested with a Sonoff 4CH PRO R2.

To increase the number of controller outputs, modify the value of the thermostat controller outputs in or redefine it in and compile a customized tasmota software.

Alternative outputs: PWM duty cycle

The driver provides the possibility to read the duty cycle in % (0-100) of the actuated relay. Below the command to read the duty cycle can be found:

The physical switch of the output can as well be disabled via command. Below the command to disable it can be found:

Комплект поставки, внешний вид

Комплект поставки стандартный для датчиков от Aqara – само устройство, инструкция и двусторонний скотч. Также в комплекте идет одна CR2032 батарейка, которая уже установлена. Время автономной работы, заявляемое производителем – до 2 лет, что достигается путем использования энергоэффективного протокола Zigbee, про особенности которого можно почитать в статье “Zigbee в умном доме”. Есть Zigbee, значит должен быть и шлюз, без которого получить информацию с датчика не получится. Подойдет любой актуальный шлюз из экосистемы Xiaomi – Xiaomi Gateway 2 или Gateway 3, шлюзы от Aqara.
Датчик выполнен из устойчивого к ультрафиолетовому излучению пластика, что позволит сохранить его внешний вид максимально долго. Он квадратный и миниатюрный, габариты схожи с круглым датчиком от Xiaomi. Сверху расположена кнопка сопряжения со шлюзом, снизу – отверстия для анализа поступающего воздуха. Используется сенсор от компании Sensirion. Заявленная точность измерений – ±0.3°C, ±3%, ±0.12 кПа для температуры, влажности и давления соответственно.

Монтаж производится на двусторонний скотч, что позволяет закрепить устройство в любом удобном месте. Важный момент – датчик не имеет защиты от попадания воды и его нельзя использовать на улице, о чем прямо говорится в инструкции. Что же делать, если ну очень хочется разместить его за окном? Воспользуйтесь любой влагозащищенной распаячной коробкой и поместите в нее датчик. Судя по отзывам в интернете у большинства все работает. Тут главное, чтобы температура не опускалась ниже заявленных производителем -20 градусов.

Использование данных датчиков

Графические фронтэнды

Существует множество разнообразных фронтэндов для отображения данных датчиков.

psensor — GTK приложение для отслеживания аппаратных датчиков, включая температуры и скорости вентиляторов. Отслеживает материнскую плату и центральный процессор (используя lm-sensors), Nvidia GPUs (используя XNVCtrl), и жёсткие диски (используя hddtemp или libatasmart).

xsensors — X11 интерфейс к lm_sensors.

Для конкретной Desktop environments:

Freon (расширение GNOME Shell) — Расширение выводит на экран температуры ЦП, дисков, видеокарты, напряжения и оборотов вентилятора в GNOME Shell.

GNOME Sensors Applet — Апплет панели GNOME для отображения значений аппаратных датчиков, включая температуру ЦП, скорость вращения вентиляторов и вольтаж.

lm-sensors (LXPanel plugin) — Отслеживает температуру/вольтаж/скорости вентиляторов in LXDE с помощью lm-sensors.

MATE Sensors Applet — Отображает считанные значения аппаратных датчиков на вашей панели MATE.

Sensors (Xfce4 panel plugin) — Hardware sensors плагин для панели Xfce.

Thermal Monitor (Plasma 5 applet) — Апплет KDE Plasma для мониторинга CPU, GPU и других доступных датчиков температуры.

sensord

Существует дополнительный демон sensord (включен в пакет ), позволяющий журналировать данные с сенсоров в кольцевые базы данных (rrd) для последующей визуализации. Смотрите ман для уточнения деталей.

Future improvements~

Cooling

The controller offers the possibility to switch from heating to cooling. Due to lack of cooling setup at the time of the development of the driver, this feature has however not been propertly tested. Testers for cooling are therefore welcomed.

The following MQTT command can be used to switch from heating (default) to cooling:

Self learning process of the «Ramp-Up» controller to reduce overshoot

The «Ramp-Up» controller evaluates the time constant of the system and predicts when to switch off the actuator to reach the desired temperature as fast as possible. This controller offers the best speed to reach the Setpoint. This controller will be improved by a learning process to evaluate how accurate the target value has been reached and therefore minimize gradually the overshoot. This feature will improve the behavior of the current controller which depending on the application and thermal capacity of the system might produce some overshoot. By default the controller set is the Hybrid one, enabling «Ramp-Up» for big temperature deltas between Setpoint and measured temperature and PI for smaller ones. If you are not satisfied with the performance of this controller in your system, you can disable it by MQTT and force the use of the PI controller exclusively (see Controller configuration section above).

PI Autotune

A PI autotune feature following the Zigler-Nichols closed loop algorithm has been implemented. This feature is untested and will be further developed soon. To enable it for testing purposes add the following define in and compile a customized tasmota software.

Первоначальная настройка lm-sensors

После установки запускаем процесс сканирования датчиков в системе.

После выполнения этой команды, программа начнет спрашивать вас о необходимости сканирования разных сенсоров (как в примере ниже).

Some south bridges, CPUs or memory controllers contain embedded sensors.
Do you want to scan for them? This is totally safe. (YES/no):

Впринципе, во всех случаях достаточно просто нажимать Enter, это будет выбирать значения предложенные программой по умолчанию. Под самый конец программа спросит разрешения добавить в файл модулей необходимые изменения, на что рекоммендуется ответить YES (по умолчанию будет предложено NO).

To load everything that is needed, add this to /etc/modules:
#—-cut here—-
# Chip drivers
coretemp
it87
#—-cut here—-
If you have some drivers built into your kernel, the list above will
contain too many modules. Skip the appropriate ones!Do you want to add these lines automatically to /etc/modules? (yes/NO)

После этого для работы программы нужно перезагрузить компьютер.

Psensor – GUI-мониторинг температур в Linux

После того, как установлены и настроены все основные инструменты для мониторинга температур. Такие как lm-sensors и hddtemp, можно (и даже нужно) для удобства вывести это в одном приложении с использованием графиков и лог-файлов. Для этого предназначена очень популярная в среде Linux утилита psensor. Она обладает графическим пользовательским интерфейсом и способна агрегировать данные от всех самых популярных утилит-провайдеров всевозможных системных параметров, таких как температуры, обороты вентиляторов, объём RAM и т. д. Пакет для установки также доступен практически в каждом дистрибутиве Linux и обычно называется «psensor».
Psensor умеет довольно гибко управлять настройкой и отображением значений датчиков. Разобраться в пользовательском интерфейсе не составляет особого труда, он довольно прост:

Рис. 1: Графическая утилита psensor — мониторинг температур, оборотов вентиляторов и других системных параметров в Linux .

При запуске psensor обычно располагается в системном трее в виде значка термометра. Вызов главного окна psensor осуществляется из контекстного меню значка.

Шаг 2. Проверьте температуру процессора с помощью графического интерфейса пользователя Psensor.

Мы собираемся использовать инструмент с графическим интерфейсом, Psensor, который позволяет вам контролировать температуру оборудования в Linux.

С помощью Psensor вы можете проверить следующее:

  • Температура материнской платы и датчиков процессора и графических процессоров NVidia
  • Температура жестких дисков
  • Скорость вращения вентиляторов
  • Мониторинг использования ЦП

Последняя версия Psensor также предоставляет индикатор апплета для Ubuntu, что делает мониторинг температуры оборудования в Ubuntu еще проще. Вы можете выбрать отображение температуры прямо на самой верхней панели. Он даже может отправлять уведомление на рабочий стол, когда температура превышает предел.

Мы можем продолжить установку Psensor, используя следующую команду:

Использование lm-sensors

Затем можно будет посмотреть показания датчиков командой (можно выполнять без root привелегий):

В ответ получите примерно следующее:

acpitz-virtual-0
Adapter: Virtual device
temp1: +40.0°C (crit = +75.0°C)coretemp-isa-0000
Adapter: ISA adapter
Core 0: +42.0°C (high = +76.0°C, crit = +100.0°C)
Core 1: +42.0°C (high = +76.0°C, crit = +100.0°C)
Core 2: +46.0°C (high = +76.0°C, crit = +100.0°C)
Core 3: +42.0°C (high = +76.0°C, crit = +100.0°C)

atk0110-acpi-0
Adapter: ACPI interface
Vcore Voltage: +1.14 V (min = +0.85 V, max = +1.60 V)
+12V Voltage: +12.03 V (min = +10.20 V, max = +13.80 V)
+5V Voltage: +5.27 V (min = +4.50 V, max = +5.50 V)
+3.3V Voltage: +3.30 V (min = +2.97 V, max = +3.63 V)
MEMORY: +2.11 V (min = +1.33 V, max = +2.47 V)
+1.2V HT: +1.23 V (min = +1.08 V, max = +1.32 V)
NB: +1.31 V (min = +1.08 V, max = +1.32 V)
SB: +1.50 V (min = +1.35 V, max = +1.65 V)
CPU VTT: +1.10 V (min = +1.08 V, max = +1.32 V)
DDR2 TERM.: +1.06 V (min = +0.63 V, max = +1.17 V)
CPU PLL: +1.52 V (min = +1.35 V, max = +1.65 V)
CPU_FAN FAN Speed: 981 RPM (min = 800 RPM, max = 7200 RPM)
CHA_FAN1 FAN Speed: 518 RPM (min = 800 RPM, max = 7200 RPM)
CHA_FAN2 FAN Speed: 666 RPM (min = 800 RPM, max = 7200 RPM)
CHA_FAN3 FAN Speed: 0 RPM (min = 800 RPM, max = 7200 RPM)
OPT1 FAN FAN Speed: 0 RPM (min = 800 RPM, max = 7200 RPM)
OPT2 FAN FAN Speed: 0 RPM (min = 800 RPM, max = 7200 RPM)
OPT3 FAN FAN Speed: 0 RPM (min = 800 RPM, max = 7200 RPM)
POWER FAN Speed: 0 RPM (min = 800 RPM, max = 7200 RPM)
CPU Temperature: +32.0°C (high = +60.0°C, crit = +95.0°C)
MB Temperature: +39.0°C (high = +45.0°C, crit = +95.0°C)
OPT1: +0.0°C (high = +45.0°C, crit = +95.0°C)
OPT2: +0.0°C (high = +45.0°C, crit = +95.0°C)
OPT3: +0.0°C (high = +45.0°C, crit = +95.0°C)

Configuration for standalone application or bypass of existing wall thermostat~

The driver by default does not consider the input switch states even if available and its therefore suitable for standalone use. If the application requires to follow the command of the input once active (see bypass setup explained in previous section). This bypass function is specially useful to allow the user to use the device bypassed, in case of a wall thermostat, to allow this thermostat to be used if desired. To enable this bypass function, the following command is to be sent to the tasmota device:

Note

Some devices (such as the Sonoff 4CH Pro R2) even if having input buttons to manually switch the state of the output, report always its inputs in active state no matter if the button is pressed or not. For these devices the parameter above needs to be set to 0, otherwise the thermostat driver will activate the output continuously and stay permanently in manual mode.

Once active, the thermostat, in case of its input being active, will switch to manual mode and set as output the same state of its input. The thermostat will switch back from manual to automatic mode after a defined time where the input is inactive. The following parameter can be set to modify the time window in minutes to switch back to automatic in case the input is inactive:

The default value for the time window to switch from manual to automatic is 60 minutes.

DHT11 против DHT22/AM2302

У нас есть две версии серии датчиков DHTxx. Они выглядят немного похоже и имеют одинаковую распиновку, но имеют разные характеристики. Вот подробности.

DHT22 является более дорогой версией, которая, очевидно, имеет лучшие характеристики. Диапазон измерения температуры составляет от -40°C до +80°C с точностью ±0,5 градуса, а диапазон температур DHT11 составляет от 0°C до 50°C с точностью ±2 градуса. Также датчик DHT22 имеет более широкий диапазон измерения влажности, от 0 до 100% с точностью 2-5%, в то время как диапазон измерения влажности DHT11 составляет от 20 до 80% с точностью 5%.

Сравнение спецификаций DHT11 и DHT22/AM2302
 
  DHT11 DHT22
Рабочее напряжение от 3 до 5 В от 3 до 5 В
Максимальный рабочий ток 2,5 мА макс 2,5 мА макс
Диапазон измерения влажности 20-80% / 5% 0-100% / 2-5%
Диапазон измерения температуры 0-50°C / ± 2°C от -40 до 80°C / ± 0,5°C
Частота выборки 1 Гц (чтение каждую секунду) 0,5 Гц (чтение каждые 2 секунды)
Размер корпуса 15,5 мм х 12 мм х 5,5 мм 15,1 мм х 25 мм х 7,7 мм
Преимущество Ультра низкая стоимость Более точный

Хотя DHT22/AM2302 более точен и работает в большем диапазоне температур и влажности; есть три вещи, в которых DHT11 сильно превосходит DHT22. Он более дешевый, меньше по размеру и имеет более высокую частоту выборки. Частота выборки DHT11 составляет 1 Гц, то есть одно чтение каждую секунду, в то время как частота выборки DHT22 составляет 0,5 Гц, то есть одно чтение каждые две секунды.

Рабочее напряжение обоих датчиков составляет от 3 до 5 вольт, в то время как максимальный ток, используемый во время преобразования (при запросе данных), составляет 2,5 мА. И самое приятное, что датчики DHT11 и DHT22/AM2302 являются «взаимозаменяемыми», то есть, если вы создаете свой проект с одним датчиком, вы можете просто отключить его и использовать другой датчик. Ваш код, возможно, придется немного изменить, но, по крайней мере, схема не изменится!

Для получения более подробной информации обратитесь к техническим описаниям датчиков DHT11 и DHT22/AM2302.

Код Arduino. Вывод значений на монитор последовательного порта

Как обсуждалось ранее, датчики DHT11 и DHT22/AM2302 имеют собственный однопроводный протокол, используемый для передачи данных. Этот протокол требует точной синхронизации. К счастью, нам не нужно беспокоиться об этом, потому что мы собираемся использовать библиотеку DHT, которая позаботится почти обо всем.

Сначала скачайте библиотеку, посетив репозиторий на GitHub, или просто нажмите эту кнопку, чтобы скачать архив:

Чтобы установить библиотеку, откройте Arduino IDE, перейдите в «Скетч» → «Подключить библиотеку» → «Добавить .ZIP библиотеку» и выберите только что загруженный zip-архив DHTlib.

После установки библиотеки вы можете скопировать следующий скетч в IDE Arduino. Данный скетч выводит значения температуры и относительной влажности в монитор последовательного порта. Попробуйте скетч в работе; а затем мы рассмотрим его подробнее.

Скетч начинается с включения библиотеки DHT. Затем нам нужно определить номер вывода Arduino, к которому подключен вывод данных нашего датчика, и создать объект . Так мы сможем получить доступ к специальным функциям, связанным с библиотекой.

В функции нам нужно инициировать интерфейс последовательной связи, так как для вывода результатов мы будем использовать монитор последовательного порта.

В функции мы будем использовать функцию , которая считывает данные с DHT22/AM2302. В качестве параметра она принимает номер вывода данных датчика. Если вы работаете с DHT11, вам нужно использовать функцию . Вы можете сделать это, раскомментировав вторую строку.

После расчета значений влажности и температуры мы можем получить к ним доступ:

Объект возвращает значение температуры в градусах Цельсия (°C). Его можно преобразовать в градусы Фаренгейта (°F) по простой формуле:

\[T_{^\circ F} = T_{^\circ C} \times 9/5 +32\]

В конце мы выводим значения температуры и влажности в монитор последовательного порта.

Рисунок 8 – Вывод в мониторе последовательного порта показаний датчика DHT11 или DHT22/AM2302

Заключение

Кроме того, вы можете попробовать использовать TLP и Thermald , которые помогут вам контролировать температуру процессора в Linux. Cpufreq — еще один инструмент, который может помочь вам сэкономить заряд батареи и уменьшить перегрев ноутбука, который очень хорошо работает в Ubuntu.

Несколькими годами ранее я использовал Conky, легкий монитор настольной системы, который может отображать статистику процессора, памяти, пространства подкачки, дискового пространства, температуры, процессов, сетевых интерфейсов, заряда батареи и т. Д.

Если вы хотите проверить температуру без сторонних инструментов, загляните в файл /sys/devices/virtual/Thermal/Thermal_zone1/temp.

Чтобы проверить температуру жесткого диска, вы можете установить пакет hddtemp .

Наконец, если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: