Arduino Mega Server

Модератор: Alex

Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Чт ноя 01, 2018 8:47 am

Кому как не производителю знать
Уважаемый alexsis_76, мне нет никакого дела до того, как вы выпасаете своих тараканов в голове, но хочу заметить о вашей концептуальной ошибке в работе с информацией.

Конструктивным в данном случае можно назвать подход когда вы проверяете в гугле мои слова и, таки да, убеждаетесь, что проблема есть. Ваш подход «заползти под документацию производителя» конструктивным назвать никак нельзя.

Дело в том, что проблема с вачдогом существует объективно и ей нет совершенно никакого дела до ваших амбиций и ваших тараканов в голове. Надеюсь понятно объяснил. :)
alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: Arduino Mega Server

Сообщение alexsis_76 » Чт ноя 01, 2018 8:59 am

Ваш подход «заползти под документацию производителя» конструктивным назвать никак нельзя
вот это как раз первое что надо сделать при разработке устройства, а ваш подход " если что то не получается прочтите наконец инструкцию" в корне не верен
таки да, убеждаетесь, что проблема есть
изначально проблемы нет(чип работает без ошибок), ее создали ардуинщики и теперь с ней носятся как кошка с мясом, кстати там есть решение, так что вопрос снимается(другой вопрос сможете ли вы повторить это решение).
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Чт ноя 01, 2018 9:03 am

и теперь с ней носятся как кошка с мясом
М-да... Простых методов и быстрого излечения ждать не приходится... :)
alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: Arduino Mega Server

Сообщение alexsis_76 » Чт ноя 01, 2018 9:22 am

Кстати как там мой термостат, не глючит?
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Чт ноя 01, 2018 9:29 am

Кстати как там мой термостат, не глючит?
Я посмотрел исходники и на этом успокоился, до компиляции дело не дошло. Дело в том, что мне всегда было легче написать своё, чем разбираться в чужом коде. В этом смысле я понимаю тех, кто жалуется на сложность АМС.
ANARHIST1984
Сообщения: 135
Зарегистрирован: Вс янв 28, 2018 2:08 am
Откуда: Россия
Благодарил (а): 10 раз
Поблагодарили: 20 раз
Контактная информация:

Re: Arduino Mega Server

Сообщение ANARHIST1984 » Чт ноя 01, 2018 7:40 pm

alexsis_76 писал(а):
Чт ноя 01, 2018 8:59 am
Ваш подход «заползти под документацию производителя» конструктивным назвать никак нельзя
вот это как раз первое что надо сделать при разработке устройства, а ваш подход " если что то не получается прочтите наконец инструкцию" в корне не верен
таки да, убеждаетесь, что проблема есть
изначально проблемы нет(чип работает без ошибок), ее создали ардуинщики и теперь с ней носятся как кошка с мясом, кстати там есть решение, так что вопрос снимается(другой вопрос сможете ли вы повторить это решение).
Жгете)
Мега 2560 работает нормально и без вачдога.
Проблема можно решить программно и без перезагрузки. Главное код написать правильно.
В начале работы система зависала и при первом включении пускателя и более никак не реагировала. АМС спас ситуацию и после он начал глючить только раз в неделю. После того как я разобрался в проблеме и мы нашли решение, 2560 прекрасно работает.
Открою один секрет, это решение будет работать и на ЕСП и на МЕГЕ. Ошибка программная.
PS Алексей, тебе это известно не хуже меня))
EmSerg
Сообщения: 1
Зарегистрирован: Чт ноя 01, 2018 11:51 pm
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Arduino Mega Server

Сообщение EmSerg » Пт ноя 02, 2018 2:12 am

Здравствуйте,
читать все 279 страниц форума нет желания (прочёл первую и три последние) и хочу сказать следующее:
программист виноват всегда! и когда невнимательно изучит документацию на процессор,и когда ТЗ изменяют по нескольку раз до завершения проекта, и даже тогда, когда использует кривой компилятор (+ Arduino IDE только в простоте, поэтому и пользуемся).
1) WDT (сторожевая @) прекрасно справляется со своей задачей и никому ещё не вредила, а лишь помогала в надёжности, поэтому я всегда её использую. Ведь всего то и нужно:
#include <avr/wdt.h>
void setup(){
wdt_enable(WDTO_2S); // активировали таймер для сброса, 15 ms, 30 ms, 60 ms, 120 ms, 250 ms, 500 ms, 1s, 2s (ATMEGA328=+ 4s, 8s)
// WDT0_15MS; WDT0_30MS; WDT0_60MS; WDT0_120MS; WDT0_250MS; WDT0_500MS; WDT0_1S; WDT0_2S
}
void loop() {
while(1){
...
wdt_reset(); // говорим собаке "В Багдаде все спокойно", новый отсчет до сброса (как в фильме LOST:).
}}
____________________________________________________________
Установите ядро https://github.com/MCUdude и будет счастье.

