sonyps4.ru

Как настроить систему охлаждения компьютера. Модернизация системы охлаждения процессора

Интерфейс – это то, что пользователю «умного дома» приходится видеть и осязать каждый день. Поэтому понятному и отлично продуманному интерфейсу отводится важное место в интеллектуальной системе. Он должен отражать основные задачи и не перегружаться излишними функциями и компонентами. Качественный интерфейс умного дома – это непременная составляющая системы, он является гарантом удобного и эффективного управления интеллектуальным домом, с которым легко и просто управляется пользователь.

Что такое интерфейс

Под этим определением понимается метод взаимных действий между пользователем и системой посредством конкретного устройства, и в данном рассматриваемом случае – это сенсорная панель .

Чтобы получать от взаимодействия с ним комфорт и удовольствие, необходимо разрешить главные вопросы интерфейса: как будет выглядеть дисплей? Какие должны быть на нем отображены кнопки? Легко ли будет поменять функции, которые уже есть? Как упростить поиск нужных параметров?

Что включает интерфейс

Если рассматривать его в более широком толковании, то он представляет собой базу, в которой собраны различные способы контакта пользователя с системой «умный дом». «Общение» с ней, достигается с использованием разных устройств.

Например:

  • сенсорной панелью;
  • пультом дистанционного управления;
  • кнопочными панелями выключателями и панели;
  • мобильным телефоном посредством звонков GSM и СМС-сообщений;
  • устройством управления с помощью Интернета (компьютер, планшет, смартфон);
  • голосовым управлением.

Каким он должен быть

Система «Умный дом» — это сложная структурная композиция. Однако внутренняя сложность не должна являться таковой при ее использовании, а быть как можно проще. Чем нужно руководствоваться при выборе интерфейса.

Вот главные принципы:

  • Простота и удобство . Управление сценариями и функциями не должно отнимать много времени, а делаться разовыми кликами. Интерфейс должен быть понятен и прост как для родственников в возрасте, так и для детей. И только необходимая информация должна поступать на экран, а иконки быть такими, чтобы их легко можно было узнавать. Понятный и логичный алгоритм управления.
  • Безопасность . Интерфейс должен предоставлять возможность блокировки некоторых функций во избежание запуска нежелательной функции посторонним людям или детям. Отдельные страницы должны защищаться паролем.
  • Гармоничный дизайн . Интеллектуальный дом должен быть красив во всем. И интерфейс не исключение, поскольку каждое устройство, будь то контроллер или сенсор, является неотъемлемой частью интерьера и должен быть гармонично вписан в дизайн. Не должны выделяться из него даже встроенные панели, а быть лицом интерьера. Благо существует множество цветовых оттенков, обложечных графических тем и иконок, чтобы создать единый стиль.

Всем этим требованиям вполне отвечает, например, веб-интерфейс умного дома блочно-колоночной организации. К примеру, первый блок или группа их задействуется на камерах наблюдения для отражения информации, второй – на системе отопления, третий – на устройствах энергетики, чтобы проводить индикацию состояния устройств или потребления энергии.

В заключение

Нормальное системное функционирование не может быть обеспечено без интерфейса. Принцип работы универсального средства управления основывается в первую очередь на возможности выхода в Интернет, то есть на той платформе, которая дает возможность контролировать комплексно системы автоматизации. Кроме этого интерфейс интеллектуальной системы умного дома служит гарантом информационного контакта и поддержки функциональности.

Система должна иметь совместимость с любым персональным компьютером или мобильными устройствами, имеющими разные платформы.

Также как и общие интерфейсы, в систему включены локальные средства функционального управления. В большинстве своем они представлены разного рода выключателями, сенсорными и клавишными панелями, имеющими узкий функционал.

Например, устройство, которое установлено в комнате на одной из стен, может управлять освещением и климатом. Нажатием клавиш вы определяете необходимые операции – включаете слабый свет, поднимаете температуру в помещении и т.д. Можно включить ряд функций сценарий.

Мы смогли научить нашу систему «умный дом» распознавать сказанное нами и синтезировать голосовые ответы при помощи Google.
Сегодня я хочу рассказать, как организовать доступ к нашей системе через веб-интерфейс.

Технологии

Как вы помните, ПО для управления нашим «умным домом» мы пишем на языке perl . Современная информационная система практически немыслима без БД. Мы тоже не останемся в стороне и для хранения наших данных будем использовать СУБД MySQL . Для реализации веб-сервера я решил воспользоваться не сторонним софтом, а модулем для perl - HTTP::Server::Simple , в частности - HTTP::Server::Simple::CGI . Для чего я это сделал? В большой части, ради интереса;) Но в теории, можно получить доступ к низкоуровневой обработке HTTP-запросов/ответов без нагромождения комплекса Apache/mod_perl. В целом, ничего не мешает перевести проект на рельсы Apache, если у вас будет желание и достаточно времени.

База данных

Первым делом установим СУБД MySQL и создадим базу с таблицами из db.sql. Вот листинг:

CREATE DATABASE ion; USE ion; # # Table structure for table "calendar" # DROP TABLE IF EXISTS calendar; CREATE TABLE `calendar` (`id` int(15) NOT NULL AUTO_INCREMENT, `date` datetime NOT NULL, `message` text, `nexttimeplay` datetime NOT NULL, `expired` datetime NOT NULL, `type` int(1) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1; # # Table structure for table "commandslog" # DROP TABLE IF EXISTS commandslog; CREATE TABLE `commandslog` (`id` int(15) NOT NULL AUTO_INCREMENT, `date` datetime NOT NULL, `cmd` varchar(255) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; # # Table structure for table "log" # DROP TABLE IF EXISTS log; CREATE TABLE `log` (`id` int(15) NOT NULL AUTO_INCREMENT, `date` datetime NOT NULL, `message` varchar(255) NOT NULL, `level` int(1) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

Выполним необходимые действия:

Nix@nix-boss:~$ sudo apt-get install mysql-server
nix@nix-boss:~$ mysql -uroot -ppassword < db.sql

