GIV_59 писал(а):blackangel писал(а):Только что ради эксперимента сделал следующее:
1. записал образ raspberrian на SD
2. стартонул raspberry Pi3
3. Полностью обновил ОС
4. Подключил свои скрипты на управление вентилятором (автоматом управляет вентилятором от датчика температуры в ЦП) и кнопка выкл. системы.
5. установил MD
6. все обновляется, все работает....
А подробнее о скриптах можно узнать?
Я решил написать небольшой скрипт на Bash, который проверяет температуру каждые 10 секунд, и если температура поднялась выше, чем задано в скрипте, будет включаться вентилятор, управляемый 4 GPIO портом на малинке.
Создадим скрипт temp.sh
touch temp.sh
с следующим содержанием:
#!/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/gpio4/value
else
echo "0" > /sys/class/gpio/gpio4/value
fi
sleep 10 # Устанавливаем как часто будем снимать показания температуры
done
Даем права на выполнение
chmod 774 /home/pi/temp.sh
Создадим скрипт инициализирующий порты GPIO при загрузке системы и запускающий скрипт temp.sh
touch gpio.sh
Содержание скрипта
#!/bin/sh
echo "4" > /sys/class/gpio/export
echo "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 нельзя, во-первых, не достаточно напряжения; во-вторых, его можно просто сжечь под нагрузкой, поэтому лучше подключать через транзистор или через оптрон, что более безопасно.
chmod 774 /home/pi/shutdown.sh
Для своей кнопки я решил использовать два самых правых контакта в верхнем ряду. Разъём #38 (GPIO20) будет установлен на «выход», а разъём #40 (GPIO21) — на «вход». Далее цикл, повторяющийся раз в секунду, будет «слушать» разъём #40 и, как только на него поступит сигнал, используемые порты «очистятся» и будет запущена консольная команда для выключения. Как уже говорилось выше, команда может быть и любой другой. Ради интереса я выполнил эту задачу двумя способами: на Python и bash-скриптом. Ниже код обоих вариантов:
shutdown.py
shutdown.sh
Повторюсь, оба скрипта выполняют одно и то же, для работы кнопки нужен один из них (любой). Их также можно скачать:
• shutdown.py
• shutdown.sh
В случае со скриптом на Python есть один нюанс: для работы необходим класс RPi.GPIO, который необходимо скачать и установить отдельно. Делается это так:
wget
http://pypi.python.org/packages/source/ ... .11.tar.gz
tar zxf RPi.GPIO-0.5.11.tar.gz
cd RPi.GPIO-0.5.11
sudo python setup.py install
Собственно, последнее, что осталось сделать — это добавить скрипт в автозагрузку. Способов сделать это тоже несколько, я выбрал cron. Для этого запускается команда sudo crontab -e и в открывшемся файле добавляется одна из следующих строк:
@reboot python /home/pi/lentyay/poweroff.py &
@reboot sudo /home/pi/lentyay/shutdown.sh &
ссылки:
https://raw.githubusercontent.com/lenty ... hutdown.py
https://raw.githubusercontent.com/lenty ... hutdown.sh