Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Spraw, aby to zadziałało
- Krok 2: Jak działa kod
- Krok 3: Ustaw NODEMCU jako serwer
- Krok 4: Załaduj plik HTML
- Krok 5: Wypróbuj
Wideo: Jak korzystać z ESP8266 jako serwera WWW: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
Cześć, obecnie używam systemu Windows 10, NodeMCU 1.0, a oto lista oprogramowania, z którego korzystałem, oraz przewodniki instalacji, których przestrzegałem:
- IDE Arduino
- Dodatkowe płyty dla esp8266
- Spiff
Wykorzystywana biblioteka:
Gniazdo sieciowe
Użyłem NodeMCU jako serwera do obsługi pliku HTML, który stworzyłem z tego samouczka. Aby obsłużyć ten plik, przesłałem plik do systemu plików nodemcu za pomocą Spiffs. Plik HTML wysyła dane do nodemcu za pomocą gniazd sieciowych, które mają zostać wydrukowane na monitorze szeregowym w tym celu. Szybka dwukierunkowa komunikacja za pośrednictwem gniazd sieciowych serwera i klienta umożliwiła użycie tego jako zdalnego sterowania. W kolejnych krokach będę wyjaśniał, jak działa mój kod
Kieszonkowe dzieci
WęzełMCU
Krok 1: Spraw, aby to zadziałało
Oto kroki, jak to działa
- Pobierz załączony plik i otwórz plik mousebot.ino
- Przejdź do szkicu> pokaż folder szkicu i utwórz nowy folder o nazwie dane
- Zapisz plik html z tego samouczka w folderze o nazwie. Nazwałem mój jako "Joystick"
- Upewnij się, że Twój spiff już działa, przechodząc do narzędzi i widząc „przesyłanie danych szkicu esp8266”
- Prześlij plik html do nodemcu, klikając „przesyłanie danych szkicu esp8266”
- Po przesłaniu pliku prześlij do nodemcu plik mousebot.ino, przechodząc do arduino IDE i naciskając ctrl U
Krok 2: Jak działa kod
Najpierw dołączamy biblioteki, których ten kod będzie używał
//aby umożliwić ESP8266 połączenie z WIFI
#include #include #include //Włącza ESP8266 do działania jako serwer #include //Włącza komunikację z serwerem i klientem (podłączonym urządzeniem) #include #include //Aby otworzyć przesłany plik na nodemcu #include
Ustaw esp8266 jako serwer WWW otwarty na porcie 80. Porty to ścieżki, przez które będą przechodzić dane. Jako port serwera wyśle plik HTML do klienta (urządzeń do niego podłączonych).
Dodaje połączenie websocket przy użyciu portu 81 do nasłuchiwania wiadomości od klienta
Websockets ma parametr num, WStype_t, payload i size. Liczba określa numer klienta, payload to wiadomość, którą wysyła, size to długość wiadomości, a WStype_t jest dla różnych zdarzeń, takich jak
- WStype_DISCONNECTED - po rozłączeniu klienta.
- WStype_CONNECTED: - gdy klient się łączy
- WStype_TEXT - Otrzymane dane od klienta
W zależności od typu zdarzenia wykonywane są różne akcje, które są komentowane tutaj
void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t length) {
switch (type) { case WStype_DISCONNECTED: Serial.printf("[%u] Disconnected!\n", num); //wypisuje dane do przerwania monitora szeregowego; case WStype_CONNECTED: { Adres IP ip = webSocket.remoteIP(num); //pobiera adres IP klienta Serial.printf("[%u] Połączony z %d.%d.%d.%d url: %s\n", num, ip[0], ip[1], ip[2], ip[3], ładunek); webSocket.sendTXT(liczba, "Połączony"); //wysyła "connected" do konsoli przeglądarki } break; case WStype_TEXT: Serial.printf("[%u] Dane: %s\n", num, payload); //wypisuje numer klienta w %u i dane odebrane jako ciągi w %s\n break;}}
Krok 3: Ustaw NODEMCU jako serwer
ustawia ssid i hasło, których będziesz używać do późniejszego połączenia
const char *ssid = "Spróbuj";
const char *hasło = "12345678";
podczas konfiguracji określamy szybkość, z jaką będą komunikować się nasze nodemcu i pc, czyli 115200.
nieważna konfiguracja (unieważnij){
Serial.początek(115200); Serial.print("\n");
ustaw na true też zobacz wyjście diagnostyczne wifi na terminalu serila
Serial.setDebugOutput(prawda);
zainicjować system plików
SPIFFS.początek();
Skonfiguruj nodemcu jako punkt dostępowy z identyfikatorem ssid i hasłem defend wcześniej i drukuje adres IP nodemcu, z którym będziesz się łączyć wcześniej. domyślnie 192.168.4.1
Serial.print("Konfigurowanie punktu dostępu…");
tryb WiFi (WIFI_AP); WiFi.softAP (SSid, hasło); AdresIP mójIP = WiFi.softAPIP(); Serial.print("Adres IP AP: "); Serial.println(mojeIP);
Zainicjuj websocket na nodemcu, który jest czystym serwerem
webSocket.początek();
Wywołuje funkcję webSocketEvent, gdy wystąpi zdarzenie websocket.
webSocket.onEvent(webSocketEvent);
W celu debugowania wypisz w nowym wierszu napis „Serwer WebSocket uruchomiony”. Ma to na celu określenie linii kodu przetwarzanej przez nodemcu
Serial.println("Serwer WebSocket uruchomiony.");
gdy klient odwiedzi 192.168.4.1, wywoła funkcję handleFileRead i wyśle z nią parametr URI serwera, który w tym przypadku jest naszą informacją o nodemcu. Funkcja handleFileRead będzie obsługiwać plik html z systemu plików nodemcu
server.onNotFound((){
if(!handleFileRead(serwer.uri()))
jeśli nie można go znaleźć, wyświetli „FileNotFound”
server.send(404, "text/plain", "FileNotFound");
});
Uruchamia serwer i drukuj serwer HTTP uruchomiony.
serwer.początek(); Serial.println("Serwer HTTP uruchomiony");
W naszej pętli void umożliwiamy serwerowi ciągłą obsługę komunikacji klienta i jego gniazd sieciowych w następujący sposób:
pusta pętla (pusta){
server.handleClient(); webSocket.loop();}
Krok 4: Załaduj plik HTML
użyjemy funkcji o nazwie handleFileRead do otwarcia i pliku html z systemu plików nodemcu. zwróci wartość logiczną określającą, czy jest załadowany, czy nie.
Kiedy "192.168.4.1/" jest otwarty przez klienta ustawiamy ścieżkę pliku na "/Joystick.html, nazwę naszego pliku w folderze danych
bool handleFileRead(String path){
Serial.println("handleFileRead: " + ścieżka); if(path.endsWith("/")) ścieżka += "Joystick.html"; if(SPIFFS.exists(ścieżka)){ Plik pliku = SPIFFS.open(ścieżka, "r"); size_t wysłany = server.streamFile(plik, "text/html"); plik.zamknij(); zwróć prawdę; } zwróć fałsz; }
Sprawdź, czy istnieje ścieżka do pliku "/Joystick.html"
if(SPIFFS.exists(ścieżka)){
Jeśli istnieje, otwórz ścieżkę w celu jej odczytania, która jest określona przez „r”. Przejdź tutaj, aby uzyskać więcej celów.
Plik pliku = SPIFFS.open(ścieżka, "r");
Wysyła plik do serwera, jak w przypadku typu zawartości "text/html"
size_t wysłany = server.streamFile(plik, "text/html");
zamknij plik
plik.zamknij();
funkcja handleFileRead zwraca true
zwróć prawdę;}
jeśli ścieżka do pliku nie istnieje, funkcja handleFileRead zwraca false
zwróć prawdę; }
Krok 5: Wypróbuj
Połącz się z nodeMCU i przejdź do „192.168.4.1” i wypróbuj!:)
Zalecana:
Otwieracz drzwi garażowych z informacją zwrotną za pomocą Esp8266 jako serwera internetowego.: 6 kroków
Otwieracz do drzwi garażowych z informacją zwrotną za pomocą Esp8266 jako serwera internetowego.: Cześć, pokażę ci, jak w prosty sposób zrobić otwieracz do drzwi garażowych. informacje zwrotne, będziesz wiedzieć, czy drzwi są otwierane lub zamykane w czasie rzeczywistym - Prosty, tylko jeden skrót, aby
Arduino jako dostawca usług internetowych -- Nagraj plik szesnastkowy w AVR -- Bezpiecznik w AVR -- Arduino jako programista: 10 kroków
Arduino jako dostawca usług internetowych || Nagraj plik szesnastkowy w AVR || Bezpiecznik w AVR || Arduino As Programmer:…………Zasubskrybuj mój kanał YouTube, aby uzyskać więcej filmów………Ten artykuł to wszystko o arduino jako isp. Jeśli chcesz wgrać plik hex lub chcesz ustawić bezpiecznik w AVR to nie musisz kupować programatora, możesz zrobić
Jak utworzyć dysk rozruchowy systemu Linux (i jak z niego korzystać): 10 kroków
Jak utworzyć dysk rozruchowy systemu Linux (i jak z niego korzystać): Jest to proste wprowadzenie do rozpoczęcia pracy z systemem Linux, a konkretnie z Ubuntu
Jak korzystać z terminala Mac i jak korzystać z kluczowych funkcji: 4 kroki
Jak korzystać z terminala Mac i jak korzystać z kluczowych funkcji: Pokażemy Ci, jak otworzyć terminal MAC. Pokażemy również kilka funkcji w Terminalu, takich jak ifconfig, zmiana katalogów, dostęp do plików i arp. Ifconfig pozwoli Ci sprawdzić Twój adres IP i reklamę MAC
Jak używać Wiimote jako myszy komputerowej, używając świec jako czujnika !!: 3 kroki
Jak używać Wiimote jako myszy komputerowej, używając świec jako czujnika !!: Ten przewodnik pokaże Ci, jak podłączyć Wii Remote (Wiimote) do komputera i używać go jako myszy