Модифицируем код

Теперь нам необходимо создать папки lib , html и config (рядом с папкой data ). В папку lib мы положим модуль, отвечающий за реализацию веб-сервера и обработку наших HTTP-запросов.

Нам нужно немного подправить скрипт srv.pl . Добавим к блоку инциализации:

Our %cfg = readCfg("common.cfg"); our $dbh = dbConnect($cfg{"dbName"}, $cfg{"dbUser"}, $cfg{"dbPass"});
Добавим строки, отвечающие за запуск HTTP-сервера ниже блока инициализации:

## Запуск HTTP-сервера ################################ my $pid = lib::HTTP->new($cfg{"httpPort"})->background(); print "HTTP PID: $pid\n"; logSystem("Сервис HTTP - PID: $pid, порт: $cfg{"httpPort"}, хост: $cfg{"httpHost"}", 0); ################################
А теперь добавим недостающие функции в конец файла:

Sub readCfg { my $file = shift; my %cfg; open(CFG, "; foreach my $line (@cfg) { next if $line =~ /^\#/; if ($line =~ /(.*?) \= \"(.*?)\"\;/) { chomp $2; $cfg{$1} = $2; } } close(CFG); return %cfg; } ######################################## sub dbConnect { my ($db, $user, $pass) = @_; return $dbh = DBI->connect("DBI:mysql:$db", $user, $pass) || die "Could not connect to database: $DBI::errstr"; } ######################################## sub logSystem { my ($text, $level) = @_; my %cfg = readCfg("common.cfg"); dbConnect($cfg{"dbName"}, $cfg{"dbUser"}, $cfg{"dbPass"}); $dbh->do("INSERT INTO log (date, message, level) VALUES (NOW(), "$text", $level)"); }

Как можно понять по названиям функций, dbConnect() - отвечает за соединение с нашей СУБД, logSystem() - за логгирование, readCfg() - за загрузку конфигурации. Остановимся на ней подробнее. Конфигурация представляет собой простой текстовый файл в директории config. В нашем случае, он называется common.cfg . Выглядит примерно так:

## Настройки daemonMode = "undef"; logSystem = "1"; logUser = "1"; dbName = "ion"; dbUser = "root"; dbPass = "password"; camNumber = "4"; camMotionDetect = "1"; httpPort = "16100"; httpHost = "localhost"; telnetPort = "16000"; telnetHost = "localhost"; micThreads = "5";

Некоторые строки в нем будут использованы позже. Нас же пока интересуют только строки, начинающиеся с префикса db . Как мы видим - это настройки для соединения с нашей БД.

Теперь расскажу о том, как побороть многократное выполнение команды. Подредактируем функцию checkcmd() :

Sub checkcmd { my $text = shift; chomp $text; $text =~ s/ $//g; print "+OK - Got command \"$text\" (Length: ".length($text).")\n"; if($text =~ /система/) { ################################################# my $sth = $dbh->prepare("SELECT cmd FROM commandslog WHERE DATE_SUB(NOW(),INTERVAL 4 SECOND) <= date LIMIT 0, 1"); $sth->execute(); my $result = $sth->fetchrow_hashref(); if($result->{cmd} ne "") { return; } $dbh->do("INSERT INTO commandslog (date, cmd) VALUES (NOW(), "$text")"); ################################################# if($text =~ /провер/) { my $up = `uptime`; $up =~ /up (.*?),/; sayText("Время работы сервера - $1. Номер главного процесса - $parent."); } if($text =~ /врем/) { my $up = `uptime`; $up =~ /(.*?) up/; sayText("Сейчас $1"); } if($text =~ /законч/ || $text =~ /заверш/) { sayText("Завершаю работу. Всего доброго!"); system("killall motion"); system("rm ./data/*.flac && rm ./data/*.wav"); system("killall perl"); exit(0); } if($text =~ /погод/) { my ($addit, $mod); my %wh = lib::HTTP::checkWeather(); $wh{"condition"} = Encode::decode_utf8($wh{"condition"}, $Encode::FB_DEFAULT); $wh{"hum"} = Encode::decode_utf8($wh{"hum"}, $Encode::FB_DEFAULT); $wh{"wind"} = Encode::decode_utf8($wh{"wind"}, $Encode::FB_DEFAULT); if($wh{"temp"} < 0) { $mod = "ниже нуля"; } if($wh{"temp"} > 0) { $mod = "выше нуля"; } $wh{"wind"} =~ s/: В,/восточный/; $wh{"wind"} =~ s/: З,/западный/; $wh{"wind"} =~ s/: Ю,/южный/; $wh{"wind"} =~ s/: С,/северный/; $wh{"wind"} =~ s/: СВ,/северо-восточный/; $wh{"wind"} =~ s/: СЗ,/северо-западный/; $wh{"wind"} =~ s/: ЮВ,/юго-восточный/; $wh{"wind"} =~ s/: ЮЗ,/юго-западный/; sayText("Сейчас $wh{"condition"}, $wh{"temp"} градусов $mod. $wh{"hum"}. $wh{"wind"}"); if ($wh{"temp"} <= 18) { $addit = sayText("Одевайтесь теплее, на улице холодно!"); } if ($wh{"temp"} >= 28) { $addit = sayText("Переносной кондиционер не помешает!"); } } } #sayText("Ваша команда - $text"); return; }
Мы выбираем последнюю выполненную команду в интервале четырех секунд и если она совпадает с текущей - выходим из функции. Как вы можете заметить, я добавил некоторые команды, по сравнению с описанной функцией в прошлой статье. Наиболее интересная - это погода. Реализация получения данных для нее - чуть ниже.

Модуль HTTP.pm

Вернемся к реализации встроенного HTTP-сервера. Создадим файл HTTP.pm в директории lib . Запишем туда следующий код:

Package lib::HTTP; use HTTP::Server::Simple::CGI; use LWP::UserAgent; use URI::Escape; use base qw(HTTP::Server::Simple::CGI); use Template; ######################################### ######################################### our %dispatch = ("/" => \&goIndex, "/index" => \&goIndex, "/camers" => \&goCamers,); our $tt = Template->new(); ######################################### ######################################### sub handle_request { my $self = shift; my $cgi = shift; my $path = $cgi->path_info(); my $handler = $dispatch{$path}; if ($path =~ qr{^/(.*\.(?:png|gif|jpg|css|xml|swf))}) { my $url = $1; print "HTTP/1.0 200 OK\n"; print "Content-Type: text/css\r\n\n" if $url =~ /css/; print "Content-Type: image/jpeg\r\n\n" if $url =~ /jpg/; print "Content-Type: image/png\r\n\n" if $url =~ /png/; print "Content-Type: image/gif\r\n\n" if $url =~ /gif/; print "Content-Type: text/xml\r\n\n" if $url =~ /xml/; print "Content-Type: application/x-shockwave-flash\r\n\n" if $url =~ /swf/; open(DTA, "<$url") || die "ERROR: $! - $url"; binmode DTA if $url =~ /jpg|gif|png|swf/; my @dtast = ; foreach my $line (@dtast) { print $line; } close(DTA); return; } if (ref($handler) eq "CODE") { print "HTTP/1.0 200 OK\r\n"; $handler->($cgi); } else { print "HTTP/1.0 404 Not found\r\n"; print $cgi->header, $cgi->start_html("Not found"), $cgi->h1("Not found"), $cgi->h2($cgi->path_info()); $cgi->end_html; } } ## Обработка запроса / ######################################## sub goIndex { my $cgi = shift; # CGI.pm object return if !ref $cgi; my %w = checkWeather(); my $cmd; my $dbh = iON::dbConnect($iON::cfg{"dbName"}, $iON::cfg{"dbUser"}, $iON::cfg{"dbPass"}); my $sth = $dbh->prepare("SELECT cmd FROM commandslog WHERE id > 0 ORDER BY id DESC LIMIT 0, 1"); $sth->execute(); my $result = $sth->fetchrow_hashref(); if($result->{cmd} ne "") { $cmd = $result->{cmd}; } else { $cmd = "Нет комманд..."; } print "Content-Type: text/html; charset=UTF-8\n\n"; my $uptime = `uptime`; $uptime =~ /up (.*?),/; $uptime = $1; my $videosys = `ps aux | grep motion`; if ($videosys =~ /motion -c/) { $videosys = "работает"; } else { $videosys = "не работает"; } my $micsys = `ps aux | grep mic`; if ($micsys =~ /perl mic\.pl/) { $micsys = "работает"; } else { $micsys = "не работает"; } my $vars = { whIcon => $w{"icon"}, whCond => $w{"condition"}, whTemp => $w{"temp"}, whHum => $w{"hum"}, whWind => $w{"wind"}, cmd => $cmd, uptime => $uptime, video => $videosys, mic => $micsys, threads => $iON::cfg{"micThreads"}, }; my $output; $tt->process("html/index", $vars, $output) || print $tt->error(), "\n"; } ## Обработка запроса /camers ######################################## sub goCamers { my $cgi = shift; # CGI.pm object return if !ref $cgi; my %w = checkWeather(); my $cmd; my $dbh = iON::dbConnect($iON::cfg{"dbName"}, $iON::cfg{"dbUser"}, $iON::cfg{"dbPass"}); my $sth = $dbh->prepare("SELECT cmd FROM commandslog WHERE id > 0 ORDER BY id DESC LIMIT 0, 1"); $sth->execute(); my $result = $sth->fetchrow_hashref(); if($result->{cmd} ne "") { $cmd = $result->{cmd}; } else { $cmd = "Нет комманд..."; } if($cgi->param("text") ne "") { my $txt = $cgi->param("text"); require Encode; $txt = Encode::decode_utf8($txt, $Encode::FB_DEFAULT); iON::sayText($txt); } print "Content-Type: text/html; charset=UTF-8\n\n"; my $vars = { camera1 => "video-0/camera.jpg", camera2 => "video-1/camera.jpg", camera3 => "video-2/camera.jpg", camera4 => "video-3/camera.jpg", whIcon => $w{"icon"}, whCond => $w{"condition"}, whTemp => $w{"temp"}, whHum => $w{"hum"}, whWind => $w{"wind"}, cmd => $cmd, }; my $output; $tt->process("html/camers", $vars, $output) || print $tt->error(), "\n"; } ## Погода ######################################## sub checkWeather { my %wh; my $ua = LWP::UserAgent->new(agent => "Mozilla/5.0 (Windows NT 5.1; ru-RU) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.872.0 Safari/535.2"); my $content = $ua->get("http://www.google.com/ig/api?hl=ru&weather=".uri_escape("Санкт-Петербург")); $content->content =~ /(.*?)<\/current_conditions>/g; my $cond = $1; $cond =~ /

Разберем содержимое подробнее. В хэше %dispatch мы определяем соответствие URL-адреса и вызываемой функции. Все прочие URL, не описанные в этом хэше, будут выдавать страницу 404 .
Шаблонизатором у нас будет выступать мощная и гибкая библиотека Template Toolkit . Её мы инициализируем строкой:

Our $tt = Template->new();
Перегружая функцию handle_request() родительского класса, мы получаем управление обработкой запросов к HTTP-серверу. Для отдачи браузеру статического контента (png, gif, jpg, css, xml, swf) используется блок:

If ($path =~ qr{^/(.*\.(?:png|gif|jpg|css|xml|swf))}) { my $url = $1; print "HTTP/1.0 200 OK\n"; print "Content-Type: text/css\r\n\n" if $url =~ /css/; print "Content-Type: image/jpeg\r\n\n" if $url =~ /jpg/; print "Content-Type: image/png\r\n\n" if $url =~ /png/; print "Content-Type: image/gif\r\n\n" if $url =~ /gif/; print "Content-Type: text/xml\r\n\n" if $url =~ /xml/; print "Content-Type: application/x-shockwave-flash\r\n\n" if $url =~ /swf/; open(DTA, "<$url") || die "ERROR: $! - $url"; binmode DTA if $url =~ /jpg|gif|png|swf/; my @dtast = ; foreach my $line (@dtast) { print $line; } close(DTA); return; }
Так как MIME-типов у меня получилось немного, я записал их чуть по-индусски;)
Дальше начинаются функции, отвечающие за генерацию контента определенного URL. Пока их всего две - индекс и страница с камерами.
На индексе мы сможем увидеть, работают ли такие подсистемы, как видео- и аудио-захват. Отдельной строкой идет:

My %w = checkWeather();
Эта функция возвращает хэш с текущими данными о погоде в городе, которые будут отображаться на нашей странице. Такая мелкая приятная плюшка;)
Там же рядом мы будем выводить последнюю полученную и распознанную команду для «умного дома».

Следующая функция goCamers() выполняет те же функции, что и индекс, только вместо вывода информации по состоянию подсистем, показывает изображение с наших камер и имеется возможность написать какой-либо текст, который будет синтезирован и озвучен нашим «умным домом».

Все странички строятся на основе шаблонов, лежащих в папке html . Выкладывать листинг здесь будет не удобно, поэтому дам ссылку на архив -

В очередной раз бродя по просторам интернета в поисках Веб интерфейса для управления электроприборами по протоколу Х10, я естественно попал на сайт компании Melloware. В поддержку выпускаемого ими оборудования Х10 компания предлагает (бесплатно) программный продукт под названием X10 commander . Это сервер, устанавливаемый на компьютер с ОС Windows к которому подключен USB Х10 контроллер типа СМ15 или ему подобный. На сервере прописываются все имеющиеся в доме Х10 устройства их адреса и типы. X10 Commander позволяет управлять описанными устройствами непосредственно с компьютера, где он установлен или удаленно, через HTTP (GET) запросы типа (это в частности команда включить устройство по адресу А1) Кроме того эта же компания (Уже за небольшие деньги) предлагает программки устанавливаемые на планшет или телефон iOS/Android, которые работают через этот же сервер и позволяют весьма комфортно управлять устройствами Х10.

Моя идея заключалась в следующем. На компьютер который у меня дома выполняет роль домашнего медиа сервера, торент качалки, Скайпера, ит.д. и т.п. Я устанавливаю Веб и ФТП серверы,X10 commander и подключаю контроллер СМ15. Рисуем сайт и публикуем его через веб сервер в локалке, и при желании пробрасываем в глобальную сеть для совсем удаленного управления. (Кстати позже на этот компе я установил и сервер HomeSapiens и в результате получил еще и голосовое управление.

Для того что бы реализовать эту идею пришлось немного почитать погуглить и поработать головой и ручками. Не буду в рамках этой статьи описывать как устанавливается веб сервер и как он работает (Гугл и умные книжки Вам в помощь). Поделюсь тем что нагуглил непосредственно для цели управления Х10 через контроллер СМ15 и применение X10 Commander.
Подробно про синтаксис X10commander можно . Загрузить пакет ActiveHomePro SDK с сайта производителя x10 будет тоже не лишним там подробно описан протокол обмена с СМ15, хотя основные выжимки вот (переведенный гуглом кусочек описания):

Давайте разберем синтаксис.... http://localhost:8086 = сервер и порт, где командиром X10 работает? x10command = = параметр сигнализации, какую команду вы хотите выполнить DEVICE ~ ~ sendplc "А1 OFF" , разделенных тильдой в первым всегда устройство, а затем sendplc / sendrf в зависимости от того, хотите линии электропередачи или радио Frequence (RS работает еще команда queryplc - запрос состояния) , а затем "A1 OFF" в кавычки, устройства и код дома, а также команда. несколько примеров....

// Включить A1 ON
http://localhost:8086/?x10command=DEVICE~sendplc~"A1 ON"
// Увеличить яркость A1 на 50%
http://localhost:8086/?x10command=DEVICE~sendplc~"A1 BRIGHT 50"
// Диммировать A1 на 30%

http://localhost:8086/?x10command=DEVICE~sendplc~"A1 DIM 30"

На форуме Melloware Forums в разделе Web Interface To X10 Commander я нашел весьма любопытный пример на Javascript который позволяет создать на странице удобное поле кнопок, нажимая на которые можно управлять своими приборами по протоколу Х10 через сервер Х10commander. Вот , что бы долго не искать. Желающие повторить адаптируйте его под параметры своего дома прописав соответствующие названия адреса и команды, указав адрес сервера логин и пароль которые установлены на X10 Commander. Далее вставляйте этот скрипт в свою HTML страничку..... и собственно все! Будет вам счастье:-)

Я тоже решил попробовать создать свою страничку с использованием этого скрипта. Поскольку я не программист и с HTML знаком на уровне чайника, я взялся создать страничку с помощью какого нибудь конструктора сайтов. Попался под руку программа для быстрого создания сайтов WebSite X5, выбрал шаблон внешнего вида сайта настроил меню вставил картинку и адаптированный под мои настройки скрипт. и получилось как то вот так:

Потом мне захотелось организовать интерактивное управление что бы на сайте было видно чем я управляю и какое состояние светильников в комнате сейчас. Покопавшись в синтаксисе обмена с сервером X10 Commander и языка HTML я в той же программе на создавал нужные мне странички с соответствующим внешним видом и вставил в них немного кода ручками для формирования запросов к серверу X10 Commander. (Истинно сказано - Благословенны трудности! Ими растем!)

Вот что получилось в результате:




По щелчку по картинке изменяется состояние светильников в комнате и соответственно на картинке.

Таким образом цель была достигнута буквально за 3-4 вечера плотного сидения за компом.

Хотя стоит отметить, что не смотря на то, что интерфейс управления на веб странице весьма простой и интуитивно понятный, пользуюсь им я один. Домочадцы предпочитают, по привычке, щелкать выключателями. Похоже что бы этот сервис был востребован на месте выключателей должен висеть какой нить планшет с загруженной страничкой управления конкре тно этой комнаты. Но и бесполезным этот сервис не назовешь! Я сидя за своим компом, что называется, не отрывая точки опоры с удобного кресла, включаю/выключаю себе верхний свет, когда нужно. И конечно могу управлять своими электроприборами через интернет, когда в этом возникнет необходимость. (если возникнет конечно:-))

