İçindekiler:
- Gereçler
- Adım 1: Çalışın
- 2. Adım: Kod Nasıl Çalışır?
- Adım 3: NODEMCU'yu Sunucu Olarak Ayarlayın
- 4. Adım: HTML Dosyasını Yükleyin
- Adım 5: Deneyin
Video: ESP8266 Web Sunucusu Olarak Nasıl Kullanılır: 5 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
Merhaba, şu anda Windows 10, NodeMCU 1.0 kullanıyorum ve kullandığım Yazılımların listesi ve takip ettiğim kurulum kılavuzları:
- Arduino IDE'si
- esp8266 için ek kartlar
- sivrisinek
Kullanılan kitaplık:
Web yuvası
Bu öğreticiden yaptığım bir HTML Dosyasını sunmak için NodeMCU'yu sunucu olarak kullandım. Bu dosyayı sunmak için dosyayı Spiffs kullanarak nodemcu dosya sistemine yükledim. Bunun için HTML dosyası, seri monitörde yazdırılacak websocket'leri kullanarak verileri nodemcu'ya gönderir. Sunucu ve istemcinin websocket'leri üzerinden hızlı çift yönlü iletişim, bunun uzaktan kumanda olarak kullanılmasını sağlamıştır. Aşağıdaki adımlarda, kodumun nasıl çalıştığını açıklayacağım
Gereçler
DüğümMCU
Adım 1: Çalışın
İşte nasıl çalıştığına dair adımlar
- Ekli dosyayı indirin ve mousebot.ino dosyasını açın
- Eskiz> çizim klasörünü göster'e gidin ve data adında yeni bir klasör oluşturun
- Bu eğitimdeki html dosyasını adlı klasöre kaydedin. Benimkine "Joystick" adını verdim.
- Araçlara giderek ve "esp8266 çizim verisi yüklemesini" görerek spiff'inizin zaten işlevsel olduğundan emin olun.
- "esp8266 çizim verisi yükleme" seçeneğine tıklayarak html dosyasını nodemcu'ya yükleyin
- Dosyayı yükledikten sonra mousebot.ino dosyasını arduino IDE'ye tıklayıp ctrl U tuşuna basarak nodemcu'ya yükleyin.
2. Adım: Kod Nasıl Çalışır?
İlk olarak, bu kodun kullanacağı kütüphaneleri ekliyoruz.
//ESP8266'nın WIFI'a bağlanmasını sağlamak için
#include #include #include //ESP8266'nın bir sunucu olarak çalışmasını sağlar #include //sunucu ve istemci (bağlı aygıtınız) ile iletişimi sağlar #include #include //Yüklenen dosyayı düğümde açmak için #include
esp8266'yı 80 numaralı bağlantı noktasında açılan bir web sunucusu olarak ayarlayın. Bağlantı noktaları, verilerin geçeceği yollardır. Sunucu portu olarak, HTML dosyasını istemciye (ona bağlı cihazlar) gönderir.
İstemciden gelen mesajları dinlemek için 81 numaralı bağlantı noktasını kullanarak bir websocket bağlantısı ekler
Web yuvaları, num, WStype_t, yük ve boyut parametresine sahiptir. Sayı, istemci numarasını belirler, yük, gönderdiği mesajdır, boyut, mesajın uzunluğudur ve WStype_t, aşağıdaki gibi farklı olaylar içindir.
- WStype_DISCONNECTED - bir istemcinin bağlantısı kesildiğinde.
- WStype_CONNECTED: - bir istemci bağlandığında
- WStype_TEXT - İstemciden alınan veriler
Etkinlik türüne bağlı olarak farklı eylemler yapılır ve burada yorumlanır
void webSocketEvent(uint8_t num, WStype_t türü, uint8_t * yük, size_t uzunluğu) {
switch (type) { case WStype_DISCONNECTED: Serial.printf("[%u] Bağlantı Kesildi!\n", num); // verileri seri monitör kesintisine yazdırır; durum WStype_CONNECTED: { IPAdresi ip = webSocket.remoteIP(num); //istemcinin IP'sini alır Serial.printf("[%u] %d.%d.%d.%d url'den bağlandı: %s\n", num, ip[0], ip[1], ip[2], ip[3], yük); webSocket.sendTXT(num, "Bağlandı"); // "bağlı"yı tarayıcı konsoluna gönderir } break; case WStype_TEXT: Serial.printf("[%u] Veri: %s\n", num, payload); // istemci numarasını %u olarak yazdırır ve alınan verileri %s\n sonunda dizeler olarak yazdırır;}}
Adım 3: NODEMCU'yu Sunucu Olarak Ayarlayın
daha sonra bağlanmak için kullanacağınız ssid ve şifreyi ayarlar
const char *ssid = "Dene";
const karakter *şifre = "12345678";
Kurulumda nodemcu ve pc'mizin haberleşeceği hızı 115200 olarak belirtiyoruz.
geçersiz kurulum(void){
Seri.başla(115200); Seri.print("\n");
true olarak ayarlayın, serila terminalindeki wifi tanı çıkışını da görün
Serial.setDebugOutput(true);
dosya sistemini başlat
SPIFFS.begin();
Nodemcu'yu daha önce ssid ve password defiend ile bir erişim noktası olarak ayarlayın ve daha önce bağlanacağınız nodemcu'nun ip'sini yazdırır. varsayılan olarak 192.168.4.1'dir
Serial.print("Erişim noktası yapılandırılıyor…");
WiFi.mode(WIFI_AP); WiFi.softAP(ssid, şifre); IPAdresi myIP = WiFi.softAPIP(); Serial.print("AP IP adresi: "); Seri.println(myIP);
Pur server olan nodemcu'da websocket'i başlat
webSocket.begin();
Bir websocket olayı meydana geldiğinde webSocketEvent işlevini çağırır.
webSocket.onEvent(webSocketEvent);
Hata ayıklama için "WebSocket sunucusu başlatıldı" ifadesini yeni bir satıra yazdırın. Bu, nodemcu'nun işlediği kod satırını belirlemek içindir.
Serial.println("WebSocket sunucusu başlatıldı.");
bir istemci 192.168.4.1'i ziyaret ettiğinde, handleFileRead işlevini çağıracak ve onunla birlikte bu durumda bizim nodemcu bilgimiz olan parametre sunucusu URI'sini gönderecektir. HandleFileRead işlevi, nodemcu dosya sisteminden html dosyasını sunacaktır.
server.onNotFound((){
if(!handleFileRead(server.uri()))
bulunamazsa "FileNotFound" gösterecektir.
server.send(404, "metin/düz", "FileNotFound");
});
Sunucuyu başlatır ve HTTP sunucusu yazdırılır.
server.begin(); Serial.println("HTTP sunucusu başlatıldı");
Void döngümüzde, sunucunun istemci ve websockets iletişimlerini aşağıdaki gibi sürekli olarak işlemesini sağlıyoruz:
geçersiz döngü(void){
server.handleClient(); webSocket.loop();}
4. Adım: HTML Dosyasını Yükleyin
Açmak için handleFileRead adlı bir işlev ve nodemcu dosya sisteminden html dosyasını kullanacağız. yüklenip yüklenmediğini belirlemek için bir boole değeri döndürür.
İstemci tarafından "192.168.4.1/" açıldığında dosya yolunu "/Joystick.html olarak ayarlıyoruz, data klasöründeki dosyamızın adı
bool handleFileRead(Dize yolu){
Serial.println("handleFileRead: " + yol); if(path.endsWith("/")) path += "Joystick.html"; if(SPIFFS.exists(path)){ Dosya dosyası = SPIFFS.open(path, "r"); size_t gönderilen = server.streamFile(dosya, "metin/html"); dosya.kapat(); true döndür; } false döndür; }
"/Joystick.html" dosya yolunun mevcut olup olmadığını kontrol edin
if(SPIFFS.exists(yol)){
Varsa, "r" ile belirtilen yolu okumak amacıyla açın. Daha fazla amaç için buraya gidin.
Dosya dosyası = SPIFFS.open(yol, "r");
Dosyayı "text/html" içerik türünde olduğu gibi sunucuya gönderir
size_t gönderilen = server.streamFile(dosya, "metin/html");
dosyayı kapat
dosya.kapat();
handleFileRead işlevi true değerini döndürür
doğru döndür;}
dosya yolu yoksa, handleFileRead işlevi false döndürür
true döndür; }
Adım 5: Deneyin
nodeMCU'ya bağlanın ve "192.168.4.1"e gidin ve deneyin!:)
Önerilen:
Esp8266'yı Web Sunucusu Olarak Kullanan Geri Bildirimli Garaj Kapısı Açıcı: 6 Adım
Geribildirimli Garaj Kapısı Açıcı Esp8266'yı Web Sunucusu Olarak Kullanarak: Merhaba, sizlere basit bir garaj kapısı açıcı nasıl yapılır onu göstereceğim.-ESP8266 web server olarak kodlanmıştır, kapı dünyanın her yerinde açılabilir-ile geri bildirim, kapının gerçek zamanlı olarak açık veya kapalı olduğunu bileceksiniz-Basit, i
Adımlar için Döner Kodlayıcı ve OLED Ekran Olarak Step Motor Nasıl Kullanılır: 6 Adım
Adımlar için Step Motoru Döner Kodlayıcı ve OLED Ekran Olarak Nasıl Kullanılır: Bu eğitimde, OLED Ekranda step motor adımlarının nasıl izleneceğini öğreneceğiz. Bir tanıtım videosunu izleyin.Orijinal eğitimin kredisi youtube kullanıcısı "sky4fly"
Android Telefon Skype ile Web Kamerası Olarak Nasıl Kullanılır: 5 Adım
Bir Android Telefon Skype ile Web Kamerası Olarak Nasıl Kullanılır: Bir resmin bin kelimeye bedel olduğuna dair eski bir söz vardır… ve bir videonun bir milyona bedel olduğu konusunda yeni bir söz vardır. Şimdi bu abartılı gibi görünebilir, ancak bir telefonla konuşmakla biriyle konuşmak arasında çok büyük bir fark var
Mac Terminal Nasıl Kullanılır ve Temel İşlevler Nasıl Kullanılır: 4 Adım
Mac Terminali Nasıl Kullanılır ve Temel Fonksiyonlar Nasıl Kullanılır: Size MAC Terminalini nasıl açacağınızı göstereceğiz. Ayrıca size Terminal içinde ifconfig, dizinleri değiştirme, dosyalara erişim ve arp gibi birkaç özelliği göstereceğiz. Ifconfig, IP adresinizi ve MAC reklamınızı kontrol etmenizi sağlar
Mumları Sensör Olarak Kullanarak Wiimote Bilgisayar Faresi Olarak Nasıl Kullanılır!!: 3 Adım
Wiimote'u Bilgisayar Faresi Olarak Kullanma Mumları Sensör Olarak Kullanma!!: Bu kılavuz, Wii Remote'unuzu (Wiimote) bilgisayarınıza nasıl bağlayacağınızı ve onu bir fare olarak nasıl kullanacağınızı gösterecektir