Skip to content

Latest commit

 

History

History
160 lines (127 loc) · 6.48 KB

README_RU.md

File metadata and controls

160 lines (127 loc) · 6.48 KB

Raspberry Pi Hardware Monitor

PROJECT PHOTO

Монитор железа для Raspberry Pi

PIC0 PIC1

Выводит информацию на дисплей LCD2004. Что выводится? На данный момент сделано:

  • Вывод IP адреса.
  • Вывод загрузки RAM.
  • Вывод состояния памяти SD-карты.
  • Вывод состояния памяти внешнего носителя (прим. HDD/SSD).
  • Вывод Uptime.
  • Вывод температуры CPU.
  • Вывод температуры с внешнего датчика DS18B20.
  • Вывод текущей даты.

В планах сделать:

  • Добавить управление вентилятором.
  • Разбить скрипт на куски.

Системные требования

  • Необходимо наличие установленного Python.
  • Необходимо включить i2c.
  • Необходимо включить 1-Wire.

Подключение

Raspberry PI LCD 2004
     5V   |   5V
     SDA  |   SDA
     SCL  |   SCL
     GND  |   GND
Raspberry PI DS18B20
     5V   |   5V
   GPIO7  |   DATA
     GND  |   GND

Установка

Все команды выполняются в терминале последовательно от root.

  1. Переходим в домашнюю папку: cd /home/pi
  2. Клонируем репозиторий: sudo git clone https://github.com/Cherkes001/raspberrypi_hardwaremonitor.git
  3. Переходим в папку со скриптом: cd raspberrypi_hardwaremonitor
  4. Даем права на выполнение скрипту: sudo chmod +x hardware_monitor.py
  5. Запуск: ./hardware_monitor.py

Автозапуск

Дополнение от @alexinario Если делали по инструкции, то скрипт окажется в данной директории, далее прописываете данные команды:

sudo cp -i /home/pi/raspberrypi_hardwaremonitor/hardware_monitor.py /bin
sudo crontab -e
Добавить в crontab:
@reboot python /bin/hardware_monitor.py &

Настройки скрипта

  1. Для отключения вывода какой-либо необходимо просто закомментировать строку в скрипте через знак #.

  2. Адрес дисплея. В строке I2C_ADDR = 0x27. 0x27 - заменить на ваш адрес. Как? - См. ниже.

  3. ID - датчика DS18B20. В строке tfile=open("/sys/bus/w1/devices/28-0317249ce7ff/w1_slave").
    28-0317249ce7ff - заменить на ваш ID.

  4. Вывод состояния памяти внешнего хранилища. В строке hdd = run_cmd ("df -BMB | grep /mnt/*** | awk '{print $2\"/\"$3, $5}'")
    Там где - /mnt/*** прописать вашу точку монтирования.

<a id="chapter-5>

Настройка

  1. Адрес дисплея:
    sudo i2cdetect -y 1
    Будет выведена таблица, где обычно 27 или 3F - это и есть адрес дисплея.
  2. ID датчика DS18B20:
    После подключения датчика выполняем следующие команды:
  3. sudo modprobe w1-gpio && sudo modprobe w1_therm
  4. ls -l /sys/bus/w1/devices/

Будет выведена похожая информация:
total 0<br> total 0<br> lrwxrwxrwx 1 root root 0 Nov 29 10:49 28-0317249ce7ff -> ../../../devices/w1_bus_master1/28-0317249ce7ff<br> lrwxrwxrwx 1 root root 0 Nov 29 10:49 w1_bus_master1 -> ../../../devices/w1_bus_master1

Каждый датчик имеет уникальный номер. Находим ID датчика. В моем случае 28-0317249ce7ff.

Возможные ошибки

  1. Не правильный i2c адрес дисплея или дисплей не найден.
    Укажите свой адрес дисплея (прим. обычно 0x27 или 0x3F) и проверьте соединения.
    Traceback (most recent call last):<br> File "./dispy.py", line 146, in <module><br> lcd_byte(0x01, LCD_CMD)<br> File "./dispy.py", line 99, in lcd_byte<br> bus.write_byte(I2C_ADDR, bits_high)<br> IOError: [Errno 121] Remote I/O error

  2. Не правильный ID датчика DS18B20 или датчик не найден.
    Укажите свой ID датчка и проверьте соединения. Если данный датчик не используется, то просто отключите его вывод просто закомментировав строку.
    Traceback (most recent call last):<br> File "./dispy.py", line 142, in <module><br> main()<br> File "./dispy.py", line 136, in main<br> lcd_string("DS18B20 Temp:{}".format(get_dallas()),LCD_LINE_2)<br> File "./dispy.py", line 77, in get_dallas<br> tfile=open("/sys/bus/w1/devices/28-0317249ce7ff/w1_slave")<br> IOError: [Errno 2] No such file or directory: '/sys/bus/w1/devices/28-0317249ce7ff/w1_slave'

Changelog

---15/09/2019 ---
Добавлен перевод на Английский язык для файла README.

---08.07.2019---
Добавлен вывод загрузки CPU;
Другой способ вывода UPtime;
Наполнение readme;

---20.06.2020---
Коммит @wildrun0;

---19.11.2020---
Обновление Readme;

Часть кода скрипта найден на просторах интернета.