Có, bạn có thể gửi dữ liệu tới ESP8266 mà không cần sử dụng máy chủ web, nhưng bạn có thể muốn sử dụng một hoặc sử dụng một cái gì đó có chức năng liên quan đến một.
ESP8266 là một thiết bị điện toán có mục đích khá chung với radio WiFi và ngăn xếp mạng, do đó, bạn có thể thực hiện bất kỳ giao thức hợp lý nào bạn quan tâm để mô tả bằng mã.
Tuy nhiên, nó đã trở nên khá phổ biến để thực hiện các giao thức trông và hoạt động giống như các trang web thu nhỏ dành cho tiêu dùng của con người.
tức là, thay vì khách hàng của bạn kết nối và làm một cái gì đó như
GET /index.html HTTP/1.1
nó có thể nói
GET /gpio/15/value HTTP/1.1
Trong đó URL không chỉ đến một tài liệu cụ thể mà là một số dữ liệu trên thiết bị bạn muốn truy cập. Bạn có thể làm điều tương tự cho POST
, PATCH
, DELETE
vv yêu cầu.
Trừ khi bạn đang xây dựng một trang dành cho con người, thông thường dữ liệu bạn trao đổi sẽ không phải là các trang HTML. Thường thì nó có thể là một cái gì đó giống như JSON thay thế. Ví dụ
GET /gpio/15/value HTTP/1.1
có thể kích hoạt một phản ứng như
{"gpio": 15, "direction": "in", "value": 0}
Tương tự, bạn có thể tạo một điểm cuối nơi khách hàng của bạn có thể đặt GPIO bằng cách nói
POST /gpio/15 HTTP/1.1
{"direction": "out", "value": 1}
Ở một mức độ nào đó là một câu hỏi cụ thể về ngữ nghĩa hoặc cụ thể nếu chương trình trả lời các truy vấn đó là "máy chủ web" - đó có thể là một máy chủ web chạy các tác vụ trợ giúp khác nhau để xử lý dữ liệu và gpios (giống như các máy chủ phục vụ các trang có thể tự động tạo ra một số nội dung của họ từ các truy vấn cơ sở dữ liệu) hoặc đó có thể là một chương trình chuyên dụng vừa xử lý dữ liệu vừa biết cách nói chuyện HTTP.
Và tất nhiên, sử dụng HTTP để trao đổi tải trọng JSON chỉ là một trong nhiều cách thực hiện - nó thực sự là một cách phổ biến hiện đang sử dụng lại nhiều khái niệm giống như máy chủ web và thậm chí có thể cho phép sử dụng trình duyệt web để thử nghiệm.
Cũng đáng lưu ý rằng một sơ đồ như vậy có xu hướng hoạt động tốt nhất tại địa phương, khi điện thoại và ESP8266 là máy khách của cùng một mạng WiFi gia đình. Nếu điện thoại không "ở nhà" hoặc là vậy, nhưng chỉ trên một mạng di động, cho phép nó đạt tới ESP8266 có nghĩa là cho phép các yêu cầu bên ngoài vào mạng gia đình, tốt nhất nên tránh. Trong trường hợp đó, nó khá phổ biến để sử dụng một giao thức trong đó cả thiết bị ESP8266 và điện thoại tiếp cận độc lập với một máy chủ chuyển tiếp bên ngoài, truyền các tin nhắn giữa chúng. MQTT là một ví dụ về sơ đồ thường được sử dụng cho một hệ thống có kiến trúc dựa trên máy chủ chuyển tiếp.