Первая разработка в программе (для теплицы, гроубокса)
Первая разработка в программе (для теплицы, гроубокса)
AlexRyzh, Вот посмотри мой проект по автоматизации теплицы ,точнее его малая часть ,там меню с подменю, их можно увеличивать практически до любых размеров
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- AlexRyzh
- Сержант
- Сообщения: 107
- Зарегистрирован: 22 дек 2015, 11:06
- Откуда: Мелитополь
- Контактная информация:
Первая разработка в программе (для теплицы, гроубокса)
Спасибо. Но пользовательский блок не нужно скачивать никогда, если он есть в проекте. Просто правой кнопкой на блок и "Добавить в библиотеку"AlexRyzh писал(а):Забыл сказать, в проекте использован пользовательский блок, скачать можно здесь.

Добавлено (25.01.2016, 22:03)
---------------------------------------------
Спасибо, посмотрюОлег писал(а):AlexRyzh, Вот посмотри мой проект по автоматизации теплицы ,точнее его малая часть ,там меню с подменю, их можно увеличивать практически до любых размеров
Добавлено (25.01.2016, 22:22)
---------------------------------------------
Спасибо. Как начинающему не просто разобраться в проекте, но есть над чем подумать, разобраться, поучитьсяОлег писал(а):Вот посмотри мой проект по автоматизации теплицы ,точнее его малая часть ,там меню с подменю, их можно увеличивать практически до любых размеров
Первая разработка в программе (для теплицы, гроубокса)
Чего только нового не узнаешь.AlexRyzh писал(а):Но пользовательский блок не нужно скачивать никогда, если он есть в проекте

Что-то с цитатами в предыдущем посте проблемы.
- AlexRyzh
- Сержант
- Сообщения: 107
- Зарегистрирован: 22 дек 2015, 11:06
- Откуда: Мелитополь
- Контактная информация:
Первая разработка в программе (для теплицы, гроубокса)
Это есть в одном из уроков автора программыAlexRyzh писал(а):Чего только нового не узнаешь.
Последний раз редактировалось AlexRyzh 25 янв 2016, 23:09, всего редактировалось 1 раз.
Первая разработка в программе (для теплицы, гроубокса)
Я злостный прогульщик, много уроков прогулял
.

- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Первая разработка в программе (для теплицы, гроубокса)
Делая наброски понял, что будет лучше сделать полностью готовый проект.rw6cm писал(а):Если вечером будет время сделаю набросок.
Иначе будет многое не понятно и возникнет еще больше вопросов.
На днях выложу готовый макет из Унки, 44780 I2C, 1307, 4 кнопки, и шилда на 4 реле.
с вариантом на "все случаи в жизни" )))
Последний раз редактировалось rw6cm 25 янв 2016, 23:26, всего редактировалось 1 раз.
Win10-64, FLProg (portable)
- AlexRyzh
- Сержант
- Сообщения: 107
- Зарегистрирован: 22 дек 2015, 11:06
- Откуда: Мелитополь
- Контактная информация:
Первая разработка в программе (для теплицы, гроубокса)
Поработал над созданием автоматики в теплице по программе минимум на Mega 2560. Может еще по ходу жизни что понадобится, буду доделывать, перепрошивать...
А пока вот такая конструкция получилась. Выставляю на суд гуру, может что не так сделал или где упростить можно...
Это моя первая работа в программе, поэтому жду замечаний, подсказки...
Напоминаю, пользовательский блок скачивать не нужно, можно добавить в свою библиотеку, нажав на него правой кнопкой мыши и выбрать "Добавить в библиотеку"
И еще... в пользовательском блоке нужно вычисление логорифма, но в программе не предусмотрено вычисление, поэтому вместо логарифма я поставил вычислять SQ, чтоб потом в скетче SQ заменить на log. Вот здесь.
"..... float _gtv4 = _ubInstans._gtv4;
float _gtv5 = _ubInstans._gtv5;
float _strFunsq1 = _ubInstans._strFunsq1;
_strFunsq1 = sq(((ubpar_119498336)/(((1023)/(ubi_73680708))-(1)))/(10000.00));
ubo_166513358 = ((1)/(((1)/(298.15))+(((1)/(5500.00))*(_strFunsq1))))-(273.15);
_ubInstans.ubo_166513358 = ubo_166513358;
_ubInstans._gtv1 = _gtv1;
..."
Программу построил так чтоб обойтись без отдельного реле времени. Но задумка сделать многоканальное реле остается
P.S. Еще буду доделывать сюда сбор информации и отправки в базу данных на сервер, чтоб можно было построить и посмотреть графики интересующих данных.
А пока вот такая конструкция получилась. Выставляю на суд гуру, может что не так сделал или где упростить можно...
Это моя первая работа в программе, поэтому жду замечаний, подсказки...
Напоминаю, пользовательский блок скачивать не нужно, можно добавить в свою библиотеку, нажав на него правой кнопкой мыши и выбрать "Добавить в библиотеку"
И еще... в пользовательском блоке нужно вычисление логорифма, но в программе не предусмотрено вычисление, поэтому вместо логарифма я поставил вычислять SQ, чтоб потом в скетче SQ заменить на log. Вот здесь.
"..... float _gtv4 = _ubInstans._gtv4;
float _gtv5 = _ubInstans._gtv5;
float _strFunsq1 = _ubInstans._strFunsq1;
_strFunsq1 = sq(((ubpar_119498336)/(((1023)/(ubi_73680708))-(1)))/(10000.00));
ubo_166513358 = ((1)/(((1)/(298.15))+(((1)/(5500.00))*(_strFunsq1))))-(273.15);
_ubInstans.ubo_166513358 = ubo_166513358;
_ubInstans._gtv1 = _gtv1;
..."
Программу построил так чтоб обойтись без отдельного реле времени. Но задумка сделать многоканальное реле остается

