Устройства вывода умного дома. Сенсорные панели, экраны, итд

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Ответить
Аватара пользователя
m-malva
Сообщения: 291
Зарегистрирован: Чт фев 26, 2015 1:38 am
Откуда: Санкт-Петербург
Благодарил (а): 16 раз
Поблагодарили: 66 раз
Контактная информация:

Устройства вывода умного дома. Сенсорные панели, экраны, итд

Сообщение m-malva » Вс сен 27, 2015 2:42 am

Комрады, что Вы используете для вывода информации Алисы?
Компьютер и мобильное устройство это хорошо, но компьютер чаще используется для более важных дел, а мобильное устройство требует переделки(извлечение батареи(чтоб не вздулась) получение рута(чтоб грузился сразу на нужном приложении)). Кстати, пока создавал тему пришла идея. Может найдется человек который напишет скринсейвер с возможностью показывать свойства объектов. Тогда комп станет тоже информационным табло.
Я пока приспособил Ардуинку которая выводит температуру, статус системы, статус сигнализации, и старенькую фоторамку CHUMBY 8 которую к сожалению сняли с производства.
Поделитесь опытом.
IMG_20150118_161016.jpg
IMG_20150118_161016.jpg (109.6 КБ) 8033 просмотра
IMG_20150927_010131.jpg
IMG_20150927_010131.jpg (110.09 КБ) 8033 просмотра
IMG_20150615_205250.jpg
IMG_20150615_205250.jpg (74.58 КБ) 8033 просмотра
eygen
Сообщения: 393
Зарегистрирован: Чт сен 25, 2014 5:37 pm
Откуда: Екатеринбург
Благодарил (а): 25 раз
Поблагодарили: 52 раза

Re: Устройства вывода умного дома. Сенсорные панели, экраны,

Сообщение eygen » Вс сен 27, 2015 9:04 am

Если не секрет рамка каким образом подключена?..
gnom537
Сообщения: 111
Зарегистрирован: Вт июн 17, 2014 1:06 pm
Откуда: нижний новгород
Благодарил (а): 5 раз
Поблагодарили: 12 раз

Re: Устройства вывода умного дома. Сенсорные панели, экраны,

Сообщение gnom537 » Вс сен 27, 2015 9:13 am

да эта рамка почти полноценный комп! и без интернета почти бесполезна!
" гугл знает всё "
Аватара пользователя
m-malva
Сообщения: 291
Зарегистрирован: Чт фев 26, 2015 1:38 am
Откуда: Санкт-Петербург
Благодарил (а): 16 раз
Поблагодарили: 66 раз
Контактная информация:

Re: Устройства вывода умного дома. Сенсорные панели, экраны,

Сообщение m-malva » Вс сен 27, 2015 12:15 pm

eygen писал(а):Если не секрет рамка каким образом подключена?..
рамка раз в 30 сек. выводит ссылки по этим скриптам.
Снимок.JPG
Снимок.JPG (42.71 КБ) 7974 просмотра
СпойлерПоказать

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

// Прописываем заголовок PNG-изображения
header('Content-type: image/png');

// Создаем изображение
$im = imagecreatetruecolor(800, 600);

// Шрифт текста
$font = './cms/font/impact.ttf';

// Размер шрифта
$font_size = 32;

// Ширина области для вывода текста
$width_text = 700;

// Выводим состояние WIFI
if (getGlobal('WIFI.Online')=="1") {
  imagettftext($im,20,0,370,50,0x00FF00,"./cms/font/impact.ttf",'Точка доступа "WI-FI" включена');
}else{
  imagettftext($im,20,0,370,50,0xff3030,"./cms/font/impact.ttf",'Точка доступа "WI-FI" выключена');
}
// Длинный многострочный текст, который нужно разбить на строки нужной нам длины 

if (gg('global.on') > 0) {
 if (gg('global.title')) {
 $text=gg('global.title');
 }else{
  $text = gg('mycalendar.msg');
 }
}else{
$text = gg('mycalendar.msg');
}

// Способ выравнивания текста
//$align = "left";
$align = "center";
//$align = "right";


// Заливаем изображение цветом
imagefill($im, 1, 1, 0x000000);

// Разбиваем наш текст на массив слов
$arr = explode(' ', $text);

