[Сценарий] Цикл и метод контроля параметров электропитания Cubietruck

Не требует установки программ или изменения файлов

Модераторы: immortal, newz20

skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Цикл и метод контроля параметров электропитания Cubietru

Сообщение skysilver » Пн дек 15, 2014 3:02 pm

triada13 писал(а):А кто нибудь цеплял батарею на резервное питание? Я сегодня попробовал, пока наблюдаю.
У меня подключено две банки 18650 Sanyo (в параллели), которые достал из старой АКБ от ноута. Общая емкость получилась примерно 5000 мАч. Кубик пока без HDD, ОС стоит на SD-карте. В таком режиме от батареи работает порядка 6-ти часов.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
triada13
Сообщения: 242
Зарегистрирован: Вт мар 11, 2014 8:36 pm
Откуда: Челябинск
Благодарил (а): 107 раз
Поблагодарили: 7 раз

Re: Цикл и метод контроля параметров электропитания Cubietru

Сообщение triada13 » Пн дек 15, 2014 3:48 pm

У меня по примерным подсчетам минут 10 должен держать, а больше и ненужно, главное спасет от непреднамеренного отключения сети, у меня в квартире стоя ДЭФы, и их частенько вышибает импульсной помехой, причем когда начнешь включать то вышибает от помехи соседний и т.д.
Вот фото моего кубика с АКБ:
СпойлерПоказать
Изображение
Majordomo на Orange Pi Zero.
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Цикл и метод контроля параметров электропитания Cubietru

Сообщение skysilver » Вт апр 28, 2015 4:08 pm

Обновил исходные коды цикла и метода (см. первое сообщение темы). Добавились новые контролируемые параметры. Кому актуально, обновляйтесь. :)

Мой вариант отображения параметров в виде графиков:
СпойлерПоказать
При работе от сети
chart01.png
Питание от сети
chart01.png (78.11 КБ) 9198 просмотров
Цикл разряд-заряд. Визуально тут, конечно, хаос. :) Но видимость тех или иных графиков можно выключать кликом по легенде.
chart02.png
Цикл разряд-заряд
chart02.png (133.43 КБ) 9198 просмотров
В качестве АКБ использую четыре литевых банки 18650 из старой батареи от ноутбука.
СпойлерПоказать
ct.jpg
ct.jpg (561.83 КБ) 9198 просмотров
Интеллектуальной зарядкой (BT-C3100) намерял 8500 мАч получившейся емкости. Контроллер заряда кубика посчитал примерно столько же. От АКБ моя конфигурация работает больше 8 часов.
За это сообщение автора skysilver поблагодарили (всего 2):
Vittaly (Вт апр 28, 2015 4:12 pm) • triada13 (Вт апр 28, 2015 5:05 pm)
Рейтинг: 2.33%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Vittaly
Сообщения: 118
Зарегистрирован: Вт окт 14, 2014 9:19 pm
Благодарил (а): 48 раз
Поблагодарили: 12 раз

Re: Цикл и метод контроля параметров электропитания Cubietru

Сообщение Vittaly » Вт апр 28, 2015 4:13 pm

А где разъемчик взяли, через который аккумулятор к кубику подключается?
Cubietrunck + Debian
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Цикл и метод контроля параметров электропитания Cubietru

Сообщение skysilver » Вт апр 28, 2015 5:01 pm

Покупал на ebay. Пучок (10 шт.) обошелся рублей в 50 по старому курсу. Искать по словам "2 pins XH-2P Dupont Wire".
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
triada13
Сообщения: 242
Зарегистрирован: Вт мар 11, 2014 8:36 pm
Откуда: Челябинск
Благодарил (а): 107 раз
Поблагодарили: 7 раз

Re: Цикл и метод контроля параметров электропитания Cubietru

Сообщение triada13 » Вт апр 28, 2015 5:04 pm

skysilver я тоже такой график хочу, поделитесь плиз мудростью.
Majordomo на Orange Pi Zero.
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Цикл и метод контроля параметров электропитания Cubietru

Сообщение skysilver » Вт апр 28, 2015 5:24 pm

Графики построены с помощью Highcharts.
Создана домашняя страница с типом HTML-код. Код графика такой:
СпойлерПоказать

Код: Выделить всё

<head>
    <script src="/highcharts/js/highcharts.js"></script>
    <script src="/highcharts/js/themes/dark-unica.js"></script> 
    <script src="/highcharts/js/modules/exporting.js"></script>
</head>

<div id="cont2_cd" style="width: 98%; min-width: 310px; height: 390px; margin: 0 auto"></div>

<script>

$(function () 
 {
    var seriesOptions = [],    
       seriesCounter = 0,
    names = ['Cubietruck.uBAT', 'Cubietruck.capBATperc', 'Cubietruck.iBAT', 'Cubietruck.iAC','Cubietruck.uAC','Cubietruck.tempAXP','Cubietruck.pBAT','Cubietruck.capBATmah'],
    seriesnames = ['Uбат, В','Емк, %','Iбат, мА','Iас, мА','Uас, В','Т, С','Р, мВт','Емк, мАч'],

    createChart = function () 
     {
        var options = 
        {
            chart: 
            {renderTo: 'cont2_cd'},
            title: null,
            exporting: { enabled: true },
            legend: { enabled: true,
                align: 'center',
                   verticalAlign: 'top',
                floating: false,
                    //x: 210,
                    y: 5 },
            plotOptions: {
                    spline: {
                        lineWidth: 2,
                        states: {
                            hover: { lineWidth: 1 }
                            },
                        marker: { enabled: false },
                        }
                    },
            xAxis: {
                type: 'datetime',
                tickPixelInterval: 35,
                tickPosition: 'inside',
                tickLength: 3,
                //endOnTick: true,
                labels: {
                               enabled: true, 
                               overflow: 'justify',
                    rotation: -25,
                              style: { fontSize: '11px',
                                         fontFamily: 'Verdana, sans-serif' }
                        },
                   dateTimeLabelFormats: { day: '%e %b' }
                    },
            yAxis: [
                { // ======== Ось "0" ========
                        title: {
                    text: 'Напряжение, В',
                    enabled: true,
                    style: { color: Highcharts.getOptions().colors[0] }
                            },
                max: 5.5,
                min: 2.5,
                labels: {
                    format: '{value} В',
                    style: { color: Highcharts.getOptions().colors[0] }
                    },
                opposite: false },            
                { // ======== Ось "1" ========    
                gridLineWidth: 1,
                title: {
                    text: 'Емкость BAT, %',
                    enabled: true,
                    style: { color: Highcharts.getOptions().colors[1] }
                                },
                max: 100,
                min: 0,
                labels: {
                    format: '{value} %',
                    style: { color: Highcharts.getOptions().colors[1] }
                    },
                opposite: true },
                { // ======== Ось "2" ========    
                gridLineWidth: 1, 
                title: null,
                    //text: 'Сила тока заряда, мА',
                    //enabled: true,
                    //style: { color: Highcharts.getOptions().colors[2] }
                max: 2700,
                min: 0,
                labels:
                    {
                    enabled: false,
                    format: '{value} мА',
                    style: { color: Highcharts.getOptions().colors[2] }
                    },
                opposite: false },
                { // ======== Ось "3" ========    
                gridLineWidth: 1,
                title: {
                    text: 'Сила тока, мА',
                    enabled: true,
                    style: { color: Highcharts.getOptions().colors[3] }
                            },
                max: 2700,
                min: 0,
                labels: {
                    format: '{value} мА',
                    style: { color: Highcharts.getOptions().colors[3] }
                    },
                opposite: false },
                { // ======== Ось "4" ========
                        title: {
                    //text: 'Напряжение APS, В',
                    text: null,
                    enabled: false,
                    style: { color: Highcharts.getOptions().colors[4] }
                            },
                max: 5.5,
                min: 2.5,
                labels: {
                    enabled: false,
                    format: '{value} В',
                    style: { color: Highcharts.getOptions().colors[4] }
                    },
                opposite: false },
                { // ======== Ось "5" ========
                        title: {
                    text: 'Температура, С',
                    //text: null,
                    enabled: true,
                    style: { color: Highcharts.getOptions().colors[5] }
                            },
                max: 45,
                min: 10,
                labels: {
                    format: '{value} С',
                    style: { color: Highcharts.getOptions().colors[5] }
                    },
                opposite: false },
                { // ======== Ось "6" ========
                        title: {
                    text: 'Мощность, мВт',
                    //text: null,
                    enabled: true,
                    style: { color: Highcharts.getOptions().colors[6] }
                            },
                max: 5000,
                min: 0,
                labels: {
                    format: '{value} мВт',
                    style: { color: Highcharts.getOptions().colors[6] }
                    },
                opposite: true },
                { // ======== Ось "7" ========
                        title: {
                    text: 'Емкость, мАч',
                    //text: null,
                    enabled: true,
                    style: { color: Highcharts.getOptions().colors[7] }
                            },
                max: 8000,
                min: 0,
                labels: {
                    format: '{value} мАч',
                    style: { color: Highcharts.getOptions().colors[7] }
                    },
                opposite: true }
                ],
            tooltip: { shared: false },
            series: seriesOptions
        };
        Highcharts.setOptions({
            lang: {
                months: ['Январь', 'Февраль', 'Март', 'Апрель', 'Mай', 'Июнь',  'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
                weekdays: ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'],
                shortMonths: [ "Янв" , "Фев" , "Мар" , "Апр" , "Май" , "Июн" , "Июл" , "Авг" , "Сен" , "Окт" , "Ноя" , "Дек"],
                thousandsSep: [' ']
                  }
        });
        var chart = new Highcharts.Chart(options);
         }; // end createChart()

     $.each(names, function (i, name)
     {    
        var url =  "/highcharts/getjson.php?p=" + name + "&type=24h";
        $.getJSON(url, function (data)
         {
            seriesOptions[i] = { name: seriesnames[i],
                                    data: data,
                         type: 'spline',
                         yAxis: i };
            seriesCounter += 1;
                if (seriesCounter === names.length) { createChart(); }
             }); // end .getJSON()
     });    // end .each()
 }); // end function()
</script>
В массиве name = [] нужно прописать свои имена свойств. Эти свойства, конечно же, должны иметь историю значений.

Код: Выделить всё

names = ['Cubietruck.uBAT', 'Cubietruck.capBATperc', 'Cubietruck.iBAT', 'Cubietruck.iAC','Cubietruck.uAC','Cubietruck.tempAXP','Cubietruck.pBAT','Cubietruck.capBATmah'],
Не забываем проверить, чтобы по указанным путям лежали файлы:

Код: Выделить всё

<script src="/highcharts/js/highcharts.js"></script>
<script src="/highcharts/js/themes/dark-unica.js"></script> 
<script src="/highcharts/js/modules/exporting.js"></script>
И немаловажный момент - получение данных в формате JSON за определенный период. Это строка

Код: Выделить всё

var url =  "/highcharts/getjson.php?p=" + name + "&type=24h"; 
Т.е. вызывается скрипт getjson.php с параметрами (имя свойства и период выборки). На форуме уже есть более продвинутое решение получения JSON через сценарий. У меня пока руки не дошли довести до ума, поэтому файл getjson.php выкладываю как есть.
getjson.zip
(2.08 КБ) 213 скачиваний
За это сообщение автора skysilver поблагодарил:
newz20 (Вс авг 05, 2018 9:23 pm)
Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
triada13
Сообщения: 242
Зарегистрирован: Вт мар 11, 2014 8:36 pm
Откуда: Челябинск
Благодарил (а): 107 раз
Поблагодарили: 7 раз

Re: Цикл и метод контроля параметров электропитания Cubietru

Сообщение triada13 » Вт апр 28, 2015 5:27 pm

Спасибо, домой вернусь попробую.
Majordomo на Orange Pi Zero.
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Цикл и метод контроля параметров электропитания Cubietru

Сообщение skysilver » Вт апр 28, 2015 5:36 pm

Пожалуйста. ;)
А начать, думаю, следует с проверки getjson.php.
Т.е. кладем его в нужное место, пишем в браузере примерно так

