- Saved searches
- Use saved searches to filter your results more quickly
- License
- rca/lascar-usb-thermometer
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.rst
- About
- Посоветуйте готовый доступный USB-датчик температуры.
- USB TEMPer настройка датчика на Ubuntu 18.04 lts и добавление к мониторингу Zabbix
- Поиск
- Выбор
- Решение
- Подготовка
- Обнаружение «гаджета»
- Установка софта
- Нахождение «флэшки» и её исполняемого файла
- Настройка работы датчика
- Подготовка Zabbix
- Добавление на вэб-интерфейс Zabbix
- Мониторинг температуры Linux
- Что мы будем использовать?
- Установка компонентов
- Настройка мониторинга температуры Linux
- 1. Настройка lm_sensors
- Настройка hddtemp
- Измерение и мониторинг температуры
- Выводы
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Get temperature and humidity readings for Lascar USB thermometers under Linux
License
rca/lascar-usb-thermometer
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.rst
Program to use EL-USB-RT USB thermometer under Linux
This is a small program to retrieve temperature and humidity from EL-USB-RT from vendor Lascar LTD. It is derived from Ángel Sancho’s lascar-usb-termometer.
This program uses libhid to communicate with the device. It can be downloaded from the Alioth Debian website.
- Download libhid and compile or apt-get if you use debian-like systems. You must also have libusb-dev installed.
- Clone the github repo
- Compile by running make
Running usb_termometer will return a single temperature and humidity reading from the device. Additional readings can be attained by tweaking the —count option. For example, —count=10 will return 10 readings and then exit. Setting —count=0 will collect data indefinitely.
By default the temperature is returned in Celcius. Using the —farenheit flag will return the temperature in Farenheit.
Help can be printed to the screen using the —help flag:
Usage: usb_termometer [OPTION. ] Collect temperature and humidity readings -c, --count=count The number of readings to take; default 1, if 0 go forever -d, --debug Enable debugging -f, --farenheit Get temperature in farenheit; default celcius -?, --help Give this help list --usage Give a short usage message
About
Get temperature and humidity readings for Lascar USB thermometers under Linux
Посоветуйте готовый доступный USB-датчик температуры.
Хочется без написания дров и паяния снимать температуру в градусах с какого-нибудь /sys/blabla/file файла. Посоветуйте доступный USB-девайс.
Хотя немного паяния и написания дров я переживу.
Сдается мне, что дешевле будет двухбаксовый DS18 прикрутить к баксовому USBTTL и на основе 1-wire over UART подключить к компутеру.
Ага, но время — тоже деньги 🙂
Свое хоббийное время бесплатно.
DS18 прикрутить к баксовому USBTTL и на основе 1-wire over UART
удваиваю. гарантированно работает.
Дайте тынц почитать как чего.
Тьфу ты, ссылки то я забыл! В общем, если тебе только температуру измерять надо, можешь либо вот такое взять, либо вот такое (если точность и диапазон рабочих температур побольше нужны).
Сам год назад в одном проектике участвовал от ВУЗа, где мы эти сенсоры с малинкой спаривали, проблем не было, сенсоры заработали с полпинка.
Алсо, все библиотечки, которые для работы с девайсами нужны (на линуксах оно libusb юзает), с открытыми исходниками, при желании можешь на любую платформу портировать.
USB TEMPer настройка датчика на Ubuntu 18.04 lts и добавление к мониторингу Zabbix
Все началось с того что в серверной неожиданно накрылась система кондиционирования и соответственно на серверах накрылись пара куллеров. После это было принято решение настроить мониторинг температур на серверах и серверной в общем.
Поиск
С температурой серверов, благодаря Хабру, проблем не было, а вот с мониторингом самой серверной, пришлось что то выдумывать. Посидев на E-bay и на Alliexpress я нашел 2 варианта:
2 Channels LAN Interface Ethernet Thermometer Temperature Sensor Network APP POE
и
TEMPER USB
Выбор
Идеалом всего было бы взять сетевой термометр 2 Channels LAN Interface Ethernet Thermometer Temperature Sensor Network APP POE на 2 датчика для более масштабного мониторинга температуры + привязки к Zabbix по SNMP (проще, надежней и дороже). Понимания настройки TEMPer USB на Убунту у меня не было, да и полномасштабного знания Линукс тоже. Но как то из серфинга на Хабре, я увидел что кто то, когда то подобное делал тут. Если это кто то сделал, то сделаю и я.
Начальство, посмотрев на цену первого, сказало — «Настроишь TEMPer USB за 5 баксов» (у новых погрешность 2-3 градуса, о старых народ говорит что может быть и 8 градусов, но есть софтинка которая позволяет откалибровать датчик).
Решение
У нас Zabbix сервер установлен на отдельную железку и все это крутится на Ubuntu 18.04 lts.
И конечно же хотелось вставить через USB удлинитель и что бы все заработало, но нет — этот датчик работает из-под винды.
Поиск решений в Гугле особых результатов не дал, кроме нерабочих ссылок десятилетней давности. Но логика осталась прежней.
Подготовка
Установка драйверов и библиотек у кого нет (коллеги всегда нужно смотреть в документацию по Вашей ОС) нам нужно будет: libusb, libhidapi-dev и libusb-dev в Убунту все просто:
$sudo apt-get install libusb
$sudo apt-get install libusb-dev
$sudo apt-get install libhidapi-dev
Обнаружение «гаджета»
С начала нам нужно узнать видит ли сервер флешку:
$lsusb
У меня код вендора и ИД устройства:
Bus 001 Device 005: ID 413d:2107
Также нам нужно узнать исполняемые файлы «флэшки»
$dmesg
У меня оказался /dev/hidraw4, позже мы к нему обратимся.
Установка софта
После этого нам нужно установить необходимый софт и распихать его по папкам, для удобства работать будем из-под Рута ( sudo -i ):
$ cd /opt/
$ git clone https://github.com/edorfaus/TEMPered
$ cd TEMPered
$ cmake .
$ cd /opt/TEMPered/utils
$ make
$ cp hid-query /usr/local/bin
Нахождение «флэшки» и её исполняемого файла
После установки проверяем какой именно файл будет отдавать нам метрики
$./hid-query /dev/hidraw4 0x01 0x80 0x33 0x01 0x00 0x00 0x00 0x00
Device /dev/hidraw4: 413d:2107 interface 1: (null) (null)
00 01 80 33 01 00 00 00 00
Response from device (8 bytes):
Файл находится по адресу /dev/hidraw4
Настройка работы датчика
Теперь напишем скриптик что ты получить значения температуры в читаемом формате. Скрипт я закинул в папку с Zabbix.
$ cd /etc/zabbix/scripts
$ nano TEMPered
#!/bin/bash
OUTLINE=`/usr/local/bin/hid-query /dev/hidraw4 0x01 0x80 0x33 0x01 0x00 0x00 0x00 0x00|grep -A1 ^Response|tail -1`
OUTNUM=`echo $OUTLINE|sed -e ‘s/^[^0-9a-f]*[0-9a-f][0-9a-f] [0-9a-f][0-9a-f] \([0-9a-f][0-9a-f]\) \([0-9a-f][0-9a-f]\) .*$/0x\1\2/’`
HEX4=$
DVAL=$(( 16#$HEX4 ))
CTEMP=$(bc echo $CTEMP
Задаем права на выполнение
$ chmod +x TEMPered
И проверяем работу скрипта
$ ./TEMPered
Подготовка Zabbix
При добавлении в Zabbix самому агенту не хватало прав на выполнение. Поигравшись с правами мы так и не пришли к желаемому результату и сделали проще. Выполняем скрипт из под рута и записываем это все в текстовый файл (TEMPer.txt), для автоматизации используем КРОН.
Проверка записи:
$ ./TEMPered > /tmp/TEMPer.txt
19.04
Заходим в cron
$ nano /etc/crontab
Вносим запись на выполнение каждую минуту
Правим конфиг мониторинга
$nano /etc/zabbix/zabbix_agentd.conf
Добавление на вэб-интерфейс Zabbix
Создадим новый элемент данных (в нашем случае напрямую на сервере с Zabbix):
Проверим поступление данных
Добавим тригер:
И график, для наглядности:
Вывод
Знание того что у некоторых серверов Dell и HP есть встроенные датчики температуры среды, нас как админов немного балуют. И я совсем не о температуре говорю, такие задачи дают нам возможность взбодриться, вытянуть из закромов все знания и техники которые у нас есть.
Мониторинг температуры Linux
В большинстве случаев нам не нужно беспокоиться о температуре компьютера. Все устроено так что температура не будет превышать максимальную если у вашего оборудования нет никаких производственных дефектов. Но перегрев могут вызвать не только аппаратные ошибки, это также может произойти из-за багов в драйвере графической карты или неправильно настроенной программы управления вентилятором. Частой причиной перегрева также может быть пыль, грязь, мусор попавшие в систему охлаждения (вентилятор, радиатор). Такое часто происходит со старым оборудованием.
Перегрев может вызвать очень серьезные повреждения вашего компьютера, так что следите за температурой вашей системы. Еще лучше если есть служба контроля температуры, которая предупредит вас если температура начнет сильно расти. В этой инструкции я расскажу как настроить мониторинг температуры Linux. В операционной системе Linux есть специальный набор утилит, которые предназначены для того, чтобы выполнять контроль температуры linux.
Что мы будем использовать?
Давайте рассмотрим утилиты, которые мы сегодня будем использовать:
- lm-sensors — программный инструмент, извлекающий данные из аппаратных датчиков на материнской плате для мониторинга температуры, напряжения, влажности и т д;
- hddtemp — инструмент для измерения температуры жестких дисков;
- psensor — графическая утилита для мониторинга температуры, которая позволяет посмотреть температуру Linux, для процессора, видеокарты, жестких дисков и других компонентов, которые поддерживают эту функцию.
Установка компонентов
Программа psensor отображает температуру на основе информации, полученной от lm-sensors и hddtemp. Поэтому сначала необходимо установить эти инструменты. Для установки в Debian или Ubuntu выполните:
sudo apt install lm-sensors hddtemp psensor
Если вы хотите установить самую новую версию этих компонентов, нужно добавить сначала PPA от разработчиков в систему:
sudo add-apt-repository ppa:jfi/ppa
sudo apt update
sudo apt install lm-sensors hddtemp psensor
Установка psensor в Fedora и других дистрибутивах, основанных на Red Hat будет выглядеть аналогично:
sudo yum install lm_sensors hddtemp psensor
Настройка мониторинга температуры Linux
Сначала нужно настроить низкоуровневые инструменты для считывания данных о температуре компонентов lm_sensors и hddtemp. Начнем с lm_sensors. После этого вы уже сможете посмотреть температуру linux.
1. Настройка lm_sensors
Для запуска мастера настройки ls_sensors выполните команду:
Отвечайте Y на все вопросы. Утилита попытается обнаружить все доступные в системе встроенные аппаратные датчики (для процессора, видеокарты, памяти и других микросхем), а также автоматически определить подходящие драйвера для них.
Когда сканирование датчиков завершится вам будет предложено добавить обнаруженные модули ядра в автозагрузку:
В Ubuntu или Debian модули будут добавлены в /etc/modeuls. А в Fedora будет создан файл /etc/sysconfig/lm_sensors. Для автоматической загрузки нужных модулей достаточно добавить lm_sensors в автозагрузку:
sudo systemctl enable lm-sensors
Теперь вы можете посмотреть температуру процессора Linux и других аппаратных компонентов с помощью команды sensors:
Настройка hddtemp
Еще вам нужно запустить hddtemp для контроля температуры жестких дисков. Выполните эту команду для запуска hddtemp в качестве демона, /dev/sda замените на адрес своего диска.
Это нужно сделать для каждого диска. Также необходимо добавить эту программу в автозагрузку.
Измерение и мониторинг температуры
Теперь можно начать мониторинг температуры linux с помощью psensor. Для этого просто запустите программу. Вы можете сделать это с помощью главного меню или же выполнив команду:
Вызовите контекстное меню в главном окне программы и выберите Параметры. Здесь вы увидите список доступных датчиков. Вы можете выбрать за какими датчиками нужно наблюдать.
Еще можно установить уровень тревоги для каждого датчика на вкладке Alarm. Когда температура Linux превысит заданную вы получите уведомление.
По умолчанию температура в psensor измеряется в градусах Цельсия. В последних версиях также есть поддержка конвертации в градусы по Фаренгейту.
Выводы
Дальше, чтобы программа работала постоянно осталось добавить ее в автозагрузку. Теперь температура процессора linux всегда будет под контролем и ваш компьютер точно не перегреется. Если у вас остались вопросы, спрашивайте в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.