Оглавление:
- Запасы
- Шаг 1. Заставьте его работать
- Шаг 2: как работает код
- Шаг 3: Установите NODEMCU в качестве сервера
- Шаг 4. Загрузите HTML-файл
- Шаг 5: Попробуйте
Видео: Как использовать ESP8266 в качестве веб-сервера: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
Привет, в настоящее время я использую Windows 10, NodeMCU 1.0, и вот список программного обеспечения, которое я использовал, и руководства по установке, которым я следовал:
- IDE Arduino
- Дополнительные платы для esp8266
- Spiff
Используемая библиотека:
Websocket
Я использовал NodeMCU в качестве сервера для обслуживания HTML-файла, который я сделал из этого руководства. Чтобы обслужить этот файл, я загрузил его в файловую систему nodemcu с помощью Spiffs. HTML-файл отправляет данные на nodemcu с помощью веб-сокетов, которые будут распечатаны на последовательном мониторе для этого. Быстрая двунаправленная связь через веб-сокеты сервера и клиента позволяет использовать это в качестве удаленного управления. На следующих этапах я буду объяснять, как работает мой код.
Запасы
NodeMCU
Шаг 1. Заставьте его работать
Вот как это работает
- Скачайте прикрепленный файл и откройте файл mousebot.ino
- Перейдите в эскиз> показать папку эскиза и создайте новую папку с именем data.
- Сохраните html-файл из этого руководства в папке с именем. Я назвал свой "Джойстик"
- Убедитесь, что ваш spiff уже работает, перейдя к инструментам и увидев «загрузка данных эскиза esp8266».
- Загрузите html-файл в nodemcu, нажав "esp8266 sketch data upload"
- После загрузки файла загрузите в nodemcu файл mousebot.ino, войдя в среду разработки arduino и нажав ctrl U
Шаг 2: как работает код
Сначала мы включаем библиотеки, которые будет использовать этот код.
// чтобы позволить ESP8266 подключиться к WIFI
#include #include #include // Позволяет ESP8266 действовать как сервер #include // разрешает связь с сервером и клиентом (подключенным устройством) #include #include // Чтобы открыть загруженный файл на nodemcu #include
Установите esp8266 в качестве веб-сервера, открытого на порту 80. Порты - это пути, по которым будут проходить данные. В качестве порта сервера он будет отправлять HTML-файл клиенту (подключенным к нему устройствам).
Добавляет подключение к веб-сокету с использованием порта 81 для прослушивания сообщений от клиента.
У веб-сокетов есть параметр номер, WStype_t, полезная нагрузка и размер. Число определяет номер клиента, полезная нагрузка - это сообщение, которое он отправляет, размер - это длина сообщения, а WStype_t - для разных событий, таких как
- WStype_DISCONNECTED - при отключении клиента.
- WStype_CONNECTED: - когда клиент подключается
- WStype_TEXT - Полученные данные от клиента
В зависимости от типа события выполняются разные действия, которые здесь комментируются.
void webSocketEvent (uint8_t num, WStype_t type, uint8_t * payload, size_t length) {
переключатель (тип) {case WStype_DISCONNECTED: Serial.printf ("[% u] Disconnected! / n", num); // выводит данные на серийный монитор break; case WStype_CONNECTED: {IP-адрес ip = webSocket.remoteIP (число); // получает IP-адрес клиента Serial.printf ("[% u] Подключено от% d.% d.% d.% d url:% s / n", num, ip [0], ip [1], ip [2], ip [3], полезная нагрузка); webSocket.sendTXT (число, «Подключено»); // отправляет "conencted" в консоль браузера} break; case WStype_TEXT: Serial.printf ("[% u] Данные:% s / n", число, полезная нагрузка); // выводит номер клиента в% u, а данные, полученные в виде строк, в% s / n break;}}
Шаг 3: Установите NODEMCU в качестве сервера
устанавливает ssid и пароль, которые вы будете использовать для подключения к нему позже
const char * ssid = "Попробуйте";
const char * пароль = "12345678";
при настройке мы указываем скорость, с которой наши nodemcu и pc будут взаимодействовать, которая составляет 115200.
void setup (void) {
Serial.begin (115200); Serial.print ("\ n");
установите значение true, чтобы увидеть диагностический вывод Wi-Fi на терминале serila
Serial.setDebugOutput (истина);
инициализировать файловую систему
SPIFFS.begin ();
Настройте nodemcu в качестве точки доступа с ранее заданными ssid и паролем и распечатайте IP-адрес nodemcu, с которым вы будете подключаться ранее. по умолчанию 192.168.4.1
Serial.print («Настройка точки доступа…»);
WiFi.mode (WIFI_AP); WiFi.softAP (ssid, пароль); IP-адрес myIP = WiFi.softAPIP (); Serial.print ("IP-адрес точки доступа:"); Serial.println (myIP);
Инициализируйте веб-сокет на nodemcu, который является чистым сервером
webSocket.begin ();
Вызывает функцию webSocketEvent при возникновении события websocket.
webSocket.onEvent (webSocketEvent);
Для отладки выведите «Сервер WebSocket запущен» с новой строки. Это необходимо для определения строки кода, которую обрабатывает nodemcu.
Serial.println ("Сервер WebSocket запущен.");
когда клиент посещает 192.168.4.1, он вызывает функцию handleFileRead и отправляет с ней URI сервера параметров, который в данном случае является нашей информацией nodemcu. Функция handleFileRead будет обслуживать html-файл из файловой системы nodemcu.
server.onNotFound ( () {
если (! handleFileRead (server.uri ()))
если его не найти, будет показано "FileNotFound"
server.send (404, «текст / простой», «FileNotFound»);
});
Запускает сервер и запускается HTTP-сервер печати.
server.begin (); Serial.println («HTTP-сервер запущен»);
В нашем цикле void мы разрешаем серверу непрерывно обрабатывать клиентские соединения и его веб-сокеты следующим образом:
void loop (void) {
server.handleClient (); webSocket.loop ();}
Шаг 4. Загрузите HTML-файл
мы будем использовать функцию с именем handleFileRead для открытия и файл html из файловой системы nodemcu. он вернет логическое значение, чтобы определить, загружено оно или нет.
Когда клиент открывает «192.168.4.1/», мы устанавливаем путь к файлу «/Joystick.html», имя нашего файла в папке данных.
bool handleFileRead (String path) {
Serial.println ("handleFileRead:" + путь); if (path.endsWith ("/")) path + = "Joystick.html"; if (SPIFFS.exists (путь)) {Файл файл = SPIFFS.open (путь, "r"); size_t отправлено = server.streamFile (файл, «текст / HTML»); file.close (); вернуть истину; } return false; }
Проверьте, существует ли путь к файлу "/Joystick.html"
if (SPIFFS.exists (путь)) {
Если он существует, откройте путь с целью чтения, который указан буквой «r». Зайдите сюда, чтобы узнать больше.
Файл file = SPIFFS.open (путь, "r");
Отправляет файл на сервер с типом содержимого «текст / html».
size_t отправлено = server.streamFile (файл, «текст / HTML»);
закройте файл
file.close ();
функция handleFileRead возвращает true
return true;}
если путь к файлу не существует, функция handleFileRead возвращает false
вернуть истину; }
Шаг 5: Попробуйте
Подключитесь к nodeMCU, перейдите в «192.168.4.1» и попробуйте!:)
Рекомендуемые:
Как использовать телефон Android в качестве веб-камеры со Skype: 5 шагов
Как использовать телефон Android в качестве веб-камеры со Skype: есть старая поговорка, что изображение стоит тысячи слов… и есть новое высказывание, что видео стоит миллион. Это может показаться преувеличением, но есть огромная разница между разговором с кем-то по телефону и разговором с
Visuino Как использовать кнопку в качестве входа для управления такими вещами, как светодиод: 6 шагов
Visuino Как использовать кнопку в качестве входа для управления такими объектами, как светодиод: в этом уроке мы узнаем, как включать и выключать светодиод с помощью простой кнопки и Visuino. Посмотрите демонстрационное видео
Повторное использование модуля веб-камеры HP WebCam 101 Aka 679257-330 в качестве универсальной веб-камеры USB: 5 шагов
Повторное использование модуля веб-камеры HP WebCam 101, известного как 679257-330, в качестве универсальной веб-камеры USB: я хочу приправить свой 14-летний Panasonic CF-18 совершенно новой веб-камерой, но Panasonic больше не поддерживает эту замечательную машину, поэтому я должен используйте серое вещество для чего-нибудь попроще, чем b & b (пиво и гамбургеры). Это первая часть
Как использовать Wiimote в качестве компьютерной мыши, используя свечи в качестве датчика !!: 3 шага
Как использовать Wiimote в качестве компьютерной мыши с использованием свечей в качестве датчика !!: это руководство покажет вам, как подключить Wii Remote (Wiimote) к компьютеру и использовать его в качестве мыши
Как использовать вашу видеокамеру в качестве веб-камеры: 4 шага
Как использовать вашу видеокамеру в качестве веб-камеры: Если вы похожи на меня, у вас есть много друзей, которые уехали из дома и живут за тысячи километров, или у вас есть друзья, с которыми вы учились в университете, и все они живут в разных местах. Лично я ненавижу телефоны и входы