Код: Выделить всё

http://IP_server/highcharts/getjson.php?p=Cubietruck.uBAT&type=24h    
и наблюдаем такую картину
СпойлерПоказать

Код: Выделить всё

[[1430162754000, 4.138],[1430163062000, 4.137],[1430165526000, 4.137],[1430165834000, 4.136],[1430166141000, 4.137],[1430166450000, 4.136],[1430166758000, 4.137],[1430167065000, 4.138],[1430167374000, 4.137],[1430167682000, 4.136],[1430167990000, 4.137],[1430168298000, 4.137],[1430168605000, 4.138],[1430168913000, 4.137],[1430169222000, 4.136],[1430169586000, 4.138],[1430177286000, 4.138],[1430177594000, 4.137],[1430177901000, 4.138],[1430178210000, 4.137],[1430178518000, 4.138],[1430179134000, 4.138],[1430179442000, 4.137],[1430179749000, 4.138],[1430180058000, 4.137],[1430180366000, 4.138],[1430180674000, 4.137],[1430180982000, 4.138],[1430182214000, 4.138],[1430182522000, 4.137],[1430184061000, 4.137],[1430184370000, 4.138],[1430184678000, 4.137],[1430186834000, 4.137],[1430187143000, 4.136],[1430187451000, 4.137],[1430188374000, 4.137],[1430188683000, 4.136],[1430188991000, 4.138],[1430189299000, 4.136],[1430189607000, 4.136],[1430189915000, 4.137],[1430191147000, 4.137],[1430191455000, 4.136],[1430191763000, 4.137],[1430192687000, 4.137],[1430192994000, 4.136],[1430193918000, 4.136],[1430194227000, 4.137],[1430194535000, 4.136],[1430194842000, 4.137],[1430195151000, 4.137],[1430195459000, 4.136],[1430195767000, 4.137],[1430196075000, 4.137],[1430196383000, 4.136],[1430196690000, 4.137],[1430197307000, 4.137],[1430197615000, 4.136],[1430197923000, 4.137],[1430198231000, 4.136],[1430198538000, 4.136],[1430198847000, 4.137],[1430199463000, 4.137],[1430199771000, 4.136],[1430201002000, 4.136],[1430201311000, 4.138],[1430201619000, 4.137],[1430201927000, 4.138],[1430202235000, 4.137],[1430204391000, 4.137],[1430204698000, 4.136],[1430205008000, 4.137],[1430205315000, 4.136],[1430205623000, 4.136],[1430205930000, 4.137],[1430206239000, 4.137],[1430206547000, 4.138],[1430206855000, 4.137],[1430207163000, 4.136],[1430207471000, 4.136],[1430207778000, 4.137],[1430208703000, 4.137],[1430209011000, 4.138],[1430210242000, 4.138],[1430210550000, 4.137],[1430210858000, 4.138],[1430211474000, 4.138],[1430211783000, 4.137],[1430212091000, 4.138],[1430212399000, 4.138],[1430212707000, 4.137],[1430213015000, 4.138],[1430214555000, 4.138],[1430214863000, 4.137],[1430215170000, 4.137],[1430215479000, 4.138],[1430215787000, 4.137],[1430216711000, 4.137],[1430217018000, 4.136],[1430217942000, 4.136],[1430218251000, 4.137],[1430218558000, 4.137],[1430218867000, 4.136],[1430219175000, 4.137],[1430219483000, 4.135],[1430219790000, 4.136],[1430220715000, 4.136],[1430221023000, 4.137],[1430221331000, 4.136],[1430221946000, 4.136],[1430222255000, 4.137],[1430222563000, 4.136],[1430224103000, 4.136],[1430224411000, 4.137],[1430224719000, 4.136],[1430225026000, 4.137],[1430225643000, 4.137],[1430225950000, 4.138],[1430226259000, 4.137],[1430226567000, 4.136],[1430226875000, 4.137],[1430228101000, 4.137],[1430228410000, 4.138],[1430228718000, 4.137],[1430229334000, 4.137],[1430229642000, 4.138],[1430230257000, 4.138],[1430230566000, 4.137],[1430230874000, 4.138],[1430231182000, 4.137],[1430231490000, 4.137],[1430231798000, 4.138],[1430232107000, 4.137],[1430232415000, 4.137],[1430232723000, 4.138],[1430233030000, 4.137],[1430233647000, 4.137],[1430233955000, 4.138],[1430234262000, 4.137],[1430234879000, 4.137],[1430235187000, 4.138],[1430235495000, 4.137],[1430236111000, 4.137],[1430236419000, 4.136],[1430236727000, 4.137],[1430237035000, 4.137],[1430237343000, 4.138],[1430237650000, 4.137],[1430237958000, 4.136],[1430238575000, 4.136],[1430238883000, 4.137],[1430240422000, 4.137],[1430240731000, 4.136],[1430241039000, 4.137],[1430241347000, 4.138],[1430241655000, 4.137],[1430242270000, 4.137]]
Если данные появились, то можно переходить к графикам.
За это сообщение автора skysilver поблагодарил:
triada13 (Вт апр 28, 2015 6:34 pm)
Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
triada13
Сообщения: 242
Зарегистрирован: Вт мар 11, 2014 8:36 pm
Откуда: Челябинск
Благодарил (а): 107 раз
Поблагодарили: 7 раз

Re: Цикл и метод контроля параметров электропитания Cubietru

Сообщение triada13 » Пн май 04, 2015 10:50 am

skysilver чет я не догоняю как запустить новый код, подскажи плиз.
Majordomo на Orange Pi Zero.
Ответить