// Возращенный текст с нужными переносами строк, пока пустая
$ret = "";

// Перебираем наш массив слов
foreach($arr as $word)
    {
        // Временная строка, добавляем в нее слово
        $tmp_string = $ret.' '.$word;
        
        // Получение параметров рамки обрамляющей текст, т.е. размер временной строки 
        $textbox = imagettfbbox($font_size, 0, $font, $tmp_string);
        
        // Если временная строка не укладывается в нужные нам границы, то делаем перенос строки, иначе добавляем еще одно слово
        if($textbox[2] > $width_text)
            $ret.=($ret==""?"":"\n").$word;
        else
            $ret.=($ret==""?"":" ").$word;
    }    

if($align=="left")
    {    
        // Накладываем возращенный многострочный текст на изображение
        imagettftext($im, $font_size ,0 , 50, 180, 0x8888FF, "$font", $ret);
    }
else
    {
        // Разбиваем снова на массив строк уже подготовленный текст
        $arr = explode("\n", $ret);
        
        // Расчетная высота смещения новой строки
        $height_tmp = 0;
        
        //Выводить будем построчно с нужным смещением относительно левой границы
        foreach($arr as $str)
            {
                // Размер строки 
                $testbox = imagettfbbox($font_size, 0, $font, $str);
                
                // Рассчитываем смещение
                if($align=="center")
                    $left_x = round(($width_text - ($testbox[2] - $testbox[0]))/2);
                else
                    $left_x = round($width_text - ($testbox[2] - $testbox[0]));
                    
                // Накладываем текст на картинку с учетом смещений
                imagettftext($im, $font_size ,0 , 50 + $left_x, 180 + $height_tmp, 0x8888FF, $font, $str); // 50 - это отступы от края
                
                // Смещение высоты для следующей строки
                $height_tmp = $height_tmp + 50;
            }
    }
// Устанавливаем цвет пробок
if (gg('reg_2.level') == "0") $colortlevel="0x008b00";
if (gg('reg_2.level') == "1") $colortlevel="0x008b00";
if (gg('reg_2.level') == "2") $colortlevel="0xc0ff3e";
if (gg('reg_2.level') == "3") $colortlevel="0xcaff70";
if (gg('reg_2.level') == "4") $colortlevel="0xfff68f";
if (gg('reg_2.level') == "5") $colortlevel="0xffff00";
if (gg('reg_2.level') == "6") $colortlevel="0xff8247";
if (gg('reg_2.level') == "7") $colortlevel="0xff3030";
if (gg('reg_2.level') == "8") $colortlevel="0xcd2626";
if (gg('reg_2.level') == "9") $colortlevel="0x8b1a1a";
if (gg('reg_2.level') == "10") $colortlevel="0x8b1a1a";

// Выводим пробки
    imagettftext($im,32,0,575,100,$colortlevel,"$font",'Пробки: '.gg('reg_2.level'));
//Курс валют
    imagettftext($im,30,0,50,60,0x0099FF,"$font",'USD: '.gg('cbr.USD'));
    imagettftext($im,30,0,50,100,0x0099FF,"$font",'EURO: '.gg('cbr.EURO'));


// Выводим изображение в окне браузера
imagepng($im);

// Освобождает память занятую изображением 
imagedestroy($im);
Снимок2.JPG
Снимок2.JPG (65.87 КБ) 7974 просмотра
СпойлерПоказать

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

define('WIDTH', 800);
  define('HEIGHT', 600);
  $font="./cms/font/impact.ttf";
  $image = imagecreatetruecolor(WIDTH,HEIGHT)
  or die('Cannot create image');
if (getGlobal('WIFI.Online')=="1") {
  imagettftext($image,20,0,370,50,0x00FF00,"$font",'Точка доступа "WI-FI" включена');
}else{
  imagettftext($image,20,0,370,50,0xff3030,"$font",'Точка доступа "WI-FI" выключена');
}
  imagettftext($image,36,0,50,510,0xFFFFFF,"$font","Дома ".getGlobal('Corridor.Temperature').'°C, влажность '.getGlobal('Kitchen.Humidity').'%.');
  imagettftext($image,36,0,50,450,0xFFFFFF,"$font",getGlobal('yw_fact.temperature').'°C, '.getGlobal('yw_fact.weather_type').'.');

