Как известно,
Raspberry pi можно разогнать
до 1 Ггц без потери гарантии, но после
разгона возникает проблема с нагревом
процессора. Один из вариантов - поставить
небольшой радиатор, что собственно я и
сделал, но как показала практика, даже
с радиатором Raspberry pi сильно
грелся, поэтому возник вопрос о
дополнительном охлаждении. Первое что
пришло в голову - это поставить небольшой
вентилятор от старой видеокарты, и
запитать его от самой Raspberry
pi, благо, на это есть порты на самой
плате. После установки вентилятора
температура не поднималась выше 31С, но
хоть вентилятор
и несильно шумящий, он создавал шум. Т.к. малинка у меня находится
рядом с спальным местом, было
принято решение, что постоянно охлаждать
процессор необязательно, а можно его
включать по достижению какой-либо
температуры. Сразу возник вопрос о том,
что нужно подключать датчик температуры,
снимать с него показания, и в зависимости
от его показаний, включать или выключать
охлаждение. После небольших поисков в
интернете оказалось, что температуру
можно узнать и без датчика. Для этого в
консоли вводим команду:
cat /sys/class/thermal/thermal_zone0/temp
или визуально
более удобная:
vcgencmd measure_temp
Я решил
написать небольшой скрипт на Bash,
который проверяет температуру
каждые 10 секунд, и если температура
поднялась выше, чем задано в скрипте,
будет включаться вентилятор, управляемый
4 GPIO портом на малинке.
Создадим скрипт
temp.sh
touch temp.sh
с следующим
содержанием:
#!/bin/bashtemp="40" # Устанавливаем какую хотим поддерживать температуруwhile true; dorealtemp=`cat /sys/class/thermal/thermal_zone0/temp`str2="${realtemp%???}"if [ "$str2" -gt "$temp" ]thenecho "1" > /sys/class/gpio/gpio4/valueelseecho "0" > /sys/class/gpio/gpio4/valuefisleep 10 # Устанавливаем как часто будем снимать показания температурыdone
Даем права на
выполнение
chmod 774 /home/pi/temp.sh
Создадим
скрипт инициализирующий порты GPIO
при загрузке системы и запускающий
скрипт temp.sh
touch gpio.sh
Содержание скрипта
#!/bin/shecho "4" > /sys/class/gpio/exportecho "out" > /sys/class/gpio/gpio4/direction/home/pi/temp.sh &
Даем права на
выполнение
chmod 774 /home/pi/gpio.sh
и добавляем в
/etc/*rc.local
/home/pi/gpio.sh
имейте ввиду,
что он должен быть добавлен до строки
exit 0
Далее приступим
к подключению вентилятора к самой
raspberry pi. Подключать
вентилятор напрямую к порту GPIO
4 нельзя, во-первых, не
достаточно напряжения; во-вторых, его
можно просто сжечь под нагрузкой, поэтому
лучше подключать через транзистор или
через оптрон, что более безопасно. Ниже
приведены две схемы включения.
В схеме 1
используется оптрон РС817 и резистор на
1 килоом. Выводы, обозначенные Ground,
должны быть соединены
вместе и подключены к соответствующему
порту на плате.
На схеме 2
используется транзистор КТ315 или любой
аналог, например,
2SC641, 2SC634,
BFP722
Подключаем
схему к raspberry pi и перезагружаем
ее. Теперь при достижении температуры
40С будет включаться вентилятор на 10
секунд. Пример работы можете просмотреть
в видео
Ваще ребята. Ну спасиба епт! Терь дует зашибись!
ОтветитьУдалитьКак сменить с 4 пина GPIO на другой пин?
ОтветитьУдалить#!/bin/bash
Удалитьtemp="40" # Устанавливаем какую хотим поддерживать температуру
while true; do
realtemp=`cat /sys/class/thermal/thermal_zone0/temp`
str2="${realtemp%???}"
if [ "$str2" -gt "$temp" ]
then
echo "1" > /sys/class/gpio/gpio17/value
else
echo "0" > /sys/class/gpio/gpio17/value
fi
sleep 10 # Устанавливаем как часто будем снимать показания температуры
done
#!/bin/sh
echo "17" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio17/direction
/home/pi/temp.sh &
на 17 пин попробуй подключить
спасибо, сменил на 17-й пин - все заработало.
УдалитьНе пойму: потребление вентилятора 1Вт, ток 200мА, оптрон рассчитан на 50мА. У мегня не работает. Может быть из за этого?
ОтветитьУдалитьЕсли есть возможность проверь тестером, или светодиодом, сначала на прямую к малинке, если светодиод загорается, подключай схему и опять проверяй тестером или светодиодом.
УдалитьДа, получается отличное управление светодиодом :) Поставил более мощный PRAC37S - зажужжал вентилятор. Спасибо за схему и советы. Александр.
Удалитьпасибо работает на кт315
ОтветитьУдалить