Шкала набора ёмкости

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
MaxVM
Сообщения: 69
Зарегистрирован: Вт янв 10, 2017 2:26 pm
Благодарил (а): 8 раз
Поблагодарили: 0

Шкала набора ёмкости

Сообщение MaxVM » Чт янв 19, 2017 11:08 am

Добрый день!

Подскажите как поумнее сделать!

Есть объект который показывает расстояние до воды в см (от 0 до 150)
Хотелось бы перевести данные в проценты (от 0% до 100%)
Данные меняются по MQTT
И отобразить картинку с видом ёмкости (бака) которая показывала бы процент заполнения как в числовом виде так и графиком (пример заряд батареи в телефоне).

Подскажите куда копать?

Спасибо!
SolarW
Сообщения: 179
Зарегистрирован: Вс июл 31, 2016 11:24 pm
Благодарил (а): 35 раз
Поблагодарили: 24 раза

Re: Шкала набора ёмкости

Сообщение SolarW » Чт янв 19, 2017 11:53 am

MaxVM писал(а):Есть объект который показывает расстояние до воды в см (от 0 до 150)
Хотелось бы перевести данные в проценты (от 0% до 100%)
При расстоянии до воды равном нулю не боитесь что датчик утонет?
Может лучше поднять сантиметров 20 и соответственно измерять диапазон от 170 до 20?
Ну а диапазон 0...100% переводить по формуле.
Формулу сами сообразите?
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Шкала набора ёмкости

Сообщение nick7zmail » Чт янв 19, 2017 12:21 pm

mqtt передает же в свойство? К свойству привязываете метод, и там формулу, которая считает процент и заносит в другое свойство. А уже это самое "другое свойство" используете для сцены.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
MaxVM
Сообщения: 69
Зарегистрирован: Вт янв 10, 2017 2:26 pm
Благодарил (а): 8 раз
Поблагодарили: 0

Re: Шкала набора ёмкости

Сообщение MaxVM » Чт янв 19, 2017 12:36 pm

SolarW писал(а):
MaxVM писал(а):Есть объект который показывает расстояние до воды в см (от 0 до 150)
Хотелось бы перевести данные в проценты (от 0% до 100%)
При расстоянии до воды равном нулю не боитесь что датчик утонет?
Может лучше поднять сантиметров 20 и соответственно измерять диапазон от 170 до 20?
Ну а диапазон 0...100% переводить по формуле.
Формулу сами сообразите?
Да конечно подниму, это так для примера написал.
Если не сложно посоветуйте по формуле!

По расчету и смысл понял. Спасибо!

Вторая часть меня сильно интересует-Это визуальное отображение! Как реализовать?
Подставлять к значению разные картинки или можно какимо прогресс баром например?
tsember
Сообщения: 52
Зарегистрирован: Ср фев 04, 2015 12:28 am
Благодарил (а): 54 раза
Поблагодарили: 6 раз

Re: Шкала набора ёмкости

Сообщение tsember » Вс янв 22, 2017 2:05 am

MaxVM писал(а):
SolarW писал(а):
MaxVM писал(а): Вторая часть меня сильно интересует-Это визуальное отображение! Как реализовать?
Первое, что приходит на ум - графики HightCharts. Например, этот: http://www.highcharts.com/demo/gauge-speedometer
или
http://www.highcharts.com/demo/gauge-solid.

Второе, что можно реализовать, без графиков: ищите в интернете (или рисуете сами) вашу емкость, например в фотошопе. Ее внутренний объем разбиваете на 100 частей. Затем каждую часть "заливаете" (инструмент такой есть: заливка) голубым фоном (или градиентом, для красоты). Каждую часть сохраняете: Например: 1 процент, залили 1/100 бака, сохранили в папку tank под именем 1.jpg. 2% - 2.jpg и так 100 раз :)))

Потом в домашней странице (или сцене) выводите необходимую картинку кодом:
<img src=/img/tank/%tank.water%.jpg>
Учтите, что свойство water объекта tank должно содержать в себе целочисленное значение от 0 до 100.

Вот как то так.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Шкала набора ёмкости

Сообщение nick7zmail » Пн янв 23, 2017 10:11 am

MaxVM писал(а):Если не сложно посоветуйте по формуле!
А что советовать то? Могу только написать)) Формула примерно такая (метод привязываете к изменению свойства, а на сцену выводите %другое.свойство%, можно с индикаторами, которые привели выше)

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

$emk=gg('ваше.свойство');//забираем свойство полученное в mqtt
$emk_per=$emk/1.5; //переводим в проценты (не помню точка или запятая отделяет десятки...но вроде точка)
sg('другое.свойство', $emk_per);
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Ответить