Помогите новичку!!!!

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Bonefolder
Сообщения: 207
Зарегистрирован: 30 мар 2017, 11:15
Откуда: г.Севастополь

Re: Помогите новичку!!!!

Сообщение Bonefolder » 28 авг 2017, 04:08

У меня этих датчиков нет. Но читал, что они имеют проблему с зависанием, при слишком частом опросе. Увеличьте период опроса, скажем, до 20-30 сек.
Задержка в 1 секунду.... зависит от того, что вы прописали в настройках. По вашему описанию похоже на то, мега ждёт ответа от сервера, недождавшись - выполняет ценарий по умолчанию.

Andry
Сообщения: 94
Зарегистрирован: 23 мар 2017, 10:41

Re: Помогите новичку!!!!

Сообщение Andry » 29 авг 2017, 08:13

Я так понял нужно правильно настроить сервер.У меня MajorDoMo,и я настроил виртуальные кнопки они работают при нажатии входов,значит сервер работает в смысле выполняет сценарий.Я так понял задержки не должно быть,по крайний мере заметной?

Andrey_B
Администратор
Сообщения: 3685
Зарегистрирован: 18 мар 2011, 12:06

Re: Помогите новичку!!!!

Сообщение Andrey_B » 29 авг 2017, 12:34

Никакой задержки быть не должно.

Andry
Сообщения: 94
Зарегистрирован: 23 мар 2017, 10:41

Re: Помогите новичку!!!!

Сообщение Andry » 29 авг 2017, 13:01

Понял,спасибо.

Andry
Сообщения: 94
Зарегистрирован: 23 мар 2017, 10:41

Re: Помогите новичку!!!!

Сообщение Andry » 08 сен 2017, 01:32

Тут такое дело выше я писал и скидывал фото графика скающего при роботе датчика DHT22,случайно нашол причину.Стояла галочка srv loop .Галку убрал скакание прикратилось .Megad-ID ничего не прописано.Как может влиять на датчик галочка srv loop?Теперь датчик работает нормально и график не скачет в 0.Прошивка fw: 3.55.
График 2.png
График 2
График 2.png (160.13 КБ) 1145 просмотров
На фото видно с включеной и отключенной галкой,так случайно нашол.

Andrey_B
Администратор
Сообщения: 3685
Зарегистрирован: 18 мар 2011, 12:06

Re: Помогите новичку!!!!

Сообщение Andrey_B » 08 сен 2017, 18:54

Это все потому, что вы слишком часто опрашиваете датчик. Поясню.
DHT22 нельзя опрашивать чаще, чем раз в 0,4 секунды. Иначе в ответ он вернет нули.
Функция srv-loop тоже опрашивает порты. Так вот если попытаться запросить состояние порта внешним запросом сразу же после работы srv-loop, когда 0,4 секунды еще не прошло, датчик вернет 0.
Но кое-что исправлено в версии 3.57beta1. Попробуйте.
http://ab-log.ru/files/File/ip_manager3 ... a1-hex.zip

Andry
Сообщения: 94
Зарегистрирован: 23 мар 2017, 10:41

Re: Помогите новичку!!!!

Сообщение Andry » 09 сен 2017, 00:41

Спасибо,большое .Протестирую отпишусь,тяжело начинающему.

Andry
Сообщения: 94
Зарегистрирован: 23 мар 2017, 10:41

Re: Помогите новичку!!!!

Сообщение Andry » 09 сен 2017, 01:03

Прошил тестирую,но всё равно при интенсивном опросе з браузера иногда проскакивают ноли,надеюсь с серной программы етого небудет. Галку поставил.Есть ли возможность сохранения настроек? При прошивке наново всё выставлял.

Andrey_B
Администратор
Сообщения: 3685
Зарегистрирован: 18 мар 2011, 12:06

Re: Помогите новичку!!!!

Сообщение Andrey_B » 09 сен 2017, 09:59

Что вы понимаете под "интенсивном опросом"? Как я писал выше, попытка считать показания чаще, чем раз в полсекунды (точнее 0,4 для AM2303, значение получено экспериментально и может отличаться для других вариантов/экземпляров) приводит к сбою. Это не вина прошивки. Это особенность работы датчика DHT22.
Хуже того. Если вы откроете документацию на AM2302/AM2303, то прочитаете вот это.
"Read the sensor minimum time interval for the 2S; read interval is less than 2S, may cause the temperature and humidity are not allowed or communication is unsuccessful, etc."
То есть производитель вообще рекомендует опрашивать датчик не чаще, чем раз в 2 секунды! Неудивительно, что при интенсивном опросе датчик выдает некорректные значения.

