Arduino Mega Server

Модератор: Alex

Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Arduino Mega Server

Сообщение nick7zmail » Сб июн 04, 2016 12:05 pm

Небольшой вопрос по AMS...
Если я использую delay() в функциях - "подвисает" весь вэб-интерфейс на время delay-я. Есть идеи, как этого избежать?
Как можно заменить delay? Может как то таймер прикрутить?

Короче нужно по запросу вызвать одну функцию, задержка 10 сек, потом вторую функцию...
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Сб июн 04, 2016 3:58 pm

Небольшой вопрос по AMS...
Если я использую delay() в функциях - "подвисает" весь вэб-интерфейс на время delay-я. Есть идеи, как этого избежать?
Как можно заменить delay? Может как то таймер прикрутить?

Короче нужно по запросу вызвать одну функцию, задержка 10 сек, потом вторую функцию...
Ну вы (блин) даёте. Какой delay? Забудьте и никогда не вспоминайте — у нас же не многозадачная система. Все задержки только через таймеры.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Arduino Mega Server

Сообщение nick7zmail » Сб июн 04, 2016 4:03 pm

Alex писал(а):Ну вы (блин) даёте. Какой delay? Забудьте и никогда не вспоминайте — у нас же не многозадачная система. Все задержки только через таймеры.
Да я понимаю что через таймеры...но не пойму как именно...
Как вот для такой задачи, инициирующейся по вызову из браузера прикрутить таймер 10 сек?

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

setrel(0, 1);
<пауза в 10 сек>
setrel(0, 0);
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Сб июн 04, 2016 4:13 pm

Да я понимаю что через таймеры...но не пойму как именно...
Как вот для такой задачи, инициирующейся по вызову из браузера прикрутить таймер 10 сек?
Ну... запоминаете время и проверяете, не превысило ли текущее время величину таймера. Если превысило — выполняете действие и обнуляете таймер. И всё, никаких проблем.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Arduino Mega Server

Сообщение nick7zmail » Сб июн 04, 2016 4:19 pm

Alex писал(а): Ну... запоминаете время и проверяете, не превысило ли текущее время величину таймера. Если превысило — выполняете действие и обнуляете таймер. И всё, никаких проблем.
Действительно)) спасибо. Буду вечером пробовать.

Отправлено с моего Xperia Z через Tapatalk
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Пт июн 10, 2016 12:46 pm

Alex писал(а):Я не знаю, как вы это воспринимаете, но по моему это успех! Все огрехи это не более, чем детские болезни, главное, что беспроводной протокол работает.
Чтобы успех был полным, осталось разобраться как подключить 254 сенсора к одному АМС ))) учитывая ,что в одна труба обслуживает 6 сенсоров. Мне показали и объяснили что надо дописать на стороне АМС для вывода трех температур. На стороне сенсора разбираюсь самостоятельно. В коде нашел такие строки

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

#ifdef NRF24_FEATURE

#include <SPI.h>
#include "RF24.h"

// nRF24L01 modul configuration
RF24 radio(8, 9); // CE, CSN pins
byte addresses[][6] = {"1Node", "2Node"};

Получается в последней строчке перечислены названия 6-ти сенсоров? А как тогда АМС будет знать какая температура откуда
свалилась?

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

void saveResult() {
  switch (rxCommand) {
    case DTA_NAME:      sendGetName.result     = rxData; break;
    case DTA_ID:        sendGetId.result       = rxData; break;
    case DTA_ADDR:      sendGetAddress.result  = rxData; break;
    case DTA_FREE_MEM:  sendGetFreeMem.result  = rxData; break;
    case DTA_BATTERY:   sendGetBattery.result  = rxData; break;
    case DTA_SELF_TEMP: sendGetSelfTemp.result = rxData; break;
    case DTA_HEALTH:    sendGetHealth.result   = rxData; break;
    case DTA_TEMP_1:    sendGetTemp1.result    = rxData; break;
    //case DTA_TEMP_2:    sendGetTemp2.result    = rxData; break;
    //case DTA_TEMP_3:    sendGetTemp3.result    = rxData; break;
  }
}

 
PS Подключил все таки две ардуины к МД. Картина впечатляет!! Особенно график нагрева бойлера за ночь ( и куда деньги уходят....)))
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
udjin06
Сообщения: 10
Зарегистрирован: Вт ноя 03, 2015 11:17 pm
Откуда: Казань
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: Arduino Mega Server

