"Умный дом\теплица" или наблюдаем за заморозком...

Инструменты, оборудование для дачи, сада, огорода. газонокосилки, капельное орошение, насосы, миниэлектростанции, оборудование для пруда и бассейнов.

Модераторы: alla, Ким, Аленка, Модераторы

Lets Dance
Аватара пользователя
Отключен
Сообщения: 208
Зарегистрирован: 11.02.2011, 14:03
Откуда: Russia
Поблагодарили: 5 раз


Статус: Не в сети

"Умный дом\теплица" или наблюдаем за заморозком...

#1

Сообщениеот Lets Dance » 11.03.2011, 13:10

Попалась мне в руки некая микросхемка (датчик температуры) Dallas DS1820.

http://tec.org.ru/publ/stati_po_ehlektr ... 0/8-1-0-14

И 1-ware \ USB адаптер - DS9490R
Изображение

Опять-таки подумалось, что в те времена кода многие теребят "твиттер" и говорят об "умных домах", почему бы не сделать хотя бы "умную теплицу". А точнее автоматическую защиту от заморозка.
Всю технологию описывать долго, те кто шарит в технике и дружит с паяльником, те сами разбирутся что такое 1-ware шина.
А здесь выложу только основную идею и некоторые скрипты.

Итак. Существует в природе некая технология предсказания заморозка:

Изображение

http://www.holodilshchik.ru/index_holod ... orozki.htm

А у нас есть микросхемка, адаптер и старый престарый хламовный комп, или ноут 10-ти летней давности в гараже.

Для наблюдения за температурой, можно написать простой скриптик на языке "Perl", который будет опрашивать подсоединенный датчик, и заносить данные в базу данных.

"Базка" на mysql будет выглядеть примерно так:

+---------------------------+----------------+
| time_m | temperature |
+---------------------------+----------------+
| 2011-03-11 12:29:01 | 24.31 |
| 2011-03-11 12:30:01 | 24.44 |
| 2011-03-11 12:31:02 | 24.31 |
| 2011-03-11 12:32:01 | 24.44 |
| 2011-03-11 12:33:01 | 24.44 |
+---------------------+----------------------+

