Съдържание:
- Консумативи
- Стъпка 1: Направете го работещ
- Стъпка 2: Как работи кодът
- Стъпка 3: Задайте NODEMCU като сървър
- Стъпка 4: Заредете HTML файл
- Стъпка 5: Опитайте
Видео: Как да използвате ESP8266 като уеб сървър: 5 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
Здравейте, в момента използвам windows 10, NodeMCU 1.0 и ето списъка със софтуера, който използвах, и ръководствата за инсталиране, които следвах:
- Arduino IDE
- Допълнителни платки за esp8266
- Spiff
Използвана библиотека:
Websocket
Използвах NodeMCU като сървър за обслужване на HTML файл, който направих от този урок. За да обслужвам този файл, качих файла във файловата система nodemcu, използвайки Spiffs. HTML файлът изпраща данни към nodemcu с помощта на websockets, които да бъдат отпечатани на серийния монитор за това. Бързата двупосочна комуникация чрез websockets на сървъра и клиента позволи това да се използва като дистанционно управление. На следващите стъпки няма да обяснявам как работи моят код
Консумативи
NodeMCU
Стъпка 1: Направете го работещ
Ето стъпките за това как работи
- Изтеглете прикачения файл и отворете файла mousebot.ino
- Отидете на sketch> show sketch folder и направете нова папка с име data
- Запазете html файла от този урок в папката с име. Нарекох моя като „Джойстик“
- Уверете се, че вашата работа вече е функционална, като отидете на инструменти и видите „качване на данни за скица esp8266“
- Качете html файла в nodemcu, като кликнете върху „esp8266 качване на данни за скици“
- След качване на файл качете в nodemcu файла mousebot.ino, като натиснете към arduino IDE и натиснете ctrl U
Стъпка 2: Как работи кодът
Първо, включваме библиотеките, които този код ще използва
// за да се даде възможност на ESP8266 да се свърже с WIFI
#include #include #include // Позволява на ESP8266 да действа като сървър #include // позволява комуникация със сървъра и клиента (вашето свързано устройство) #include #include // За отваряне на нагорешния файл на nodemcu #include
Задайте esp8266 като уеб сървър, отворен на порт 80. Портовете са пътища, през които ще преминат данните. Като порт на сървър, той ще изпрати HTML файла на клиента (свързаните с него устройства).
Добавя връзка към websocket, използвайки порт 81, за да слуша съобщения от клиента
Уебсокетите имат параметър num, WStype_t, полезен товар и размер. Числото определя номера на клиента, полезният товар е съобщението, което изпраща, размерът е дължината на съобщението и WStype_t е за различни събития като
- WStype_DISCONNECTED - при изключване на клиент.
- WStype_CONNECTED: - когато се свързва клиент
- WStype_TEXT - Получени данни от клиента
В зависимост от типа на събитието се извършват различни действия и се коментират тук
void webSocketEvent (uint8_t num, тип WStype_t, uint8_t * полезен товар, size_t дължина) {
ключ (тип) {случай WStype_DISCONNECTED: Serial.printf ("[%u] Прекъснат! / n", номер); // отпечатва данни към прекъсване на серийния монитор; случай WStype_CONNECTED: {IPAddress ip = webSocket.remoteIP (num); // получава IP на клиента Serial.printf ("[%u] Свързан от%d.%d.%d.%d url:%s / n", num, ip [0], ip [1], ip [2], ip [3], полезен товар); webSocket.sendTXT (num, "Connected"); // изпраща „conencted“до конзолата на браузъра} break; регистър WStype_TEXT: Serial.printf ("[%u] Данни: %s / n", брой, полезен товар); // отпечатва номера на клиента в %u и получените данни като низове в %s / n break;}}
Стъпка 3: Задайте NODEMCU като сървър
задава ssid и парола, които ще използвате, за да се свържете с него по -късно
const char *ssid = "Опитайте";
const char *password = "12345678";
при настройката ние посочваме скоростта, с която нашите nodemcu и компютър ще комуникират, което е 115200.
void setup (void) {
Serial.begin (115200); Serial.print ("\ n");
зададено на true също вижте диагностичния изход за wifi на терминала serila
Serial.setDebugOutput (вярно);
инициализирайте файловата система
SPIFFS.begin ();
Настройте nodemcu като точка за достъп с ssid и парола defiend по -рано и отпечатва ip на nodemcu, с който ще се свържете по -рано. по подразбиране е 192.168.4.1
Serial.print ("Конфигуриране на точка за достъп …");
WiFi.mode (WIFI_AP); WiFi.softAP (ssid, парола); IP Адрес myIP = WiFi.softAPIP (); Serial.print ("IP IP адрес на AP:"); Serial.println (myIP);
Инициализирайте websocket на 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 ( () {
if (! handleFileRead (server.uri ()))
ако не може да бъде намерен, ще се покаже "FileNotFound"
server.send (404, "текст/обикновен", "FileNotFound");
});
Стартира сървъра и стартира HTTP сървър за печат.
server.begin (); Serial.println ("HTTP сървърът е стартиран");
В нашия цикъл на void, ние даваме възможност на сървъра да управлява непрекъснато клиента и неговите комуникации в websockets, както следва:
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 += "Джойстик.html"; if (SPIFFS.exists (path)) {File file = SPIFFS.open (path, "r"); size_t sent = server.streamFile (файл, "текст/html"); file.close (); връщане true; } return false; }
Проверете дали пътят на файла "/Joystick.html" съществува
if (SPIFFS.exists (пътека)) {
Ако съществува, отворете пътя с цел да го прочетете, който е посочен с "r". Отидете тук за повече цели.
Файлов файл = SPIFFS.open (път, "r");
Изпраща файла на сървъра като с тип съдържание „текст/html“
size_t sent = server.streamFile (файл, "текст/html");
затворете файла
file.close ();
функцията handleFileRead връща true
върнете true;}
ако пътят на файла не съществува, функцията handleFileRead връща false
връщане true; }
Стъпка 5: Опитайте
Свържете се с nodeMCU и отидете на "192.168.4.1" и опитайте!:)
Препоръчано:
Отваряне на гаражни врати с обратна връзка, използвайки Esp8266 като уеб сървър .: 6 стъпки
Отваряне на гаражни врати с обратна връзка, използвайки Esp8266 като уеб сървър: Здравейте, ще ви покажа как да направите лесен начин за отваряне на гаражни врати.-ESP8266 е кодиран като уеб сървър, вратата може да бъде отворена навсякъде по света-С обратна връзка, ще знаете дали вратата е отворена или затворена в реално време-просто, само един пряк път, за да
Урок: Как да използвате ESP32-CAM в уеб сървър за поточно видео: 3 стъпки
Урок: Как да използвате ESP32-CAM в уеб сървър за видео стрийминг: Описание: ESP32-CAM е ESP32 Wireless IoT Vision Board за разработка в много малък форм-фактор, предназначен за използване в различни IoT проекти, като домашни интелигентни устройства, промишлени безжично управление, безжично наблюдение, QR безжична идентификация
Как да използвате Android телефон като уеб камера със Skype: 5 стъпки
Как да използвате Android телефон като уеб камера със Skype: Има една стара поговорка, че картината струва хиляда думи … и има нова поговорка, че видеото струва милион. Това може да изглежда като преувеличение, но има огромна разлика между това да говориш с някого по обаждане и да говориш с
Visuino Как да използвате бутон като вход за управление на неща като LED: 6 стъпки
Visuino Как да използвате бутон като вход за управление на неща като LED: В този урок ще се научим как да включваме и изключваме LED чрез обикновен бутон и Visuino. Гледайте демонстрационен видеоклип
Как да използвате вашата видеокамера като уеб камера: 4 стъпки
Как да използвате видеокамерата си като уеб камера: Ако сте като мен, имате много приятели, които са се отдалечили от дома си и живеят на хиляди километри, или имате приятели, с които сте ходили в университет и всички те живеят в различни места. Аз лично мразя телефоните и инс