Სარჩევი:

როგორ გამოვიყენოთ ESP8266 როგორც ვებ სერვერი: 5 ნაბიჯი
როგორ გამოვიყენოთ ESP8266 როგორც ვებ სერვერი: 5 ნაბიჯი

ვიდეო: როგორ გამოვიყენოთ ESP8266 როგორც ვებ სერვერი: 5 ნაბიჯი

ვიდეო: როგორ გამოვიყენოთ ESP8266 როგორც ვებ სერვერი: 5 ნაბიჯი
ვიდეო: Control 32 Servo over Wi-Fi using ESP32 and PCA9685 via desktop or mobile phone V5 2024, ივლისი
Anonim
როგორ გამოვიყენოთ ESP8266 როგორც ვებ სერვერი
როგორ გამოვიყენოთ ESP8266 როგორც ვებ სერვერი

გამარჯობა, მე ამჟამად ვიყენებ Windows 10 -ს, NodeMCU 1.0 -ს და აქ არის პროგრამული უზრუნველყოფის ჩამონათვალი, რომელსაც ვიყენებ და ინსტალაციის გზამკვლევი, რომელსაც მივყვები:

  • Arduino IDE
  • დამატებითი დაფები esp8266– ისთვის
  • სფიფი

ბიბლიოთეკა გამოიყენება:

ვებსაიტი

მე გამოვიყენე NodeMCU, როგორც სერვერი, რომ ემსახურო HTML ფაილს, რომელიც მე გავაკეთე thistutorial– დან. ამ ფაილის მომსახურებისთვის, მე ავტვირთე ფაილი nodemcu ფაილურ სისტემაში Spiffs– ის გამოყენებით. HTML ფაილი აგზავნის მონაცემებს nodemcu ვებსაიტების გამოყენებით, რათა დაიბეჭდოს სერიულ მონიტორზე. სერვერისა და კლიენტის ვებსაიტების საშუალებით სწრაფი ორმხრივი კომუნიკაცია საშუალებას აძლევდა მას დისტანციურად იყენებდნენ. მომდევნო ნაბიჯებზე, მე არ ავხსნი როგორ მუშაობს ჩემი კოდი

მარაგები

NodeMCU

ნაბიჯი 1: გახადე ის მუშაობა

გახადე ის მუშაობა
გახადე ის მუშაობა
გახადე ის მუშაობა
გახადე ის მუშაობა
გახადე ის მუშაობა
გახადე ის მუშაობა

აქ არის ნაბიჯები, თუ როგორ მუშაობს

  1. ჩამოტვირთეთ თანდართული ფაილი და გახსენით mousebot.ino ფაილი
  2. გადადით ჩანახატზე> ესკიზის საქაღალდის ჩვენება და შექმენით ახალი საქაღალდე სახელწოდებით მონაცემები
  3. შეინახეთ html ფაილი ამ სახელმძღვანელოდან საქაღალდეში, სახელწოდებით. მე ჩემი დავარქვი როგორც "ჯოისტიკი"
  4. დარწმუნდით, რომ თქვენი spiff უკვე ფუნქციონირებს, გადადით ინსტრუმენტებზე და იხილეთ "esp8266 ესკიზის მონაცემთა ატვირთვა"
  5. ატვირთეთ html ფაილი nodemcu ღილაკზე "esp8266 ესკიზის მონაცემთა ატვირთვა" დაწკაპუნებით
  6. ფაილის ატვირთვის შემდეგ ატვირთეთ nodemcu mousebot.ino ფაილი arduino IDE– ზე და დააჭირეთ ctrl U

ნაბიჯი 2: როგორ მუშაობს კოდი

პირველ რიგში, ჩვენ შევიტანთ ბიბლიოთეკებს, რომლებსაც ეს კოდი გამოიყენებს

// რათა ESP8266 დაუკავშირდეს WIFI- ს

#ჩართეთ #ჩართეთ #ჩართეთ // საშუალებას აძლევს ESP8266 იმოქმედოს როგორც სერვერი #ჩართეთ // საშუალებას აძლევს კომუნიკაციას სერვერთან და კლიენტთან (თქვენი დაკავშირებული მოწყობილობა) #მოიცავს #მოიცავს // გახსნას გაფართოებული ფაილი nodemcu #include

დააყენეთ esp8266 როგორც ვებ სერვერი, რომელიც გახსნილია პორტში 80. პორტები არის გზები, რომელთა საშუალებითაც მონაცემები გაივლის. როგორც სერვერის პორტი, ის გაუგზავნის HTML ფაილს კლიენტს (მასთან დაკავშირებული გადახრები).

ამატებს ქსელის კავშირს 81 პორტის გამოყენებით კლიენტის შეტყობინებების მოსასმენად

ვებსაკეტებს აქვთ პარამეტრი num, WStype_t, დატვირთვა და ზომა. ნომერი განსაზღვრავს კლიენტის ნომერს, დატვირთვა არის შეტყობინების გაგზავნა, ზომა არის შეტყობინების სიგრძე და WStype_t არის სხვადასხვა ღონისძიებისთვის, როგორიცაა

  • WStype_DISCONNECTED - კლიენტის გათიშვისას.
  • WStype_CONNECTED: - როდესაც კლიენტი აკავშირებს
  • WStype_TEXT - მიღებული მონაცემები კლიენტისგან

ღონისძიების ტიპზეა დამოკიდებული, სხვადასხვა ქმედება კეთდება და აქ არის კომენტარი

