Arduino+ethernet+html
- Войдите на сайт для отправки комментариев
Ср, 19/11/2014 - 13:22
Добрый день,
Есть идея управления электрическим котлом.
С самой логикой разобрался. Работает вопросов нет, но вот с визуализацией и управлением возникли проблемы.
Я только начинаю с этим работать - прошу сильно не пинать )
Вопрос в следующем.
1. На html странице arduino необходимо два поле. Первое для ввода нужной температуры, второе для порога нижнего значения комфортной температуры с фиксацией этих значений.
2. Отображение состояния датчиков температуры по комнатам, среднее значение во всем доме и температуры теплоносителя в котле. Так же состояние насоса котла (вкл/выкл)
3. Управление внешним насосом
Можно ли в самой Arduino использовать CSS? или для этого необходимо внешний WEB - сервер?
1. Начните с каких-то более простых проектов. Вокруг же полно интересных задач. Когда набъете руку, переходите к проектам с управлением силовым оборудованием. Вам для нормальной реализации "html страницы" желательно хотя бы знание javascript
2. вот с работы с датчиками и начните, без всякого "управления котлами" и т.д.
3. китайские релюшки, которые обычно задействуют в ардуино-проектах, могут просто не потянуть приличный погружной насос. я даже примеров таких не видел.
Датчики опрашивать, получать инфу, управлять реле, выводить инфу в html arduino я научился, в вот дальше, что то стопор какой то.
Насос не мощьный, но можно поставить и магнитный пускатель после релюхи.
ну тогда реле на оптронах и магнитный пускатель.
а в чем проблема с отображением ? что и откуда ты хочешь отображать, не совсем понятно...
ардуина тем и хороша, что вариантов интерфейса может быть миллион. можно радиомодулями передавать на lcd-экранчик, а можно, например с gsm-модуля отправлять на сервер и рисовать страничку красивую.
и наоборот - управлять задачами можно нажимая на кнопочки на странице или на кнопки на модуле в котельной.
Сейчас схемку нарисую
Что то такое хочу получить на выходе
вообще это тема для другого форума. автоматическая подгрузка и отображение данных на хтмл-странице без перезагрузки самой страницы не самая тривиальная задча, обычно для этого задействуют javascript+ php+ ajax.
Хорошо.
А как организовать тогда хотя бы вот так?
установка температуры будет производиться одной кнопкой
CSS ? внешний WEB - сервер ? знание javascript ?
А что-то типа
не проще ли будет ? (Вырвано из скетча, но, надеюсь, мысль моя понятна)
вам точно нужна именно интернет страница ? может быть processing (это просто отображение на компьютере с внешнего порта usb или serial) , или там, экранчик какой-нибудь ? если всё же html, посмотрите здесь
http://habrahabr.ru/post/171525/
Спасибо за статью.
У меня получилось следующее
в мониторе порта вижу ответ на ввод значений
читай про String и char http://arduino.ru/Reference
можно например так : перебираем все символы, пока не встретится знак "=", после этого начинаем записвать в строковую переменную все символы, которые являются цифровыми, как только пошел нецифровой символ, значит переменную ты уже записал. то же самое повторяешь после второго найденного знака равенства. затем конвертируешь из строкового типа в целочисленный - профит. на самом деле это такая задача, в которой должно быть интересно разобраться самому.
Вот здесь http://arduino.ru/forum/programmirovanie/razbor-testovoi-stroki#comment-28095 уважаемый leshak делился в свое время функцией для разбора строк, по сей день пользуюсь. Поменяйте только символы в strtok().
Использование:
ну это в точности то, о чем я говорил.
сначала отловить "=", потом выбрать все знаки от 0 до 9 и конвертировать в число.
Именно. Самый простой и логичный алгоритм.
Подскажите в каком месте кода это должно обрабатываться?
Буду очень признателен за помощь
У Вас это String readString
У меня это char data
#define REQ_BUF_SZ 256
char data[REQ_BUF_SZ] = {0};
char req_index = 0;
Дальше у меня так:
Ну и далее куча else if (strstr(data, "
Ну то есть Вам надо либо void parseParams(char* inputString) приводить к String, либо анализируемый String приводить к char.
Как я вижу, парсинг уже есть
так как в мониторе порта я вижу строку типа
Вот тут все расписал же: http://arduino.ru/forum/programmirovanie/arduinoethernethtml#comment-88162. Ваша "/?uptemp=20&downtemp=18" ничем не отличается от моей "/?nightbeginhour=23&nightbeginminute=30&nightendhour=5&nightendminute=30", неужели этого недостаточно для понимания ?
Araris, можно помощи по skype попросит?
ramzes.ru
Простите, нет.
Сделал вот так
В сериал.принт отдает занчения, но почему то
значение uptemp выглядит 20&downtemp=18
а значение downtemp выглядит так как надо 18
как в значении uptemp отсечь вывод значения после 20?
С помощью какой функции строковое значение конвертировать в числовое?
Для string.substring есть еще второй параметр.
Синтаксис
string.substring(from)
string.substring(from, to)
Параметры
string: переменная типа String
from: индекс начала подстроки
to (опциональный): индекс перед которым должна закончится подстрока
Воспользуйтесь, тогда сможете отсечь &downtemp=18 от uptemp.
Вот так вот получилось.
А как теперь строкое значение конвертировать а числовое?
http://arduino.ru/Reference/IntCast
у класса String есть функция toInt() применять так:
Я бы конечно туда еще double конвертер дописал, что сделает еще жирнее клас String.
вообще это тема для другого форума. автоматическая подгрузка и отображение данных на хтмл-странице без перезагрузки самой страницы не самая тривиальная задча, обычно для этого задействуют javascript+ php+ ajax.
Знаете, не так и сложно оказалось.
Правда не понятно, зачем тут пхп, но яваскрипт очень даже реально заставить работать на w5100. Собственно задача сводится к написанию обработчика ХТТП-запросов. А яваскрипт все равно браузер выполняет.
Я даже свой любимый Рафаэль на ардуине запустил, другое дело, что учитывая скорость - это было бессмысленно...
у класса String есть функция toInt() применять так:
Я бы конечно туда еще double конвертер дописал, что сделает еще жирнее клас String.
Спасибо за совет, все получилось основная часть задумки заработала.
поделись пожалуйста скетчем,тоже появилась надобность вносить изменения в переменные через текстовое поле с html странички...
пиши на ramzes.ru@mail.ru
У Вас это String readString
У меня это char data
#define REQ_BUF_SZ 256
По поводу буфера, у меня что-то зависает на 256, на 128 нормально (MEGA 2560 & W5100).
В какую сторону рыть, не могу понять.
Хоть топик и стар, но всетаки внесу свою лепту.
Если не развая поделка, то стоит выделить компик, например на Intel ATOMе на который поставить Apache, PHP, MySQL и делать запросы к поделке из PHP или из тела страницы через AJAX.
Если поделка разовая, то все файлы HTML/CS/JS необходимо разместить на SD карте, а все комманды сделать через AJAX. Логика скетча будет такой: если запрашиваемый файл (GET /css/script.js) есть на SD карте, то "поливать" клиенту его, если файла нет то пробовать разобрать как комманду к самой ардуине (AJAX)... тут 2 группы: 1 запрос значения, 2 установка значения. В этой схеме можете поставить bootstrap на SD карту и спокойно ваять интерфейс. Единственный минус, что ардуина может выдавать только 1 файл в один момент времени а HTTP 1.1 подразумевает паралельную выдачу и будет казаться что все тормозит.
Доброго времени суток!
Сеня сидел вкуривал хтмл на ардуине))
получилась такая забавная штуковина:
Подскажем подсказку;)
https://youtu.be/5-Y1tt14xsA
Я думаю и на ардуинке такое взлетит если допилить немного. Оно здесь -
http://arduino.ru/forum/otvlechennye-temy/orange-pi-one-nuzhen-start?pag...