Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Библиотеки/Webduino

Материал из Онлайн справочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


Библиотека Webduino[1][2][3]

Библиотека Webduino – это расширенная веб-серверная библиотека для Arduino, разработанная для класса в хакерспейсе NYC Resistor и выпущенная под лицензией MIT, которая разрешает все виды повторного использования. Для использования библиотеки необходим Ethernet-модуль на базе Wiznet. Англоязычную (и незаконченную) презентацию, посвященную Webduino, можно посмотреть по этой ссылке.

В библиотеке Webduino имеется функционал для следующих задач:

  • Анализ параметров URL
  • Обработка следующих HTTP-методов: GET, HEAD, POST, PUT, DELETE, PATCH
  • Работа с веб-формами
  • Работа с изображениями
  • Работа с интерфейсом JSON/RESTful
  • Базовая HTTP-аутентификация

Примечания к установке

Для Arduino 0016 и ранее поместите файл WebServer.h в папку hardware/libraries/webduino в директории, где находится IDE Arduino. Для Arduino 0017 и позже поместите папку Webduino в папку «libraries», которая находится в папке со скетчами (на Windows это папка «Arduino», которая находится в папке с документами).

Примеры можно положить в вашу собственную папку со скетчами или, если предпочитаете, в папку hardware/libraries/webduino/examples.

Если при компиляции примеров возникает ошибка вроде «WebServer.h not found», это значит, что вы не в то место поместили папку Webduino. Сервер не будет работать, если заголовочный файл находится прямо в папке с библиотеками.

Дополнительные библиотеки

Библиотека Streaming упрощает вывод сложных данных при помощи классов, наследующих у Print. Самая простейшая форма этого метода представлена в скетче-примере Web_Demo в виде шаблона operator <<.

Библиотека Ethernet 2, которая является переписанной версией оригинальной библиотеки Ethernet. Она по-прежнему служит тому, чтобы плата могла «разговаривать» с Ethernet-модулем, но теперь работает лучше и требует меньше программного места.

Замена файла Client.cpp в папке Hardware/Library/Ethernet для Arduino 15. Он также используется вместе с Ethernet 2. Делает соединение с сервером более надежным. Будем надеяться, он вскоре станет официальной частью ядра Arduino.

Как использовать?

Поместите копию WebServer.h в папку со скетчами. В самом верху скетча впишите

#include "Webserver.h"

Далее объявите объект WebServer, а также убедитесь, что в блоке setup() вписана функция begin(), а в блоке loop() – функция processConnection().

Функции

  • WebServer(urlPrefix, int port)
  • begin()
  • processConnection(buffer, bufferLen)
  • processConnection()
  • setDefaultCommand(cmd)
  • setFailureCommand(cmd)
  • addCommand(verb, cmd)
  • print(...)
  • printCRLF()
  • printP(progStr)
  • write(data, length)
  • writeP(progData, length)
  • readPOSTparam(name, nameLen, value, valueLen)
  • nextURLparam(tail, name, nameLen, value, valueLen)
  • radioButton(name, val, label, selected)
  • checkBox(name, val, label, selected)
  • int read()
  • push(ch)
  • bool expect(expectedStr)
  • httpFail()
  • httpSuccess(contentType, extraHeaders)
  • httpSeeOther(otherURL)

Примеры

  • Web AjaxBuzzer - Управление зуммером через браузерный интерфейс (AJAX)
  • Web AjaxRGB - Управление RGB-светодиодом через браузерный интерфейс
  • Web AjaxRGB mobile - Управление RGB-светодиодом при помощи смартфона
  • Web Authentication - HTTP-аутентификация
  • Web Buzzer - Управление зуммером через браузерный интерфейс
  • Web Demo - Запрос значений на контактах через браузерный интерфейс
  • Web HelloWorld - Показ в браузере надписи «Hello, World!»
  • Web Image - Показ в браузере иконки со светодиодом
  • Web Net Setup - Браузерный интерфейс для настройки сети
  • Web Parms - Передача и анализ параметров

См.также

Внешние ссылки

  1. code.google.com - webduino
  2. code.google.com - Documentation.wiki
  3. github.com - readme.md