ბათილი webSocketEvent (uint8_t num, WStype_t ტიპი, uint8_t * დატვირთვა, ზომა_t სიგრძე) {

გადართვა (ტიპი) {case WStype_DISCONNECTED: Serial.printf ("

ნაბიჯი 3: დააყენეთ NODEMCU როგორც სერვერი

ადგენს ssid და პაროლს, რომელსაც გამოიყენებთ მოგვიანებით მასთან დასაკავშირებლად

const char *ssid = "სცადე";

const char *პაროლი = "12345678";

შექმნისას, ჩვენ ვადგენთ იმ სიჩქარეს, რომლითაც ჩვენი nodemcu და კომპიუტერი დაუკავშირდება, რაც არის 115200.

void setup (void) {

Serial.begin (115200); Serial.print ("\ n");

დაყენებულია ჭეშმარიტად, ასევე იხილეთ wifi დიაგნოსტიკური გამომავალი სერიალის ტერმინალზე

Serial.setDebugOutput (ჭეშმარიტი);

მოახდინეთ ფაილური სისტემის ინიციალიზაცია

SPIFFS. დაწყება ();

დააყენეთ nodemcu, როგორც წვდომის წერტილი ssid და პაროლი defiend ადრე და ამობეჭდავს ip nodemcu რომ თქვენ ადრე დაუკავშირდება. სტანდარტულად არის 192.168.4.1

Serial.print ("წვდომის წერტილის კონფიგურაცია …");

WiFi.mode (WIFI_AP); WiFi.softAP (ssid, პაროლი); IPAddress myIP = WiFi.softAPIP (); Serial.print ("AP IP მისამართი:"); Serial.println (myIP);

ქსელის ინიციალიზაცია მოახდინეთ nodemcu– ზე, რომელიც არის pur server

webSocket.begin ();

იძახებს ფუნქციას webSocketEvent, როდესაც ხდება ქსელის ქსელის მოვლენა.

webSocket.onEvent (webSocketEvent);

გამართვის მიზნით, დაბეჭდეთ "WebSocket სერვერი დაიწყო" ახალ ხაზზე. ეს არის კოდის ხაზის დასადგენად, რომელსაც ნოდემკუ ამუშავებს

Serial.println ("WebSocket სერვერი დაიწყო.");

როდესაც კლიენტი ეწვევა 192.168.4.1, ის დარეკავს ფუნქციას handleFileRead და გაგზავნის მასთან ერთად პარამეტრების სერვერის URI რომელიც ამ შემთხვევაში არის ჩვენი nodemcu ინფორმაცია. ფუნქცია handleFileRead მოემსახურება html ფაილს nodemcu ფაილური სისტემიდან

server.onNotFound ( () {

თუ (! handleFileRead (server.uri ()))

თუ ის ვერ მოიძებნა, გამოჩნდება "FileNotFound"

server.send (404, "text/plain", "FileNotFound");

});

იწყება სერვერი და ბეჭდვა HTTP სერვერი დაიწყო.

server.begin (); Serial.println ("დაიწყო HTTP სერვერი");

ჩვენს ბათილ მარყუჟზე, ჩვენ ვაძლევთ სერვერს შესაძლებლობას, რომ გააგრძელოს კლიენტისა და მისი ვებსაიტების კომუნიკაციის გაგრძელება შემდეგნაირად:

ბათილი მარყუჟი (ბათილი) {

server.handleClient (); webSocket.loop ();}

ნაბიჯი 4: ჩატვირთეთ HTML ფაილი

ჩვენ გამოვიყენებთ ფუნქციას სახელწოდებით handleFileRead გასახსნელად და html ფაილი nodemcu ფაილური სისტემიდან. ის დააბრუნებს ლოგიკურ მნიშვნელობას იმის დასადგენად, არის თუ არა იგი დატვირთული.

როდესაც კლიენტი გახსნის "192.168.4.1/" ჩვენ ვაყენებთ ფაილის გზას "/Joystick.html, ჩვენი ფაილის სახელი მონაცემთა საქაღალდეში

bool handleFileRead (სიმებიანი გზა) {

Serial.println ("handleFileRead:" + გზა); if (path.endsWith ("/")) path += "Joystick.html"; if (SPIFFS.exists (path)) {File file = SPIFFS.open (path, "r"); size_t გაიგზავნა = server.streamFile (ფაილი, "text/html"); file.close (); ჭეშმარიტი დაბრუნება; } დაბრუნება false; }

შეამოწმეთ არსებობს თუ არა ფაილის ბილიკი "/Joystick.html"

თუ (SPIFFS. არსებობს (გზა)) {

თუ ის არსებობს, გახსენით გზა მისი წაკითხვის მიზნით, რომელიც მითითებულია "r" - ით. წადი აქ სხვა მიზნებისთვის.

ფაილის ფაილი = SPIFFS.open (გზა, "r");

აგზავნის ფაილს სერვერზე, როგორც შინაარსის ტიპის "ტექსტი/html"

size_t გაიგზავნა = server.streamFile (ფაილი, "text/html");

დახურეთ ფაილი

file.close ();

ფუნქცია handleFileRead აბრუნებს true

ჭეშმარიტი დაბრუნება;}

თუ ფაილის გზა არ არსებობს, ფუნქცია handleFileRead აბრუნებს false

ჭეშმარიტი დაბრუნება; }

ნაბიჯი 5: სცადე

Image
Image

შეაერთეთ nodeMCU და გადადით "192.168.4.1" - ზე და სცადეთ!:)

გირჩევთ: