Во второй части статьи разобрано создание Web сервера на Arduino UNO с платой Ethernet shield, который не только отображает состояние датчиков, но и позволяет управлять состоянием одного цифрового выхода…
В первой части был разобран пример, демонстрирующий только отображение состояния датчиков, а нам бы хотелось еще и управлять нагрузкой…
Нашел пример sketch для создания более серьезного Web-сервера. Тут несколько отображаемых страниц, отработка запроса из браузера. Правда в исходнике есть ошибки, исправленный sketch тут. Все работает, но быстро сообразить как переделать сие под мои нужды не смог (хотя этот вариант «дожать» можно).
На будущее: нашел ссылку с интересным описанием Web-сервера с множеством html страниц, хранящихся на SD карте. Как-нибудь, будет время и интерес, разберемся…
В итоге, под носом, нашел библиотеку WebDuino, где есть все что нам нужно. Скачиваем, устанавливаем, смотрим — наш пример Web_Demo. Заливаем — работает. Остается только убрать лишнее: опрос аналоговых линий, опрос и управление «лишними» цифровыми линиями; добавить процедуру и библиотеку работы с температурным датчиком и … получаем то что нам требовалось. Нагрузкой управляем с цифрового выхода установкой на нем логического нуля (выключено) или единицы (включено). К выходу можно подключить светодиод оптопары, а дальше… делай с сигналом что хочешь…
В качестве светодиода оптопары на фото к pin 9 платы Arduino подключен обычный белый светодиод с токоограничивающим резистором 200 Ом.
Состояние цифрового датчика (контактный датчик — замкнуто/разомкнуто) контролируем на pin 7 платы Arduino (на фото — свободный контакт).
В sketch-е я не убирал «лишние» строки — они просто за комментированы. Комментариев по ходу текста много — понять смысл программы можно.
Немного про web-интерфейс получившейся странички (по сути — это перевод комментариев скетча).
Если к web-серверу обращаться с словом form после IP-адреса (в примере: 10.0.5.11/form), то картинка будет такая, как показано выше.
Здесь можно управлять цифровыми линиями: выставить нужное состояние и нажать кнопку «Submit».
Если к web-серверу обращаться просто по IP адресу, картинка будет той же, но без кнопки «Submit» и флажков управления цифровыми входами — это обычный режим наблюдения:
Есть третий режим обращения 10.0.5.11/json — в этом случае будет текстовая строка с отображением состояния: