Как правило, все разработчики очень заинтересованы в том, чтобы их проекты были реализованы и запущены как можно быстрее. Помимо чисто рациональных факторов, фактор волнения от того, что их собственный проект воплощается в жизнь, вызывает прилив адреналина.
Крутая кривая обучения созданию любой надежной системы связи, не говоря уже о быстром и надежном веб-сервере из универсальных библиотек, к которым мы в настоящее время имеем доступ, убила энтузиазм многих начинающих разработчиков, имеющих дело с ESP8266. И даже в случае успеха возникает утомительная обработка каждой отдельной транзакции из переменной в скетче для отображения на клиенте. Или, что еще хуже, необходимость брать некоторые данные или события, инициированные человеком, от клиента и передавать их на сервер и в переменные или для запуска задач. Даже эксперт может легко потратить в десять раз больше времени на логику взаимодействия со своим проектом, чем на аппаратную проводку и основную логику своего проекта. Но должен же быть лучший способ.
Библиотека InqPortal (можно найти в диспетчере библиотек Arduino IDE) – это кульминация шести лет и тысяч часов упрощения (для пользователя библиотеки) и усовершенствования для обеспечения надежной работы. Отзывы пользователей и наблюдение за разочарованием новичков, пытающихся создать свои собственные проекты, были учтены в новой версии InqPortal 5.
InqPortal работает только на процессорах серии ESP8266. Они часто подключаются к платам Arduino для обеспечения связи по Wi-Fi, но также могут использоваться автономно, поскольку сами по себе имеют довольно мощный процессор.
Если вы новичок в работе с ESP8266, вам сначала нужно установить его библиотеки с помощью менеджера плат Arduino. Если у вас уже установлена библиотека ESP8266, перед использованием библиотеки InqPortal необходимо установить патч — https://inqonthat.com/arduino-ide-configuration-for-windows/#Patch. Найдите и установите библиотеку InqPortal из диспетчера библиотек Arduino IDE. Введите следующий код в новый скетч:
#include <InqPortal.h>
InqPortal svr;
void setup()
{
svr.begin("MySoftSSID", NULL, "myRouterSSID", "myRouterPassword");
}
void loop()
{
}
Это все, что вам нужно, чтобы начать. Библиотека даже настроит ваш последовательный вывод, установив скорость передачи данных на 115200. Вы захотите увидеть информацию о запуске с сервера на своем последовательном мониторе, он покажет вам информацию о подключении и даже инструкции, которые помогут вам преодолеть это препятствие новичка. Следуя этим инструкциям, перейдите на страницу Admin.html, и вы увидите что-то вроде изображения заголовка, где вы можете управлять настройками точки доступа, осуществлять мониторинг системных показателей, отображающий производительность вашего сервера, использовать файловый менеджер, чтобы перетащить веб-контент на сервер и т.п.
Чтобы дать вам некоторое представление о том, что можно сделать с помощью InqPortal на самом начальном уровне, мы добавим еще только три строки и немного смоделированного кода сенсора. И в рамках этого дополнения вы увидите следующие возможности: опубликовать переменную только для чтения для клиентов, опубликовать переменную, которая может быть как прочитана, так и изменена клиентами, настроить периодический обратный вызов для доступа к нашему моделируемому датчику, чтобы сделать расчет.
#include <InqPortal.h>
InqPortal svr;
double sine = 0;
double amplitude = 100.0;
void setup()
{
svr.publishRO("Sine", &sine, "Current Sine Value");
svr.publishRW("Amplitude", &litude, "Amplitude Setting");
svr.onInterval(calculate, 1000);
svr.begin("MySoftSSID", NULL, "myRouterSSID", "myRouterPassword");
}
void loop()
{
}
void calculate(void*)
{
sine = amplitude * sin((double)millis() * PI / 30000.0);
}
Если вы знакомы с каким-либо кодом связи WiFi, вы заметите полное отсутствие явного кода отправки или получения. Вы можете сосредоточиться на основной логике проекта. И в рамках данных трех строк Admin готов смотреть и контролировать вашу программу.
Выполнение одной настройки на вкладке «History» (История) позволяет добавлять данные вашего пользовательского проекта к уже существующим показателям производительности системы – скорости цикла и использованию памяти. Примечание: мы изменили амплитуду на вкладке «App» (Приложение) на 200 после завершения первого цикла.
Как вы можете видеть, на этапах разработки вашего проекта администратор InqPortal может предоставить всю базовую обратную связь и контроль, необходимые для подтверждения вашей основной логики, прежде чем вы пошевелите пальцем, чтобы иметь дело с вашим клиентским приложением. Но, когда вы будете готовы создать более подробное или более косметическое клиентское приложение (например, добавить датчики, циферблаты и ползунки), администратор InqPortal может поставить вас на правильный путь. В этой новой версии 5 добавлен генератор кода, который возьмет ваши опубликованные переменные и настроит пользовательский интерфейс на одной странице.
© digitrode.ru