Мониторинг температуры Raspberry Pi
СРАЗУ ХОЧУ ПРЕДУПРЕДИТЬ: ЗАПИСЬ СО СТАРОГО БЛОГА ОТ 2012 ГОДА
Предистория: Наигравшись вдоволь Raspberry Pi нашел ему более серьезное занятие чем мигание светодиодиками: теперь он выступает в роли принт-сервера. Голая плата доольно некрасиво и странно выглядела и было решено сделать для нее корпус из подручных материалов. Нашел в офисе небольшую коробочку, вырезал отверстия под все нужные мне порты, сделал отверстия над процессором и впихнул туда Raspberry. Получилось вроде симпатично...
Все бы ничего, но меня начало волновать охлаждение этого агрегата, особенно учитывая, что стоит от в плохо проветриваемом месте. Нужно было как-то мониторить температуру.
Мониторинг температуры: И так, для мониторинга температуры я решил написать простенький скрипт на python который бы отсылал уведомление на почту при превышении заданной температуры. Скрипт потихоньку обрастал новыми возможностями и вот, что он умеет:
- Отправлять имейл при превышении заданной температуры CPU (процессора)
- Отправлять имейл при превышении заданной температуры GPU (видео ядра)
- Время между пробами температуры настраивается в секундах (стандартно установлено 30 секунд)
- Время между сообщениями, тоже настраивается в секундах (стандартно установлено 5 минут)
- Игнорирует интервал между сообщениями если температура продолжает расти
- Может отправлять сообщения как по SSL SMTP так и по не защищенному каналу
- Можно настраивать Тему письма
- Можно настраивать Адрес от которого приходит сообщение
- Можно редактировать текст самого сообщения
Вот, собственно, результат работы скрипта:
Ссылка на скрипт: клик
Небольшая инструкция:
копируем файл temp.py в любую удобную вам папку, я всегда копирую в /home, заходите в терминал и прописываете
следующие комманды:
cd /home
nano temp.py
редактируете следующие параметры:
Если Ваш почтовый сервер работает без SSL, то уберите решетку перед #from smtplib import SMTP и поставьте решетку перед from smtplib import SMTP_SSL as SMTP в противном случае - ничего менять не надо
Так же, Вам нужно настроить следующие параметры:
max_temp_c = максимальная температура процессора
max_temp_g = максимальная температура видео ядра
send_wait = время между сообщениями о превышении температуры
probe_time = время между измерениями температуры
SMTPserver = адрес вашего почтового сервера
sender = от какого адреса e-mail отсылать
destination = адрес на который отсылать сообщения
USERNAME = логин от почтового ящика
PASSWORD = пароль от почтового ящика
subject = тема письма ообщения
Остальное можете не менять, что б сохранить и выйти нажмите "CTRL"+"X", затем "Y" и "ENTER"
sudo chmod +x temp.py
Теперь вам нужно, что б скрипт запускался автоматически при перезагрузке, для этого добавим следующее правило в cron:
sudo crontab -e и добавляем в конце следующую строку:
@reboot /home/temp.py
Cохраняем и выходим: нажмите "CTRL"+"X", затем "Y" и "ENTER"
Перезагружаем RASPBERRY и скрипт автоматически заработает.
Если хотим убедится в работе скрипта, то открываем файл temp.py меняем температуру max_temp_c на, например, 20, сохраняем файл и перезагружаем raspberry.
Вам должны начать приходить сообщения. Далее меняем в файле температуру на нужную, сохраняем и снова перезагружаем Raspberry. Может этот скрипт кому-то поможет и сэкономит время.