Инструменты пользователя

Инструменты сайта


temp_mon

Различия

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

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
temp_mon [2014/02/06 15:04]
metallic
temp_mon [2022/03/25 17:00] (текущий)
Строка 8: Строка 8:
   * [[http://amperka.ru/product/temperature-sensor-ds18b20|Температурные датчики DS18B20]] (кол-во на одной шине ограничено 128 штуками, если не ошибаюсь)   * [[http://amperka.ru/product/temperature-sensor-ds18b20|Температурные датчики DS18B20]] (кол-во на одной шине ограничено 128 штуками, если не ошибаюсь)
   * [[http://amperka.ru/collection/display/product/text-lcd-20x4|Текстовый экран 20×4]] (опционально)   * [[http://amperka.ru/collection/display/product/text-lcd-20x4|Текстовый экран 20×4]] (опционально)
 +  * [[http://amperka.ru/collection/power-sources/product/usb-power-plug|Импульсный блок питания с USB-разъёмом (5 В, 1000 мА)]]
   * Резистор 4.7кОм   * Резистор 4.7кОм
   * Развернутая система мониторинга [[https://www.zabbix.com|Zabbix]]   * Развернутая система мониторинга [[https://www.zabbix.com|Zabbix]]
Строка 236: Строка 237:
 В результате чего на дисплее появятся показания с трех датчиков(в моем случае). В результате чего на дисплее появятся показания с трех датчиков(в моем случае).
  
-<note>По поводу кирилицы: нельзя просто так взять и написать на русском языке, из-за кодировок дисплей выведет полную ерунду. Чтобы выводить русские символы нужно писать их в hex-формате, т.е. например \xFF. Таблицу самих же символов и их коды можно поглядеть в официальной [[http://files.amperka.ru/datasheets/MT-16S2H.pdf|документации]] к дисплею на странице 8 или на рисунке ниже. Если вы хотите смешивать латиницу и кирилицу(как сделал я), то после кода кирилического символа нужно добавить две кавычки "" и дальше любое кол-во латинских букв или цифр</note>+<note>По поводу кирилицы: нельзя просто так взять и написать на русском языке, из-за кодировок дисплей выведет полную ерунду. Чтобы выводить русские символы нужно писать их в hex-формате, т.е. например \xFF. Таблицу самих же символов и их коды можно поглядеть в официальной [[http://files.amperka.ru/datasheets/MT-16S2H.pdf|документации]] к дисплею на странице 8 или на рисунке ниже. Если вы хотите смешивать латиницу и кирилицу(как сделал я), то после кода кирилического символа нужно добавить две кавычки "" и дальше любое кол-во латинских букв или цифр
  
 {{ :hex_codes_display.png?direct&300 |}} {{ :hex_codes_display.png?direct&300 |}}
 +</note>
 +
 +
  
 Если все отработало корректно, то осталось добавить скомпилированную програму для автовыполнения в скрипт /opt/scripts/gen_temp.sh (в конец): Если все отработало корректно, то осталось добавить скомпилированную програму для автовыполнения в скрипт /opt/scripts/gen_temp.sh (в конец):
Строка 245: Строка 249:
      
  
 +===== Zabbix-агент =====
 +
 +К этому моменту у нас уже показания с датчиков снимаются, на дисплей выводятся, осталось настроить zabbix. Подходящих бинарников для Raspberry Pi нет, поэтому придется собрать из исходников. Качаем [[http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.2.1/zabbix-2.2.1.tar.gz/download|сорцы]], распаковываем, компилируем и устанавливаем:
 +
 +  # ./configure --prefix=/usr/local/zabbix_agent --enable-agent
 +  # make install
 +  # useradd zabbix
 +  # mkdir /var/run/zabbix
 +  # mkdir /var/log/zabbix
 +  # chown zabbix /var/run/zabbix
 +  # chown zabbix /var/log/zabbix  
 +  
 +Если все прошло успешно, редактируем конфигурационный файл /usr/local/zabbix_agent/etc/zabbix_agentd.conf и приводим его к такому виду:
 +
 +  PidFile=/var/run/zabbix/zabbix_agentd.pid
 +  LogFile=/var/log/zabbix/zabbix_agentd.log
 +  LogFileSize=5
 +  DebugLevel=0
 +  Server=address.of.zabbix.server
 +  
 +  ListenIP=X.X.X.X
 +  Hostname=rfarm-raspberrypi
 +  
 +  ServerActive=address.of.zabbix.server
 +  HostnameItem=system.hostname
 +  
 +  Timeout=10
 +  
 +  UserParameter=custom.temp.rfarm.sensor1,/bin/cat /mnt/tmpfs/0000046022cb
 +  UserParameter=custom.temp.rfarm.sensor2,/bin/cat /mnt/tmpfs/0000045ef9b4
 +  UserParameter=custom.temp.outside.sensor1,/bin/cat /mnt/tmpfs/0000045f1c62
 +  
 +Тут главное указать адрес вашего zabbix-сервера в параметрах Server и ServerActive, IP-адрес на котором агент будет ждать подключения ListenIP и задать имя агента Hostname. И самое главное - задать параметры пользователя UserParameter с помощью которых агент будет считывать показания.
 +
 +Теперь протестируем наши параметры, что они корректно считываются:
 +
 +  # /usr/local/zabbix_agent/sbin/zabbix_agentd -t custom.temp.rfarm.sensor1
 +  custom.temp.rfarm.sensor1                     [t|17.812]
 +  
 +  # /usr/local/zabbix_agent/sbin/zabbix_agentd -t custom.temp.rfarm.sensor2
 +  custom.temp.rfarm.sensor2                     [t|11.812]
 +  
 +  # /usr/local/zabbix_agent/sbin/zabbix_agentd -t custom.temp.outside.sensor1
 +  custom.temp.outside.sensor1                   [t|-5.125]
 +
 +Все нормально, осталось добавить агента в автозагрузку, проще всего добавить в /etc/rc.local такую строку:
 +
 +  /usr/local/zabbix_agent/sbin/zabbix_agentd -c /usr/local/zabbix_agent/etc/zabbix_agentd.conf
 +  
 +
 +===== Zabbix-сервер =====
 +
 +Ну и осталось создать хост и прописать для него итемы и графики в веб-интерфейсе.
 +
 +Создаем хост(наш raspberry pi):
 +{{ :create_host1.png?direct&300 |}}
 +
 +
 +По желанию добавляем ему шаблон "zabbix-агент", чтобы отслеживать состояние хоста:
 +{{ :create_host2.png?direct&300 |}}
 +
 +
 +На каждый датчик создаем свой item(элемент, который будет коллекционировать данные), для каждого датчика у нас заранее на стороне zabbix-агента прописаны наши собственные параметры, ниже пример создания итема:
 +{{ :create_item1.png?direct&300 |}}
 +
 +
 +В итоге у меня получилось три итема, по одному на каждый датчик:
 +{{ :items.png?direct&300 |}}
 +
 +
 +И в конце создаем любое кол-во графиков, какое нужно, хоть по отельному на каждый итем, хоть один для всех сразу. На примере ниже создается один график, на котором будут рисоваться показания всех датчиков:
 +{{ :graph.png?direct&300 |}}
 +
 +
 +На этом все.
 +
 +
 +===== Заключение =====
 +
 +В итоге получили прибор, который в режиме реального времени выводит информацию по температуре с датчиков на дисплей, а также коллекционируется статистика по температуре и строятся графики с помощью zabbix. Ниже можно поглядеть как это выглядит в жизне.
 +
 +{{:temp_mon1.jpg?direct&300|}} {{:temp_mon2.jpg?direct&300|}} {{:temp_mon3.jpg?direct&300|}} {{:temp_mon4.png?direct&300|}}
 +
 +
 +===== Список использованной литературы =====
 +
 +  - [[http://files.amperka.ru/datasheets/MT-16S2H.pdf|Даташит на дисплей]]
 +  - [[http://shabpoint.blogspot.ru/2013/09/lcd-raspberry-pi.html|Подключение LCD дисплея к Raspberry Pi]]
 +  - [[http://wiki.amperka.ru/схемы-подключения:подключение-текстового-экрана|Подключение текстового экрана к Arduino]]
 +  - [[http://wiringpi.com/download-and-install/|GPIO Interface library for the Raspberry Pi]]
 +  - [[http://www.raspberrypi-spy.co.uk/2013/03/raspberry-pi-1-wire-digital-thermometer-sensor/|Raspberry Pi 1- Wire Digital Thermometer Sensor]]
 +  - [[http://habrahabr.ru/post/204478/|Мониторинг температуры гермозоны с помощью 1-wire датчиков и Zabbix 2]]
 +  - [[https://www.zabbix.com/wiki/howto/install/ubuntu/ubuntuinstall|Installing Zabbix on Ubuntu from source files]]
 +  - [[http://forum.cxem.net/index.php?showtopic=114312&#entry1361054|Faq Raspberry Pi - Миникомпьютер С Linux За 25$/35$]]
temp_mon.1391684650.txt.gz · Последнее изменение: 2022/03/25 17:03 (внешнее изменение)