Кулеры на процессоры, кулеры на винчестеры, кулеры на видеокарты и системные чипсеты. Прибавьте к этому кардкулеры, системные бловеры и кулеры для ноутбуков. В таком количестве устройств для охлаждения легко можно запутаться, и помаленьку начинаешь верить, что кулеры - основная составляющая сегодняшнего компьютера. К счастью, или к сожалению, но пока что это не так, и на сегодняшний день ещё нет необходимости обвешивать Ваш любимый ПК шумными вентиляторами до тех пор, пока он не взлетит. В этой статье мы постараемся разобраться, что же в компьютере является источниками тепла, какие существуют способы охлаждения этих компонентов, и надо ли вообще бороться с повышенной температурой компьютера.

Теоретические основы охлаждения

Итак, немного теории. Из курса физики известно, что любой проводник, по которому протекает электрический ток, выделяет тепло. Это означает, что абсолютно все составляющие компьютера, начиная от центрального процессора и заканчивая проводами питания, подогревают окружающий воздух. Количество теплоты, выделяемое тем или иным компонентом компьютера напрямую зависит от его энергопотребления, которое, в свою очередь, определяется множеством других факторов: если мы говорим о жёстком диске, то мощностью электромоторчика и электроникой контроллера, а если о процессоре или другом чипе, то числом интегрированных в него элементов и технологическим процессом его производства. Такова физика нашего мира, и от этого никуда не деться. Но ведь никому до сих пор не пришла в голову идея клеить радиаторы на электрические провода и обдувать, скажем, внутренние модемы! Это потому, что различные компоненты компьютера влияют на температуру в корпусе по-разному, и если такое "холодное" устройство, как модем не требует никакого дополнительного охлаждения, то той же самой видеокарте мы уделяем слишком много внимания, поэтому на современные платы и ставят огромные кулеры, иногда даже с двумя вентиляторами.
Но прежде всего, давайте повторим, что же такое кулер. Кулер (от англ. Cool - холод) представляет собой устройство для охлаждения чего-либо. Основной задачей любого кулера является снижение и поддержание температуры охлаждаемого тела на заданном уровне. И в зависимости от типа охлаждаемого устройства, будь то транзистор, чип, процессор или даже винчестер, применяются различные типы кулеров. В нашем понятии кулер укрепился, как "большая железяка с пропеллером", и чем она больше, тем она лучше. Однако, кулеры могут представлять из себя и более сложные устройства, стоимостью сотни долларов. Обычно, кулеры, применяющиеся в компьютерах, состоят из вентилятора, радиатора и крепления.

