Проблема с отображением веб-страницы w5100
- Войдите на сайт для отправки комментариев
Чт, 11/06/2015 - 20:04
Вечер добрый всем! Почти мой проект достиг апогея, как вновь непонятная хрень возникает... Соединил УНО и w5100 ничего более не подключая.... Написал кодищще немаленький и загрузил в дуинку... Все прекрасно работает.... Дописал кодищще чуток и тут понеслаааась: то пост-запрос в гет превращается сам по себе.... То буква в кракозябру превратится нисфига... То кнопка "рефреш" (отправка запроса на сервер) вообще исчезнет... Вот кусок html кода:
client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(); client.println("<html>"); client.println("<head>"); client.println("<meta http-equiv='content-type' content='text/html; charset=utf-8'>"); client.println("<title>Эксперимент</title>"); client.println("</head>"); client.println("<body>"); client.println("<h3>Ардуинка HOUSE</h3>"); client.println("<form method='post'>"); client.print("Фактическая Температура основного водогрея =<b><big> "); client.print(tempC); client.println("</big></b>*C;"); client.print("<p>Заданная Температура основного водогрея = "); client.println("<select name='t1'>"); client.println("<option value='00'"); if (a==00){ client.println("selected"); digitalWrite (relePin[4], HIGH);} else digitalWrite (relePin[4], LOW); client.println(">00</option>"); client.println("<option value='35'"); if (a==35) client.println("selected"); client.println(">35</option>"); client.println("<option value='40'"); if (a==40) client.println("selected"); client.println(">40</option>"); client.println("<option value='45'"); if (a==45) client.println("selected"); client.println(">45</option>"); client.println("<option value='50'"); if (a==50) client.println("selected"); client.println(">50</option>"); client.println("<option value='55'"); if (a==55) client.println("selected"); client.println(">55</option>"); client.println("</select></p>"); client.print("Фактическая Температура вспомогат водогрея =<b><big> "); client.print(tempC2); client.println("</big></b>*C;"); client.print("<p>Заданная Температура вспомогат водогрея = "); client.println("<select name='t2'>"); client.println("<option value='00'"); if (b==00){ client.println("selected"); digitalWrite (relePin[5], HIGH);} else digitalWrite (relePin[4], LOW); client.println(">00</option>"); client.println("<option value='35'"); if (b==35) client.println("selected"); client.println(">35</option>"); client.println("<option value='40'"); if (b==40) client.println("selected"); client.println(">40</option>"); client.println("<option value='45'"); if (b==45) client.println("selected"); client.println(">45</option>"); client.println("<option value='50'"); if (b==50) client.println("selected"); client.println(">50</option>"); client.println("<option value='55'"); if (b==55) client.println("selected"); client.println(">55</option>"); client.println("</select></p>"); client.print("Состояние розетки основного водогрея="); client.println(digitalRead(relePin[4])); client.print("<p>Состояние розетки вспомогательного водогрея="); client.println(digitalRead(relePin[5])); client.print("</p>"); client.print("<div>Relay 3 <input type='checkbox' "); if (pinState[2] == 1) client.print("checked"); client.println(" name='r2'></div>"); client.print("<div>Relay 4 <input type='checkbox' "); if (pinState[3] == 1) client.print("checked"); client.println(" name='r3'></div>"); client.println("<input type='submit' value='Refresh'>"); client.println("</form>"); client.println("</body>"); client.println("</html>"); client.stop();
В чем может быть проблема? Памяти мало или в коде ошибка или еще что?
http://playground.arduino.cc/Learning/Memory
Благодарю за направление... Я понял, вроде как флэш-памяти недостаточно у УНО для такого кода... А какой самый оптимальный вариант решения проблемы? Просто заменить УНО на ,к примеру, МЕГУ или же код переделать? Иле еще что-то необходимо?
Флеш-памяти как раз достаточно, не путайте с ОЗУ.
"Неизменяемые строки и данные во время работы скетча можно хранить во флеш-памяти. Для этого необходимо использовать ключ PROGMEM"
Максим указывает на F() - макрос работающий со строками во флеш-памяти.
"Arduino IDE introduced the F() syntax for storing strings in flash memory rather than RAM."
Вот Вам еще направление )) : http://www.arduino.cc/en/Reference/PROGMEM
а также http://mk90.org/wiki/index.php/PROGMEM
Спасибо! Постараюсь сегодня вникнуть в это дело... Тяжело, когда ни твое образование, ни твоя работа никак не связаны с программированием)) Начну ка я, пожалуй, с изучения какая память для чего нужна и где используется))
Короче, все что вам нужно сделать, это добавить во все статичные строки F().
Короче, все что вам нужно сделать, это добавить во все статичные строки F().
Вообще подход верный и я им сам активно пользуюсь, но в УНО как не изголяйся, что-то более менее емкое, связанноеке с сетью не влазит.
Короче, все что вам нужно сделать, это добавить во все статичные строки F().
Большое спасибо за короткий и ясный ответ! Все получилось и теперь мои водогрейчики радуют меня базовым набором функционала на веб-странице:) P.S. Газ дома есть, ды газовый проект под настенный котел передлать 55к загнули)))
А коли понеслась такая пляска, то подскажите мне, пожалуйста, следующий момент: как я понял из постов выше, PROGMEM требует подключение библиотеки и выводит переменную во флэш-память для экономии и без того бедной sram-памяти (она же ОЗУ вроде как)... А макрос F() делает тоже самое, но только не с переменными, а со статичными величинами без подключения всяких библиотек... И есть еще EEPROM память, в которой хранится любая долгосрочная инфа и тоже требуется подключение библиотеки... Как флэшка вообщем. Я все правильно понял???
Да, правильно.
Вот, наглядный пример нашел (http://www.gammon.com.au/forum/?id=12615) :
"Let's print a constant by adding this line:
Serial.println ("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmo");
Output is now:
Free memory = 1630
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmo
So the free RAM has gone down by 72 bytes, which happens to be be how long that string is (allowing one byte for the 0x00 terminator at the end).
Why? Because the string was copied from PROGMEM, where it must be when the Arduino is turned off, into RAM.
The first thing we can do is use the F() macro, which cunningly expands out to print directly from PROGMEM, thus saving RAM. So we change the line above to read:
Serial.println (F("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmo"));
Output:
Free memory = 1702
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmo
Back to 1702 bytes of free memory."
Благодарю за пример! Вот только в школе училка по английскому была стерва и мы с ней не дружили совсем... Как профессионал она нулевая была и заинтересовывать своими предметом не умела вовсе (Лондон ис зэ кэпитал оф грейт британ))). Поэтому по окончании школы мои знания английского языка слегка отличались от нуля... Но компьютерный мир все же заставил меня выучить слов 200-300, но их явно не достаточно для прочтения этой статьи))) А переводчики вообще не радуют своим переводом сложных текстов... Но я попытаааюсь разобраться в написанном! Спасибо!
Только "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmo" не переводите ! )))
Только "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmo" не переводите ! )))
Ну я ни в одном фильме не видел послушания героев, если есть фраза "только дверь не открывай/на чердак не заглядывай и т.п.")))) Один фиг ничего не понял)
ИМХО, лучше перейти на Mega2560. Там и ОЗУ ощутимо больше и памяти для загрузки программы и портов багатенно, а стоит не так уж и дорого. Хотя можно и поизвращаться, для большего развития :)
Благодарю за направление... Я понял, вроде как флэш-памяти недостаточно у УНО для такого кода... А какой самый оптимальный вариант решения проблемы? Просто заменить УНО на ,к примеру, МЕГУ или же код переделать? Иле еще что-то необходимо?
Я подумал подумал и перешел на мегу.
Потому как если много шилдов подключать у уно памяти нехватает, и приходится экономить чуть ли не побайтно.
Может когда проект сделаю и будет время, посижу пооптимизирую до уно.
У меня основной проект сидит на меге, а опыты ставлю на уно... Вот и вкрячился))) Но благодаря добрым людям этого форума проблема разрешилась) Купил дом и придумал себе хобби-ардуино)
У меня основной проект сидит на меге, а опыты ставлю на уно... Вот и вкрячился))) Но благодаря добрым людям этого форума проблема разрешилась) Купил дом и придумал себе хобби-ардуино)
Да тут можно не только свой код оптимизировать можно, еще и библиотеки подправить иногда получается. Сложные я править не берусь, а вот простенькие можно немного "облегчить" :-)
У меня не дом, у меня дача, в основном полив, проветривание теплицы, охрана и мониторинг. Пока на простом поучусь, а вот когда уже все будет работать, и набежит статистика отказов, да и опыт использования, то при постройке буду использовать для умного дома :-)
Ну уже неплохо! У меня пока на работе твердотопливный котел (дровяной) сидит на ардуинке, а дома 2 столитровых водогрея облепленных 5ю датчиками ds18b20,2мя сервокранами китайскими и датчиком протечки)) Вот только с кнопки пока дома все работает, но на этой неделе добавлю эзернет-шилд и следом уже приобретенный GSM-шилд)
а дома 2 столитровых водогрея облепленных 5ю датчиками ds18b20,2мя сервокранами китайскими и датчиком протечки))
http://www.youtube.com/watch?v=KpPiVHoiQm0
Происходит при совпадении двух факторов:
1. Тен греет без остановки, например, дуина зависла или симистор пробило.
2. Неисправен или заглушен аварийный клапан сброса давления.
Вот это круто))) Это ведь мало того, что внутренняя защита отказала, но еще походу предохранительный клапан был нерабочий (если он вообще был)... У меня все банальнее: стоят стандартные обратные клапана (с перепускником на 7атм) и я не убирал стандартную автоматику, а просто прибавил ее на всю а регулировка водогреев происходит путем отключения розетки... Поэтому если электроника даст сбой, сработает стандартная защита). Ну и они в подвале у меня еще) Кстати да http://www.youtube.com/watch?v=wLf-WGQyueY
3d-m.ru 8(800) 505-42-56 москва 3д принтеры
----
Выбрать 3d сканер Thor3d в каталоге с ценами в Москве
3d-m.ru 8(800) 505-42-56 москва 3д принтеры
----
Выбрать 3d сканер Thor3d в каталоге с ценами в Москве
ювелирные украшения +7 (495) 625-19-45
-----
Украшения интернет магазин
ювелирные украшения +7 (495) 625-19-45
-----
Украшения интернет магазин
одизайн обои интернет магазин
----
фотообои женщина алляулю
одизайн обои интернет магазин
----
фотообои женщина алляулю
про солидности и главного значения вашей бизнеса, всякой либо коммерческой оборота посредь остальных в публичных источниках интернета значимо может заявить лишь хорошо развернутый источник, который также несет функционирование продвижение всей необходимой сведений про ваших услугах пользователям. Содержание источника должно стать демократичными, доступны, передвижение подходящим в эксплуатации и иметь акцентирующую оформление- считаются базисные принципы завлечения потребителя. составить создание, разработку также развитие веб-страницы личной магазина пользователь можете через нашу онлайн- компанию http://stavropol.fedek.ru, которая на течении долгих лет продуктивно действует у области функционирования, производстве логотипа холдинга, конструировании и подготовке промо ресурса, корпоративных ресурсов, реестре состава ресурса, ну а еще обеспечивает следующую помощь у обслуживании персонального сайта в удовлетворительными оплатой всяческих технических заданий заказчика. Мы поручаемся своим пользователям индивидуальный отношение на различный заказу, неповторимость проделанной услуг на первоклассном степени практичного применения, качественную построение любой каверзности, свежий формат и умеренные стоимость именно за отменный произведение. работайте из нашей через наш сайта либо по указанного номеру затем унаследуйте в ходе нескольких дней полностью совершенный к использованию работоспособность вашего фирмы в электронном функционировании.
про солидности и главного значения вашей бизнеса, всякой либо коммерческой оборота посредь остальных в публичных источниках интернета значимо может заявить лишь хорошо развернутый источник, который также несет функционирование продвижение всей необходимой сведений про ваших услугах пользователям. Содержание источника должно стать демократичными, доступны, передвижение подходящим в эксплуатации и иметь акцентирующую оформление- считаются базисные принципы завлечения потребителя. составить создание, разработку также развитие веб-страницы личной магазина пользователь можете через нашу онлайн- компанию http://stavropol.fedek.ru, которая на течении долгих лет продуктивно действует у области функционирования, производстве логотипа холдинга, конструировании и подготовке промо ресурса, корпоративных ресурсов, реестре состава ресурса, ну а еще обеспечивает следующую помощь у обслуживании персонального сайта в удовлетворительными оплатой всяческих технических заданий заказчика. Мы поручаемся своим пользователям индивидуальный отношение на различный заказу, неповторимость проделанной услуг на первоклассном степени практичного применения, качественную построение любой каверзности, свежий формат и умеренные стоимость именно за отменный произведение. работайте из нашей через наш сайта либо по указанного номеру затем унаследуйте в ходе нескольких дней полностью совершенный к использованию работоспособность вашего фирмы в электронном функционировании.
http://www.youtube.com/watch?v=KpPiVHoiQm0
Убедительный аргумент за проточники.
Жара! Давай еще!))
----
http://popki-jopki.com/
Жара! Давай еще!))
----
http://popki-jopki.com/
безуспречно и авторитетно задействовать занятие для учеников реподаватель сможет лишь полностью располагая данные по заданой материале, и для того собственно чтобы семинар стала доходчивой, урок следует состоять захватывающим. Если у преподавателя всего лишь никак не хватает часа - не надо терять надежду, из учебным сайтом плотность потока электромагнитного излучения пользователь имеет возможность приготовить урок либо лекцию из наилучшим оценкой, не переживая про правильности подачи уведомлений. Учительский источник - является своего типом книгохранилищем, в которой пополняются совсем все доклады по необходимым вопросу и содержанию на всякий класс. Здесь пользователь получает возможность быстро загрузить или взять концепцию из планов- программы по урокам, также осмотреть методичные материалы в виде word печати или презентаций. во время последовательной выкладывания собственно на ресурс готового материала внимательно обследуется собственно на верность специалистами по установленного дисциплине, до того ж на сайте каждый день восстановляем последние научные работы на ресурс, комплектуя разнообразность портала. учебный портал для учителей снаюжает подготовленные тестовые контрольные, планы именно для уроков, аннотации, записи также много иной надобной источник. администрация подумали о посещении собственно для каждого, потому загрузить документ из данного сайта имеет возможность каждый http://home-task.com/ преподаватель, что пользователь имеет возможность сделать уже сейчас.
безуспречно и авторитетно задействовать занятие для учеников реподаватель сможет лишь полностью располагая данные по заданой материале, и для того собственно чтобы семинар стала доходчивой, урок следует состоять захватывающим. Если у преподавателя всего лишь никак не хватает часа - не надо терять надежду, из учебным сайтом плотность потока электромагнитного излучения пользователь имеет возможность приготовить урок либо лекцию из наилучшим оценкой, не переживая про правильности подачи уведомлений. Учительский источник - является своего типом книгохранилищем, в которой пополняются совсем все доклады по необходимым вопросу и содержанию на всякий класс. Здесь пользователь получает возможность быстро загрузить или взять концепцию из планов- программы по урокам, также осмотреть методичные материалы в виде word печати или презентаций. во время последовательной выкладывания собственно на ресурс готового материала внимательно обследуется собственно на верность специалистами по установленного дисциплине, до того ж на сайте каждый день восстановляем последние научные работы на ресурс, комплектуя разнообразность портала. учебный портал для учителей снаюжает подготовленные тестовые контрольные, планы именно для уроков, аннотации, записи также много иной надобной источник. администрация подумали о посещении собственно для каждого, потому загрузить документ из данного сайта имеет возможность каждый http://home-task.com/ преподаватель, что пользователь имеет возможность сделать уже сейчас.