Автор Тема: OPI в качестве маршрутизатора и домашнего сервера  (Прочитано 7314 раз)

Оффлайн VeterMir

Мне на соседнем форуме подсказали другое решение =)
В результате вышла такая конструкция:
#!/bin/bash
t=`/bin/date +%Y"."%m"."%d"-"%H":"%M`
ip=`/sbin/ifconfig|/bin/grep inet|/usr/bin/head -1|/bin/sed 's/\:/ /'|/usr/bin/$
/root/liblcm1602/example2 ${t} ${ip}
sleep 30
c=`cat /sys/class/thermal/thermal_zone0/temp`
sp=`df --output=pcent /dev/sda1 | tr -cd [0-9]`
/root/liblcm1602/example2 CPU_temp_${c}_C HDD_use_${sp}%
т.е. показывает время с ip, потом показывает температуру проца и % заполненности HDD.
Надо идти дальше и отображать состояние сетей =)
Ко мне лучше на "ты". Я ещё слишком молод =)

Оффлайн VeterMir

Цитировать
а нужное значение висит после третьего пробела во второй строке.
Точно после третьего? у меня после 4-го, те пятое значение:
df | awk '/sda1/ {print($5)}'
Принцип: вывод df посылается на awk, а он выбирает строку с sda1 и выводит 5-е значение.

А изящнее вышло с вашим решением
#!/bin/bash
t=`/bin/date +%Y"."%m"."%d"-"%H":"%M`
ip=`/sbin/ifconfig|/bin/grep inet|/usr/bin/head -1|/bin/sed 's/\:/ /'|/usr/bin/$
/root/liblcm1602/example2 ${t} ${ip}
sleep 30
c=`cat /sys/class/thermal/thermal_zone0/temp`
sp=`df | awk '/sda1/ {print($5)}'`
/root/liblcm1602/example2 CPU_temp_${c}_C HDD_use_${sp}
Ко мне лучше на "ты". Я ещё слишком молод =)

Оффлайн ua3nbw

а зачем выводить температуру процессора ?
Температура «за окном», надо только найти любой «погодный» сайт который легко распарсить и выдернуть текущую температуру

Оффлайн VeterMir

а зачем выводить температуру процессора ?
Температура «за окном», надо только найти любой «погодный» сайт который легко распарсить и выдернуть текущую температуру
у него с пассивным охлаждением в корпусе роутера проц греется до 50 градусов, почти без нагрузок особых. Побаиваюсь я, да и люблю видеть состояние сервера, дисплей для него приверчен. А сайты - они на смартфоне виджетом. Хотя, идея прилепить датчик к нему интересна.

Сегодня завершил очередной этап строительства. В этом-же корпусе разместил контроллер заряда/конвертор напряжения и пока 2 элемента 18650 по 2,5А ёмкости каждый. Пока - потому, что уже поздно и остальное прикручивать некогда. Пришлось помучаться с развязками по питанию (а при отключении внешнего питания, по задумке, должен вырубаться HDD и внешние USB с предположительно жрущей периферией, не нужной в работе сервера). Все реализовалось, как и хотелось. Вроде даже работает.

Теперь главная "задница" - научить апельсину понимать, что внешнее питание "Гитлер капут" и летим по приборам. Полагаю, что можно подать через резистор и обвязку на какую-либо ножку gpio +5V и считывать состояние. Если =1, то внешнее питалово есть, если =0, то всё. Судя по картинке с вики это весьма не сложно. И состояние выводить на дисплей + посылать смс, как сейчас с интернетами происходит.
« Последнее редактирование: Ноябрь 21, 2016, 11:52:45 pm от VeterMir »
Ко мне лучше на "ты". Я ещё слишком молод =)

Оффлайн VeterMir

Надо бы собраться, раздобыть улитку от ноута и прикрутить. Но чтот всё влом. Но надо, да.
Ко мне лучше на "ты". Я ещё слишком молод =)

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 494
  • Лайков: 161
  • Карма: +25/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Нельзя 5в напрямую на gpio.
Третий вариант схемы, вместо кнопки транзистор и ему 5V на базу через 10К.
При наличии питания на порту будет "0" при отсутствии "1".

Оффлайн VeterMir

А на какой порт паять и чем это смотреть?
Ко мне лучше на "ты". Я ещё слишком молод =)

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 494
  • Лайков: 161
  • Карма: +25/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Со script.bin/fex знаете как работать?
выбираете свободный порт:

к примеру PA20 37-я нога.
Переводите свой bin в fex смотрите где PA20 прописан:
[gpio_para]
gpio_used = 1
gpio_num = 30
.....
gpio_pin_28 = port:PA20<1><default><default><0>

[smc_para]
smc_used =
....
smc_vppen = port:PA20<3><default><default><default>
...

[pcm0]
daudio_used = 0
.....
i2s_dout0 = port:PA20<2><1><default><default>
Он может работать в 3-х режимах: pcm0, smc  (отключены) и gpio включен, если ни одно из первых двух режимов использовать не собираетесь, значит можно использовать его как gpio с чистой совестью, в смысле не боясь конфликтов.
в скрипте по умолчанию все gpio настроены на вывод, перенастраиваем на ввод:
gpio_pin_28 = port:PA20<0><1><default><default>
конвертим fex назад в bin.
Прописываем или раскомментируем загрузку gpio модуля в /etc/modules:
gpio-sunxi
Повесьте резистор с 37-го вывода на +3,3v.
Перезагружаемся,
команда
cat /sys/class/gpio_sw/PA20/data
должна выдать "1", при замыкании на массу кнопкой транзистором или еще чем будет читаться "0".
« Последнее редактирование: Ноябрь 23, 2016, 11:22:31 pm от AlDemin »

