Мы написали скрипт управления Умным Домом для Orange Pi. Теперь необходимо этот скрипт поставить в очередь автозагрузки. Для примера, настроим автозапуск скрипта, управляющего светодиодами на плате Orange Pi PC2.

Создайте в папке /usr/local/sbin скрипт cputled следующего содержания:

#!/bin/bash
ledr="orangepi:red:status"
ledg="orangepi:green:pwr"

Y=10
while [ "$Y" != "0" ]; do
  echo 1 > /sys/class/leds/$ledg/brightness
  echo 0 > /sys/class/leds/$ledr/brightness
  sleep 0.4
  echo 0 > /sys/class/leds/$ledg/brightness
  echo 1 > /sys/class/leds/$ledr/brightness
  sleep 0.4
  Y=`expr $Y - 1`
done

while true
do
  temp=`cat /sys/class/thermal/thermal_zone0/temp`
  echo 0 > /sys/class/leds/$ledg/brightness
  echo 0 > /sys/class/leds/$ledr/brightness
  if [[ $temp -gt 40000 ]]; then
      echo 1 > /sys/class/leds/$ledg/brightness
  fi
  if [[ $temp -gt 55000 ]]; then
      echo 1 > /sys/class/leds/$ledr/brightness
      echo 0 > /sys/class/leds/$ledg/brightness
  fi
  if [[ $temp -gt 65000 ]]; then
      echo 1 > /sys/class/leds/$ledg/brightness
  fi
#  clear
#  echo "CPU t="`expr $temp / 1000`
  sleep 1
done

Этот скрипт будет автоматически загружаться при старте системы Linux Ubuntu и с помощью двух светодиодов на плате Orange Pi PC 2 информировать нас о температуре процессора. Скрипт дает нам информацию о четырех диапазонах температур:

  • Температура ниже 40 Cº – светодиоды не горят
  • Температура в диапазоне от 40 Cº до 55 Cº – горит зеленый светодиод
  • Температура в диапазоне от 55 Cº до 65 Cº – горит красный светодиод
  • Температура выше 65 Cº – горят оба светодиода

Кроме того, скрипт /usr/local/sbin/cputled информирует о том что он успешно загружен перемигиванием красного и зеленого светодиодов в течении 8 секунд. Если этот скрипт будет запущен на на Уровне 3 автозапуска служб Linux, то по миганию светодиодов мы можем определить что Ubuntu сервер загружен и готов к работе.

Создайте в папке /etc/init.d скрипт cputled следующего содержания:

#!/bin/sh

### BEGIN INIT INFO
# Provides:          cputled
# Required-Start:    $network
# Required-Stop:
# Default-Start:     3
# Default-Stop:      0 1 6
# Short-Description: CPU overheating flashing on-Board LEDs
### END INIT INFO

# Source function library
# /etc/init.d/cputled

start() {
  /usr/local/sbin/cputled &
  echo
}

stop() {
  echo 1 > /sys/class/leds/orangepi:green:pwr/brightness
  pkill cputled
  echo
}

case "$1" in
   start)
         start
         ;;
    stop)
         stop
         ;;
    *)
         echo $"Usage: $0 {start|stop}"
         exit 1
esac

exit 0

Этот скрипт поможет нам запускать и останавливать предыдущий скрипт.

Запустим скрипт измерения температуры процессора на плате Orange Pi вручную:

systemctl daemon-reload
service cputled start

Остановим скрипт измерения температуры процессора на плате Orange Pi вручную:

service cputled stop

Поместим скрипт измерения температуры процессора на плате Orange Pi в автозагрузку:

update-rc.d cputled defaults

Перезагрузим микрокомпьютер Orange Pi:

reboot