Cоздается база элементарным SQL-запросом:

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

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Структура таблицы `temperat` -- CREATE TABLE IF NOT EXISTS `temperat` ( `temperature` varchar(10) NOT NULL, `time_m` datetime NOT NULL default '0000-00-00 00:00:00', `subzero` int(2) NOT NULL, `comment` varchar(255) default NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='sbor temperature';
А скрипт опроса и занесения в базу так:

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

#!/usr/bin/perl $debug=1; $daemon=0; $syslog=1; $pidfile="/var/run/temper.pid"; $database = "nabl"; $hostname = "10.10.10.10"; $port = "3306"; $username = "user"; $password = 'pass'; use Net::hostent; use Sys::Syslog; use POSIX; use DBI; $|=1; ############################ # Main part of the program ######################################################################### ############################ my $dsn = "DBI:mysql:database=$database:host=$hostname:port=$port"; my $dbh = DBI->connect($dsn, $username, $password) or die("Could not connect to MySQL!"); ######################## ## TEMPERATURE DATABASE ## ######################## #### Upload data #### $date = `date '+%Y-%m-%d %H:%M:%S'`; $t1= `/usr/bin/sudo /usr/bin/digitemp_DS2490 -c ./temper/digitemp.conf -t 0 | grep C:`; $t1 =~ s/\s*//; # Убираем пробел $t1 =~ m/(.*)C\:(.*)F\:(.*)/; # Выделяем значение температуры #print $t1; my $t = $2; chomp $t; #print $t . "\n"; #### Add temperature to table 'temperat' #### # 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;
Ставим скрипт на выполние в 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

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

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

#!/usr/bin/perl $debug=1; $daemon=0; $syslog=1; $pidfile="/var/run/mrtg.pid"; $database = "nabl"; $hostname = "-----"; $port = "3306"; $username = "юзернэйм"; $password = 'пароль'; use Net::hostent; use Sys::Syslog; use POSIX; use DBI; $|=1; ############################ # Main part of the program ######################################################################### ############################ my $dsn = "DBI:mysql:database=$database:host=$hostname:port=$port"; my $dbh = DBI->connect($dsn, $username, $password) or die("Could not connect to MySQL!"); $sth->execute; my @row = $sth->fetchrow_array(); $t13 = $row[0]; $sth->finish; #chomp $t13; #print $t13 . "\n"; my $sth = "SELECT temperature FROM temperat WHERE time_m LIKE '%".$date."%".$time21."%'"; #my $sth = "SELECT temperature FROM temperat WHERE time_m LIKE '%".$time21."%'"; #print $sth; $sth = $dbh->prepare($sth) || die "Can't prepare statement: $DBI::errstr"; $sth->execute; my @row = $sth->fetchrow_array(); $t21 = $row[0]; $sth->finish; #chomp $t21; #print $t21 . "\n"; # Определяем координаты точки для расчета $x = ($t13 - $t21); #print $x . "\n"; $y = $t21; #print $t21 . "\n"; $y1=0.4*$x+1.6; #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 #print $y1 . "\n"; if($y1 > $y) { print "Вероятность заморозка 100% !!! \n"; } elsif($y2 >= $y) { print "Вероятность заморозка 80% !! \n"; } elsif($y3 >= $y) { print "Вероятность заморозка 60% ! \n"; } elsif($y4 >= $y) { print "Вероятность заморозка 40% \n"; } elsif($y5 >= $y) { print "Вероятность заморозка 20% \n"; } elsif($y6 >= $y) { print "Вероятность заморозка 10% \n"; } else { print "Заморозка не будет! ... Совсем... :-) \n"; }
Этот скрипт можно запускать из любого места и на основании полученных данных например, включить отопление в теплице, вывести график температуры (другим скриптом) на интернет страницу, отправить на ваш телефон СМС-ку, чтоб Вы брали руки в ноги, и чапали на дачу укрывать посадки.


Если использовать программку gnuplot

на на основании полученных данных из базы можно строить подобные графики:

Изображение


В общем это пример, как на коленке, можно собрать основу действующей системы. ))) Может кому понадобится.

Кстати если использовать COM-порт вместо USB-адаптера, то стоимость всей системы будет рублей 300-400 (в основном цена датчика)

http://www.kusto.com.ru/temperature/
Последний раз редактировалось Lets Dance 12.03.2011, 11:52, всего редактировалось 8 раз.


АндрейВ
Аватара пользователя
Сообщения: 7875
Зарегистрирован: 19.11.2007, 17:55
Интересы: Плодовые и декоративные
Откуда: Москва-Бутово деревня в Калужской обл.
Благодарил (а): 116 раз
Поблагодарили: 1768 раз


Статус: Не в сети

#2

Сообщениеот АндрейВ » 11.03.2011, 13:36

Для того чтобы защитить растюхи от заморозка достаточно простого обогревателя с термодатчиком и ехать никуда не надо... А заморозок, чо за ним наблюдать? Его нейтрализовать надо...
Андрей Виноградов.
Изображение

Lets Dance
Аватара пользователя
Отключен
Сообщения: 208
Зарегистрирован: 11.02.2011, 14:03
Откуда: Russia
Поблагодарили: 5 раз


Статус: Не в сети

#3

Сообщениеот Lets Dance » 11.03.2011, 13:51

Об обогревателе... А что если у вас в открытом грунте что-то растет? Обогреватель как-то не очень обогревает Мир )))
Нужно ехать укрывать, дымить, поливать и т.д.

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

+ условия у всех разные, у кого-то парник на 4-х колышках, а у кого-то зимний сад газом обогревается.

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

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

Нет ничего невозможного, для человека с интеллектом ;-)
А главное - не так и сложно!

АндрейВ
Аватара пользователя
Сообщения: 7875
Зарегистрирован: 19.11.2007, 17:55
Интересы: Плодовые и декоративные
Откуда: Москва-Бутово деревня в Калужской обл.
Благодарил (а): 116 раз
Поблагодарили: 1768 раз


Статус: Не в сети

#4

Сообщениеот АндрейВ » 11.03.2011, 14:36

Lets Dance писал(а):Об обогревателе... А что если у вас в открытом грунте что-то растет? Обогреватель как-то не очень обогревает Мир )))
Нужно ехать укрывать, дымить, поливать и т.д.
Что у Вас конкретно росло в открытом грунте и что Вы смогли уберечь от заморозка укрыванием, дымлением, поливом и тд, подхватившись и приехав на свой участок накануне заморозка?
Андрей Виноградов.
Изображение

Lets Dance
Аватара пользователя
Отключен
Сообщения: 208
Зарегистрирован: 11.02.2011, 14:03
Откуда: Russia
Поблагодарили: 5 раз


Статус: Не в сети

#5

Сообщениеот Lets Dance » 11.03.2011, 14:46

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

тамара
Аватара пользователя
Ушла из жизни
Сообщения: 32043
Зарегистрирован: 10.03.2006, 13:13
Откуда: Москва, ж-л "ПХ", дача 40 км по Ярославке
Поблагодарили: 101 раз


Статус: Не в сети

#6

Сообщениеот тамара » 11.03.2011, 19:17

Андрей! Цветущие ягодные кусты можно спасти, укрыв толстым лутрасилом. Землянику, наверное. Но пока услышишь дома датчик, пока метнешься на участок, пока доедешь, пока приготовишь укрытия, уже утро настанет. Я в другой теме написала, что это мазохизм.
В саду человек нашел первую усладу для души и тела

julia
Сообщения: 7280
Зарегистрирован: 15.03.2006, 12:58
Занятие: agronom
Откуда: планета Земля 01 октября
Благодарил (а): 94 раза
Поблагодарили: 919 раз


Статус: Не в сети

#7

Сообщениеот julia » 11.03.2011, 20:26

Lets Dance! Сама идея делать локальный прогноз заморозка на конкретном участке заманчива. Но эти пляски могут иметь смысл в каком-нибудь товарном ЛПХ, Дачников контроль не спасет - у многих участки так далеко, а судьба заморозка может быть решена за час до захода солнца. И кто рванет делать задымление? Если же садовод живет в загородном доме, то достаточно следить за влажностью воздуха и падением температуры - и комп не потребуется. Потом я слабо представляю компьютер, пусть и убитый, на даче.... без хозяев... Мы даже лопаты убираем, когда в город возвращаемся...
Был случай - сачок для чистки пруда забыли - кто-то ему "ноги" приделал... А кому он нужен - в округе всего три пруда на участках , и мы друг друга знаем... Так что комп - точно будет перемещен в другое пространство :lol:
Гармония - основа красоты и благополучия

Lets Dance
Аватара пользователя
Отключен
Сообщения: 208
Зарегистрирован: 11.02.2011, 14:03
Откуда: Russia
Поблагодарили: 5 раз


Статус: Не в сети

#8

Сообщениеот Lets Dance » 11.03.2011, 22:28

Ну раз такое скептическое отношение и никому не надо, то можно тему и почистить! )))

тамара
Аватара пользователя
Ушла из жизни
Сообщения: 32043
Зарегистрирован: 10.03.2006, 13:13
Откуда: Москва, ж-л "ПХ", дача 40 км по Ярославке
Поблагодарили: 101 раз


Статус: Не в сети

#9

Сообщениеот тамара » 11.03.2011, 22:33

Зачем? Вдруг продвинутые заглянут на огонек.
В саду человек нашел первую усладу для души и тела

julia
Сообщения: 7280
Зарегистрирован: 15.03.2006, 12:58
Занятие: agronom
Откуда: планета Земля 01 октября
Благодарил (а): 94 раза
Поблагодарили: 919 раз


Статус: Не в сети

#10

Сообщениеот julia » 12.03.2011, 02:15

Lets Dance! Это не скепсис... Это размышлизмы. Не обижайтесь! Просто, благие намерения и, увы, практика... разными ходют дорогами. Вашу бы идею в Германию либо Канаду...
Гармония - основа красоты и благополучия

Lets Dance
Аватара пользователя
Отключен
Сообщения: 208
Зарегистрирован: 11.02.2011, 14:03
Откуда: Russia
Поблагодарили: 5 раз


Статус: Не в сети

#11

Сообщениеот Lets Dance » 14.03.2011, 09:47

julia писал(а):Вашу бы идею в Германию либо Канаду...
Т.е. мы как-бЭ себя сразу заранее ставим на заведомо отсталое место?

julia
Сообщения: 7280
Зарегистрирован: 15.03.2006, 12:58
Занятие: agronom
Откуда: планета Земля 01 октября
Благодарил (а): 94 раза
Поблагодарили: 919 раз


Статус: Не в сети

#12

Сообщениеот julia » 14.03.2011, 11:43

Не... мы не ставим... мы констатируем, увы.... :cry:
Гармония - основа красоты и благополучия

Lets Dance
Аватара пользователя
Отключен
Сообщения: 208
Зарегистрирован: 11.02.2011, 14:03
Откуда: Russia
Поблагодарили: 5 раз


Статус: Не в сети

#13

Сообщениеот Lets Dance » 26.03.2011, 01:23

И тем не менее я продолжу свою "колонку" не зависимо от того, контрастируем мы или нет.

Что касается компьютера и того, что его унесут... Да.. условия у всех разные, но почему вы решили, что компьютер должен быть прям в теплице? ))) Он может стоять где угодно, т.к.1-wire поддерживает расстояние до 300 м.

Теперь о самом компьютере... А почему именно компьютер?! Сейчас на "помойку", а точнее в дальний угол забрасываются типа устаревшие, но такие прекрасные устройства как например Wi-Fi роутеры, А между тем это своего рода маленькие компьютеры, вычислительная мощь которых, достаточна чтоб даже небольшой сайтик поддерживать, а уж опросить датчики, занести показания в базу и отрисовать по алгоритмам графики - это для нее раз плюнуть. Такая коробочка может висеть в комнате (причем даже интерьер не попортит), и запрашивать данные о температуре с датчиков на улице, в подвале, чердаке.

Лично я нашел давно заброшенное устройство Linksis NSLU2.
Изображение
и поковырявшись с ним денек, вдохнул в него новую жизнь и новую систему - Linux Debian
http://www.cyrius.com/debian/nslu2/install.html

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

вот так выглядит сейчас его скромный интерфейс:

Изображение


А так описанный на PHP график, по которому предсказывается заморозок. Эта картинка динамически отрисовывается по дпнным наблюдений. А красная точка на графике как раз рассчитывается по алгоритму описанному выше.

Изображение

Нюра
Аватара пользователя
Сообщения: 3640
Зарегистрирован: 12.04.2010, 09:43
Откуда: Далеко за С.-Посадом, Лефортово
Благодарил (а): 1071 раз
Поблагодарили: 2409 раз


Статус: Не в сети

Re: "Умный дом\теплица" или наблюдаем за заморозко

#14

Сообщениеот Нюра » 26.03.2011, 12:36

Lets Dance писал(а):Этот скрипт можно запускать из любого места
Ты эта, ты не умничай, ты exe-модуль давай. Нам твои скрипты непонятные :gun
Изображение Изображение
Вам помочь или не мешать?

Lets Dance
Аватара пользователя
Отключен
Сообщения: 208
Зарегистрирован: 11.02.2011, 14:03
Откуда: Russia
Поблагодарили: 5 раз


Статус: Не в сети

#15

Сообщениеот Lets Dance » 26.03.2011, 19:39

Какой EXE??? ))) Забудьте! Здесь от Windows ничего нет.
Это чистое веб-приложение.

Скрипт, который опрашивает датчик написан на PERL и приведен выше, он запускается по CRON каждую минуту, на том устройстве, куда подключен датчик и передает данные на сервер (хостинг), а на хостинге PHP - скрипты вытаскивают все из базы и рисуют нам вэб-страничку.
Если скрипты не понятны, то работать ничего не будет, ибо это не мануал в стиле "куда нажимать", а просто сырая версия о том, куда думать )))

Архив со скриптами могу куда нить выложить.


Вернуться в «Инструменты, оборудование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя