Не надо мне тыкать. Вы мне никто. Повторяю, не пишите мне. Наговорили уде достаточно для блокировки на любом другом форуме. Здесь к сожалению нет модерации.
Не надо мне тыкать. Вы мне никто. Повторяю, не пишите мне. Наговорили уде достаточно для блокировки на любом другом форуме. Здесь к сожалению нет модерации.
Если мне надо кого то найти я сам нахожу
Общепринятый формат общения на форумах - на ты. Если тебя не устраивает - твои проблемы. Насчёт адреса - только скажи, я сообщу, чтобы не утруждать тебя поисками ;)
Вообще не понимаю, чего ты взъелся - несвежее съел, наверное? Бывает, выпей активированного угля и всё пройдёт. Кстати, не поверишь - я тебя прекрасно понимаю: это очень обидно, когда твои труды начинают критиковать. Однако, мудрый человек примет критику как старт для дальнейшего саморазвития, другой - начнёт переводить стрелки вовне.
Заметь, всё, чего я просил - называть вещи своими именами, не более того. И кстати, тут впомнилось про Википедию - ты не поверишь, какой только чуши там нет, ибо каждый суслик может редактировать статьи. Кстати, статья, цитату из которой ты приводил, носит гордый шильдик "не проверена опытными участниками" ;) Впрочем, для тебя и это не авторитет, ипстественно.
Смотрю на твои посты - в целом грамотный парень, но тебя, по ходу, заносит временами. Учись принимать критику конструктивно, и всё будет зашибись.
Для тех кому не хватает возможности понять самому. Обращение на вы в данном контексте это не комплекс. Это прием русского языка для обозначения дистанции. Я общаюсь на ты лишь с людьми равными по интеллектуальному и культурному уровню, с остальными не общаюсь или общаюсь на "расстоянии".
в данной теме я писал для автора с нормальным проектом значение которого вы пытаетесь принизить доказывая всем, что никто кроме вас не в состоянии писать "крутые" программы. Я писал не для вас. Вас не исправить. У вас потребность что то кому то доказать, но именно доказывать не хватает интеллекта, поэтому опускаетесь до хамства. Мне вас жаль, но это уже я повторяюсь
сделайте усилие над собой. В следующий раз перед тем как что то писать, подумайте не над тем как круто вы будете выглядеть, а о том какую пользу это может представлять для того кому пишите. Шанс у вас есть. Верю
значение которого вы пытаетесь принизить доказывая всем, что никто кроме вас не в состоянии писать "крутые" программы.
Слушай, правдолюб: будь последователен, и покажи мне, плз, где я утверждал, что никто кроме меня не в состоянии писать "крутые" программы? Ты опять порешь чушь, пытаясь выглядеть не гопотой, которая угрожает физической расправой, а якобы культурным воспитанным мальчиком. И это, к слову, у тебя выходит крайне отвратительно.
Не надо приписывать мне слова, которых я никогда не произносил. Если ты этого усвоить не способен, а способен лишь на грязные передёргивания - мне тебя жаль.
Всем привет, столкнулся с проблемой подвисания шилда W5100, напруга стабильная 4,88-4,92 V. Три дня подряд после 8-12 часов работы. Контроллер работает. Что может быть?
Всем привет, столкнулся с проблемой подвисания шилда W5100, напруга стабильная 4,88-4,92 V. Три дня подряд после 8-12 часов работы. Контроллер работает. Что может быть?
По питанию точно проблем нет? Подвисает что именно? Я имею в виду - как вы понимаете, что подвис именно W5100? Возможно, проблема не в железе даже ;) В общем - дайте побольше вводных, и тогда будет полегче разобраться, думаю.
В общем - дайте побольше вводных, и тогда будет полегче разобраться, думаю.
Вначале думал что проблема в меге, создал в void(loop) мигание светодиода, когда железка перестает отвечать диод продолжает мигать, отсюда сделал вывод что подвисает w5100, питание пробовал менять измений нет.
Такая же проблема, как у uservasil, но только в другом проекте. Тоже используется шилд. Точнее перебпробовал на двух шилдах. На WL5100 и на ENC28J60. Второй тоже в виде шилда, только на Нану.
Я использовал в шлюзе MySensors. Тоже подвисает через 2-3 дня. Питание тут скорее всего не при чем, так как работало от упса через сетевой фильтр. По моим ощущениям, его задрюкивают другие устройства в сети. Так как все подключено через свитч, а устройств много >50, то блудняка в эфире много. Вот и не выдерживает Ethernet шилд.
Может кто подскажет что можно сделать. Или хоть как продиагностировать? Я даже не знаю какие еще симптомуы описать... Логов нет. Перестает пинговаться и все. Думаю повесить на него RTC часы и раз в сутки ребутать. Но наверно это не выход...
Такая же проблема, как у uservasil, но только в другом проекте. Тоже используется шилд. Точнее перебпробовал на двух шилдах. На WL5100 и на ENC28J60. Второй тоже в виде шилда, только на Нану.
Я использовал в шлюзе MySensors. Тоже подвисает через 2-3 дня. Питание тут скорее всего не при чем, так как работало от упса через сетевой фильтр. По моим ощущениям, его задрюкивают другие устройства в сети. Так как все подключено через свитч, а устройств много >50, то блудняка в эфире много. Вот и не выдерживает Ethernet шилд.
Может кто подскажет что можно сделать. Или хоть как продиагностировать? Я даже не знаю какие еще симптомуы описать... Логов нет. Перестает пинговаться и все. Думаю повесить на него RTC часы и раз в сутки ребутать. Но наверно это не выход...
зря исключаете питание, это наиболее вероятный источник. шилд вставленный поверз UNO или MEGA питается от стабилизатора ардуины и тот может не потянуть. Может даже сгореть. В моих первых экспериментах с мега и шилдом именно так и произошло. связку ардуино и шилд или шилд отдельно надо питать от хорошего DC-DC. Линейному стабилизатору 250-300ма потянуть сложно, особенно если к ардуине подключено 12в и больше
насчет "блудняка". это не причина. у меня 4-ре гейта mysensors в довольно большой сети с кучей устройств работают без зависаний, уже можно годами измерять. На ENC28J60 но с хорошим питанием
продиагностировать стоит и саму ардуину, запустить какой-то другой скетч или закоментировать работу с шилдом, шилд отсоединить и поставить на несколько дней.
еще причина может быть - скетч. Ардуина не контролирует выход за пределы доступной памяти при работе с переменными. Если скетч требует при работе слишком много памяти то может нарушаться целостность и это может привести к чему угодно, в том числе к зависанию
В моем случае нано + шилд питаются от USB адаптера. Имеет смысл перевешивать питание на Vвх? И как понять, Много ему питания или наоборот мало?
Посмотрел я - Нано выдает 150mA максимум. Лучше наверно отдельно запитать? А ethernet шилд нигде не написано сколько потребляет. Давно как-то экспериментировал, на шилде было написано, 3.3V ему надо. Но завелся только на 5V. А милиампер сколько ему надо - не нашел нигде.
В моем случае нано + шилд питаются от USB адаптера. Имеет смысл перевешивать питание на Vвх? И как понять, Много ему питания или наоборот мало?
Посмотрел я - Нано выдает 150mA максимум. Лучше наверно отдельно запитать? А ethernet шилд нигде не написано сколько потребляет. Давно как-то экспериментировал, на шилде было написано, 3.3V ему надо. Но завелся только на 5V. А милиампер сколько ему надо - не нашел нигде.
основной потребитель на шилде это сам чип. Про wiznrt5100 не смотрел, ENC28J60 требует порядка 250мА. Думаю у wiznet что то типо того же. Я лично считаю, что линейные стабилизаторы для питания ethernet не подходят ну либо надо городить нормальный LM7805 с радиатором. Ибо ни 78M05 который стоит на UNO и MEGA ни тем более AMS1117 который стоит на NANO не могут с запасом обеспечить работу шилда
Лучше, конечно, чуть переписать - зачем дёргать два раз substring, дважды создавая локальные объекты String, если можно это сделать один раз?
Продолжай, проект интересный. Самому интересно, без дураков. Но у меня интерес несколько другого свойства, статистический, так сказать - хочу посмотреть, на чём ты остановишься. Не в плохом смысле (а то опять обвинят ни за что) - а в том смысле - когда увидишь границу применимости такого подхода. Скажу про себя - не далее как сегодня полностью отказался от идеи хранения вебморды на МК, и перевёл всё на простые шлюзы UART-TCP, ибо, как показала практика, не барское это дело - обслуживать вебморду из МК, которая, кстати, может быть ооочень объёмной, плюс ещё и аггрегированной с другими частями умного дома. В малом приближении - да, зашибись и удобно, в большом - начинают жать маленькие ресурсы дуины.
Это я всё к тому - какой у меня к твоему проекту интерес ;) Напоследок - закину удочку: подумай про openWRT, как вариант ;) Тогда МК будет заниматься обслуживанием периферии, а всё управление ардуиной будет через роутер, с жирной вебморды, простыми командами. При необходимости поменять оформление вебморды - не надо будет перезаливать прошивку. Я не нестаиваю на этом варианте как на единственно верном, просто хочу показать ещё один путь для развития проекта.
Да, стало интереснее. Тоже задам пару глупых вопросов:
1-24 каналы - там на них реально что-то висит? По скетчу увидел только три реле. И что будет по "Включить все"?
И по датчикам температуры то же самое. В скетче прописано два - выводит с четырех. Сколько их всего?
Воот, начальник транспортного цеха поднял совершенно справедливые вопросы ;) Которые сразу приводят нас к необходимости, как минимум, автоматического подстраивания внешнего вида вебморды к тому - сколько реально каналов используется в прошивке, сколько датчиков температуры есть и т.п.
К чему пришёл я, когда столкнулся с подобным вопросом: команды, по которым МК отдаёт кол-во датчиков температуры, кол-во датчиков влажности и тому подобные вещи. Как следствие - можно при первом опросе контроллера получить его полный внутренний слепок, так сказать.
В прошивке ТС данную проблему можно решить директивами условной компиляции - и тогда всё будет намного прозрачнее для конечного пользователя прошивки: не придётся искать места, где выпилить кусок кода, если используется не 20 каналов, а всего 5, например.
Лучше, конечно, чуть переписать - зачем дёргать два раз substring, дважды создавая локальные объекты String, если можно это сделать один раз?
3. подумай про openWRT, как вариант ;) Тогда МК будет заниматься обслуживанием периферии, а всё управление ардуиной будет через роутер, с жирной вебморды, простыми командами. При необходимости поменять оформление вебморды - не надо будет перезаливать прошивку.
1. пока ОЗУ не забито, поэтому и не везде, это заметно влияет на скорость ответа.
2. присвоить значение переменной, потом работать с ней?
int comInt = command.substring(3).toInt();
if(comInt>=0&&comInt<=28){}
3. Спасибо за советы, обязательно ознакомлюсь. Пока хочется по максимуму загрузить МЕГУ, а еслу будет поджимать планировал смотреть в сторону промышленных терминалов =)
Artemiy пишет:
1-24 каналы - там на них реально что-то висит? По скетчу увидел только три реле. И что будет по "Включить все"?
И по датчикам температуры то же самое. В скетче прописано два - выводит с четырех. Сколько их всего?
Железка пока на работе, в скором времени переедет на дачу где установлено инфракрасное отопление, 3 реле которые управляются заданием требуемой температуры, каналы 1-24 будут подключены к освещению (14-16 каналов) и к некотороым розеткам и т.д.. В данный момент подключено 3 датчика температуры, в недалеком будущем их будет около 10-13 которые будут отображать температуру на улине, помещений, бани, парилки, дымоходной трубы, воды холодной и горячей и т.д. В перспективе подключить солнечный коллектор, насос, датчики давления и расхода воды, и многое другое =)
Очень громоздкий html, на мой взгляд. Да ещё и помешено определение стилей в заголовке и в самих тэгах. Большое кол-во одинаковых строк было бы компактнее скриптом формировать, инача eeprom скоро кончится. :) Но, коли это домашнее устройство и используется шилд WizNet, у которого на борту TF ридер, уж лучше на туда всё запихать, установив карточку на 2 гига. :)
Очень громоздкий html, на мой взгляд. Да ещё и помешено определение стилей в заголовке и в самих тэгах. Большое кол-во одинаковых строк было бы компактнее скриптом формировать, инача eeprom скоро кончится. :) Но, коли это домашнее устройство и используется шилд WizNet, у которого на борту TF ридер, уж лучше на туда всё запихать, установив карточку на 2 гига. :)
Что вы имели ввиду под выражением eeprom скоро кончится объясните пожалуйста, запихать в карту html нет желания в виду его медленной работы
Очень громоздкий html, на мой взгляд. Да ещё и помешено определение стилей в заголовке и в самих тэгах. Большое кол-во одинаковых строк было бы компактнее скриптом формировать, инача eeprom скоро кончится. :) Но, коли это домашнее устройство и используется шилд WizNet, у которого на борту TF ридер, уж лучше на туда всё запихать, установив карточку на 2 гига. :)
Что вы имели ввиду под выражением eeprom скоро кончится объясните пожалуйста, запихать в карту html нет желания в виду его медленной работы
Объём eeprom очень невелик. Пока оно у Вас вмещается, вроде, а потом аппетиты вырастут и опаньки. :)
Чтобы не постарадать от медленности TF карты, есть простой путь: грузить на клиента сразу все страницы в одном html, при этом ненужные display: none. Далее включать/выключать страницы, а не тянуть их каждый раз из дуни, и скриптом читать данные и заносить в поля страниц.
грузить на клиента сразу все страницы в одном html, при этом ненужные display: none. Далее включать/выключать страницы, а не тянуть их каждый раз из дуни, и скриптом читать данные и заносить в поля страниц.
На клиента грузится сразу весь код, при нажатии на открытие окна оно всплывает а не грузится с дуни. Про скриптом заносить в поля это я так понимаю про Ajax, который я еще не освоил. Аппетиты а данном проекте по моему уже доходят до конца) и вряд ли еще чем то будет забиваться eeprom, кстати подскажите как узнать объем занятой/свободной памяти eeprom?
На клиента грузится сразу весь код, при нажатии на открытие окна оно всплывает а не грузится с дуни.
Замеряли скорость отдачи контента с дуни в браузер? Что получилось? Удивите меня и скажите, что у вас получилось больше 10 Кб/с. Именно по этой причине я отказался от затеи держать вебморду на МК, который, собственно, совершенно к этому не приспособлен.
Думаю, и вы со временем придёте к такому же решению ;)
Никаких аякс и жиквери - зачем Вам чужие глюки? :) Я говорю о getElementById('...').value и innerHTML. Страница сидит в клинте постоянно, а обновлением данных и обменом с дуней занимается скрипт.
Как Вы храните HTML - в виде массива в eeprom? Так дунина иде вам после компиляции расскажет какой памяти и сколько поедено.
Кстати, для своих нужд написал молотилку, которая из HTML убирает лишние пробелы форматирования и создаёт массив. Если необходимо, могу выдать тут.
На клиента грузится сразу весь код, при нажатии на открытие окна оно всплывает а не грузится с дуни.
Замеряли скорость отдачи контента с дуни в браузер? Что получилось? Удивите меня и скажите, что у вас получилось больше 10 Кб/с. Именно по этой причине я отказался от затеи держать вебморду на МК, который, собственно, совершенно к этому не приспособлен.
Думаю, и вы со временем придёте к такому же решению ;)
Миллионы устройст на МК имеют web-интерфес. Почему МК для этого не приспособлен? Даже 10кБ/с вполне достаточно, ибо в эти 10 кБ всё может и поместиться. А и удивать Вас легко - не отдавайте страницы через print по одному символу на ethernet пакет и передачей fin каждый раз, используя кривые библиотеки дуни, а формируйте IP пакеты самостоятельно по 1кБ и потелит оно ого-го как. :) К тому же измерение скороти загрузки мелких страниц может обманывать, засекая сколько за секунду пролетело, а не сколько времени ушло на обмен. :)
Миллионы устройст на МК имеют web-интерфес. Почему МК для этого не приспособлен? Даже 10кБ/с вполне достаточно, ибо в эти 10 кБ всё может и поместиться. А и удивать Вас легко - не отдавайте страницы через print по одному символу на ethernet пакет и передачей fin каждый раз, используя кривые библиотеки дуни, а формируйте IP пакеты самостоятельно по 1кБ и потелит оно ого-го как. :) К тому же измерение скороти загрузки мелких страниц может обманывать, засекая сколько за секунду пролетело, а не сколько времени ушло на обмен. :)
Вы опять чисто пофиздеть зашли? Ну что-ж, не впервой, стерплю и на этот раз :) Миллионы устройств на МК типа Ардуины? Примеры в студию, плз. И не страничку в 500 байт с одной кнопкой - а нормальную такую вебморду объёмом хотя бы как у автора темы.
По поводу "не отдавайте страницы через print по одному символу на ethernet пакет" - не надо мерить людей по себе и держать их за идиотов.
"и потелит оно ого-го как" - вот именно, что потелит, а вот летать - никогда не сможет. Я, конечно, понимаю, что мсье великий теоретик и зашёл сюда чисто так, пальцами погнуть, но всё же осмелюсь задать вопрос: сами-то пробовали поднять жирную вебморду на дуне? Пускай даже на относительно медленной SD (читать оттуда)? Какими скоростями отдачи на канальном уровне можете похвастать? 10, 20, 30, 40, 50 КБ/с?
Давайте так: возьмите всего навсего текстовый файлик в 500 Кб и выдавайте его по Ethernet с SD-карты. Субьективную скорость вполне себе можно замерить, высокая точность нам не нужна, достаточно даже порядка. Вот как получите результаты - приходите, и расскажите, как оно "потелит оно ого-го как".
У автора - совсем не дебильный интерфейс века эдак девятнадцатого - а вполне себе нагруженный и современный. С такими хотелками он быстро упрётся в ограничения используемого камня и поймёт, что не место вебморде на дуне. Вот если бы STM32 - тогда я бы тут и не базлал по этому поводу.
Миллионы устройст на МК имеют web-интерфес. Почему МК для этого не приспособлен? Даже 10кБ/с вполне достаточно, ибо в эти 10 кБ всё может и поместиться. А и удивать Вас легко - не отдавайте страницы через print по одному символу на ethernet пакет и передачей fin каждый раз, используя кривые библиотеки дуни, а формируйте IP пакеты самостоятельно по 1кБ и потелит оно ого-го как. :) К тому же измерение скороти загрузки мелких страниц может обманывать, засекая сколько за секунду пролетело, а не сколько времени ушло на обмен. :)
Вы опять чисто пофиздеть зашли? Ну что-ж, не впервой, стерплю и на этот раз :) Миллионы устройств на МК типа Ардуины? Примеры в студию, плз. И не страничку в 500 байт с одной кнопкой - а нормальную такую вебморду объёмом хотя бы как у автора темы.
По поводу "не отдавайте страницы через print по одному символу на ethernet пакет" - не надо мерить людей по себе и держать их за идиотов.
"и потелит оно ого-го как" - вот именно, что потелит, а вот летать - никогда не сможет. Я, конечно, понимаю, что мсье великий теоретик и зашёл сюда чисто так, пальцами погнуть, но всё же осмелюсь задать вопрос: сами-то пробовали поднять жирную вебморду на дуне? Пускай даже на относительно медленной SD (читать оттуда)? Какими скоростями отдачи на канальном уровне можете похвастать? 10, 20, 30, 40, 50 КБ/с?
Давайте так: возьмите всего навсего текстовый файлик в 500 Кб и выдавайте его по Ethernet с SD-карты. Субьективную скорость вполне себе можно замерить, высокая точность нам не нужна, достаточно даже порядка. Вот как получите результаты - приходите, и расскажите, как оно "потелит оно ого-го как".
У автора - совсем не дебильный интерфейс века эдак девятнадцатого - а вполне себе нагруженный и современный. С такими хотелками он быстро упрётся в ограничения используемого камня и поймёт, что не место вебморде на дуне. Вот если бы STM32 - тогда я бы тут и не базлал по этому поводу.
При чём тут дуня? Вы же говорили об МК, который по совпадению и в дуне используется. К тому же, дуни бывают разные, можно переехать на 2560, а то и на DUE. Примеры? Да как-то мало на ум приходит, разве что все сетевые устройства... :) Возможно, среди МК низкого т.с. уровня, WEB-управление ещё не стало модным, ибо громоздкое оно, достаточно неудобное, корявое, неочевидное, много засад, безусловно, но дело времени. И сам не раз матюкался - написать экзеху для управления было бы в 100 раз быстрее.
Для скорости есть одно ораничение - скорость SPI по которому отдаётся на сетефой интерфейс поток. Но оно значительо больше 10 и даже 50 кБ/сек. А давно ли интерент стал быстрее 2-х МБит/с и часто ли сайты отдают более 2-х МБит/с на сокет? Исли не гонять страницы, не устраивать на МК аппачь с пхп, то совершенно неощитимо тормозов.
Я не эмперик по складу ума, меня не убеждает чей-то опыт, не имеющий обоснования. Со скоростью web-интерфейса я не заморачиваюсь, ибо мне не важно будет страница полсекунды загружаться или 2 секунды. Да и работать оно будет в фоне. Для меня было важно проверить скорость ModbusTCP. Сколько Сименс попросил в непрерывном цикле, столько мега 328-я ему и ответила. И оказалось не меньше, чем другой Сименс. Запрашивал запись поряд 16 32 битных регистров и возврат их же. Буквально наковырял кусок корявого кода лишь бы проверить, порадовася и выбросил. И это, кстати, на WizNet, у которого непонятно что внутри творится и дуниной библлиотекой еще более тёмной.
А что STM32? Прикрутить к нему сетевой интерфейс с DMA? Сколько оно стоить будет?
Я считаю совершенно номальным web-интерфейс для МК, особенно, если есть возможность использовать TF карту - можно туда налепить и картинок и библиотек. В моём случае карточка не неприменима, стараюсь писать компактно, возможно, придётся упаковать, если получится много и всё это вложить в флэшку 2560. Пока не приехал STM32F403... :)
Я считаю совершенно номальным web-интерфейс для МК, особенно, если есть возможность использовать TF карту - можно туда налепить и картинок и библиотек. В моём случае карточка не неприменима, стараюсь писать компактно, возможно, придётся упаковать, если получится много и всё это вложить в флэшку 2560.
Вот когда налепите, когда размер вебморды вылезет килобайт за 500, когда будут картинки всякие, подключаемые CSS и т.п. - тогда скажете, как оно - быстро или нет. А пока все ваши излияния - бла бла бла, ничего не имеющее с практикой. К тому же заметил у вас странную тягу к путанию круглого с мягким, причём постоянно - ему про одно, он - совершенно про другое, приплёл сюда зачем-то Modbus over TCP. Мы вообще-то совершенно о другом говорим, если вы не заметили. Да, на каком-то уровне модели OSI мы утыкаемся в TCP, но речь, повторюсь, идёт не о TCP вовсе, а совсем даже о другом.
Что такое вебморда - понимаете? По какому протоколу работает - понимаете? Что такое вебморда сложнее одного некрупного файла - понимаете?
Ещё раз, для тугих: вебморду можно поднять на дуне, на практически любой дуне. Я не ставлю вопрос как "можно" или "нельзя" - я поднимаю вопрос о целесообразности данной затеи в век, когда есть дешёвые роутеры, на которые можно накатить openWRT и радоваться мегабитным скоростям и отсутствию ограничений на размер вебморды. Дуня при этом - откликается на простые запросы, типа "дай-ка мне, любезная, слепок внутреннего состояния" или "а ну ка, милая, выполни вот эту команду" - и всё.
Я через это уже прошёл - была и вебморда на SD, и вебсервер был реализован с корректной обработкой запросов и пакетной выдачей результатов (это к слову о побайтовой выдаче, упомянутой вами) - не понравилось. Скорость не та - требования у меня, наверное, завышенные, но я хочу видеть нормально работающую и современно выглядящую морду, а не убогое чудовище.
Потом: никакая масштабируемость и отсутствие аггрегирования как класса. Накой мне к каждому контроллеру стучаться, чтобы получить данные на вебморде? А если их (контроллеров) будет десяток? Десять адресов и десять вебморд? Нахер сразу. Именно для этого и есть решения типа openWRT, под которым можно развернуть аггрегатор, со своей БД и нормальной мордой.
А МК - должен заниматься тем, для чего он, собственно, и предназначен - обслуживанием периферии, всё. Остальное - от лукавого.
В общем, как обычно, каждый останется при своих. Спорить по этому поводу мне совершенно не интересно, я лишь высказал свой взгляд на вещи, обращаясь не к вам, а к ТС - подсознательно надеясь, конечно, что буду услышан. Впрочем, каждый должен сам наступить на грабли, тут я никого не отговариваю. Да и слежу за темой скорее из-за того, чтобы не пропустить тот момент, когда автору станет тесно с вебмордой на дуне. Но, скорее всего, он поступит по-другому - удовлетворится тем, что есть. Однако, не буду домысливать за него - время покажет.
Чувствуется плохое понимание работы т.с. транспортов и оптимизации их задач... :))) МК не интернет-магазин, не живой т.с. сайт, в нём web-интерфейс для управления и весёлый картинки в нём даже нежелательны. Зачем что-то подключать? И что подключать? Кличество сокетов очень невелико в МК и достаточно затратно их плодить, загружать в МК сраницу с подключемыми в виде отдельных файлов стилями и скриптами глупо, ибо эксплорер полезет в несколько потоков их грузить, пытаясь создать отдельные сокеты. Для web интерфейса MK необходимо отдельной молотилкой, преобразовывать создаваемые страницы, стили и крипты в один файл. Писать в один файл всё сразу неудобно при разработке, но удобно сделать несложную экзешку которая перемолотит. Пролема с сокетами решена: потребуются всего 2: на саму html со всеми описаниями и на favicon, котрую эксплорер будет всё равно искать. И решена проблема с загрузкой страниц - они уже все на клиенте и переключаются, а не грузятся.
А про openРазные здрово, безусловно... Я продам устройство потребителю, и сообще ему, что надо бы ещё роутер прикупить, залить в него кое-чего для счастья. И не простой роутер, а золотой т.е. с поддержкой офигительной фичи. :))) Странно, почему производители сетевых устройст до этого ещё не додумались и лепят в каждый экземпляр персональный web интерфейс... Дикари! Оформляйте патент с openWRT скорее. :) Сосвсем не думают о людях, которые потом кучу этих устроств в сеть поставят и будут управлять ими, открывая на каждом web интерфейс, не понимая, что это лишь персональная ковырялка для одиночного использования или первоначальной настройки, чаще всего, лишь адреса. :)))
Опять бла бла, и опять - мыши плакали, кололись, но продолжали жрать кактус вместо того, чтобы выкинуть веб-интерфейс из МК, который для этого не предназначен. Вместо этого - надо кучу плясок с бубном: что-то там объединить, перемолотить, забить кувалдой. Я же говорю - теоретик.
Насчёт openWRT - поверьте, никаких сложностей в поставке роутера с прошитым и настроенным openWRT в составе конечного продукта - нет, от слова вообще.
Конечно, кому не нужна масштабируемость, не нужно аггрегирование - пусть его балуются с отдельной вебмордой на каждом МК: и такое имеет право на жизнь, не отрицаю. Просто я смотрю на автора темы и вижу, что по сути задачи, которые он решает - это некий прообраз системы умного дома. Для которой - ну совершенно глупо и неоправдано держать всю вебморду на одном МК, который, к тому же, занимается обслуживанием периферии. Налицо смешение мух с котлетами.
И вообще - прекращайте пороть чушь, у вас это, похоже, в крови - как чего ни скажете, так словно в лужу пёрнули. Это я относительно сентенций "Странно, почему производители сетевых устройст до этого ещё не додумались и лепят в каждый экземпляр персональный web интерфейс". Вы не поверите - но в современных сетевых устройствах, например, тех же роутерах - стоит вполне себе *nix-операционка, openWRT, собственно - из той же оперы. Так кто дикарь - вы, безграмотный, или производители?
МК имеет интерфейс и протокол, по которому отдаёт сырые данные или данные определённого формата, возможно, не один - бери чем хочешь и агрегатируй как хочешь. МК имеет внутри себя html код, кторый возможно загрузить в экплорер, который берёт те же самые сырыи данные и приводит к удобному для оператора виду, на случай если одинокий МК используется или что-то несложилось при интеграции в систему. Это уже настолько очевидное и распространённое решение, что и напоминать о нём неловко. И уж тем более слюни лить за обиду и пытаться чем-то уколоть меня. :)))
Агрегатировать несколько устройст умного дома, запросто можно простой страницей с <iframe>, например. :)
Будущее систем управения в уходе от централизации. Этот путь уже прошли "апаратчики", когда процессор всё сам делал, выступая и кунецом, и жнецом. Теперь переферия стала умной и почти всё делает самостоятельно. Точно так же устройства "умных домов" будут свои задачи решать самостоятельно, в т.ч. и по отображению информации, общаясь друг с другом системой сообщений.
P.S. МК - это не только Мега328. Малому МК - малый интерфейс, от каждого по возможности.
P.S.2. Ждать всемогущего властителя в центре и рулить всем подряд - это, похоже, менталитет такой. :))) P.S.3. Какие тут все крутые, бляха муха, да обидчивые... Прям как с девочками... :)))
Тут крутой только вы, по ходу. И в своей крутости пороть чушь - вам нет равных, это точно! Какая, нахер, аггрегация с iframe? Вы хоть понимаете значение этого термина, млять?
Надоело с воинствующим дилетантом разговаривать - бессмысленно. Чао.
Дааа... Поднабралось бабёх трепливых - чуть что, чуть сказать нечего по делу, обидки и личные оскорбления. :))) А аргументы - нафига, мои можно не заметить скромно, своих всё равно нет. Проще же фыркнуть. Ржунемагу тут с некоторых. :)))
См. Вики, чтобы не быть голословным, в отличии от некоторых баб тут: Агрегация или агрегирование (лат. aggregatio «присоединение») — процесс объединения элементов в одну систему.
Простейшей объединённой системой, совершенно очевидно, можно считать вывод информации от нескольких элементов на единый монитор (не путать с экраном ПК). Если каждый элемент системы имеет свой самостоятельный web интерфейс, вполне возможно создать страницу, в котрой несколькими тегами <iframe> загрузить интефейсы с каждого устройства на одну страницу, каждый в своё подокошко. В итоге страница агрегирует вывод информации в единое окно отображения. Возражения есть?
А для тупорылых добавлю - там смайлик был в конце фразы. Вот такой :)
P.S. Вы бы уже объединились, обсудили какой я нехороший, толпой бы поорали - девочки так ведь делат? В форуме не знаю сколько человек, но есть один хамуга пустобрёх, один выскочка, один советчик уровня чайника, и изобретатель системы продаж маршрутизаторов внагрузку. Все четвера на меня зуб точат, идинаково умеют против аргументов лишь сопли лить. Ржунемагу! :)))
такой вопрос, делаю управление освещением с помощью кнопок которые будут раскиданы по дому вместо выключателей, будет 10 кнопок подключеных к одному аналоговому входу через разное сопротивления, скетч обработки написал, но вот быстродействие и факт нажатия огорчает) подскажите как это связать с внешним прерыванием, проблема в том для прерывания нужен дистретный сигнал, а для отпределения кнопки аналоговый, тянуть отдельные провода для прерывания не вариант, и просьба не советовать свякую по-русски говоря хуйню
такой вопрос, делаю управление освещением с помощью кнопок которые будут раскиданы по дому вместо выключателей, будет 10 кнопок подключеных к одному аналоговому входу через разное сопротивления, скетч обработки написал, но вот быстродействие и факт нажатия огорчает) подскажите как это связать с внешним прерыванием, проблема в том для прерывания нужен дистретный сигнал, а для отпределения кнопки аналоговый, тянуть отдельные провода для прерывания не вариант, и просьба не советовать свякую по-русски говоря хуйню
Давайте скетч. Быстродействия аналогового входа (АЦП), скорее всего, тут совершенно не при чём. Факт нажатия, предполагаю, портится помехами.
P.S. Лучше создайте отдельную тему в разделе "Программирование".
как раз таки быстродействие АЦП не успевает прочитать импульс 100-200 мс, потому что занята другими задачами, поэтому и решено использовать прерывание, собрал вот такую схему, но дребезг вызывает прерывание 3-5 раз за одно нажатие. В функции которое вызывает прерывание не работает ни delay ни millis, поэтому программно убить дребезг не выходит, вот и не знаю как это реализовать... =)
как раз таки быстродействие АЦП не успевает прочитать импульс 100-200 мс, потому что занята другими задачами, поэтому и решено использовать прерывание, собрал вот такую схему, но дребезг вызывает прерывание 3-5 раз за одно нажатие. В функции которое вызывает прерывание не работает ни delay ни millis, поэтому программно убить дребезг не выходит, вот и не знаю как это реализовать... =)
Это кто у Вас там кнопки так быстро нажимает? :)
Создайте внешнюю переменную - флаг времени вызова предыдущего прерывания.
На прерывании таймера эту переменную декриментируйте, если она больше нуля.
На прерывании от кнопки, если флаг не равен нулю - ничего не делать и вывалиться из прерывания, иначе записать в флаг значение времени нечувствительности и прочитать значение.
Кроме того, не забывайте, что прерывания имеют разные варианты: по фронтам, по низкому/высокому уровню и по изменению состояния. Если прерывание от кнопок будет настроено как по низкому/высокому уровню, то оно будет постоянно вызываться, пока нажата/отпущена кнопка.
Вы опустились до личных оскорблений. Мне вас жаль. Больше никогда мне не пишите, а то ведь могу найти в оффлайне и взять сполна за словоблудие.
Тебе адрес дать? А то словоблудие только от тебя слышу, да пацанские угрозы.
Не надо мне тыкать. Вы мне никто. Повторяю, не пишите мне. Наговорили уде достаточно для блокировки на любом другом форуме. Здесь к сожалению нет модерации.
Если мне надо кого то найти я сам нахожу
Не надо мне тыкать. Вы мне никто. Повторяю, не пишите мне. Наговорили уде достаточно для блокировки на любом другом форуме. Здесь к сожалению нет модерации.
Если мне надо кого то найти я сам нахожу
Общепринятый формат общения на форумах - на ты. Если тебя не устраивает - твои проблемы. Насчёт адреса - только скажи, я сообщу, чтобы не утруждать тебя поисками ;)
Вообще не понимаю, чего ты взъелся - несвежее съел, наверное? Бывает, выпей активированного угля и всё пройдёт. Кстати, не поверишь - я тебя прекрасно понимаю: это очень обидно, когда твои труды начинают критиковать. Однако, мудрый человек примет критику как старт для дальнейшего саморазвития, другой - начнёт переводить стрелки вовне.
Заметь, всё, чего я просил - называть вещи своими именами, не более того. И кстати, тут впомнилось про Википедию - ты не поверишь, какой только чуши там нет, ибо каждый суслик может редактировать статьи. Кстати, статья, цитату из которой ты приводил, носит гордый шильдик "не проверена опытными участниками" ;) Впрочем, для тебя и это не авторитет, ипстественно.
Смотрю на твои посты - в целом грамотный парень, но тебя, по ходу, заносит временами. Учись принимать критику конструктивно, и всё будет зашибись.
А насчёт адреса - ты подумай, подумай.
Для тех кому не хватает возможности понять самому. Обращение на вы в данном контексте это не комплекс. Это прием русского языка для обозначения дистанции. Я общаюсь на ты лишь с людьми равными по интеллектуальному и культурному уровню, с остальными не общаюсь или общаюсь на "расстоянии".
в данной теме я писал для автора с нормальным проектом значение которого вы пытаетесь принизить доказывая всем, что никто кроме вас не в состоянии писать "крутые" программы. Я писал не для вас. Вас не исправить. У вас потребность что то кому то доказать, но именно доказывать не хватает интеллекта, поэтому опускаетесь до хамства. Мне вас жаль, но это уже я повторяюсь
сделайте усилие над собой. В следующий раз перед тем как что то писать, подумайте не над тем как круто вы будете выглядеть, а о том какую пользу это может представлять для того кому пишите. Шанс у вас есть. Верю
axill, я вам аплодирую!
значение которого вы пытаетесь принизить доказывая всем, что никто кроме вас не в состоянии писать "крутые" программы.
Слушай, правдолюб: будь последователен, и покажи мне, плз, где я утверждал, что никто кроме меня не в состоянии писать "крутые" программы? Ты опять порешь чушь, пытаясь выглядеть не гопотой, которая угрожает физической расправой, а якобы культурным воспитанным мальчиком. И это, к слову, у тебя выходит крайне отвратительно.
Не надо приписывать мне слова, которых я никогда не произносил. Если ты этого усвоить не способен, а способен лишь на грязные передёргивания - мне тебя жаль.
Всем привет, столкнулся с проблемой подвисания шилда W5100, напруга стабильная 4,88-4,92 V. Три дня подряд после 8-12 часов работы. Контроллер работает. Что может быть?
Всем привет, столкнулся с проблемой подвисания шилда W5100, напруга стабильная 4,88-4,92 V. Три дня подряд после 8-12 часов работы. Контроллер работает. Что может быть?
По питанию точно проблем нет? Подвисает что именно? Я имею в виду - как вы понимаете, что подвис именно W5100? Возможно, проблема не в железе даже ;) В общем - дайте побольше вводных, и тогда будет полегче разобраться, думаю.
В общем - дайте побольше вводных, и тогда будет полегче разобраться, думаю.
Вначале думал что проблема в меге, создал в void(loop) мигание светодиода, когда железка перестает отвечать диод продолжает мигать, отсюда сделал вывод что подвисает w5100, питание пробовал менять измений нет.
Такая же проблема, как у uservasil, но только в другом проекте. Тоже используется шилд. Точнее перебпробовал на двух шилдах. На WL5100 и на ENC28J60. Второй тоже в виде шилда, только на Нану.
Я использовал в шлюзе MySensors. Тоже подвисает через 2-3 дня. Питание тут скорее всего не при чем, так как работало от упса через сетевой фильтр. По моим ощущениям, его задрюкивают другие устройства в сети. Так как все подключено через свитч, а устройств много >50, то блудняка в эфире много. Вот и не выдерживает Ethernet шилд.
Может кто подскажет что можно сделать. Или хоть как продиагностировать? Я даже не знаю какие еще симптомуы описать... Логов нет. Перестает пинговаться и все. Думаю повесить на него RTC часы и раз в сутки ребутать. Но наверно это не выход...
Такая же проблема, как у uservasil, но только в другом проекте. Тоже используется шилд. Точнее перебпробовал на двух шилдах. На WL5100 и на ENC28J60. Второй тоже в виде шилда, только на Нану.
Я использовал в шлюзе MySensors. Тоже подвисает через 2-3 дня. Питание тут скорее всего не при чем, так как работало от упса через сетевой фильтр. По моим ощущениям, его задрюкивают другие устройства в сети. Так как все подключено через свитч, а устройств много >50, то блудняка в эфире много. Вот и не выдерживает Ethernet шилд.
Может кто подскажет что можно сделать. Или хоть как продиагностировать? Я даже не знаю какие еще симптомуы описать... Логов нет. Перестает пинговаться и все. Думаю повесить на него RTC часы и раз в сутки ребутать. Но наверно это не выход...
зря исключаете питание, это наиболее вероятный источник. шилд вставленный поверз UNO или MEGA питается от стабилизатора ардуины и тот может не потянуть. Может даже сгореть. В моих первых экспериментах с мега и шилдом именно так и произошло. связку ардуино и шилд или шилд отдельно надо питать от хорошего DC-DC. Линейному стабилизатору 250-300ма потянуть сложно, особенно если к ардуине подключено 12в и больше
насчет "блудняка". это не причина. у меня 4-ре гейта mysensors в довольно большой сети с кучей устройств работают без зависаний, уже можно годами измерять. На ENC28J60 но с хорошим питанием
продиагностировать стоит и саму ардуину, запустить какой-то другой скетч или закоментировать работу с шилдом, шилд отсоединить и поставить на несколько дней.
еще причина может быть - скетч. Ардуина не контролирует выход за пределы доступной памяти при работе с переменными. Если скетч требует при работе слишком много памяти то может нарушаться целостность и это может привести к чему угодно, в том числе к зависанию
В моем случае нано + шилд питаются от USB адаптера. Имеет смысл перевешивать питание на Vвх? И как понять, Много ему питания или наоборот мало?
Посмотрел я - Нано выдает 150mA максимум. Лучше наверно отдельно запитать? А ethernet шилд нигде не написано сколько потребляет. Давно как-то экспериментировал, на шилде было написано, 3.3V ему надо. Но завелся только на 5V. А милиампер сколько ему надо - не нашел нигде.
В моем случае нано + шилд питаются от USB адаптера. Имеет смысл перевешивать питание на Vвх? И как понять, Много ему питания или наоборот мало?
Посмотрел я - Нано выдает 150mA максимум. Лучше наверно отдельно запитать? А ethernet шилд нигде не написано сколько потребляет. Давно как-то экспериментировал, на шилде было написано, 3.3V ему надо. Но завелся только на 5V. А милиампер сколько ему надо - не нашел нигде.
основной потребитель на шилде это сам чип. Про wiznrt5100 не смотрел, ENC28J60 требует порядка 250мА. Думаю у wiznet что то типо того же. Я лично считаю, что линейные стабилизаторы для питания ethernet не подходят ну либо надо городить нормальный LM7805 с радиатором. Ибо ни 78M05 который стоит на UNO и MEGA ни тем более AMS1117 который стоит на NANO не могут с запасом обеспечить работу шилда
я везде для питания шилдов ставлю DC-DC
вот обещанная версия 1.4:
добавлено:
1. Установка точной желаемой температуры
2. ручная запись и сброс состояний дискретных выходов во флеш
3. причесал и местами изменил говнокод =)
4. таблица влажности помещений
скетч:
html:
uservasil, не совсем понял касательно скетча и отдельного html.
Весь html код лежит в ардуинке? Или основная масса где-то на хостинге, а ардуинка отдает только параметры датчиков и принимает команды с хостинга?
Молодец, прогресс реально виден. Если позволишь - пару советов:
1. Строки лучше таки хранить во флеше: есть макрос F очень удобный ;) У тебя, как заметил - не везде ещё он воткнут.
2. Оптимизацию когда будешь делать, вот такие места:
if
(command.substring(3).toInt()>=0&&command.substring(3).toInt()<=28)
Лучше, конечно, чуть переписать - зачем дёргать два раз substring, дважды создавая локальные объекты String, если можно это сделать один раз?
Продолжай, проект интересный. Самому интересно, без дураков. Но у меня интерес несколько другого свойства, статистический, так сказать - хочу посмотреть, на чём ты остановишься. Не в плохом смысле (а то опять обвинят ни за что) - а в том смысле - когда увидишь границу применимости такого подхода. Скажу про себя - не далее как сегодня полностью отказался от идеи хранения вебморды на МК, и перевёл всё на простые шлюзы UART-TCP, ибо, как показала практика, не барское это дело - обслуживать вебморду из МК, которая, кстати, может быть ооочень объёмной, плюс ещё и аггрегированной с другими частями умного дома. В малом приближении - да, зашибись и удобно, в большом - начинают жать маленькие ресурсы дуины.
Это я всё к тому - какой у меня к твоему проекту интерес ;) Напоследок - закину удочку: подумай про openWRT, как вариант ;) Тогда МК будет заниматься обслуживанием периферии, а всё управление ардуиной будет через роутер, с жирной вебморды, простыми командами. При необходимости поменять оформление вебморды - не надо будет перезаливать прошивку. Я не нестаиваю на этом варианте как на единственно верном, просто хочу показать ещё один путь для развития проекта.
Да, стало интереснее. Тоже задам пару глупых вопросов:
1-24 каналы - там на них реально что-то висит? По скетчу увидел только три реле. И что будет по "Включить все"?
И по датчикам температуры то же самое. В скетче прописано два - выводит с четырех. Сколько их всего?
Да, стало интереснее. Тоже задам пару глупых вопросов:
1-24 каналы - там на них реально что-то висит? По скетчу увидел только три реле. И что будет по "Включить все"?
И по датчикам температуры то же самое. В скетче прописано два - выводит с четырех. Сколько их всего?
Воот, начальник транспортного цеха поднял совершенно справедливые вопросы ;) Которые сразу приводят нас к необходимости, как минимум, автоматического подстраивания внешнего вида вебморды к тому - сколько реально каналов используется в прошивке, сколько датчиков температуры есть и т.п.
К чему пришёл я, когда столкнулся с подобным вопросом: команды, по которым МК отдаёт кол-во датчиков температуры, кол-во датчиков влажности и тому подобные вещи. Как следствие - можно при первом опросе контроллера получить его полный внутренний слепок, так сказать.
В прошивке ТС данную проблему можно решить директивами условной компиляции - и тогда всё будет намного прозрачнее для конечного пользователя прошивки: не придётся искать места, где выпилить кусок кода, если используется не 20 каналов, а всего 5, например.
Да, весь html лежит в eeprom.
1. Строки лучше таки хранить во флеше: есть макрос F очень удобный ;) У тебя, как заметил - не везде ещё он воткнут.
2. Оптимизацию когда будешь делать, вот такие места:
if
(command.substring(3).toInt()>=0&&command.substring(3).toInt()<=28)
Лучше, конечно, чуть переписать - зачем дёргать два раз substring, дважды создавая локальные объекты String, если можно это сделать один раз?
3. подумай про openWRT, как вариант ;) Тогда МК будет заниматься обслуживанием периферии, а всё управление ардуиной будет через роутер, с жирной вебморды, простыми командами. При необходимости поменять оформление вебморды - не надо будет перезаливать прошивку.
1. пока ОЗУ не забито, поэтому и не везде, это заметно влияет на скорость ответа.
2. присвоить значение переменной, потом работать с ней?
int comInt =
command.substring(3).toInt();
if
(
{}comInt
>=0&&comInt<=28)3. Спасибо за советы, обязательно ознакомлюсь. Пока хочется по максимуму загрузить МЕГУ, а еслу будет поджимать планировал смотреть в сторону промышленных терминалов =)
1-24 каналы - там на них реально что-то висит? По скетчу увидел только три реле. И что будет по "Включить все"?
И по датчикам температуры то же самое. В скетче прописано два - выводит с четырех. Сколько их всего?
Железка пока на работе, в скором времени переедет на дачу где установлено инфракрасное отопление, 3 реле которые управляются заданием требуемой температуры, каналы 1-24 будут подключены к освещению (14-16 каналов) и к некотороым розеткам и т.д.. В данный момент подключено 3 датчика температуры, в недалеком будущем их будет около 10-13 которые будут отображать температуру на улине, помещений, бани, парилки, дымоходной трубы, воды холодной и горячей и т.д. В перспективе подключить солнечный коллектор, насос, датчики давления и расхода воды, и многое другое =)
Подключил промышленный БП к Vin шилда W5100 и выставил на нем 6 вольт, питание на плате поднялось до 5,06 вольт, проблема с зависанием железки отпала!
Версия 1.5:
добавлено:
1. связь с OPC сервером по Ehternet
2. управление в SCADA Simple-Scada 2 (beta)
3. причесал и местами изменил говнокод =)
HTML:
SCADA:
скетч:
uservasil
Как поменять местами в узком хтмл , кнопки с низу а температуру с верху
uservasil
Как поменять местами в узком хтмл , кнопки с низу а температуру с верху
сейчас точно сказать не смогу, т.к. нет времени совсем, быть может на следующей неделе, а так эксперементируйте сами)
попробуйте например вырезать это :
и вставить в строку 1191
а что у вас до строки 1191 и после нее я пробую вашу версию 1.4
а что у вас до строки 1191 и после нее я пробую вашу версию 1.4
Я эту версию и имел ввиду, пробуйте не бойтесь, это помогает понять как все устроено ;)
а что у вас до строки 1191 и после нее я пробую вашу версию 1.4
эт мы кнопки переставим в низ страницы, а я хотел в узком читоба показания были с верху а управление пинами снизу как в вашем первом посте.
И еще вопрос вы не пробовали эт все впихнуть в ардуино уно?
И еще вопрос вы не пробовали эт все впихнуть в ардуино уно?
в УНО можно и больше впихнуть если писать не в arduino ide, а в atmel studio на Си. Только это подразумевает другой уровень познаний
в среде ардуино при использовании ethernet на уно можно сделать совсем чуть чуть
Всем Привет, я еще не остановился на достигнутом и вот некоторые изменения в версии 1.6 =)
1. добавлены два всплывающих окна управления освещением и нагрузками.
2. добавлен модуль sim900, управление теперь и постредством SMS (свет, нагрузки, опопление)
в смарфоне установлено приложение GsmContrAll, которое позволяет создать интерфейс для быстрой отправки нужных SMS команд одним нажатием.
3. добавлены RTC(часы реального времени), датчики отвещенности, давления, напряжения и тока.
4. причесал код, разложил все по вкладкам оптимизировал CSS и HTML.
5. начал собирать шкаф управления.
приложение для Андройд:
скетч:
Очень громоздкий html, на мой взгляд. Да ещё и помешено определение стилей в заголовке и в самих тэгах. Большое кол-во одинаковых строк было бы компактнее скриптом формировать, инача eeprom скоро кончится. :) Но, коли это домашнее устройство и используется шилд WizNet, у которого на борту TF ридер, уж лучше на туда всё запихать, установив карточку на 2 гига. :)
Очень громоздкий html, на мой взгляд. Да ещё и помешено определение стилей в заголовке и в самих тэгах. Большое кол-во одинаковых строк было бы компактнее скриптом формировать, инача eeprom скоро кончится. :) Но, коли это домашнее устройство и используется шилд WizNet, у которого на борту TF ридер, уж лучше на туда всё запихать, установив карточку на 2 гига. :)
Что вы имели ввиду под выражением eeprom скоро кончится объясните пожалуйста, запихать в карту html нет желания в виду его медленной работы
Очень громоздкий html, на мой взгляд. Да ещё и помешено определение стилей в заголовке и в самих тэгах. Большое кол-во одинаковых строк было бы компактнее скриптом формировать, инача eeprom скоро кончится. :) Но, коли это домашнее устройство и используется шилд WizNet, у которого на борту TF ридер, уж лучше на туда всё запихать, установив карточку на 2 гига. :)
Объём eeprom очень невелик. Пока оно у Вас вмещается, вроде, а потом аппетиты вырастут и опаньки. :)
Чтобы не постарадать от медленности TF карты, есть простой путь: грузить на клиента сразу все страницы в одном html, при этом ненужные display: none. Далее включать/выключать страницы, а не тянуть их каждый раз из дуни, и скриптом читать данные и заносить в поля страниц.
грузить на клиента сразу все страницы в одном html, при этом ненужные display: none. Далее включать/выключать страницы, а не тянуть их каждый раз из дуни, и скриптом читать данные и заносить в поля страниц.
На клиента грузится сразу весь код, при нажатии на открытие окна оно всплывает а не грузится с дуни. Про скриптом заносить в поля это я так понимаю про Ajax, который я еще не освоил. Аппетиты а данном проекте по моему уже доходят до конца) и вряд ли еще чем то будет забиваться eeprom, кстати подскажите как узнать объем занятой/свободной памяти eeprom?
Замеряли скорость отдачи контента с дуни в браузер? Что получилось? Удивите меня и скажите, что у вас получилось больше 10 Кб/с. Именно по этой причине я отказался от затеи держать вебморду на МК, который, собственно, совершенно к этому не приспособлен.
Думаю, и вы со временем придёте к такому же решению ;)
Никаких аякс и жиквери - зачем Вам чужие глюки? :) Я говорю о getElementById('...').value и innerHTML. Страница сидит в клинте постоянно, а обновлением данных и обменом с дуней занимается скрипт.
Как Вы храните HTML - в виде массива в eeprom? Так дунина иде вам после компиляции расскажет какой памяти и сколько поедено.
Кстати, для своих нужд написал молотилку, которая из HTML убирает лишние пробелы форматирования и создаёт массив. Если необходимо, могу выдать тут.
Замеряли скорость отдачи контента с дуни в браузер? Что получилось? Удивите меня и скажите, что у вас получилось больше 10 Кб/с. Именно по этой причине я отказался от затеи держать вебморду на МК, который, собственно, совершенно к этому не приспособлен.
Думаю, и вы со временем придёте к такому же решению ;)
Миллионы устройст на МК имеют web-интерфес. Почему МК для этого не приспособлен? Даже 10кБ/с вполне достаточно, ибо в эти 10 кБ всё может и поместиться. А и удивать Вас легко - не отдавайте страницы через print по одному символу на ethernet пакет и передачей fin каждый раз, используя кривые библиотеки дуни, а формируйте IP пакеты самостоятельно по 1кБ и потелит оно ого-го как. :) К тому же измерение скороти загрузки мелких страниц может обманывать, засекая сколько за секунду пролетело, а не сколько времени ушло на обмен. :)
Миллионы устройст на МК имеют web-интерфес. Почему МК для этого не приспособлен? Даже 10кБ/с вполне достаточно, ибо в эти 10 кБ всё может и поместиться. А и удивать Вас легко - не отдавайте страницы через print по одному символу на ethernet пакет и передачей fin каждый раз, используя кривые библиотеки дуни, а формируйте IP пакеты самостоятельно по 1кБ и потелит оно ого-го как. :) К тому же измерение скороти загрузки мелких страниц может обманывать, засекая сколько за секунду пролетело, а не сколько времени ушло на обмен. :)
Вы опять чисто пофиздеть зашли? Ну что-ж, не впервой, стерплю и на этот раз :) Миллионы устройств на МК типа Ардуины? Примеры в студию, плз. И не страничку в 500 байт с одной кнопкой - а нормальную такую вебморду объёмом хотя бы как у автора темы.
По поводу "не отдавайте страницы через print по одному символу на ethernet пакет" - не надо мерить людей по себе и держать их за идиотов.
"и потелит оно ого-го как" - вот именно, что потелит, а вот летать - никогда не сможет. Я, конечно, понимаю, что мсье великий теоретик и зашёл сюда чисто так, пальцами погнуть, но всё же осмелюсь задать вопрос: сами-то пробовали поднять жирную вебморду на дуне? Пускай даже на относительно медленной SD (читать оттуда)? Какими скоростями отдачи на канальном уровне можете похвастать? 10, 20, 30, 40, 50 КБ/с?
Давайте так: возьмите всего навсего текстовый файлик в 500 Кб и выдавайте его по Ethernet с SD-карты. Субьективную скорость вполне себе можно замерить, высокая точность нам не нужна, достаточно даже порядка. Вот как получите результаты - приходите, и расскажите, как оно "потелит оно ого-го как".
У автора - совсем не дебильный интерфейс века эдак девятнадцатого - а вполне себе нагруженный и современный. С такими хотелками он быстро упрётся в ограничения используемого камня и поймёт, что не место вебморде на дуне. Вот если бы STM32 - тогда я бы тут и не базлал по этому поводу.
Миллионы устройст на МК имеют web-интерфес. Почему МК для этого не приспособлен? Даже 10кБ/с вполне достаточно, ибо в эти 10 кБ всё может и поместиться. А и удивать Вас легко - не отдавайте страницы через print по одному символу на ethernet пакет и передачей fin каждый раз, используя кривые библиотеки дуни, а формируйте IP пакеты самостоятельно по 1кБ и потелит оно ого-го как. :) К тому же измерение скороти загрузки мелких страниц может обманывать, засекая сколько за секунду пролетело, а не сколько времени ушло на обмен. :)
Вы опять чисто пофиздеть зашли? Ну что-ж, не впервой, стерплю и на этот раз :) Миллионы устройств на МК типа Ардуины? Примеры в студию, плз. И не страничку в 500 байт с одной кнопкой - а нормальную такую вебморду объёмом хотя бы как у автора темы.
По поводу "не отдавайте страницы через print по одному символу на ethernet пакет" - не надо мерить людей по себе и держать их за идиотов.
"и потелит оно ого-го как" - вот именно, что потелит, а вот летать - никогда не сможет. Я, конечно, понимаю, что мсье великий теоретик и зашёл сюда чисто так, пальцами погнуть, но всё же осмелюсь задать вопрос: сами-то пробовали поднять жирную вебморду на дуне? Пускай даже на относительно медленной SD (читать оттуда)? Какими скоростями отдачи на канальном уровне можете похвастать? 10, 20, 30, 40, 50 КБ/с?
Давайте так: возьмите всего навсего текстовый файлик в 500 Кб и выдавайте его по Ethernet с SD-карты. Субьективную скорость вполне себе можно замерить, высокая точность нам не нужна, достаточно даже порядка. Вот как получите результаты - приходите, и расскажите, как оно "потелит оно ого-го как".
У автора - совсем не дебильный интерфейс века эдак девятнадцатого - а вполне себе нагруженный и современный. С такими хотелками он быстро упрётся в ограничения используемого камня и поймёт, что не место вебморде на дуне. Вот если бы STM32 - тогда я бы тут и не базлал по этому поводу.
При чём тут дуня? Вы же говорили об МК, который по совпадению и в дуне используется. К тому же, дуни бывают разные, можно переехать на 2560, а то и на DUE. Примеры? Да как-то мало на ум приходит, разве что все сетевые устройства... :) Возможно, среди МК низкого т.с. уровня, WEB-управление ещё не стало модным, ибо громоздкое оно, достаточно неудобное, корявое, неочевидное, много засад, безусловно, но дело времени. И сам не раз матюкался - написать экзеху для управления было бы в 100 раз быстрее.
Для скорости есть одно ораничение - скорость SPI по которому отдаётся на сетефой интерфейс поток. Но оно значительо больше 10 и даже 50 кБ/сек. А давно ли интерент стал быстрее 2-х МБит/с и часто ли сайты отдают более 2-х МБит/с на сокет? Исли не гонять страницы, не устраивать на МК аппачь с пхп, то совершенно неощитимо тормозов.
Я не эмперик по складу ума, меня не убеждает чей-то опыт, не имеющий обоснования. Со скоростью web-интерфейса я не заморачиваюсь, ибо мне не важно будет страница полсекунды загружаться или 2 секунды. Да и работать оно будет в фоне. Для меня было важно проверить скорость ModbusTCP. Сколько Сименс попросил в непрерывном цикле, столько мега 328-я ему и ответила. И оказалось не меньше, чем другой Сименс. Запрашивал запись поряд 16 32 битных регистров и возврат их же. Буквально наковырял кусок корявого кода лишь бы проверить, порадовася и выбросил. И это, кстати, на WizNet, у которого непонятно что внутри творится и дуниной библлиотекой еще более тёмной.
А что STM32? Прикрутить к нему сетевой интерфейс с DMA? Сколько оно стоить будет?
Я считаю совершенно номальным web-интерфейс для МК, особенно, если есть возможность использовать TF карту - можно туда налепить и картинок и библиотек. В моём случае карточка не неприменима, стараюсь писать компактно, возможно, придётся упаковать, если получится много и всё это вложить в флэшку 2560. Пока не приехал STM32F403... :)
Я считаю совершенно номальным web-интерфейс для МК, особенно, если есть возможность использовать TF карту - можно туда налепить и картинок и библиотек. В моём случае карточка не неприменима, стараюсь писать компактно, возможно, придётся упаковать, если получится много и всё это вложить в флэшку 2560.
Вот когда налепите, когда размер вебморды вылезет килобайт за 500, когда будут картинки всякие, подключаемые CSS и т.п. - тогда скажете, как оно - быстро или нет. А пока все ваши излияния - бла бла бла, ничего не имеющее с практикой. К тому же заметил у вас странную тягу к путанию круглого с мягким, причём постоянно - ему про одно, он - совершенно про другое, приплёл сюда зачем-то Modbus over TCP. Мы вообще-то совершенно о другом говорим, если вы не заметили. Да, на каком-то уровне модели OSI мы утыкаемся в TCP, но речь, повторюсь, идёт не о TCP вовсе, а совсем даже о другом.
Что такое вебморда - понимаете? По какому протоколу работает - понимаете? Что такое вебморда сложнее одного некрупного файла - понимаете?
Ещё раз, для тугих: вебморду можно поднять на дуне, на практически любой дуне. Я не ставлю вопрос как "можно" или "нельзя" - я поднимаю вопрос о целесообразности данной затеи в век, когда есть дешёвые роутеры, на которые можно накатить openWRT и радоваться мегабитным скоростям и отсутствию ограничений на размер вебморды. Дуня при этом - откликается на простые запросы, типа "дай-ка мне, любезная, слепок внутреннего состояния" или "а ну ка, милая, выполни вот эту команду" - и всё.
Я через это уже прошёл - была и вебморда на SD, и вебсервер был реализован с корректной обработкой запросов и пакетной выдачей результатов (это к слову о побайтовой выдаче, упомянутой вами) - не понравилось. Скорость не та - требования у меня, наверное, завышенные, но я хочу видеть нормально работающую и современно выглядящую морду, а не убогое чудовище.
Потом: никакая масштабируемость и отсутствие аггрегирования как класса. Накой мне к каждому контроллеру стучаться, чтобы получить данные на вебморде? А если их (контроллеров) будет десяток? Десять адресов и десять вебморд? Нахер сразу. Именно для этого и есть решения типа openWRT, под которым можно развернуть аггрегатор, со своей БД и нормальной мордой.
А МК - должен заниматься тем, для чего он, собственно, и предназначен - обслуживанием периферии, всё. Остальное - от лукавого.
В общем, как обычно, каждый останется при своих. Спорить по этому поводу мне совершенно не интересно, я лишь высказал свой взгляд на вещи, обращаясь не к вам, а к ТС - подсознательно надеясь, конечно, что буду услышан. Впрочем, каждый должен сам наступить на грабли, тут я никого не отговариваю. Да и слежу за темой скорее из-за того, чтобы не пропустить тот момент, когда автору станет тесно с вебмордой на дуне. Но, скорее всего, он поступит по-другому - удовлетворится тем, что есть. Однако, не буду домысливать за него - время покажет.
Чувствуется плохое понимание работы т.с. транспортов и оптимизации их задач... :))) МК не интернет-магазин, не живой т.с. сайт, в нём web-интерфейс для управления и весёлый картинки в нём даже нежелательны. Зачем что-то подключать? И что подключать? Кличество сокетов очень невелико в МК и достаточно затратно их плодить, загружать в МК сраницу с подключемыми в виде отдельных файлов стилями и скриптами глупо, ибо эксплорер полезет в несколько потоков их грузить, пытаясь создать отдельные сокеты. Для web интерфейса MK необходимо отдельной молотилкой, преобразовывать создаваемые страницы, стили и крипты в один файл. Писать в один файл всё сразу неудобно при разработке, но удобно сделать несложную экзешку которая перемолотит. Пролема с сокетами решена: потребуются всего 2: на саму html со всеми описаниями и на favicon, котрую эксплорер будет всё равно искать. И решена проблема с загрузкой страниц - они уже все на клиенте и переключаются, а не грузятся.
А про openРазные здрово, безусловно... Я продам устройство потребителю, и сообще ему, что надо бы ещё роутер прикупить, залить в него кое-чего для счастья. И не простой роутер, а золотой т.е. с поддержкой офигительной фичи. :))) Странно, почему производители сетевых устройст до этого ещё не додумались и лепят в каждый экземпляр персональный web интерфейс... Дикари! Оформляйте патент с openWRT скорее. :) Сосвсем не думают о людях, которые потом кучу этих устроств в сеть поставят и будут управлять ими, открывая на каждом web интерфейс, не понимая, что это лишь персональная ковырялка для одиночного использования или первоначальной настройки, чаще всего, лишь адреса. :)))
Опять бла бла, и опять - мыши плакали, кололись, но продолжали жрать кактус вместо того, чтобы выкинуть веб-интерфейс из МК, который для этого не предназначен. Вместо этого - надо кучу плясок с бубном: что-то там объединить, перемолотить, забить кувалдой. Я же говорю - теоретик.
Насчёт openWRT - поверьте, никаких сложностей в поставке роутера с прошитым и настроенным openWRT в составе конечного продукта - нет, от слова вообще.
Конечно, кому не нужна масштабируемость, не нужно аггрегирование - пусть его балуются с отдельной вебмордой на каждом МК: и такое имеет право на жизнь, не отрицаю. Просто я смотрю на автора темы и вижу, что по сути задачи, которые он решает - это некий прообраз системы умного дома. Для которой - ну совершенно глупо и неоправдано держать всю вебморду на одном МК, который, к тому же, занимается обслуживанием периферии. Налицо смешение мух с котлетами.
И вообще - прекращайте пороть чушь, у вас это, похоже, в крови - как чего ни скажете, так словно в лужу пёрнули. Это я относительно сентенций "Странно, почему производители сетевых устройст до этого ещё не додумались и лепят в каждый экземпляр персональный web интерфейс". Вы не поверите - но в современных сетевых устройствах, например, тех же роутерах - стоит вполне себе *nix-операционка, openWRT, собственно - из той же оперы. Так кто дикарь - вы, безграмотный, или производители?
Катастрофа!
МК имеет интерфейс и протокол, по которому отдаёт сырые данные или данные определённого формата, возможно, не один - бери чем хочешь и агрегатируй как хочешь. МК имеет внутри себя html код, кторый возможно загрузить в экплорер, который берёт те же самые сырыи данные и приводит к удобному для оператора виду, на случай если одинокий МК используется или что-то несложилось при интеграции в систему. Это уже настолько очевидное и распространённое решение, что и напоминать о нём неловко. И уж тем более слюни лить за обиду и пытаться чем-то уколоть меня. :)))
Агрегатировать несколько устройст умного дома, запросто можно простой страницей с <iframe>, например. :)
Будущее систем управения в уходе от централизации. Этот путь уже прошли "апаратчики", когда процессор всё сам делал, выступая и кунецом, и жнецом. Теперь переферия стала умной и почти всё делает самостоятельно. Точно так же устройства "умных домов" будут свои задачи решать самостоятельно, в т.ч. и по отображению информации, общаясь друг с другом системой сообщений.
P.S. МК - это не только Мега328. Малому МК - малый интерфейс, от каждого по возможности.
P.S.2. Ждать всемогущего властителя в центре и рулить всем подряд - это, похоже, менталитет такой. :)))
P.S.3. Какие тут все крутые, бляха муха, да обидчивые... Прям как с девочками... :)))
Тут крутой только вы, по ходу. И в своей крутости пороть чушь - вам нет равных, это точно! Какая, нахер, аггрегация с iframe? Вы хоть понимаете значение этого термина, млять?
Надоело с воинствующим дилетантом разговаривать - бессмысленно. Чао.
Дааа... Поднабралось бабёх трепливых - чуть что, чуть сказать нечего по делу, обидки и личные оскорбления. :))) А аргументы - нафига, мои можно не заметить скромно, своих всё равно нет. Проще же фыркнуть. Ржунемагу тут с некоторых. :)))
См. Вики, чтобы не быть голословным, в отличии от некоторых баб тут: Агрегация или агрегирование (лат. aggregatio «присоединение») — процесс объединения элементов в одну систему.
Простейшей объединённой системой, совершенно очевидно, можно считать вывод информации от нескольких элементов на единый монитор (не путать с экраном ПК). Если каждый элемент системы имеет свой самостоятельный web интерфейс, вполне возможно создать страницу, в котрой несколькими тегами <iframe> загрузить интефейсы с каждого устройства на одну страницу, каждый в своё подокошко. В итоге страница агрегирует вывод информации в единое окно отображения. Возражения есть?
А для тупорылых добавлю - там смайлик был в конце фразы. Вот такой :)
P.S. Вы бы уже объединились, обсудили какой я нехороший, толпой бы поорали - девочки так ведь делат? В форуме не знаю сколько человек, но есть один хамуга пустобрёх, один выскочка, один советчик уровня чайника, и изобретатель системы продаж маршрутизаторов внагрузку. Все четвера на меня зуб точат, идинаково умеют против аргументов лишь сопли лить. Ржунемагу! :)))
Фаэтон, скажу тебе по-русски - иди нахуй. Если по хорошему не понимаешь.
такой вопрос, делаю управление освещением с помощью кнопок которые будут раскиданы по дому вместо выключателей, будет 10 кнопок подключеных к одному аналоговому входу через разное сопротивления, скетч обработки написал, но вот быстродействие и факт нажатия огорчает) подскажите как это связать с внешним прерыванием, проблема в том для прерывания нужен дистретный сигнал, а для отпределения кнопки аналоговый, тянуть отдельные провода для прерывания не вариант, и просьба не советовать свякую по-русски говоря хуйню
Фаэтон, скажу тебе по-русски - иди нахуй. Если по хорошему не понимаешь.
Ну, так поплачь ещё, девочка. :))) Обкакался с доводами и чушью от кривости мозгов, а хамить любое животное умеет. :))))
такой вопрос, делаю управление освещением с помощью кнопок которые будут раскиданы по дому вместо выключателей, будет 10 кнопок подключеных к одному аналоговому входу через разное сопротивления, скетч обработки написал, но вот быстродействие и факт нажатия огорчает) подскажите как это связать с внешним прерыванием, проблема в том для прерывания нужен дистретный сигнал, а для отпределения кнопки аналоговый, тянуть отдельные провода для прерывания не вариант, и просьба не советовать свякую по-русски говоря хуйню
Давайте скетч. Быстродействия аналогового входа (АЦП), скорее всего, тут совершенно не при чём. Факт нажатия, предполагаю, портится помехами.
P.S. Лучше создайте отдельную тему в разделе "Программирование".
Это было в другую тему :)
как раз таки быстродействие АЦП не успевает прочитать импульс 100-200 мс, потому что занята другими задачами, поэтому и решено использовать прерывание, собрал вот такую схему, но дребезг вызывает прерывание 3-5 раз за одно нажатие. В функции которое вызывает прерывание не работает ни delay ни millis, поэтому программно убить дребезг не выходит, вот и не знаю как это реализовать... =)
как раз таки быстродействие АЦП не успевает прочитать импульс 100-200 мс, потому что занята другими задачами, поэтому и решено использовать прерывание, собрал вот такую схему, но дребезг вызывает прерывание 3-5 раз за одно нажатие. В функции которое вызывает прерывание не работает ни delay ни millis, поэтому программно убить дребезг не выходит, вот и не знаю как это реализовать... =)
Это кто у Вас там кнопки так быстро нажимает? :)
Создайте внешнюю переменную - флаг времени вызова предыдущего прерывания.
На прерывании таймера эту переменную декриментируйте, если она больше нуля.
На прерывании от кнопки, если флаг не равен нулю - ничего не делать и вывалиться из прерывания, иначе записать в флаг значение времени нечувствительности и прочитать значение.
Кроме того, не забывайте, что прерывания имеют разные варианты: по фронтам, по низкому/высокому уровню и по изменению состояния. Если прерывание от кнопок будет настроено как по низкому/высокому уровню, то оно будет постоянно вызываться, пока нажата/отпущена кнопка.