2) В AMS (arduino_mega_server.ino) добавьте:
void loop() {
unsigned long time_start = millis();
....
unsigned long time_stop = millis();
time_tmp = time_stop-time_start;
if(time_tmp>2){ Serial.print(F("time_work: ")); Serial.println(time_tmp); }
}
и увидите сколько времени тратит мега на выполнение кода, который НИЧЕГО сверх естественного не делает. Поэтому при грамотном подходе всё это можно запустить на ATmega328 c частотой 8 MHz (на внутреннем резонаторе) и результат будет ОДИНАКОВЫМ! Как? см ниже:
3) Используемые библиотеки в Ардуино либо глючные, либо жирные, (поэтому они и обновляются на новые версии), а мы от них используем лишь менее половины заложенных возможностей, зато компилируются они полностью.
4) SD карта и LAN используют шину SPI, но попробуйте добавить в программу:
SPI.setClockDivider(SPI_CLOCK_DIV2); - результата нет! НИЧЕГО не выйдет, нужно править библиотеки, т.к. в библиотеке SD установлен режим SPI.setClockDivider(SPI_CLOCK_DIV128) - это самый медленный (HARDware) режим! А некоторые устанавливают ещё и медленные карты (write <10Мб/s), что также тормозит обмен. W5100 работает также медленно + греется и иногда (раз в неделю или месяц) "повисает" от направления ветра (поэтому спасает @).
Библиотеки для DS18B20 (Dallas) и DS1307(DS3231) также могут "повесить" мегу из-за случайного сбоя по шине (почти как UART, но у этого хотя бы есть время ожидания), а Wire и OneWire которые используют эти библиотеки - почему то не "вешают" мегу и размер у них меньше. При одинаковой архитектуре (пример blink) скомпилированный код для 2560, 328 и 8 в ардуиновской IDE будет отличаться размером.
5) С W5500 последняя версия AMS не работает (не компилируется), требуются исправления. Устранение мелких косяков типа: номер пина использует 2 байта и согласно документации http://ww1.microchip.com/downloads/en/D ... asheet.pdf стр.256: скорость обмена без ошибок составляет 250К и т.д. тоже помогают в надёжности и экономии ресурсов.
6) Как при обмене AMS данными каждые 0,5 сек она может рисовать на ПК 3D панорамы? Тогда о какой нагрузке CPU AMS идёт речь? О 160-250 мсек выполнения кода относительно какого времени? А может стоит почистить (поправить) код библиотек для удаления из них delay и мега будет показывать использование вместо 0 отрицательную загрузку? А если все страницы и скрипты храним на SD карте, тогда зачем нам много памяти в меге?
________
P.S.: Моя умная квартира реализована на CAN шине (независимость модулей надёжнее системы централизованного управления).
но данный проект AMS в плане "красочности" управления и контроля мне понравился, хотя супруге и детям больше, поэтому нужно ещё подумать, а нужен ли удалённый контроль за пределами своей квартиры для "большого брата" ? Верьте в свои силы - и всё получится! Best regards.
За это сообщение автора EmSerg поблагодарил:
serghei (Пт ноя 02, 2018 9:52 am)
Рейтинг: 1.16%
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Arduino Mega Server

Сообщение nick7zmail » Пт ноя 02, 2018 7:39 am

ANARHIST1984 писал(а):
Чт ноя 01, 2018 7:40 pm
Жгете)
Мега 2560 работает нормально и без вачдога.
Проблема можно решить программно и без перезагрузки. Главное код написать правильно.
В начале работы система зависала и при первом включении пускателя и более никак не реагировала. АМС спас ситуацию и после он начал глючить только раз в неделю. После того как я разобрался в проблеме и мы нашли решение, 2560 прекрасно работает.
Открою один секрет, это решение будет работать и на ЕСП и на МЕГЕ. Ошибка программная.
PS Алексей, тебе это известно не хуже меня))
Ткните что за ошибка то, чтоб другие люди тоже исправить могли? Не?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Пт ноя 02, 2018 10:01 am

С телефона , поэтому коротко. Спасибо за раз,яснения. Для Меги конечно библиотеки надо упрощать. W5500 с 017 версией и 1.8.5 отлично компилируется без правок кода. Работает намного шустрее. Страницы с графикой рисует браузер. Мега только подсовывает данные.
Карты памяти меньше 4 гигов уже не делают. И я держу на ней кучу тяжелых библиотек для графиков и информеров. А также логи событий и данные. За год до 730 файлов.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: Arduino Mega Server

Сообщение alexsis_76 » Пт ноя 02, 2018 10:34 am

использует кривой компилятор (+ Arduino IDE только в простоте, поэтому и пользуемся)
Arduino IDE это только оболочка, компилер используется фирменный AVRовский, только об этом не знает никто :)
Используемые библиотеки в Ардуино либо глючные, либо жирные, (поэтому они и обновляются на новые версии), а мы от них используем лишь менее половины заложенных возможностей, зато компилируются они полностью
так это легко исправить
Ардуино не запрещает напрямую использовать инструкции процессора и подключать свои библиотеки,только вот некому.
либо жирные, (поэтому они и обновляются на новые версии
нет, это потому что программисты не удосуживаются заглянуть в h и повыключать ненужное.
Ответить