Радиаторы

Радиатор (от англ. Radiate - излучать) служит для отвода тепла от охлаждаемого объекта. Он находится в непосредственном контакте с охлаждаемым объектом, и его основная функция - принять на себя часть выделяемого телом тепла и рассеять её в окружающий воздух. Как известно, опять же из курса физики, объект отдаёт тепло только со своей поверхности, а это означает, что для достижения наилучшего отвода тепла, охлаждаемый объект должен иметь как можно большую площадь поверхности. В сегодняшних радиаторах площадь поверхности увеличивается за счёт установки большего количества рёбер. Тепло от охлаждаемого объекта переходит к основанию радиатора, а потом равномерно распределяется по его рёбрам, после чего оно уходит в окружающий воздух, и этот процесс называется излучением. Воздух вокруг радиатора постепенно нагревается, и процесс теплообмена становится менее эффективным, поэтому эффективность теплообмена можно будет поднять, если постоянно подавать холодный воздух к рёбрам радиатора. Для этого сегодня используются вентиляторы. Но о них мы поговорим чуть позже.
Радиатор должен иметь хорошую теплопроводность и теплоёмкость. Теплопроводность определяет скорость распространения тепла по телу. Для радиатора теплопроводность должна быть как можно более высокой, потому что зачастую площадь охлаждаемого объекта в разы меньше, чем площадь основания радиатора, и при низкой теплопроводности тепло от охлаждаемого объекта не сможет равномерно распределиться по всему объёму, по всем рёбрам радиатора. Если радиатор выполнен из материала с высокой теплопроводностью, то в каждой его точке температура будет одинакова, и со всей площади его поверхности тепло будет выделяться с одинаковой эффективностью, то есть не возникнет ситуации, когда одна часть радиатора будет раскалённой, а другая - останется холодной и не будет отдавать тепло в окружающий воздух. Теплоёмкость определяет количество теплоты, которое нужно сообщить телу, чтобы повысить его температуру на 1 градус. Для радиаторов теплоёмкость должна быть как можно более высокой, потому что при остывании на один градус тело отдаёт то же самое количество теплоты. Теплоёмкость и теплопроводность радиатора зависят от материала, используемого для его изготовления.

Таблица термических свойств материалов

Как видно, для изготовления радиаторов выгоднее всего использовать два материала: алюминий и медь. Первый из-за низкой стоимости и высокой теплоёмкости, а второй - из-за большой теплопроводности. Серебро слишком дорого стоит, чтобы его можно было использовать для создания радиаторов, но даже если не брать в расчёт его высокую цену, благодаря хорошей теплопроводности, этот металл лучше всего применять для изготовления только лишь оснований радиаторов.
Конструкция радиатора также имеет большое значение. К примеру, рёбра могут быть установлены под разным углом к воздушному потоку. Они могут быть прямыми по всей длине радиатора, или рассечены поперёк, они бывают толстые и с заусенцами, если радиатор произведён по технологии выдавливания, или тонкими и гладкими, если он был отлит из расплавленного металла. Рёбра могут быть плоскими, согнутыми из пластин и впрессованными в основание. Радиатор вообще может быть игольчатым, то есть вместо рёбер иметь цилиндрические или квадратные иглы. Сегодня известно, что по конструкции рёбер лучше всего показывают себя игольчатые радиаторы.

Тепловой интерфейс

Радиаторы прилегают своим основанием к охлаждаемому объекту, и тепло от него к радиатору переходит лишь через поверхность их соприкосновения, поэтому надо стремиться, чтобы она была как можно больше. Но даже имеющуюся обычно площадь соприкосновения (к примеру, поверхность ядра процессора) надо использовать на все сто процентов. Дело в том, что при соприкосновении двух поверхностей, между ними остаются мельчайшие полости, заполненные воздухом. Этого невозможно избежать, и какой бы ровной и гладкой не казалась Вам поверхность радиатора, она всё равно имеет трещинки и впадины, где собирается воздух. Воздух очень плохо проводит тепло, а потому эффективность охлаждения будет существенно ниже возможностей радиатора.
Чтобы избавиться от воздушных подушек и увеличить эффективность охлаждения, применяют различные тепловые интерфейсы. Они имеют высокую теплопроводность и за счёт текучести заполняют собой все неровности основания радиатора. В результате, те места, где раньше был мешающий нам воздух, теперь заполнены хорошо проводящим тепло материалом, и радиатор уже работает с максимальной отдачей. Тепловые интерфейсы бывают различных типов: термопасты или проводящие прокладки. Прокладки представляют собой резиноподобные полимерные пластинки, нанесённые на основание радиаторов. При нагреве они изменяют своё агрегатное состояние и размягчаясь заливают собой все неровности. Сейчас термопасты поставляются в комплекте с подавляющим большинством фирменных кулеров. Чаще термопаста просто вкладывается в коробочку с кулером в шприце или маленьком целофановом пакетике. Но бывает, что она уже нанесена на основание радиатора. В этом случае её хватит лишь на одну-две установки, так как собрать её с охлаждаемого чипа или процессора будет сложнее, чем купить ещё один пакетик с пастой. При выборе термоинтерфейса я бы рекомендовал использовать термопасты, а не термопрокладки. Большая текучесть термопаст позволяет им лучше заполнять собой все неровности радиатора, а за счёт использования в своём составе таких материалов, как серебро или алюминий, они обладают более высокой теплопроводностью. Сегодня в продаже можно встретить термопасты с 90%-ным содержанием серебра. И хотя серебро является отличным электрическим проводником, изготовители гарантируют, что термопаста не замкнёт контакты элементов платы или устройства, на которое она нанесена, но всё же рекомендуют не проверять изолирующие свойства их продукта и по возможности избегать попадания термопаст на электрические элементы компьютера.

Вентиляторы

Вентиляторы обеспечивают непрерывный поток воздуха, обдувающий радиатор, превращая менее эффективный процесс излучения в более эффективный - конвекцию. Конвекция - это процесс обмена тепла, отличающийся от излучения тем, что охлаждающий воздух постоянно находится в движении. В активных кулерах он принудительно поступает в радиатор и нагреваясь, рассеивается в окружающей среде. С использованием вентилятора кулер становится намного производительнее, и температура охлаждаемого объекта может падать в два раза, а то и больше, в зависимости от производительности вентилятора. Производительность вентилятора - это основная его характеристика, измеряющаяся в количестве кубических футов воздуха, перегоняемых им в минуту, сокращённо - CFM (Cubic Feet per Minute). Она главным образом зависит от площади вентилятора, его высоты, профиля лопастей и частоты их вращения. Чем эти величины больше, тем большее количество воздуха сможет перегонять вентилятор, и соответственно тем более эффективным будет охлаждение. Сегодня в вентиляторах для компьютерных кулеров нет возможности бесконечно увеличивать ни размеры, ни скорость вращения крыльчатки. Понятно, что вентилятор размером больше 80 мм уже трудно разместить в корпусе, а частота вращения пропеллера напрямую влияет на уровень его шума. Кроме того, больший по размерам вентилятор должен будет иметь более мощный и более дорогой электрический моторчик, что скажется на его стоимости.
Все вентиляторы, используемые сегодня в компьютерах, питаются от постоянного тока, чаще всего напряжением 12В. Для подключения к питанию они используют трёхконтактные Molex-коннекторы (для Smart-вентиляторов) или четырёхконтактные PC-Plug коннекторы.

