WEB-SERVER НА ARDUINO С АВТОРИЗАЦИЕЙ И ГРАФИЧЕСКИМ ПРЕДСТАВ-ЛЕНИЕМ ИНФОРМАЦИИ С ДАТЧИКОВ
DOI:
https://doi.org/10.17721/2519-481X/2019/64-10Ключові слова:
микроконтроллер, ENC28J60, W5100, W5500, Arduino Mega, Arduino UNO, ATmega2560, библиотека Dygraphs, AVR Studio, base64-encoded, basic authenticationАнотація
В работе на базе Arduino Mega и контроллера W5100 построен web-сервер для графического отображения данных удаленного клиента, полученных с датчиков температуры, давления, влажности. Программа сервера написана в среде разработки Arduino IDE. Откорректирована библиотека Ethernet для W5100, которая для Arduino IDE ver. 1.0.3, 1.0.5-r2 приводила к зависанию сервера. Показана возможность использования библиотеки Dygraphs для графической визуализации данных, полученных с помощью датчиков. Написаны скрипты для прорисовки графиков для спроектированного web-сервера. Проанализирована скорость передачи данных с web-сервера Arduino для различных сетевых контроллеров ENC28J60, W5100, W5500 для среды программирования Arduino IDE и библиотек UIPEthernet, Ethernet, Ethernet2. Показано, что с наименьшей скоростью данные передаются web-сервером с контроллером ENC28J60 - 3.3КБайт/с, с наибольшим контроллером W5500 - 23.4Кбайт/с. Отмечено, что эти сервера не поддерживают многопоточную работу. Поэтому они не могут быть использованы для создания миниатюрных универсальных web-серверов для обработки нескольких запросов одновременно. Рассмотренный в работе сервер может обслуживать только один запрос от одного удаленного клиента. Проанализированы скоростные параметры передачи данных для сервера на микроконтроллере ATmega328p(Arduino UNO) с контроллером сети ENC28J60. Программа сервера реализована на языке Си в среде программирования AVR Studio. Отмечена высокая скорость передачи данных - 140КБайт/с и возможность многопоточной работы. Установлено, что при одновременной передачи трех файлов разным клиентам суммарная скорость передачи достигает 120-130КБайт/с, а для каждого клиента 40-50КБайт/с. Показано, что использование такого сервера для решения задачи графического представления данных с датчиков затруднено вследствие сложности переноса программного обеспечения на другие микроконтроллеры и ограниченностью библиотеки для работы с картой microSD. Эксплуатация разработанного здесь сервера в течении трех лет показала высокую надежность его работы.
В работе рассмотрено создание web-сервера на Arduino, который имеет модернизированную HTTP basic authentication. Модернизация состоит в том, что для авторизации используется пароль из списка паролей, который выбирается пользователем на основании ключа, пересылаемого сервером. При каждом новом входе на сервер предыдущий пароль становиться недействительным. Представлен практический пример web-сервера на Arduino Mega, контроллерами Ethernet: enc28j60 и w5500.