Попалась мне в руки некая микросхемка (датчик температуры) Dallas DS1820.
И 1-ware \ USB адаптер - DS9490R
Опять-таки подумалось, что в те времена кода многие теребят "твиттер" и говорят об "умных домах", почему бы не сделать хотя бы "умную теплицу". А точнее автоматическую защиту от заморозка.
Всю технологию описывать долго, те кто шарит в технике и дружит с паяльником, те сами разбирутся что такое 1-ware шина.
А здесь выложу только основную идею и некоторые скрипты.
Итак. Существует в природе некая технология предсказания заморозка:
А у нас есть микросхемка, адаптер и старый престарый хламовный комп, или ноут 10-ти летней давности в гараже.
Для наблюдения за температурой, можно написать простой скриптик на языке "Perl", который будет опрашивать подсоединенный датчик, и заносить данные в базу данных.
use Net::hostent;
use Sys::Syslog;
use POSIX;
use DBI;
$|=1;
############################
Main part of the program
############################
my $dsn = "DBI:mysql:database=$database:host=$hostnameort=$port";
my $dbh = DBI->connect($dsn, $username, $password) or die("Could not connect to MySQL!");
my $sqladd = "INSERT into temperat values ('".$ip."','".$date."');";
my $sqladd = "INSERT INTO temperat (`temperature`, `time\_m`, `subzero`, `comment`) VALUES ('".$t."', '".$date."', '0', NULL);";
my $sthadd = $dbh->prepare($sqladd);
$sthadd->execute;
$sthadd->finish;
[/code]
Ставим скрипт на выполние в cron каждую минуту, и наслаждаемся, как данные о температуре с вашего участка, заносятся в базу данных.
Что бы сделать выводы о возможности наступления заморозков по графику, мы должны вспомнить геометрию класс так за 6-й...
И описать график в виде функции. Вспоминаем уравнение прямой в декартовой системе координат: y = a*x+b.
С помощью этого уравнения описываем все характерные линии графика:
$y1=0.4*$x+1.6; #100% описывает линию 100%-го заморозка и т.д.
$y2=0.391*$x+2.7; #80%
$y3=0.382*$x+4.7; #60%
$y4=0.382*$x+6.7; #40%
$y5=0.391*$x+8.7; #20%
$y6=0.375*$x+11; #10
Дальше нехитрыми математическими действиями мы вычисляем вероятность заморозка по графику. Вот пример скрипта, который делает выборку из базы и выводит данные о заморозке.
use Net::hostent;
use Sys::Syslog;
use POSIX;
use DBI;
$|=1;
############################
Main part of the program
############################
my $dsn = "DBI:mysql:database=$database:host=$hostnameort=$port";
my $dbh = DBI->connect($dsn, $username, $password) or die("Could not connect to MySQL!");
Этот скрипт можно запускать из любого места и на основании полученных данных например, включить отопление в теплице, вывести график температуры (другим скриптом) на интернет страницу, отправить на ваш телефон СМС-ку, чтоб Вы брали руки в ноги, и чапали на дачу укрывать посадки.
В общем это пример, как на коленке, можно собрать основу действующей системы. ))) Может кому понадобится.
Это конечно все замечательно, но ИМХО лучше подогрев организовать автоматический, чем предсказывать заморозки.
А в идеале как бы занедорого на базе ПК орагнизовать надежное автоматическое управление теплицей парником, поддержание в ней необходимой температуры и влажности с дистанционным контролем через интернет.
dadyjo написал :
А в идеале как бы занедорого на базе ПК...
Скажу больше, можно ПК не использовать (т.к. все-таки там вентиляторы, большой корпус и т.д.), можно использовать старый Wi-Fi роутер прошитый линуксовой прошивкой типа OpenWRT или DD-Wrt. Тогда мы молучаем тоже как-бы компьютер, но в маленьком корпусе.
Hawk-IT написал :
Скажу больше, можно ПК не использовать
Скажу больше, можно не хвастаться знанием перловых схрыпов.
А показать изделие, пояснить работу и почивать на лаврах первооткрывателя и закрывателя теплиц.
А вот еще вопрос: как там с давлением и влажностью на вашем огороде?
Этот пост не пошаговое руководство "куда нажимать", а рабочая "лаба".
У кого прямые руки - сам додумает и доделает то, что ему необходимо.
Что касается измерения температуры и влажности в огороде - ставьте соответствующие датчики и измеряйте.
Есть даже готовый софт oww для "погодной станции"
Для создания тем и сообщений Вам необходимо войти под своим аккаунтом.