Raspberry Pi 4 отключение по Цельсию
Не секрет, что Raspberry Pi 4 может разогреться до 80 градусов, после чего плата выйдет из строя. Проверять я не стал, решил обезопасить себя от нежелательного возгорания. Для этого решил написать скрипт, который будет проверять температуру Raspberry Pi и в случае превышения заданной величины — выключать его.
Установленный кулер решает данный вопрос, но предположим, Raspberry работает 24/7 и подключен к UPS. Узким местом остается для нас — кулер.
Проверить текущую температуру можно командой:
1 |
vcgencmd measure_temp |
А теперь сам скрипт:
1 2 3 4 5 6 7 8 9 10 11 |
#!/bin/bash while true;do TempHalt=$(vcgencmd measure_temp | sed -En "s/temp=(.*).0'C/\1/p") MaxTemp="60" if [ $TempHalt -ge $MaxTemp ];then echo "temp is $TempHalt" sudo shutdown -h now else sleep 5m fi done |
Максимальная температура у меня задана в 60 градусов, цикл работает каждые 5 минут. Можно попробовать использовать для запуска cron, но тогда придется убрать цикл while.
Дополненный скрипт с отправкой уведомлений в мессенджер:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#!/bin/bash API_KEY="bot-key-api" CHAT_ID="id-chat" while true;do TempHalt=$(vcgencmd measure_temp | sed -En "s/temp=(.*).0'C/\1/p") MaxTemp="60" if [ $TempHalt -ge $MaxTemp ];then curl -K "/home/pi/.curlrc" -s "https://api.telegram.org/bot$API_KEY/sendMessage?chat_id=$CHAT_ID&text=Pi-is-down! Temp is $TempHalt!" echo "temp is $TempHalt" sudo shutdown -h now else sleep 5m fi done |
К вопросу о curl и файле curlrc — есть занимательная статья.
2 комментария
Vinni
А ты его добавлял в /etc/rc.local ? Как ты его запускаешь тогда? Прочитал только о возможности крона и все!
Где решение?
kanitelka
Добавлял в /etc/rc.local
# Monitoring temperatures
/home/pi/temp.sh
exit 0