FLProg
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика


Яндекс.Метрика
Четверг, 08.12.2016, 03:10
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 4 из 6«123456»
Модератор форума: support, Сергей 
Форум » Основной » Обсуждение программы FLProg (Не багтрекер, и не хотелки. Делимся опытом!!) » Первая разработка в программе (для теплицы, гроубокса) (Изучение работы программы на практике. Постепенное решение.)
Первая разработка в программе (для теплицы, гроубокса)
rw6cm Дата: Понедельник, 25.01.2016, 23:24 | Сообщение # 46
Генерал-майор
Группа: Проверенные
Сообщений: 478
Награды: 43
Репутация: 32
Статус: Offline
Цитата rw6cm ()
Если вечером будет время сделаю набросок.
Делая наброски понял, что будет лучше сделать полностью готовый проект.
Иначе будет многое не понятно и возникнет еще больше вопросов.
На днях выложу готовый макет из Унки, 44780 I2C, 1307, 4 кнопки, и шилда на 4 реле.
с вариантом на "все случаи в жизни" )))


PC, E8400, 3.5Gb, Win7-32, ver.FLP(portable)

Сообщение отредактировал rw6cm - Понедельник, 25.01.2016, 23:26
 
AlexRyzh Дата: Четверг, 28.01.2016, 00:04 | Сообщение # 47
Лейтенант
Группа: Проверенные
Сообщений: 107
Награды: 1
Репутация: 0
Статус: Offline
Поработал над созданием автоматики в теплице по программе минимум на 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. Еще буду доделывать сюда сбор информации и отправки в базу данных на сервер, чтоб можно было построить и посмотреть графики интересующих данных.
Прикрепления: greenbox5.flp(1431Kb)


Сообщение отредактировал AlexRyzh - Четверг, 28.01.2016, 00:12
 
AlexRyzh Дата: Четверг, 28.01.2016, 11:00 | Сообщение # 48
Лейтенант
Группа: Проверенные
Сообщений: 107
Награды: 1
Репутация: 0
Статус: Offline
Помогите с проблемой отправки данных в базу данных на Веб-сервер.
У меня не получается, с использованием Вебклиента.

При вставке вебклиента вставляется похожее на вебсервер, и при настройках пишет страница вебсервера

Нет возможности ввести адрес хоста типа 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 с значениями для переменных, эти значения заносятся в таблицу базы данных.
Это проверено, все работает, таблица при каждом запросе заполняется данными
Прикрепления: 5002249.jpg(139Kb) · 8808782.jpg(89Kb)
 
AlexRyzh Дата: Четверг, 28.01.2016, 11:11 | Сообщение # 49
Лейтенант
Группа: Проверенные
Сообщений: 107
Награды: 1
Репутация: 0
Статус: Offline
Вот тело страницы 

Но я ничего не смогу отправить серверу, пока не смогу указать адрес, а не 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//....?
Прикрепления: 5375244.jpg(95Kb)
 
AlexRyzh Дата: Четверг, 28.01.2016, 11:18 | Сообщение # 50
Лейтенант
Группа: Проверенные
Сообщений: 107
Награды: 1
Репутация: 0
Статус: Offline
В информации о блоке Вебклиент указано, что можно вводить адрес сайта строкой, а на самом деле нельзя
Что это может быть?
Прикрепления: 1517095.jpg(99Kb)
 
Олег Дата: Четверг, 28.01.2016, 11:24 | Сообщение # 51
Гуру
Группа: Проверенные
Сообщений: 730
Награды: 20
Репутация: 15
Статус: Offline
Походи по похожим темам, что-то мне кажется что этот вопрос уже поднимался, и что будет исправлено в следующей версии, но может я и не прав.
 
AlexRyzh Дата: Четверг, 28.01.2016, 12:03 | Сообщение # 52
Лейтенант
Группа: Проверенные
Сообщений: 107
Награды: 1
Репутация: 0
Статус: Offline
Цитата Олег ()
Походи по похожим темам, что-то мне кажется что этот вопрос уже поднимался, и что будет исправлено в следующей версии, но может я и не прав.
Не нашел ничего похожего (искал по названию темы), одна тема есть с таким вопросом, но абсолютно без ответа.
Обновил программу, там появилась возможность вставлять свои коды, думаю это должно решить проблему и с логарифмом и с отправкой в базу данных на сервер в сети.


Сообщение отредактировал AlexRyzh - Четверг, 28.01.2016, 13:09
 