Сообщение udjin06 » Пт июн 10, 2016 1:27 pm

Всем добрый день!
Давно слежу за проектом, уже прикупил оборудование, тестирую.
Имею MD на RPi2, несколько датчиков по схеме MySensors подключил через шлюз.
На AMS давно посматриваю, вот RF24 прикрутили, и возникли предложения:
1. Возможно, имеет смысл использовать наработки MySensors, проект известный, датчики успешно стоят и работают.
Нужно как-то прикрутить шлюз MySensors к AMS и чтобы данные получала уже AMS.
В этом случае расширится круг применения AMS, особенно если реализовывать гибкую систему с возможностью добавления/удаления датчиков.

2. В последней версии MySensors для EthernetGate UNO+W5100 используется SoftSPI (активируется в настройках MyConfig.h).
SOFT_SPI_MISO_PIN = 16;
SOFT_SPI_MOSI_PIN = 15;
SOFT_SPI_SCK_PIN = 14;
Возможно, для связки DUE+W5100 вместо пайки лучше использовать данный способ?
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Пт июн 10, 2016 2:22 pm

С MySensors не сталкивался, но без паечтное решение заманчиво.У меня МД как бы работает только ночью ,днем комп занят другим.Еще столкнулся с недостатком памяти в про-мини.Хочется чтобы сенсор полностью был автономным и обслуживал одно
устройство. Стек занимает половину памяти.Для основной проги места впритык. Оплатил ЕСР 32 и 8266. Посмотрим,что будет проще и дешевле.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Пт июн 10, 2016 4:02 pm

Чтобы успех был полным, осталось разобраться как подключить 254 сенсора к одному АМС ))) учитывая ,что в одна труба обслуживает 6 сенсоров.
Я думаю, что вы всё перепутали. Это один модуль поддерживает 6 труб, а сенсоров в трубе может быть хоть тысяча. Там проблема с коллизиями, но на это есть помехоустойчивый протокол.

Получается в последней строчке перечислены названия 6-ти сенсоров? А как тогда АМС будет знать какая температура откуда
свалилась?
В протоколе есть место для номера датчика, который автоматически генерируется при первом включении и может быть изменён, в том числе и дистанционно. Остаётся только дописать код, который будет реагировать только на нужный номер.

1. Возможно, имеет смысл использовать наработки MySensors, проект известный, датчики успешно стоят и работают.
Это вопрос первого энтузиаста, которому это будет интересно. Делается за полчаса. И оформляется как ещё один модуль.
Возможно, для связки DUE+W5100 вместо пайки лучше использовать данный способ?
В пайке нет ничего страшного, а этот метод неизвестно ещё работает или нет.
Еще столкнулся с недостатком памяти в про-мини.Хочется чтобы сенсор полностью был автономным и обслуживал одно
устройство. Стек занимает половину памяти.Для основной проги места впритык.
Стек занимает 10 килобайт, 20 свободно. На мой взгляд это приемлемая плата за помехоустойчивость и автоматическую работу. Может быть найдётся тот, кто оптимизирует код.
Оплатил ЕСР 32 и 8266. Посмотрим,что будет проще и дешевле.
ESP это монстр и уделывает все остальные варианты одной левой, только пинов 8266 маловато и в варианте с АМС нет сберегающего режима. Кстати, АМС для ESP можно скрестить с nRF24 — получится очень интересное устройство.
udjin06
Сообщения: 10
Зарегистрирован: Вт ноя 03, 2015 11:17 pm
Откуда: Казань
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: Arduino Mega Server

Сообщение udjin06 » Пт июн 10, 2016 7:57 pm

В пайке нет ничего страшного, а этот метод неизвестно ещё работает или нет.
Делал Ethernet gate использовал именно такую связку SoftSPI
https://www.mysensors.org/build/ethernet_gateway
Здесь рекомендуют использовать связку Arduino (любой) + W5100 + nRF24 (SoftSPI), т.к. "The W5100 ethernet module has problems sharing SPI with radio".
Судя по файлам в Mysensors они используют библиотеку DigitalIO https://github.com/greiman/DigitalIO, но глубже копать пока мозгов не хватает.
Также у них есть гейт ESP8266 + nRF24
Ответить