if (gg('Alarm00.AlarmTime') == gg('ThisComputer.timeNow')) { // Будильник 00
 $alarmmsg=gg('Alarm00.AlarmSay');
 $alarm="1";
 $alarmname="Будильник ".gg('Alarm00.AlarmName');
 }elseif (gg('Alarm01.AlarmTime') == gg('ThisComputer.timeNow')) {// Будильник 01
 $alarmmsg=gg('Alarm01.AlarmSay');
 $alarm="1";
 $alarmname="Будильник ".gg('Alarm01.AlarmName');
 }elseif (gg('Alarm02.AlarmTime') == gg('ThisComputer.timeNow')) {// Будильник 02
 $alarmmsg=gg('Alarm02.AlarmSay');
 $alarm="1";
 $alarmname="Будильник ".gg('Alarm02.AlarmName');
 }else{                //Иначе часы
 $alarmmsg=gg('ThisComputer.timeNow'); 
 $alarm="0";
 $alarmname=gg('ThisComputer.Day');
 }


if ($alarm =="1") { //Если будильник то
 $sizefont="24";
 $colorfont="0xffa500";
 $WIDTHMSG="50";
 $HEIGHTMSG="300";
 $sizefont1="24";
 $colorfont1="0xffa500";
 $WIDTHMSG1="50";
 $HEIGHTMSG1="250";
}else{                //Если будильника нет
 $sizefont="124";
 $colorfont="0xffa500";
 $WIDTHMSG="220";
 $HEIGHTMSG="350";
 $sizefont1="44";
 $colorfont1="0xffa500";
 $WIDTHMSG1="220";
 $HEIGHTMSG1="200";
}
if (gg('ThisComputer.NewVideoMessages') > 0) {
 $alarmname="Новых видео сообщений: ".gg('ThisComputer.NewVideoMessages');
 $sizefont1="34";
 $colorfont1="0xffa500";
 $WIDTHMSG1="130";
 $HEIGHTMSG1="200";
}
if (gg('global.on') > 0) {
 if (gg('global.title')) {
 $alarmname=gg('global.title');
 $sizefont1="34";
 $colorfont1="0xffa500";
 $WIDTHMSG1="50";
 $HEIGHTMSG1="200";
 }
}
  imagettftext($image,$sizefont,0,$WIDTHMSG,$HEIGHTMSG,$colorfont,"$font",$alarmmsg);
  imagettftext($image,$sizefont1,0,$WIDTHMSG1,$HEIGHTMSG1,$colorfont,"$font",$alarmname);
 
$res='';
 if (gg('Security.stateColor')=='green' && gg('System.stateColor')=='green' && gg('Communication.stateColor')=='green') {
  $res='Все системы работают в штатном режиме';
     $colorstat="0x00FF00";
 } else {
  if (gg('Security.stateColor')!='green') {
   $colorstat="0xff3030";
   $res.=" Проблема безопасности: ".getGlobal('Security.stateDetails');
  }
  if (gg('System.stateColor')!='green') {
   $res.=" Системная проблема: ".getGlobal('System.stateDetails');
   $colorstat="0xff3030";
  }  
  if (gg('Communication.stateColor')!='green') {
   $res.=" Проблема связи: ".getGlobal('Communication.stateDetails');
   $colorstat="0xff3030";
  }  
 }

if (gg('reg_2.level') == "0") $colortlevel="0x008b00";
if (gg('reg_2.level') == "1") $colortlevel="0x008b00";
if (gg('reg_2.level') == "2") $colortlevel="0xc0ff3e";
if (gg('reg_2.level') == "3") $colortlevel="0xcaff70";
if (gg('reg_2.level') == "4") $colortlevel="0xfff68f";
if (gg('reg_2.level') == "5") $colortlevel="0xffff00";
if (gg('reg_2.level') == "6") $colortlevel="0xff8247";
if (gg('reg_2.level') == "7") $colortlevel="0xff3030";
if (gg('reg_2.level') == "8") $colortlevel="0xcd2626";
if (gg('reg_2.level') == "9") $colortlevel="0x8b1a1a";
if (gg('reg_2.level') == "10") $colortlevel="0x8b1a1a";


    imagettftext($image,30,0,50,60,0x0099FF,"$font",'USD: '.gg('cbr.USD'));
    imagettftext($image,30,0,50,100,0x0099FF,"$font",'EURO: '.gg('cbr.EURO'));
    imagettftext($image,20,0,50,580,$colorstat,"$font",gg('ThisComputer.somebodyHomeText'));
     imagettftext($image,20,0,50,550,$colorstat,"$font",$res);
    imagettftext($image,32,0,575,100,$colortlevel,"$font",'Пробки: '.gg('reg_2.level'));

  header('Content-type: image/png');
  imagepng($image);
  imagedestroy($image);
За это сообщение автора m-malva поблагодарил:
VGorokhov (Сб фев 06, 2016 9:26 pm)
Рейтинг: 1.16%
Аватара пользователя
m-malva
Сообщения: 291
Зарегистрирован: Чт фев 26, 2015 1:38 am
Откуда: Санкт-Петербург
Благодарил (а): 16 раз
Поблагодарили: 66 раз
Контактная информация:

Re: Устройства вывода умного дома. Сенсорные панели, экраны,

Сообщение m-malva » Пн сен 28, 2015 11:04 am

Малость погуглив нашел годный скринсейвер для винды http://myweb.tiscali.co.uk/djmclean/htm ... saver.html
в сочетании с картинкой информером получилось как то, так:
IMG_20150928_105929.jpg
IMG_20150928_105929.jpg (171.62 КБ) 7893 просмотра
Аватара пользователя
shemnik69
Сообщения: 590
Зарегистрирован: Пн дек 24, 2012 3:01 pm
Откуда: Саратов Saratov
Благодарил (а): 67 раз
Поблагодарили: 63 раза

Re: Устройства вывода умного дома. Сенсорные панели, экраны,

Сообщение shemnik69 » Пн сен 28, 2015 11:46 am

На мой неискушенный взгляд самам простым и в тоже время функциональным экраном является обычный планшет. 7-10"" А поскольку у Вас сервер Arduino то проще и не придумать. Кроме того на сам планшет можно установить Tasker или другой Automatelt исполнитель задач и он может с успехом как обрабатывать данные от Arduino так и командовать "ею". Данный симбиоз не просто надежен но он еще и прост и мало энерго потребляющий не сравнить с компьютером. .....Смотрю на фото "башня". запломбированы USB ////Охота на ведьм! :D :D :D от системных операторов..... проходили. Знаем.
Аватара пользователя
m-malva
Сообщения: 291
Зарегистрирован: Чт фев 26, 2015 1:38 am
Откуда: Санкт-Петербург
Благодарил (а): 16 раз
Поблагодарили: 66 раз
Контактная информация:

Re: Устройства вывода умного дома. Сенсорные панели, экраны,

Сообщение m-malva » Пн сен 28, 2015 1:40 pm

Мне казалось что планшет не ориентирован на использовании его в качестве информера 24*7*365 (у двоих вздулись батареи через 4-6 мес). За это время планшеты самопроизвольно перегружались, перегревались, зависали, итд. Впечатление осталось не очень. Ну а айпады на стену вешать я не готов.
shemnik69 писал(а):А поскольку у Вас сервер Arduino то проще и не придумать.
Arduino у меня для чтения OREGON метеостанции, отправки команд по 433 частоте, и в качестве информера.
Сервером ее никак не назвать :)
shemnik69 писал(а): .Смотрю на фото "башня". запломбированы USB ////Охота на ведьм!
Да нет это просто на корпусе крышечка штатная. Башня - стенд, для подключения старого железа.
I_I_Imonder
Сообщения: 256
Зарегистрирован: Сб янв 11, 2014 2:54 pm
Благодарил (а): 12 раз
Поблагодарили: 14 раз

Re: Устройства вывода умного дома. Сенсорные панели, экраны,

Сообщение I_I_Imonder » Пн сен 28, 2015 2:19 pm

Ещё не установлено, но планирую в стену вмонтировать планшет, на него танкер для управления зарядкой, думаю то что нужно, планшет за 2000 р не жалко в стену))) и красивой рамкой оформить

Примерно вот так, http://geektimes.ru/post/257520/
Ответить