Все, что может сделать прошивка контроллера, это попытаться кешировать значения в случае неприличного поведения пользователя. Возможно для MegaD-2561.
Но учитывая тот факт, что датчики DHT22 постепенно уступают более точным и быстрым I2C собратьям, не знаю, насколько это действительно необходимо.

Andry
Сообщения: 94
Зарегистрирован: 23 мар 2017, 10:41

Re: Помогите новичку!!!!

Сообщение Andry » 10 сен 2017, 11:41

Ну я думаю необходимо.Во первых всего один порт задействуется ,второе можно сразу увидеть показания без каких либо серверов.Трете я читал вы писали ,что точность у этого датчика приемлемая,и достаточно для большинства задач.А можно зделать на уровне прошивки опрос, например 2сек,или как вы писали зделать буфер или при показании (совпадении)двух нулей влажность -температура оно выдавало предыдущий вариант?Написал наверное сумбурно извините я не программист.Стесняюсь спросить а можно зделать подержку ходовых датчиков по шине I2C,чтобы сразу видеть показания.И можно снимать показания поствив датчик HTU21D или BMP180 без костылей в виде драйвера?Просто мне как не программисту,тяжело и так отстроить сервер,а тут было б удобно поддержка еще пары датчиков прям с коробки.

Andrey_B
Администратор
Сообщения: 3685
Зарегистрирован: 18 мар 2011, 12:06

Re: Помогите новичку!!!!

Сообщение Andrey_B » 10 сен 2017, 12:03

Кеширование значений для DHT22 можно сделать только в прошивке для MegaD-2561. Но снова вопрос целесообразности. DHT22 в исполнении AM2302 - недостаточно надежный датчик даже для домашнего применения. Имеет свойство подвисать. Поведение разнится от экземпляра к экземпляру. DHT22 в исполнении AM2303, кажется, лишен этих недостатков, но его цена, которая в текущий момент находится в районе 400-500 руб не кажется разумной. В этом смысле куда проще использовать HTU21D, который дешевле, быстрее, надежнее.
Вывод показаний ходовых I2C-датчиков без внешних драйверов уже реализован в MegaD-2561. В 328-й сделать это нельзя.
По поводу работы через "один порт". Да, I2C-датчикам нужно 2 порта: SCL и SDA. Но особенность реализации поддержки I2C-датчиков в контроллерах MegaD такова, что на все датчики можно использовать только один SCL порт. Это означает, что количество необходимых портов равно количеству датчиков + 1. Не слишком большая разница с DHT22. Правда? Более того, датчики с разными адресами можно вешать на один порт. А это значит, что один и тот же SDA-порт может быть использован для подключения HTU21D/Si7021, BME280, MAX44009, SSD1306 и т.д.

Andry
Сообщения: 94
Зарегистрирован: 23 мар 2017, 10:41

Re: Помогите новичку!!!!

Сообщение Andry » 10 сен 2017, 12:08

Ткните пожалуйста носом на схему MegaD-2561,если она есть? Судя по описанию MegaD-2561 заменить минимум две D328,оно даже более инетересно.D328 я так понял будет отходить понемногу и сразу наверное нужно прыгать на MegaD-2561?

Andrey_B
Администратор
Сообщения: 3685
Зарегистрирован: 18 мар 2011, 12:06

Re: Помогите новичку!!!!

Сообщение Andrey_B » 10 сен 2017, 12:14

Andry, схема фактически та же самая. Есть только нюанс с портами, которые используются для SPI-программирования. Они у atmega2561 другие.
MegaD-2561 заменяет даже больше, чем два MegaD-328, так как у нового контроллера в прошивке доступно 38 портов. Фактически портов еще больше, но они зарезервированы для внутреннего использования: подключение RTC, кнопка Erase EEPROM.

Andry
Сообщения: 94
Зарегистрирован: 23 мар 2017, 10:41

Re: Помогите новичку!!!!

Сообщение Andry » 10 сен 2017, 12:17

А готовой схемы нет?Просто я хочу попробовать розвести под себя печатку для лут,не трача времени на изучения даташита и лепить демоплатку на соплях угадуя порты.

Andry
Сообщения: 94
Зарегистрирован: 23 мар 2017, 10:41

Re: Помогите новичку!!!!

Сообщение Andry » 12 сен 2017, 17:58

Andrey_B писал(а):Andry, схема фактически та же самая. Есть только нюанс с портами, которые используются для SPI-программирования. Они у atmega2561 другие.
В смысле другие,не такие как в даташите? В даташите пины 11-SCK.12-MOSI.13-MISO и 20-ресет,что не так? Почал рисовать платку,буду использовать стандартный интернет шилд(вытяну с с контроллера D328 у меня на панельке)Подскажите по пинам 2561.Интересует на какие ножки 2561 садится INT и CS ENC28J60?И еще очиска EEPROM на каких ногах сидит.По остальных вроде понятно. RTC это часы?А на каких они пинах будут?

Andrey_B
Администратор
Сообщения: 3685
Зарегистрирован: 18 мар 2011, 12:06

Re: Помогите новичку!!!!

Сообщение Andrey_B » 12 сен 2017, 21:40

В отличие от atmega328 микроконтроллер atmega2561 программируется пинами 2 - PDI, 3 - PDO, 11 - SCK.
INT не используется, а CS на SS, пин 10.
EEPROM - 44
RTC - 34, 35

Andry
Сообщения: 94
Зарегистрирован: 23 мар 2017, 10:41

Re: Помогите новичку!!!!

Сообщение Andry » 12 сен 2017, 22:42

Большое спасиба,буду дальше делать.Уже щас понимаю что лутом очень тяжело будет зделать,очень всё плотно да и привязан я под габариты и интернет шилд.Хотелось бы так как у вас,по стандартным пинам вывести разъемы.Ну и мне много не надо одного будет достаточно чтобы перекрыть мой часный домик.Одно не понимаю а почему контролер 2561 так дорого стоит. унас в интернет магазинах 11-12 доларов :( .В китае дешевле только стрёмно,когда то много читал как там поделают микроконтроллеры или брак подсовывают.

Andry
Сообщения: 94
Зарегистрирован: 23 мар 2017, 10:41

Re: Помогите новичку!!!!

Сообщение Andry » 12 сен 2017, 22:50

Еще раз извините за глупые вопросы. просто поставлю стандартную колодку под SPI интерфейс,там MOSI ето 2 пин 2561?и MISO-3пин? Смотрю у вас пины 2 и 3 на 2561 выведены на колодку XP1-XP2 мне их выводить как у вас они потом будут задействуваны?Или ето только для программирования?. У меня старенький STK500 программатор вроде этот чип поддерживает.И пины 34 и 35 вроде у вас выведено на внутреннюю 16пиновую колодку,есть ли смысл од дельно выводить?Последний вопрос по SO и SI(ENC28J60). Если MOSI и MISO на других пина тогда и SO на 3 пин а SI на 2? И какие теперь порты на 12 и 13 пинах 2561?

Andrey_B
Администратор
Сообщения: 3685
Зарегистрирован: 18 мар 2011, 12:06

Re: Помогите новичку!!!!

Сообщение Andrey_B » 13 сен 2017, 09:13

Тормозной диск автомобиля стоит пару тысяч, в китае дешевле (если его не поведет сразу же после пары интенсивных торможений), но я лично хорошо понимаю, почему автомобиль стоит так дорого, особенно тот, что едет... На этом обсуждение экономических вопросов предлагаю отложить и сконцентрироваться на технических.
atmega2561 не использует MISO/MOSI для программирования. Вместо этого он использует TXDO/RXDO (PDO/PDI, SPI Serial Programming Data Otput/Input).
Откройте пожалуйста даташит на микроконтроллер. Например, разделы 13.3.5 и 30.8.1
Да, эти два порта (E0/E1) выведены на 34-пиновые разъемы из-за чего желательно отключать исполнительные модули в случае прошивки контроллера SPI-программатором (если на эти порты попадают выходы и они подключены к чему-то критическому; в момент прошивки программатором порты могут переключаться). Но учитывая конструкцию и расположение разъема для SPI-программирования в контроллере MegaD-2561, прошивка с подключенным исполнительным модулем крайне маловероятна.
По поводу подключения микроконтроллера к ENC28J60
CS - B0(10); SO - B3(13); SI - B2(12); SCK - B1(11)
Как делать - решать вам. Это же будет ваше устройство.

Andry
Сообщения: 94
Зарегистрирован: 23 мар 2017, 10:41

Re: Помогите новичку!!!!

Сообщение Andry » 13 сен 2017, 10:48

Спасибо за ответ.

Ответить