Комрады, что Вы используете для вывода информации Алисы?
Компьютер и мобильное устройство это хорошо, но компьютер чаще используется для более важных дел, а мобильное устройство требует переделки(извлечение батареи(чтоб не вздулась) получение рута(чтоб грузился сразу на нужном приложении)). Кстати, пока создавал тему пришла идея. Может найдется человек который напишет скринсейвер с возможностью показывать свойства объектов. Тогда комп станет тоже информационным табло.
Я пока приспособил Ардуинку которая выводит температуру, статус системы, статус сигнализации, и старенькую фоторамку CHUMBY 8 которую к сожалению сняли с производства.
Поделитесь опытом.
Устройства вывода умного дома. Сенсорные панели, экраны, итд
Модератор: immortal
-
- Сообщения: 393
- Зарегистрирован: Чт сен 25, 2014 5:37 pm
- Откуда: Екатеринбург
- Благодарил (а): 25 раз
- Поблагодарили: 52 раза
Re: Устройства вывода умного дома. Сенсорные панели, экраны,
Если не секрет рамка каким образом подключена?..
-
- Сообщения: 111
- Зарегистрирован: Вт июн 17, 2014 1:06 pm
- Откуда: нижний новгород
- Благодарил (а): 5 раз
- Поблагодарили: 12 раз
Re: Устройства вывода умного дома. Сенсорные панели, экраны,
да эта рамка почти полноценный комп! и без интернета почти бесполезна!
" гугл знает всё "
" гугл знает всё "
- m-malva
- Сообщения: 291
- Зарегистрирован: Чт фев 26, 2015 1:38 am
- Откуда: Санкт-Петербург
- Благодарил (а): 16 раз
- Поблагодарили: 66 раз
- Контактная информация:
Re: Устройства вывода умного дома. Сенсорные панели, экраны,
рамка раз в 30 сек. выводит ссылки по этим скриптам.eygen писал(а):Если не секрет рамка каким образом подключена?..
СпойлерПоказать
Код: Выделить всё
// Прописываем заголовок 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);
СпойлерПоказать
Код: Выделить всё
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);
- Рейтинг: 1.16%
- m-malva
- Сообщения: 291
- Зарегистрирован: Чт фев 26, 2015 1:38 am
- Откуда: Санкт-Петербург
- Благодарил (а): 16 раз
- Поблагодарили: 66 раз
- Контактная информация:
Re: Устройства вывода умного дома. Сенсорные панели, экраны,
Малость погуглив нашел годный скринсейвер для винды http://myweb.tiscali.co.uk/djmclean/htm ... saver.html
в сочетании с картинкой информером получилось как то, так:
в сочетании с картинкой информером получилось как то, так:
- shemnik69
- Сообщения: 590
- Зарегистрирован: Пн дек 24, 2012 3:01 pm
- Откуда: Саратов Saratov
- Благодарил (а): 67 раз
- Поблагодарили: 63 раза
Re: Устройства вывода умного дома. Сенсорные панели, экраны,
На мой неискушенный взгляд самам простым и в тоже время функциональным экраном является обычный планшет. 7-10"" А поскольку у Вас сервер Arduino то проще и не придумать. Кроме того на сам планшет можно установить Tasker или другой Automatelt исполнитель задач и он может с успехом как обрабатывать данные от Arduino так и командовать "ею". Данный симбиоз не просто надежен но он еще и прост и мало энерго потребляющий не сравнить с компьютером. .....Смотрю на фото "башня". запломбированы USB ////Охота на ведьм!
от системных операторов..... проходили. Знаем.



- m-malva
- Сообщения: 291
- Зарегистрирован: Чт фев 26, 2015 1:38 am
- Откуда: Санкт-Петербург
- Благодарил (а): 16 раз
- Поблагодарили: 66 раз
- Контактная информация:
Re: Устройства вывода умного дома. Сенсорные панели, экраны,
Мне казалось что планшет не ориентирован на использовании его в качестве информера 24*7*365 (у двоих вздулись батареи через 4-6 мес). За это время планшеты самопроизвольно перегружались, перегревались, зависали, итд. Впечатление осталось не очень. Ну а айпады на стену вешать я не готов.
Сервером ее никак не назвать
Arduino у меня для чтения OREGON метеостанции, отправки команд по 433 частоте, и в качестве информера.shemnik69 писал(а):А поскольку у Вас сервер Arduino то проще и не придумать.
Сервером ее никак не назвать

Да нет это просто на корпусе крышечка штатная. Башня - стенд, для подключения старого железа.shemnik69 писал(а): .Смотрю на фото "башня". запломбированы USB ////Охота на ведьм!
-
- Сообщения: 256
- Зарегистрирован: Сб янв 11, 2014 2:54 pm
- Благодарил (а): 12 раз
- Поблагодарили: 14 раз
Re: Устройства вывода умного дома. Сенсорные панели, экраны,
Ещё не установлено, но планирую в стену вмонтировать планшет, на него танкер для управления зарядкой, думаю то что нужно, планшет за 2000 р не жалко в стену))) и красивой рамкой оформить
Примерно вот так, http://geektimes.ru/post/257520/
Примерно вот так, http://geektimes.ru/post/257520/