Разъём Molex имеет три провода: чёрный (земля), красный (плюс) и жёлтый (сигнальный). PC-Plug имеет четыре провода: два чёрных (земля), жёлтый (+12 Вольт) и красный (+5 Вольт). Разъёмы Molex устанавливаются на материнских платах, чтобы система сама могла контролировать скорость вращения вентилятора, подавая на красный провод различное напряжение (обычно от 8 до 12 В), и изменять её в случае необходимости. По жёлтому сигнальному проводу материнская плата получает от вентилятора информацию о частоте вращения его лопастей. Сегодня это стало очень актуальным, поскольку остановившийся на кулере процессора вентилятор может привести к повреждению процессора. Поэтому современные материнские платы следят, чтобы вентилятор всегда вращался, и если он останавливается, то выключают компьютер. Подключение через Molex имеет один недостаток: к материнским платам опасно цеплять вентиляторы с потребляемой мощностью более 6 Вт. Разъём же PC-Plug выдержит десятки Ватт, но при подключении к нему Вы не сможете узнать, работает ли Ваш вентилятор или нет. Сегодня всё чаще вентиляторы имеют в комплекте переходники PC-Plug - Molex, чтобы подключать их к блоку питания, или даже сразу оба разъёма: PC-Plug и Molex, чтобы получать питание от БП компьютера, а по сигнальному проводу Molex-а сообщать материнской плате о скорости работы моторчика.
Также вентиляторы могут иметь различный тип подвески ротора. Для этого используются подшипники скольжения (Sleeve bearing) или качения (Ball bearing). В вентиляторе может быть один или два подшипника, причём иногда в них совмещаются разные типы - Sleeve и Ball. Наиболее надёжными считаются вентиляторы с подшипниками качения (обычные шариковые подшипники). Компании-производители обещают им непрерывную работу в течение 50 000 часов, что составляет более пяти лет, а те же, которые используют подшипники скольжения, обещают жить не более 30 000 часов, около трёх с половиной лет. Сегодня уже существуют вентиляторы с керамическими подшипниками, которым обещают почти что бессмертие - 300 000 часов беспрерывной работы, а ведь это тридцать шесть лет! Однако, с одной стороны, заявленные времена жизни вентиляторов очень редко соответствуют действительности, и зачастую их надо делить на два, а то и на три, а с другой стороны, поверьте мне - тридцать шесть лет компьютер не проживёт. Стоит рассчитывать, что обычный вентилятор может жить год-два. Потом он начинает гудеть, и его надо смазывать, но даже смазка решит проблему лишь на время, и в скором времени вентилятор придётся заменить на новый.
Некоторые современные вентиляторы имеют автоматическую регулировку скорости, в зависимости от температуры окружающего воздуха или температуры радиатора. Мы расскажем Вам об одном таком в конце статьи. Практически у всех них датчик температуры стоит непосредственно на самом вентиляторе и может не отражать реальную температуру охлаждаемого объекта. То есть, при повышении температуры процессора, кулер, на котором установлен такой автоматический вентилятор, может только через пару минут повысить свои обороты. Другое дело, это вентиляторы с установленными на них сигнализациями остановки. При снижении частоты вращения ротора ниже определённого предела, специальный электронный блок на проводе вентилятора подаёт громкий писк, и Вы точно знаете, что пришло время выключить компьютер и заменить кулер.

Пассивные кулеры

Пассивные кулеры - это обычные радиаторы, установленные на охлаждаемый объект. Они отводят тепло только излучением, в случае, если не обдуваются какими-нибудь вентиляторами компьютера, и применяются для охлаждения маломощных и малых по размерам элементов, например, чипов памяти или транзисторов. Радиаторы устанавливаются сегодня на видеокарты, некоторые материнские платы, где ещё нет полноценных кулеров, модули памяти, да и вообще практически на всё, что приходится охлаждать, и даже на центральные процессоры, если они имеют малую мощность.

Частный случай пассивного кулера - распределитель тепла. Выглядит он как "лысый" радиатор, полученный из пластины, без рёбер и с небольшой площадью поверхности. Распределители тепла применяют сегодня для охлаждения системной памяти. В частности, компания Thermaltake выпускает специальные наборы для DDR SDRAM DIMM модулей. Недостатком распределителей тепла, как и пассивных кулеров, является их малая эффективность.

Активные кулеры

Активными называются кулеры, работающие за счёт конвекции. Проще говоря, это радиатор с установленным на него вентилятором. Чаще всего они используются для охлаждения процессоров. И сегодня, говоря слово "кулер", мы и подразумеваем, в первую очередь, именно их. Активные кулеры используются практически везде, где требуется охлаждение, заменяя собой обычные радиаторы. Преимуществами такого охлаждения можно назвать значительно большую эффективность в сравнении с обычными радиаторами. Активные кулеры в состоянии охлаждать раскалённые процессоры, имея при этом небольшие размеры. Но вентиляторы всегда являются источниками шума в компьютерах, а иногда и вибрации. Поэтому охлаждать ими надо лишь сильно греющиеся элементы, иначе работать за шумной машиной станет невыносимо. Ещё один недостаток активных кулеров в том, что они недолговечны. Лопасти вентилятора вращаются, и рано или поздно подшипники на роторе выйдут из строя, и он остановится. Естественно, в этом случае охлаждаемый элемент перегреется и, возможно, выйдет из строя. Но чаще всего вентиляторы перед остановкой начинают громко гудеть, так что Вы будете предупреждены заранее.

Теперь, когда мы разобрались в основах охлаждения компьютера, мы можем перейти к рассмотрению источников тепла в компьютере и способов их охлаждения.

Что в компьютере греется, и как оно охлаждается

Ну что же, имея представление о кулерах, давайте теперь составим картину, что же греется в компьютерах, и как это нужно (если нужно) охлаждать. Начнём мы с самого основного элемента любого ПК - центрального процессора. Сегодня охлаждению процессоров уделяется особое внимание, и поэтому каждый производитель кулеров для PC обязательно имеет в своём ассортименте и охладители для CPU.

Процессоры

Если не рассматривать серверные и переносные компьютеры (в том числе и ноутбуки), то сегодня в персональных компьютерах используются процессоры двух компаний-производителей: Intel и AMD. Они используют три основные платформы: Socket 370, Socket 478 и Socket 462 (Socket A). Цифры в обозначении платформы показывают число контактов каждого процессора. Естественно, между собой все эти стандарты не совместимы, и Pentium III под Socket 370 не установишь в материнскую плату с каким-нибудь другим гнездом. До недавнего времени был распространён ещё и стандарт Socket 423 под первые Pentium 4, но с приходом более современного Socket 478, он почти исчез и сейчас успешно забывается. Для каждого типа процессоров существуют свои стандарты кулеров.