Оффлайн VeterMir

Не умею, но научусь =)
Спасибо за ман, буду пробовать.

Вчера сжёг один USB. Грусть-печаль. Чувствую, что в течении сборки придётся таки покупать ещё одну плату апельсинки, эту я могу убить =)
Ко мне лучше на "ты". Я ещё слишком молод =)

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 494
  • Лайков: 161
  • Карма: +25/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Все просто:
sudo apt-get install sunxi-tools
если уже не установлен,
bin2fex script.bin script.fex
fex2bin script.fex script.bin

Сожгли сам usb порт или питание порта.
Питание легко перепаять, да можно вообще перемычку поставить, управления не будет, но зато будет работать.

Оффлайн VeterMir


Сожгли сам usb порт или питание порта.
Питание легко перепаять, да можно вообще перемычку поставить, управления не будет, но зато будет работать.
Похоже, что сам порт, питание отдельно давал. Оставшиеся 2 работают, как и сеть.
Ко мне лучше на "ты". Я ещё слишком молод =)

Оффлайн VeterMir

Re: OPI в качестве маршрутизатора и домашнего сервера
« Ответ #26 : Декабрь 22, 2016, 11:05:06 pm »
Давно не писал.
Благополучно уронил систему опытами с ups мониторингом. И как назло в бэкапе папка scriprs не читается. Скотство.
Начал с украшаек, ибо приехавшую rtl8192cu не могу поднять, что-то где-то не догоняю.
Зато дописал частично скрипт для дисплея. В него не вошли состояния сети, ибо их пока нет, но выглядеть он стал и работать так, как я хочу. Пропали выпадения скрипта - он очень плохо работает с первой строкой, потому я ее сделал не нужной и с задержкой в секунду.
#!/bin/bash
while (true); do
#time
T=`/bin/date +%Y"."%m"."%d"-"%H":"%M`
#ip adress
IP=`ifconfig | grep inet | head -1 | sed 's/\:/ /' | awk '{print $3}'` 
#hdd usage
SP=`df | awk '/sda1/ {print($5)}'`
#CPU temp
CC=`cat /sys/class/thermal/thermal_zone0/temp`
#CPU usage
CU=`ps aux | awk '{s += $3} END {print s "%"}'`
#Core version
CV=`uname -r`
#SMB status
SMB=`service smbd status | awk '/Active:/ {print($2)}'`
/root/liblcm1602/example2 hi hi
sleep 1
/root/liblcm1602/example2 VeterMir_server core_${CV}
sleep 3
/root/liblcm1602/example2 ${T} ${IP}
sleep 10
/root/liblcm1602/example2 Samba_${SMB} HDD_use_${SP}
sleep 10
/root/liblcm1602/example2 CPU_use_${CU} CPU_temp_${CC}_C
sleep 10;
done
« Последнее редактирование: Декабрь 22, 2016, 11:07:32 pm от VeterMir »
Ко мне лучше на "ты". Я ещё слишком молод =)

Оффлайн VeterMir

Re: OPI в качестве маршрутизатора и домашнего сервера
« Ответ #27 : Декабрь 22, 2016, 11:15:28 pm »
А, да. Сколхозил охлаждение пассивное с помощью трубки теплопроводящей из мертвой делюксовой материнки и здорового радиатора, который прикручивается в любое удобное место сверху корпуса. Проблема нагрева решена раз и навсегда.
« Последнее редактирование: Декабрь 22, 2016, 11:17:03 pm от VeterMir »
Ко мне лучше на "ты". Я ещё слишком молод =)

Оффлайн VeterMir

Приехала новая платка на замену частично спаленой.
Но сначала дособеру девайс на старой платке, нефиг много осталось настроить. Долго восстанавливал утеряные скрипты, на данный момент осталось доковырять оповещение ups и управление с sms, благо 22 порт открывать по sms уже умеем, vpn канал поднимается, контролироать можно откуда угодно девайс.
Ко мне лучше на "ты". Я ещё слишком молод =)

Оффлайн VeterMir

Цитата: AlDemin
,
команда
cat /sys/class/gpio_sw/PA20/data
должна выдать "1", при замыкании на массу кнопкой транзистором или еще чем будет читаться "0".
Я извиняюсь, конечно, за свою неграмотность, но.
Повесил я (почитав документацию) 5v на 37ю ногу через 22кОМ. Т.е. напрямую с блока питания через резистор. Если с блока питания есть 5v, то, в теории, на gpio будет 1, если пропало внешнее питание - будет 0.
Так вот.
Теперь бы програмно настроить, а то в /sys/class нет упомянутых директорий. Что и где надо найти? =)
« Последнее редактирование: Январь 06, 2017, 06:55:21 pm от VeterMir »
Ко мне лучше на "ты". Я ещё слишком молод =)