AlexRyzh Дата: Четверг, 28.01.2016, 18:45 | Сообщение # 53
Лейтенант
Группа: Проверенные
Сообщений: 107
Награды: 1
Репутация: 0
Статус: Offline
Удалось преодолеть проблему Вебклиента, и с использованием блока пользователя сделать отправку данных в базу данных на Вебсервер в сети.
Еще мне нужно получить логарифм числа (для вычистлени температуры с термистора). В программе это не реализовано.  
Создал пользовательский блок с входом in_war и выходом out_war. 
В LoopSection вписал out_war=log(in_war); 
На вход подаю число? на выходе получаю логарифм этого числа. 
До этого обновления приходилось танцы с бубном устраивать, да еще в скетче в одном месте править код. 
Но пришлось 3 пользовательских блока делать, т.к. вычисления полученных данных с термистора происходят до вычисления логарифма, и после вычисления логарифма.
Но это уже нельзя назвать "Танцы с бубном".
Вот как это выглядит блоками 
Прикрепления: 5651131.jpg(33Kb)
 
VadKol Дата: Четверг, 28.01.2016, 22:17 | Сообщение # 54
Сержант
Группа: Проверенные
Сообщений: 47
Награды: 2
Репутация: 0
Статус: Offline
AlexRyz

Может я что-то не понимаю зачем такие сложности с замерами температуры с термисторов.
В итоге все равно измеряем напряжение. А если использовать блок Scale и смаштобировать.
Можно взять две точки 0 (температура таиния льда) и 100 кипение воды.Я приблизительно использовал этот блок в своем проекте гроубокса для замера освещенности.


Добавлено (28.01.2016, 22:17)
---------------------------------------------
Да совсем забыл кое что мне  очень понравилось в вашем проекте попробую реализовать в своем.
Прикрепления: _2.0.flp(843Kb)


VadKol

Сообщение отредактировал VadKol - Четверг, 28.01.2016, 22:18
 
AlexRyzh Дата: Четверг, 28.01.2016, 22:59 | Сообщение # 55
Лейтенант
Группа: Проверенные
Сообщений: 107
Награды: 1
Репутация: 0
Статус: Offline
Цитата AlexRyzh ()
Может я что-то не понимаю зачем такие сложности с замерами температуры с термисторов.
Дело в том, что я купил эти термисторы еще не зная какой лучше датчик купить. А так как они уже есть, то нужно снять с них температуру. А для вычисления температуры с термистора существует определенная формула. ВОт в этой формуле и есть логарифм. Но проблем абсолютно никаких, когда вычисления организовал в пользовательском блоке.
Цитата AlexRyzh ()
В итоге все равно измеряем напряжение. А если использовать блок Scale и смаштобировать
Измеряем не напряжение, а сопротивление, а масштабировать по сопротивлению не корректно, т.к. сопротивление от температуры имеет логарифмическую зависимость.
Цитата VadKol ()
Я приблизительно использовал этот блок в своем проекте гроубокса для замера освещенности.
Каким образом термистор можно использовать для замера освещенности????
Если Вы имеете ввиду фоторезистор, то возможно там и получится, если там нет логарифмической или другой параболической зависимости, т.е. зависимость прямолинейна.

Добавлено (28.01.2016, 22:59)
---------------------------------------------
В своем проекте Вы используете EEPROMT. Думаю врядли это оправдано безысходностью, ведь запись в эту память ограчинена. Записать в нее можно всего 100000 раз.
Думаю там можно переменными обойтись, которые будут помнить необходимые данные до определенного случая.

 
VadKol Дата: Пятница, 29.01.2016, 10:29 | Сообщение # 56
Сержант
Группа: Проверенные
Сообщений: 47
Награды: 2
Репутация: 0
Статус: Offline
AlexRyzh

Совершено с вами согласен зависимость у термистора нелинейная.
Но вопрос идет о тепоице или гроубоксе для выращивания рассады
в основном томатов ,как у меня. Тут интересны температуры +20-30 градусов. На этом участке зависимость у термистора почти линейна.
Насчет памяти вот тут хотелось бы уточнить. Одна запись происходит каждый раз при смене переменной? Вот с досветкой хотелось бы иметь такой алгоритм вклюение по датчику освещенности выключение по часам реального времени продолжительность дня все таки меняется . Проект почти готов не только программно
но и в "металле"остались " пуско-наладочные работы В выходные хочу занятся. Хотел писать переменные на SD но чтото не пошло на НАНО. Позтому часы как бы висят без дела
Прикрепления: NTC_Temperature.pdf(142Kb)


VadKol
 
Олег Дата: Пятница, 29.01.2016, 10:44 | Сообщение # 57
Гуру
Группа: Проверенные
Сообщений: 730
Награды: 20
Репутация: 15
Статус: Offline
Запись в ЕЕПРОМ производится по переднему фронту импульса на входе En.
 
AlexRyzh Дата: Пятница, 29.01.2016, 13:07 | Сообщение # 58
Лейтенант
Группа: Проверенные
Сообщений: 107
Награды: 1
Репутация: 0
Статус: Offline
Цитата VadKol ()
Насчет памяти вот тут хотелось бы уточнить. Одна запись происходит каждый раз при смене переменной?
Да, запись происходит каждый раз при смене переменной.
Что такое память EEPROM?
Большинство МК AVR от Atmel содержат EEPROM (Electronically Erasable Read-Only Memory) — энергонезависимую память с довольно большим количеством циклов записи. Данные, записанные в эту память, не будут сбрасываться даже при отключении питания, что очень удобно, например, для хранения настроек или каких-то идентификационных данных.
EEPROM в AVR имеет ограниченное количество циклов записи — 100 000. Количество циклов чтения не ограничено.

Это удобно для хранения настроек, важных данных - но не переменных, которые меняются при каждом нажатии кнопки или изменения значений датчика....
Если использовать память для хранения переменных, то за неделю - две ресурс памяти ЕЕПРОМ закончится :'(
Цитата VadKol ()
Тут интересны температуры +20-30 градусов. На этом участке зависимость у термистора почти линейна.
Не вижу смысла экономить пару килобайт кода, лучше знать реальную температуру. Тем более легко расчитывается по формуле. 1 раз создал пользовательский блок, потом через него хоть десяток термисторов подключай.
Цитата VadKol ()
Вот с досветкой хотелось бы иметь такой алгоритм вклюение по датчику освещенности выключение по часам реального времени продолжительность дня все таки меняется
Тоже хотел так сделать, но еще на логическом уровне отказался от этой затеи. Т.к. датчик освещенности будет внутри, и при включении досветки ему не объяснишь, что это досветка. В общем он не сможет фильтровать где искуственный свет, а где естественный.
Хотя на перспективу можно будет попробовать реализовать возможность досветки в зависимости от освещенности. Для этого сделать для датчика миниатюрную теплицу и вынести за пределы основной теплицы. Освещенность в мини-тепличке будет примерно такая как и в основной, и тогда в зависимости день-вечер-утро или солнечно-сильнопасмурно можно автоматически включать и выключать досветку.
Но пока сделаю по часам, а там посмотрим.

Добавлено (29.01.2016, 13:07)
---------------------------------------------
Еще появилась такая идея: сделать своеобразный универсальный пульт управления на отдельной ардуине (например нано). 
Думаю это будет актуально, если в распоряжении несколько автоматизированных процессов. Это может быть:
1. Теплица
2. Гроубокс
3. Умный дом
4. Уход за птицей или др.зверюшками
5. Др. автоматизированные процесы. Закрывание - открывание чего-то, включение-отключение в зависимости...

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

Сообщение отредактировал AlexRyzh - Пятница, 29.01.2016, 11:47
 
Олег Дата: Пятница, 29.01.2016, 14:23 | Сообщение # 59
Гуру
Группа: Проверенные
Сообщений: 730
Награды: 20
Репутация: 15
Статус: Offline
Цитата AlexRyzh ()
Да, запись происходит каждый раз при смене переменной
Нет, запись происходит  по переднему фронту импульса на входе Enable, а переменная может перед этим меняться сколько угодно раз и записи не будет.
 
AlexRyzh Дата: Пятница, 29.01.2016, 17:10 | Сообщение # 60
Лейтенант
Группа: Проверенные
Сообщений: 107
Награды: 1
Репутация: 0
Статус: Offline
Цитата Олег ()
Нет, запись происходит  по переднему фронту импульса на входе Enable, а переменная может перед этим меняться сколько угодно раз и записи не будет.
Оно то да, но речь идет именно о счетчике записи в память. 
А зпись каждый раз при записи установленных параметров

Добавлено (29.01.2016, 17:10)
---------------------------------------------
Если не часто менять эти параметры, то в принципе хватит на долго smile

Прикрепления: 2013848.jpg(21Kb)
 
Форум » Основной » Обсуждение программы FLProg (Не багтрекер, и не хотелки. Делимся опытом!!) » Первая разработка в программе (для теплицы, гроубокса) (Изучение работы программы на практике. Постепенное решение.)
Страница 4 из 6«123456»
Поиск:

FLProg © 2016
Яндекс.Метрика