В Socket 370 используют процессоры Intel Pentium III, Intel Celeron (кроме новых под Socket 478) и VIA C3. Процессоры же производства AMD (Duron, Athlon на ядре Thunderbird, Palomino и Thoroughbred) используют разъём Socket A. Кулеры для Socket 370 и Socket A почти совместимы друг с другом. Точнее, можно сказать, что они и полностью совместимы, но это не означает, что Вы сможете установить кулер под Athlon на Pentium III. Дело в том, что хотя гнезда Socket 370 и Socket A имеют одинаковые размеры, всё же стандарты, по которым AMD рекомендует строить материнские платы, отличаются от Intel-овских. Прежде всего, посмотрите на фотографию. Гнездо Socket A имеет по три зубчика спереди и сзади для крепления кулера. Изначально подразумевалось, что на процессоры Athlon будут ставиться более мощные охладители, которые потребуют более жёсткое крепление, и один зубчик может сломаться под пружиной кулера. Кроме того, AMD рекомендовала производителям материнских плат оставлять так называемую свободную зону слева и справа от гнезда. В этой зоне не должно быть никаких элементов, которые бы могли помешать установке прямоугольных кулеров длиной более 55 мм (ширина гнезда). Таким образом, на процессоры Athlon и Duron можно устанавливать кулеры размером 60x80мм и высотой насколько позволяет Ваш корпус. На Pentium III, конечно же, такие большие охладители вряд ли станут, но это опять же зависит от материнской платы.

Кроме того, многие материнские платы под Athlon/Duron имеют вокруг гнезда четыре отверстия. Это ещё один способ крепления кулера - не к гнезду, а к материнской плате. С одной стороны, он более удобный, поскольку кулер уже не отвалится, отломав зубчик, а с другой стороны - для его замены или апгрейда процессора придётся снимать материнскую плату. Хорошо это или плохо, но недавно AMD перестала требовать наличия четырёх отверстий в свободной зоне возле гнезда процессора, и все будущие кулеры будут крепиться только к нему, а не к материнской плате.
Процессоры Athlon выделяют до 73 Вт тепла в неразогнанном состоянии. Для мощных серверов такое тепловыделение процессора - обычное дело, а вот для настольных компьютеров это очень много, а к тому же площадь ядра процессора постоянно уменьшается, поэтому охладители для современных процессоров активно используют медь в своих радиаторах. И в продаже Вы сможете увидеть кулеры не только с алюминиевыми радиаторами, но и с медным основанием, или полностью медные. Некоторые производители, пытаясь увеличить эффективность кулеров, покрывают сверху медь ещё и никелем, серебром или другими материалами с высокой теплопроводностью. Вентиляторы на таких кулерах чаще всего имеют размер 60x60x25 мм, хотя сейчас большое распространение получают 70мм и 80мм модели. Они имеют меньшую скорость вращения и работают намного тише.

Процессор Тепловыделение, Вт
AMD Duron 1100 51
AMD Duron 1200 55
AMD Duron 1300 57
AMD Athlon Thunderbird 1400 73
AMD AthlonXP (Palomino) 2100+ 72
AMD AthlonXP (Thoroughbred) 2600+ 68.3

В случае с охладителями для Socket 370 всё намного проще: все они цепляются за два зубчика гнезда и имеют размеры, не превышающие размеров гнезда. Обычно от 50x50 до 60x60 мм. Тепловыделение процессоров Pentium III примерно в два раза меньше, чем у Athlon, поэтому охлаждать их проще, и на Pentium III чаще всего используются кулеры с полностью алюминиевыми радиаторами или с медным основанием. Они стоят дешевле полностью медных, в которых к тому же и нет необходимости.

Если продолжать разговор про Socket 370 и вспомнить про процессоры VIA C3, то можно и вовсе забыть про кулеры. Дело в том, что VIA C3 имеют репутацию "холодных" процессоров, потому что они выделяют слишком мало тепла и могут работать и с пассивными охладителями - обычными радиаторами, или совсем простенькими кулерами. Для них тепловыделение не проблема, и поэтому компьютеры на их базе работают очень тихо.
Сегодня выгоднее выпускать кулеры для процессоров Intel Pentium 4 и Celeron под Socket478. Дело в том, что рынок охладителей под Athlon уже достаточно насыщен, а к тому же цена на компьютеры с процессорами AMD невысоки, и не каждый пользователь готов дорого заплатить за хороший кулер. С Pentium 4 ситуация совсем другая, так как они стоят намного дороже конкурентов от AMD, и на рынок высокопроизводительных процессоров можно продавать кулеры стоимостью несколько десятков долларов.

В компьютерах с процессорами Pentium 4 и Celeron под Socket 478 кулер крепится к специальной стойке на материнской плате. Есть мнение, что процессоры Pentium 4 вообще не перегреваются. Оно в корне неверно, и первые Pentium 4 действительно грелись слабее своих товарищей Athlon, но сейчас энергопотребление Pentium 4 с частотой 2.8 ГГц находится в районе 64 Вт, а Pentium 4 3.0 ГГц обещает требовать до 80 Вт. Конечно, современные технологические процессы и конструкция Pentium 4 со встроенным распределителем тепла помогают ему лучше бороться с выделяемым теплом, но он также, как и Athlon требует большой кулер. Правда, коробочные варианты процессоров уже поставляются с кулерами, но при необходимости в магазинах можно найти широкий ассортимент охладителей для Pentium 4.

Кулеры под Socket 478 имеют, в основном, один вид крепления: двумя стальными скобами они цепляются за пластиковые упоры материнской платы и крепко прижимаются к поверхности процессора. Иногда от слишком сильных пружин кулера материнская плата слегка изгибается, но по большому счёту это не страшно. Для компьютеров, использующих Pentium 4 в низких или серверных корпусах, существуют кулеры, крепящиеся к материнской плате без использования стоек вокруг процессора.

Так же, как и в случае с некоторыми охладителями под Athlon, в них крепление проходит сквозь отверстия в материнской плате (для этого с неё придётся снять стандартные держатели для кулера) и фиксируется сверху на процессоре. В этом случае на плату подаётся куда меньшая физическая нагрузка. К сожалению, такие кулеры мало распространены.
Под Pentium 4 выпускаются кулеры с различными радиаторами. Здесь есть как чисто алюминиевые, так и с медными основаниями, или полностью медные. Вентиляторы для таких кулеров обычно ставятся тихие, потому что их низкая производительность компенсируется большими размерами радиаторов. Хотя, громкие модели тоже нередкое явление среди охладителей для Socket 478.




Загрузка...