P.S. Еще буду доделывать сюда сбор информации и отправки в базу данных на сервер, чтоб можно было построить и посмотреть графики интересующих данных.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось AlexRyzh 28 янв 2016, 00:12, всего редактировалось 1 раз.
- AlexRyzh
- Сержант
- Сообщения: 107
- Зарегистрирован: 22 дек 2015, 11:06
- Откуда: Мелитополь
- Контактная информация:
Первая разработка в программе (для теплицы, гроубокса)
Помогите с проблемой отправки данных в базу данных на Веб-сервер.
У меня не получается, с использованием Вебклиента. При вставке вебклиента вставляется похожее на вебсервер, и при настройках пишет страница вебсервера Нет возможности ввести адрес хоста типа http://mysuite.hol.es
Пробовал вычислить IP сайта, но по этому IP на сайт не заходит, а выдается страница хостера с ошибкой.... oshibka_404
Например, на хосте http://mysuite.hol.es у меня есть база данных, где я создал таблицу для хранения данных
Есть страница test.php приема данных и размещения их в базе данных (вот вырезка кода из этой страницы):
Код<?php......
......$temp = $_GET["tr"];// получение значения влажность$hum = $_GET["h"];
//устанавливаем подключение к MySQL$connect = mysql_connect($dbhost, $dbuser, $dbpass);// проверяем состояние подключенияif(! $connect ){ die('Could not connect: ' . mysql_error());}// Выбираем базу данныхmysql_select_db ($dbname, $connect);
//Отправляем данные в таблицу// Prepare the SQL statement $SQL = "INSERT INTO table1 (date_time, sensor_temp, sensor_humidity, client_ip) VALUES (NOW(),'$temp', '$hum', '$client_ip')";
..........
.......
?>
При обращении к странице http://mysuite.hol.es/test.php с значениями для переменных, эти значения заносятся в таблицу базы данных.
Это проверено, все работает, таблица при каждом запросе заполняется данными
У меня не получается, с использованием Вебклиента. При вставке вебклиента вставляется похожее на вебсервер, и при настройках пишет страница вебсервера Нет возможности ввести адрес хоста типа http://mysuite.hol.es
Пробовал вычислить IP сайта, но по этому IP на сайт не заходит, а выдается страница хостера с ошибкой.... oshibka_404
Например, на хосте http://mysuite.hol.es у меня есть база данных, где я создал таблицу для хранения данных
Есть страница test.php приема данных и размещения их в базе данных (вот вырезка кода из этой страницы):
Код<?php......
......$temp = $_GET["tr"];// получение значения влажность$hum = $_GET["h"];
//устанавливаем подключение к MySQL$connect = mysql_connect($dbhost, $dbuser, $dbpass);// проверяем состояние подключенияif(! $connect ){ die('Could not connect: ' . mysql_error());}// Выбираем базу данныхmysql_select_db ($dbname, $connect);
//Отправляем данные в таблицу// Prepare the SQL statement $SQL = "INSERT INTO table1 (date_time, sensor_temp, sensor_humidity, client_ip) VALUES (NOW(),'$temp', '$hum', '$client_ip')";
..........
.......
?>
При обращении к странице http://mysuite.hol.es/test.php с значениями для переменных, эти значения заносятся в таблицу базы данных.
Это проверено, все работает, таблица при каждом запросе заполняется данными
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- AlexRyzh
- Сержант
- Сообщения: 107
- Зарегистрирован: 22 дек 2015, 11:06
- Откуда: Мелитополь
- Контактная информация:
Первая разработка в программе (для теплицы, гроубокса)
Вот тело страницы
У меня есть скетч (я ранее делал, до изучения ФЛПрог), который работает, и данные сохраняются в таблице базы данных на сервере.
Вот фрагмент кода:
Код#include <SPI.h>#include <Ethernet.h>..........
.........
byte mac[] = { 0x54, 0x34, 0x41, 0x30, 0x30, 0x31 };
EthernetClient client;char server[] = "*******.hol.es"; // имя вашего сервера www.arduino.ru .............. ............. ............... if (client.connect(server, 80)) {
client.print( "GET /test.php?tr="); client.print( tr ); client.print("&h="); client.print( h ); client.println( " HTTP/1.1"); client.print( "Host: " ); client.println(server); client.println( "Connection: close" ); client.println(); client.println(); ..............
.................}
Что нужно сделать, чтоб происходило подобное как в этом скетче?
Почему в Вебклиенте нельзя ввести адрес типа http//....?
Но я ничего не смогу отправить серверу, пока не смогу указать адрес, а не IP.У меня есть скетч (я ранее делал, до изучения ФЛПрог), который работает, и данные сохраняются в таблице базы данных на сервере.
Вот фрагмент кода:
Код#include <SPI.h>#include <Ethernet.h>..........
.........
byte mac[] = { 0x54, 0x34, 0x41, 0x30, 0x30, 0x31 };
EthernetClient client;char server[] = "*******.hol.es"; // имя вашего сервера www.arduino.ru .............. ............. ............... if (client.connect(server, 80)) {
client.print( "GET /test.php?tr="); client.print( tr ); client.print("&h="); client.print( h ); client.println( " HTTP/1.1"); client.print( "Host: " ); client.println(server); client.println( "Connection: close" ); client.println(); client.println(); ..............
.................}
Что нужно сделать, чтоб происходило подобное как в этом скетче?
Почему в Вебклиенте нельзя ввести адрес типа http//....?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- AlexRyzh
- Сержант
- Сообщения: 107
- Зарегистрирован: 22 дек 2015, 11:06
- Откуда: Мелитополь
- Контактная информация:
Первая разработка в программе (для теплицы, гроубокса)
В информации о блоке Вебклиент указано, что можно вводить адрес сайта строкой, а на самом деле нельзя
Что это может быть?
Что это может быть?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Первая разработка в программе (для теплицы, гроубокса)
Походи по похожим темам, что-то мне кажется что этот вопрос уже поднимался, и что будет исправлено в следующей версии, но может я и не прав.
- AlexRyzh
- Сержант
- Сообщения: 107
- Зарегистрирован: 22 дек 2015, 11:06
- Откуда: Мелитополь
- Контактная информация:
Первая разработка в программе (для теплицы, гроубокса)
Не нашел ничего похожего (искал по названию темы), одна тема есть с таким вопросом, но абсолютно без ответа.Олег писал(а):Походи по похожим темам, что-то мне кажется что этот вопрос уже поднимался, и что будет исправлено в следующей версии, но может я и не прав.
Обновил программу, там появилась возможность вставлять свои коды, думаю это должно решить проблему и с логарифмом и с отправкой в базу данных на сервер в сети.
Последний раз редактировалось AlexRyzh 28 янв 2016, 13:09, всего редактировалось 1 раз.
- AlexRyzh
- Сержант
- Сообщения: 107
- Зарегистрирован: 22 дек 2015, 11:06
- Откуда: Мелитополь
- Контактная информация:
Первая разработка в программе (для теплицы, гроубокса)
Удалось преодолеть проблему Вебклиента, и с использованием блока пользователя сделать отправку данных в базу данных на Вебсервер в сети.
Еще мне нужно получить логарифм числа (для вычистлени температуры с термистора). В программе это не реализовано.
Создал пользовательский блок с входом in_war и выходом out_war.
В LoopSection вписал out_war=log(in_war);
На вход подаю число? на выходе получаю логарифм этого числа.
До этого обновления приходилось танцы с бубном устраивать, да еще в скетче в одном месте править код.
Но пришлось 3 пользовательских блока делать, т.к. вычисления полученных данных с термистора происходят до вычисления логарифма, и после вычисления логарифма.
Но это уже нельзя назвать "Танцы с бубном".
Вот как это выглядит блоками
Еще мне нужно получить логарифм числа (для вычистлени температуры с термистора). В программе это не реализовано.
Создал пользовательский блок с входом in_war и выходом out_war.
В LoopSection вписал out_war=log(in_war);
На вход подаю число? на выходе получаю логарифм этого числа.
До этого обновления приходилось танцы с бубном устраивать, да еще в скетче в одном месте править код.
Но пришлось 3 пользовательских блока делать, т.к. вычисления полученных данных с термистора происходят до вычисления логарифма, и после вычисления логарифма.
Но это уже нельзя назвать "Танцы с бубном".
Вот как это выглядит блоками
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Первая разработка в программе (для теплицы, гроубокса)
AlexRyz
Может я что-то не понимаю зачем такие сложности с замерами температуры с термисторов.
В итоге все равно измеряем напряжение. А если использовать блок Scale и смаштобировать.
Можно взять две точки 0 (температура таиния льда) и 100 кипение воды.Я приблизительно использовал этот блок в своем проекте гроубокса для замера освещенности.
Добавлено (28.01.2016, 22:17)
---------------------------------------------
Да совсем забыл кое что мне очень понравилось в вашем проекте попробую реализовать в своем.
Может я что-то не понимаю зачем такие сложности с замерами температуры с термисторов.
В итоге все равно измеряем напряжение. А если использовать блок Scale и смаштобировать.
Можно взять две точки 0 (температура таиния льда) и 100 кипение воды.Я приблизительно использовал этот блок в своем проекте гроубокса для замера освещенности.
Добавлено (28.01.2016, 22:17)
---------------------------------------------
Да совсем забыл кое что мне очень понравилось в вашем проекте попробую реализовать в своем.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось VadKol 28 янв 2016, 22:18, всего редактировалось 1 раз.
VadKol
- AlexRyzh
- Сержант
- Сообщения: 107
- Зарегистрирован: 22 дек 2015, 11:06
- Откуда: Мелитополь
- Контактная информация:
Первая разработка в программе (для теплицы, гроубокса)
Дело в том, что я купил эти термисторы еще не зная какой лучше датчик купить. А так как они уже есть, то нужно снять с них температуру. А для вычисления температуры с термистора существует определенная формула. ВОт в этой формуле и есть логарифм. Но проблем абсолютно никаких, когда вычисления организовал в пользовательском блоке.AlexRyzh писал(а):Может я что-то не понимаю зачем такие сложности с замерами температуры с термисторов.
Измеряем не напряжение, а сопротивление, а масштабировать по сопротивлению не корректно, т.к. сопротивление от температуры имеет логарифмическую зависимость.AlexRyzh писал(а):В итоге все равно измеряем напряжение. А если использовать блок Scale и смаштобировать
Каким образом термистор можно использовать для замера освещенности????VadKol писал(а):Я приблизительно использовал этот блок в своем проекте гроубокса для замера освещенности.
Если Вы имеете ввиду фоторезистор, то возможно там и получится, если там нет логарифмической или другой параболической зависимости, т.е. зависимость прямолинейна.
Добавлено (28.01.2016, 22:59)
---------------------------------------------
В своем проекте Вы используете EEPROMT. Думаю врядли это оправдано безысходностью, ведь запись в эту память ограчинена. Записать в нее можно всего 100000 раз.
Думаю там можно переменными обойтись, которые будут помнить необходимые данные до определенного случая.
Первая разработка в программе (для теплицы, гроубокса)
AlexRyzh
Совершено с вами согласен зависимость у термистора нелинейная.
Но вопрос идет о тепоице или гроубоксе для выращивания рассады
в основном томатов ,как у меня. Тут интересны температуры +20-30 градусов. На этом участке зависимость у термистора почти линейна.
Насчет памяти вот тут хотелось бы уточнить. Одна запись происходит каждый раз при смене переменной? Вот с досветкой хотелось бы иметь такой алгоритм вклюение по датчику освещенности выключение по часам реального времени продолжительность дня все таки меняется . Проект почти готов не только программно
но и в "металле"остались " пуско-наладочные работы В выходные хочу занятся. Хотел писать переменные на SD но чтото не пошло на НАНО. Позтому часы как бы висят без дела
Совершено с вами согласен зависимость у термистора нелинейная.
Но вопрос идет о тепоице или гроубоксе для выращивания рассады
в основном томатов ,как у меня. Тут интересны температуры +20-30 градусов. На этом участке зависимость у термистора почти линейна.
Насчет памяти вот тут хотелось бы уточнить. Одна запись происходит каждый раз при смене переменной? Вот с досветкой хотелось бы иметь такой алгоритм вклюение по датчику освещенности выключение по часам реального времени продолжительность дня все таки меняется . Проект почти готов не только программно
но и в "металле"остались " пуско-наладочные работы В выходные хочу занятся. Хотел писать переменные на SD но чтото не пошло на НАНО. Позтому часы как бы висят без дела
У вас нет необходимых прав для просмотра вложений в этом сообщении.
VadKol
Первая разработка в программе (для теплицы, гроубокса)
Запись в ЕЕПРОМ производится по переднему фронту импульса на входе En.
- AlexRyzh
- Сержант
- Сообщения: 107
- Зарегистрирован: 22 дек 2015, 11:06
- Откуда: Мелитополь
- Контактная информация:
Первая разработка в программе (для теплицы, гроубокса)
Да, запись происходит каждый раз при смене переменной.VadKol писал(а):Насчет памяти вот тут хотелось бы уточнить. Одна запись происходит каждый раз при смене переменной?
Что такое память EEPROM?
Большинство МК AVR от Atmel содержат EEPROM (Electronically Erasable Read-Only Memory) — энергонезависимую память с довольно большим количеством циклов записи. Данные, записанные в эту память, не будут сбрасываться даже при отключении питания, что очень удобно, например, для хранения настроек или каких-то идентификационных данных.
EEPROM в AVR имеет ограниченное количество циклов записи — 100 000. Количество циклов чтения не ограничено.
Это удобно для хранения настроек, важных данных - но не переменных, которые меняются при каждом нажатии кнопки или изменения значений датчика....
Если использовать память для хранения переменных, то за неделю - две ресурс памяти ЕЕПРОМ закончится :'(
Не вижу смысла экономить пару килобайт кода, лучше знать реальную температуру. Тем более легко расчитывается по формуле. 1 раз создал пользовательский блок, потом через него хоть десяток термисторов подключай.VadKol писал(а):Тут интересны температуры +20-30 градусов. На этом участке зависимость у термистора почти линейна.
Тоже хотел так сделать, но еще на логическом уровне отказался от этой затеи. Т.к. датчик освещенности будет внутри, и при включении досветки ему не объяснишь, что это досветка. В общем он не сможет фильтровать где искуственный свет, а где естественный.VadKol писал(а):Вот с досветкой хотелось бы иметь такой алгоритм вклюение по датчику освещенности выключение по часам реального времени продолжительность дня все таки меняется
Хотя на перспективу можно будет попробовать реализовать возможность досветки в зависимости от освещенности. Для этого сделать для датчика миниатюрную теплицу и вынести за пределы основной теплицы. Освещенность в мини-тепличке будет примерно такая как и в основной, и тогда в зависимости день-вечер-утро или солнечно-сильнопасмурно можно автоматически включать и выключать досветку.
Но пока сделаю по часам, а там посмотрим.
Добавлено (29.01.2016, 13:07)
---------------------------------------------
Еще появилась такая идея: сделать своеобразный универсальный пульт управления на отдельной ардуине (например нано).
Думаю это будет актуально, если в распоряжении несколько автоматизированных процессов. Это может быть:
1. Теплица
2. Гроубокс
3. Умный дом
4. Уход за птицей или др.зверюшками
5. Др. автоматизированные процесы. Закрывание - открывание чего-то, включение-отключение в зависимости...
И на каждый процесс не ставить кнопки, экраны... а настройку и управление параметрами можно организовать с отдельного автономного блока на базе отдельной Ардуино, на которой будет экран и блок кнопок. На управляющем блоке можно выбрать управляемый блок, посмотреть необходимые данные, выставить необходимые параметры режима работы и передать в ведомую Ардуину через блютуз модуль или вай-фай...
Как-то так...
Последний раз редактировалось AlexRyzh 29 янв 2016, 11:47, всего редактировалось 1 раз.
Первая разработка в программе (для теплицы, гроубокса)
Нет, запись происходит по переднему фронту импульса на входе Enable, а переменная может перед этим меняться сколько угодно раз и записи не будет.AlexRyzh писал(а):Да, запись происходит каждый раз при смене переменной
- AlexRyzh
- Сержант
- Сообщения: 107
- Зарегистрирован: 22 дек 2015, 11:06
- Откуда: Мелитополь
- Контактная информация:
Первая разработка в программе (для теплицы, гроубокса)
Оно то да, но речь идет именно о счетчике записи в память.Олег писал(а):Нет, запись происходит по переднему фронту импульса на входе Enable, а переменная может перед этим меняться сколько угодно раз и записи не будет.
А зпись каждый раз при записи установленных параметров Добавлено (29.01.2016, 17:10)
---------------------------------------------
Если не часто менять эти параметры, то в принципе хватит на долго

У вас нет необходимых прав для просмотра вложений в этом сообщении.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей