Страница 174 из 326
Re: Arduino Mega Server
Добавлено: Сб окт 22, 2016 7:23 pm
Alex
Я так понимаю для нормальной работы AMS с MDM мне не нужно включать тандемный режим? Достаточно раскоментировать строку "//#define MAJORDOMO_FEATURE"?
Забудьте про тандемный режим, это пережиток прошлого, в 0.16 версии его уже нет.
Эти файлы отличаются чем-то существенным от тех, которые идут в архиве microSD.zip? И с чем удобней и проще работать, с исходниками или архивом?
Исходники для изменения и отправки на сервер. Содержимое microSD.zip для первоначальной записи на карту.
Re: Arduino Mega Server
Добавлено: Ср окт 26, 2016 7:58 pm
Allar
что не так делаю?
1970-01-01 00:00:07 Modul Temperature...
1970-01-01 00:00:07 Parasite power OFF
1970-01-01 00:00:07 Found 0 devices
1970-01-01 00:00:07 #0: 0 0 0 0 0 0 0 tempSTR
1970-01-01 00:00:07 #1: 0 0 0 0 0 0 0 tempHOM
1970-01-01 00:00:07 #2: 0 0 0 0 0 0 0 tempWRM
1970-01-01 00:00:07 started
1970-01-01 00:00:07 Modul nooLite... started
1970-01-01 00:00:07 GLOBAL Init DONE (7s)
почему Parasite power
OFF ?
*** Сообщение запрещено. Сообщение похоже на спам. ***
Re: Arduino Mega Server
Добавлено: Пт окт 28, 2016 10:16 pm
cahek2202
Добрый вечер! В скетче сенсора обнаружил небольшой недочет. В данной реализации температура не будет передаваться на сервер если дельта температуры за исходный промежуток времени не превышает 0,5 градуса (то есть отправил сенсор на сервер показание 27,5 градуса, следующее измерение дает значение 27,1 градуса, статус "отправка не требуется" и он это значение сохраняет в переменную temp1Back, и следующее значение например, 26,7 градуса, от начального показания разница составляет уже 0,8 градуса и отправка на сервер нужна, но скетч считает разницу 0,4 градуса и отправки не происходит. Опытным путем у меня вышло нерегистрируемое изменение температуры до 4 градусов.
Если нужно - могу выложить свой скетч, но я его подправил под себя немного, и выглядит он несколько топорно, опыта еще маловато, по ходу дела изучаю...
Если не сложно - подскажите что значат вот эти символы "->" и "*" вот в этой части кода например:
Код: Выделить всё
void makePacket(struct Sender *p, byte tpe, byte cmd, byte dest, String pwd, String dta) {
// sender
if (p->required) {p->active = true; p->success = false;}
else {p->active = false; p->success = true;}
p->command = cmd;
p->timer = millis();
byte type;
if (p->type) {type = p->type;}
else {type = tpe;}
не могу понять что значат вот эти строки "struct Sender *p" и "p->required". Подскажите, пожалуйста, что это значит или ткните где почитать можно, гугл символы не воспринимает)
Re: Arduino Mega Server
Добавлено: Пт окт 28, 2016 10:29 pm
serghei
Обязательно выкладывайте!!! У меня ситуация еще хуже - при старте температура передается сразу , а по мере быстрого прогрева бойлера в сериале вижу алармы, но АМС их не обрабатывает. Температура так и стоит , как при старте. Вообще хочется ,чтобы передавалась тупо каждый настраиваемый промежуток времени ( ну хотя бы раз в минуту или пять). Интересно смотреть за нагревом в двух баках одного бойлера.)))
Re: Arduino Mega Server
Добавлено: Пт окт 28, 2016 10:34 pm
Alex
В данной реализации температура не будет передаваться на сервер если дельта температуры за исходный промежуток времени не превышает 0,5 градуса
Это сделано специально, чтобы и за температурой можно было следить и не загружать эфир постоянными посылками. И эти параметры можно изменять в зависимости от вашей задачи.
Если не сложно - подскажите что значат вот эти символы "->" и "*" вот в этой части кода например:
не могу понять что значат вот эти строки "struct Sender *p" и "p->required". Подскажите, пожалуйста, что это значит или ткните где почитать можно, гугл символы не воспринимает)
Это нужно целую лекцию читать и не одну. Если коротко, то
p->active = true;
Значит присвоить свойству active объекта p значение true.
“*” - это большая тема про сылочные типы и указатели — смотрите в поиске — статей огромное количество в Интернет.
Re: Arduino Mega Server
Добавлено: Пт окт 28, 2016 10:45 pm
cahek2202
Alex писал(а):В данной реализации температура не будет передаваться на сервер если дельта температуры за исходный промежуток времени не превышает 0,5 градуса
Это сделано специально, чтобы и за температурой можно было следить и не загружать эфир постоянными посылками. И эти параметры можно изменять в зависимости от вашей задачи.
Я описание читал, и логику работы понял, но в данном скетче она не соответствует описанию. В данном случае получается что если на сервер отправил температуру например 27,5 градуса, а последующие, скажем пять измерений имели такие значения 27,1; 26,8; 26,4; 26,1; 25,7. То на сервере так и останется температура 27,5 градуса. Хотя изменение температуры составило уже 1,8 градуса. Суть в том что temp1Back=temp1 выполняется на каждом цикле измерения температуры, а по факту необходимо это действие выполнять только при отправлении данных о температуре на сервер.
я это вот так у себя реализовал:
Код: Выделить всё
case 0:
temp1 = getTemperature(0);
#ifdef NRF24_FEATURE
if (temp1 == TEMP_NOT_PRESENT) {temp1NeedSend = NEED_SEND_NOT_PRESENT;}
else if (temp1 == TEMP_NOT_DEFINED) {temp1NeedSend = NO_NEED_SEND;}
else if (temp1 == TEMP_REMOVED) {temp1NeedSend = NEED_SEND_REMOVED;}
else if (temp1 == TEMP_ERROR) {temp1NeedSend = NEED_SEND_ERROR;}
else {
if (temp1Back != TEMP_NOT_DEFINED) {
float t1 = temp1 - temp1Back;
if (abs(t1) > 0.5) {temp1NeedSend = NEED_SEND_TEMP; temp1Back = temp1;}
if (temp1 - temp1Back > 3) {temp1NeedSend = NEED_SEND_ALARM_UP; }
if (temp1Back - temp1 > 3) {temp1NeedSend = NEED_SEND_ALARM_DOWN;}
} else {
temp1Back = temp1;
}
} // else
#endif // NRF24_FEATURE
break;
Re: Arduino Mega Server
Добавлено: Пт окт 28, 2016 10:50 pm
Alex
Я описание читал, и логику работы понял, но в данном скетче она не соответствует описанию. В данном случае получается что если на сервер отправил температуру например 27,5 градуса, а последующие, скажем пять измерений имели такие значения 27,1; 26,8; 26,4; 26,1; 25,7. То на сервере так и останется температура 27,5 градуса. Хотя изменение температуры составило уже 1,8 градуса. Суть в том что temp1Back=temp1 выполняется на каждом цикле измерения температуры, а по факту необходимо это действие выполнять только при отправлении данных о температуре на сервер.
Вполне возможно. Когда я буду заниматься этим кодом - обращу внимание на этот момент. А пока кто-нибудь может проверить ваше решение и подтвердить его работоспособность.
Re: Arduino Mega Server
Добавлено: Пт окт 28, 2016 10:57 pm
cahek2202
serghei писал(а):Обязательно выкладывайте!!!
https://drive.google.com/file/d/0B6zA4V ... sp=sharing
здесь архив со скетчем для сенсора. Из изменений - на сенсоре 3 датчика температуры, на начальной стадии попытка подружить его с датчиком DHT. Так же по 1-wire добавил обязательную отправку температуры раз в 5 минут с последней отправки данных (если в течении 5 минут данные отправляются по условию изменения температуры на 0,5 градуса, счетчик сбрасывается и начинается новый отсчет). На этих выходных в планах разобраться окончательно с DHT, подружить с реле, начать работу с адресами (возможно каналами) для стабильной работы нескольких модулей.
Re: Arduino Mega Server
Добавлено: Пт окт 28, 2016 10:57 pm
serghei
Обязательно проверю и отпишусь.
Re: Arduino Mega Server
Добавлено: Пт окт 28, 2016 11:04 pm
cahek2202
serghei писал(а):при старте температура передается сразу
а можете свой вариант тоже показать? Пытался сделать первую передачу температуры сразу после старта сенсора, но внятного ничего не получилось, решил это оставить на потом, пока есть более насущные вопросы.