AT+CIPSTATUS | Kiểm tra tâm trạng kết n | AT + CIPSTATUS | |
AT+CIPSTART=, , | Tạo 1 liên kết IP cùng với AT+CIPMUX=0(chế độ liên kết đơn kênh) | type:"TCP" /"UDP"address"IPaddress"port: TCP/UDP port | AT+CIPSTART="TCP","192.168.3.10", 3000 |
AT+CIPSEND= | truyền tài liệu tới server | len: độ lâu năm dữ liệu | AT+CIPSEND = 5>hello |
AT+CIPCLOSE | Đóng kết nối TCP/UDP | AT+CIPCLOSE | |
AT+CIPSTART=,,, | Tạo một liên kết IP với AT+CIPMUX = 1(chể độ kết nối đa kênh) | id: 0-4type:"TCP"/"UDP"address"IPaddress"port:TCP/UDP port | AT+CIPSTART=4,"TCP","192.168.3.10", 3000 |
AT+CIPSEND= , | Truyền tài liệu tới server | id: 0-4len: Độ dài dữ liệu | AT+CIPSEND = 1,5> hello |
AT+CIPCLOSE= | Đóng liên kết TCP/UDP | id: 0-4 | AT+CIPCLOSE = 1 |
Chú yêu thích trong Clip:
- Đăng kí một tài khoản trên website” thingspeak.com”
- chế tạo ra một kênh để up tài liệu lên
- liên kết module Esp8266 cùng với module Uart như làm tại phần 1
- cung cấp nguồn mang lại module Esp8266
- thông số kỹ thuật Esp8266 là Station
AT+CWMODE=1
- truy cập vào một mạng wifi
AT+CWJAP=”TÊN MẠNG”,“MẬT KHẨU”
- thiết đặt ESP8266 rất có thể kết nối được với khá nhiều kênh
AT+CIPMUX=1
( là kênh ESP8266 dùng làm kế nối cùng với thingspeak server, các chúng ta cũng có thể dùng được những kênh tự 0-4)
- giữ hộ số liệu lên thingspeak server, cho tới kênh dữ liệu đã được sinh sản trên thingspeak, tại những Field1, Field 2…của kênh
GET / update?key=&=, chấm dứt chuỗi kí tử phải tất cả “
” tương đương với việc truyền đi 2 byte 0x0D , 0x0A.
Bạn đang xem: Hướng dẫn test module wifi esp8266 với máy tính phần 2
Trong đó:
Write API Key - mật mã để viết số liệu lênh 1 kênh của server, mỗi một kênh trên sever sẽ sở hữu một mật mã riêng.
fieldx là 1 trong trong những trường từ field1… field8
AT+CIPSEND=,
> “Chuỗi kí tự cần truyền đi “
Ví dụ, ao ước truyền quý giá 12.5 lênh một kênh nào kia của server tại field1 thì chuỗi đề xuất truyền đi đang là:
“GET /update?key=XOMM1M44L0ZHZE85&field1=12.5”
Để truyền được chuỗi này đề xuất phải khẳng định được độ lâu năm của chuỗi kí tự, nghỉ ngơi ví dụ này là 46 kí tự (bạn nhớ cộng thêm 2 byte 0x0D với 0x0A)
AT+CIPSEND=3,46
> GET /update?key=XOMM1M44L0ZHZE85&field1=12.5
- cuối cùng để đóng kết nối TCP
AT+CIPCLOSE
Các lệnh đối với IP server
AT+CIPSERVER=1 | TCP server bắt đầu hoạt động | port: TCP port | AT+CIPSERVER = 1.8001 |
AT+CIPSERVER=0 | TCP server ngắt kết nối | AT+CIPSERVER = 0 | |
AT+CIPSTO= | đặt thời hạn timeout cho TCP server | timeout = 0-28800s | AT+CIPSTO = 180 |
AT+CIPSTO? | AT+CIPSTO? |
Chú ý:IP hệ thống chỉ có thể được nhảy trong chế độ AT + CIPMUX = 1
http://mlab.vn/(Phạm Tuấn Anh - MLAB )
phía dẫn kiểm tra module wifi ESP8266 với máy tính xách tay (phần 1) |
lý giải lập trình ESP8266 EVB (MLAB) cần sử dụng Arduino IDE |
khuyên bảo nạp Firmware AT đến ESP8266 |
Viết đánh giá
Họ và tên: Đánh giá chỉ của bạn: giữ ý: Không cung ứng HTML! Bình chọn: Dở Hay Nhập mã bảo vệ:
Xin chào những bạn, bản thân đã quay trở lại rồi đây. Như vẫn nói ở bài bác trước bài bây giờ mình xin viết về việc thiết đặt chương trình cấu hình thiết lập kết nối vào mạng wifi đến ESP8266. Trong bài viết này bản thân vẫn thực hiện em wemos d1 mini tựa như những bài trước.

Ý tưởng
Ý tưởng nhằm gửi SSID cùng PASS của wifi đến ESP8266 là ESP8266 sẽ có tác dụng một hệ thống web cung ứng 1 API để máy tính xách tay gửi dữ liệu vào. Dẫu vậy muốn máy tính xách tay truy cập được API đó thì nó đề nghị được liên kết cùng mạng cùng với ESP8266. ESP8266 thì không thể liên kết được bất kì mạng wifi làm sao rồi chính vì mình đang kiến thiết chương trình để liên kết wifi nhưng mà

. Vậy làm sao để ESP8266 có thể kết nối đến laptop mà chính này lại không thể kết nối wifi?
Bạn hoàn toàn có thể nghĩ đến một phương pháp là đến ESP8266 liên kết đến wifi khoác định. Mỗi một khi muốn setup cho ESP8266 kết nối đến wifi không giống thì laptop phải phạt một wifi mang định đến ESP8266 kết nối đến rồi quá trình cài đặt diễn ra. Đây là một trong những ý tưởng rất có thể thực hiện nay được nhưng này lại khá là phức tạp để tiến hành nếu người tiêu dùng không biết cách thiết lập cho vấn đề phát wifi từ thứ tính.
Một ý tưởng khác được đề ra là đến ESP8266 phát wifi để máy tính kết nối đến. Việc sử dụng máy tính để kết nối wifi thì người nào cũng có thể làm được. Việc quan trọng là mình cần viết chương trình làm thế nào để cho ESP8266 phạt được wifi thôi. Để làm cho được bài toán này thì ESP8266 đề xuất có tính năng phát wifi không thì sao rất có thể phát wifi được. Thật tuyệt vời nhất ESP8266 hoàn toàn có thể làm được điều đó. Nó hoàn toàn có thể phát được wifi và đồng thời làm cho server web luôn.
Như vậy phát minh cho lịch trình sẽ như sau:
ESP8266 phát một wifi với mật khẩu mặc định là "12345678" và đồng thời chạy web server cung ứng API nhấn SSID cùng PASS của wifi. Laptop sẽ liên kết đến wifi mà lại ESP8266 phát ra, truy cập vào địa chỉ IP của ESP8266 với gửi POST request yêu ước ESP8266 liên kết đến wifi người dùng nhập vào.Chúng ta cũng đề xuất viết thêm chức năng để chuyển giữa chế độ hoạt động bình thường và chế độ setup nữa. Ý tưởng được phát biểu như sau: khi ESP8266 đang chuyển động bình thường, mong muốn vào chế độ cài đặt thì yêu cầu ấn với giữ 1 nút trên phần cứng khoảng chừng 3s. Khi thiết đặt xong thì vẫn về chế độ bình thường. Mà lại khi sẽ ở chế độ thiết đặt muốn về chế độ hoạt động thông thường thì người dùng cũng buộc phải ấn và giữ nút cài đặt khoảng 3s để gửi chế độ.Thiết kế chương trìnhSơ đồ hoạt động của hệ thống sẽ như sau:

Khi hệ thống hoạt động bình thường ấn với giữ nút cài đặt 3s để vào trạng thái thiết lập đặt. Lúc ở trạng thái cài đặt ESP8266 sẽ phát ra 1 wifi với mật khẩu đăng nhập là "12345678". Đồng thời ESP8266 sẽ làm cho web server hỗ trợ API để truy vấn vào. Máy vi tính sẽ liên kết với wifi ESP8266 vì phát ra và sử dụng một đồ họa web để truy vấn API đến ESP8266. Và tiếp sau quá trình thiết đặt sẽ diễn ra như sơ đồ bên trên.
Viết chương trình đến ESP8266Chương trình viết cho ESP8266 lần này sẽ tinh vi hơn 1 chút yêu cầu mình sẽ chia thành các Service nhỏ. Họ cần xây dựng các service sau:
EEPROM Service: Service này sẽ sở hữu được nhiệm vụ đọc cùng ghi tài liệu vào EEPROM. Cốt truyện về EEPROM một chút. EEPROM là một loại bộ nhớ của ESP8266. Nó hoàn toàn có thể lưu mãi mãi vẫn tồn tại khi mất năng lượng điện hoặc reset. Nó còn cấp thiết mất lúc nạp lại chương trình, rất tương thích để lưu các dữ liệu lâu dài.Wifi Service: Service sẽ sở hữu được nhiệm vụ góp ESP8266 phát wifi và kết nối với wifi thừa nhận được.HttpServer
H: trách nhiệm của Service này là góp ESP8266 chế tác một website server cung cấp các API. Mình thêm chữ H bởi vì ESP8266 đã tất cả một thư viện thương hiệu là Http
Server rồi.
Bây giờ bọn họ sẽ từng bước, từng bước tạo những Service đã có liệt kê ở bên trên.
Trong bài viết này mình đang sử dụng các thư viện:
ArduinoJson: 5.13
Đầu tiên đã là EEPROM Service.
EEPROM Service
Để thao tác với EEPROM ta sẽ thực hiện thư viện EEPROM của ESP8266. Tuy vậy thư viện này chỉ thao tác với từng ô nhớ. Nhưng các giá trị đề xuất lưu vào là những String vì vậy rất cần được viết các hàm tiến hành được điều đó. Service này sẽ sở hữu 4 hàm cơ phiên bản sau:
write Hàm ghiread Hàm đọcclear Hàm xóa dùng để làm xóa các ô ghi nhớ về quý giá 0commit Hàm commit nhằm lưu những thay đổi vào EEPROM thậtvoid EEPRom
HClass::write(const String &data, int begin, int end
Max){ int over = data.length() + begin; if (end - 1 > end
Max) ECHOLN("Service> kích cỡ too large"); return; clear(begin, end
Max); for (int i = begin; i
WIFI Service
Wifi service sẽ sở hữu 2 hàm 3 hàm để tiến hành việc: liên kết wifi, tàng trữ wifi, phạt wifi. Cụ thể như sau:Kết nối wifi: có 2 hàm kết nối wifi. Một là lấy tài liệu từ bộ nhớ EEPROM rồi kết nối, một hàm sẽ có thể chấp nhận được truyền ssid với pass từ bên ngoài vào để kết nối. Lúc truyền từ bên ngoài vào giả dụ wifi liên kết thành công thì ssid với pass sẽ tiến hành lưu lại để thực hiện cho lần sau. Code của hàm liên kết sẽ như sau:
int Wifi
Service
Class::connect() ECHOLN("Service> Read wifi SSID and PASS from EEPROM"); String ssid = EEPROMH.read(EEPROM_WIFI_SSID_START, EEPROM_WIFI_SSID_END); String pass = EEPROMH.read(EEPROM_WIFI_PASS_START, EEPROM_WIFI_PASS_END); return connect(ssid, pass);int Wifi
Service
Class::connect(const String &ssid, const String &pass, boolean is
New){ ECHOLN("Service> xuất hiện STA...."); ECHO("Service> Wifi connect to: "); ECHOLN(ssid); ECHO("Service> With pass: "); ECHOLN(pass); Wi
Fi.soft
APdisconnect(); Wi
Fi.disconnect(); Wi
Fi.mode(WIFI_STA); delay(100); Wi
Fi.begin(ssid.c_str(), pass.c_str()); ECHOLN("Waiting for Wifi khổng lồ connect"); int c = 0; while (c Lưu wifi: Hàm này đã viết vào bộ lưu trữ và lưu lại lại. Địa chỉ cấp cho từng chuỗi ssid và pass là 20 byte tương đương với 20 ký tự.
void Wifi
Service
Class::store
Wifi(const String &ssid, const String &pass) EEPROMH.write(ssid, EEPROM_WIFI_SSID_START, EEPROM_WIFI_SSID_END); EEPROMH.write(pass, EEPROM_WIFI_PASS_START, EEPROM_WIFI_PASS_END); EEPROMH.commit();Phát wifi: trước khi phát wifi cần được ngắt hết phần nhiều kết nối. Tiếp nối chuyển chế độ sang WIFI_AP để phát wifi.
void Wifi
Service
Class::setup
AP() ECHOLN("Service>AP> open AP...."); Wi
Fi.soft
APdisconnect(); Wi
Fi.disconnect(); delay(3000); Wi
Fi.mode(WIFI_AP); Wi
Fi.soft
AP(WIFI_AP_SSID, WIFI_AP_PASSWORD); ECHO("Service>AP> Connect to lớn wifi:"); ECHOLN(WIFI_AP_SSID); ECHO("Service>AP> Password:"); ECHOLN(WIFI_AP_PASSWORD); ECHOLN("Service>AP> Softap is running!"); IPAddress my
IP = Wi
Fi.soft
APIP(); ECHO("Service>AP> IP address: "); ECHOLN(my
IP);Cuối cùng chế tạo object của class cho vấn đề sử dụng: Wifi
Service
Class Wifi
Service;
Http
Server
H
Service này sẽ khởi tạo Web server và cung ứng API phục vụ cho việc kết nối. Tất yếu là dữ liệu trao đổi đang là chuỗi json để dễ xử lý. ESP8266 bao gồm thư viện Arduino
Json để triển khai parse những chuỗi json. Họ sẽ áp dụng thư viện này để parse tài liệu nhận được từ thiết bị tính.
Sẽ có 3 hàm thực hiện API chính:
handleStatus dùng để kiểm tra trạng thái của thiết bịhandle
Wifis dùng làm quét những wifi gần kề để gởi trả lại phía thứ tínhhandle
Connect
To dùng để làm nhận password từ máy tính xách tay gửi đến và call hàm connect wifi.
Hàm tạo ESP8266Web
Server và on các request sẽ như sau:
void start
Config
Server() if (server) return; ECHOLN("Server
H>Config
Server> Begin create new server..."); hệ thống = new ESP8266Web
Server(HTTP_PORT); server->on(F("/"), HTTP_GET, handle
Root); server->on(F("/status"), HTTP_GET, handle
Status); server->on(F("/wifis"), HTTP_GET, handle
Wifis); server->on(F("/connect-to"), HTTP_POST, handle
Connect
To); server->on(F("/"), HTTP_OPTIONS, handle
Ok); server->on(F("/status"), HTTP_OPTIONS, handle
Ok); server->on(F("/wifis"), HTTP_OPTIONS, handle
Ok); server->on(F("/connect-to"), HTTP_OPTIONS, handle
Ok); server->begin(); ECHOLN("Server
H>Config
Server> HTTP server started");Lưu ý: khi trình coi sóc gửi request tự một địa chỉ khác (địa chỉ web bối cảnh tới địa chỉ ESP API là 2 địa chỉ khác nhau) thì trình lưu ý sẽ gởi 1 OPTIONS REQUEST do vậy phải có các câu lệnh cùng với methos là HTTP_OPTIONS cho toàn bộ các route được khai báo.
Chương trình chính
Hàm setup() vẫn chạy đầu tiên khi nhảy nguồn. Do vậy hàm này sẽ phải cài đặt chế độ của những chân (PIN) nên thiết, init Serial và triển khai là đọc SSID với PASS wifi được lưu giữ trong bộ nhớ lưu trữ và liên kết đến wifi đó.
void setup() Serial.begin(SERIAL_BAUD_RATE); Serial.println("
Start up..."); pin
Mode(PIN_RESET, INPUT); pin
Mode(LED_BUILTIN, OUTPUT); Wifi
Service.connect();Hàm loop() vẫn kiểm tra chế độ làm vấn đề của sản phẩm công nghệ để thực hiện các hàm tương ứng. Ở chính sách hoạt động thông thường (NORMAL) sẽ luôn kiểm tra liên kết wifi. Nếu wifi không được kết nối thì sẽ triển khai kết nối wifi đã được lưu trong cỗ nhớ. Khi nhưng mà đã kết nối wifi thì sẽ hoạt động bình thường. Ở phía trên mình sẽ cho nháy led để biểu lộ là đồ vật đang hoạt động bình thường. Còn lúc ở chính sách SERVER thì tất yếu sẽ ngóng client kết nối đến rồi (handle
void handle
Normal
Mode() if (Wi
Fi.status() == WL_CONNECTED) // triển khai nháy led if(toggle
Timeout handle
Client(); void check
Button
Reset
Click(){ // kiểm tra trạng thái của nút PIN_RESET và thời gian bấm nút if (digital
Read(PIN_RESET) == LOW && (setting
Timeout + SETTING_HOLD_TIME) Mã chương trình vừa đủ tại đây
Trên đây tôi đã hướng dẫn các bạn tạo một chương trình để tiến hành việc cài đặt wifi đến ESP8266. Giả dụ có bất kể thắc mắc làm sao hoặc bị vướng mắc ở phần nào thì nên để lại comment bên dưới nhé.
Cảm ơn chúng ta đã đọc nội dung bài viết của mình! Hy vọng nội dung bài viết sẽ giúp ích được cho các bạn. Chúc chúng ta thành công!

Module ESP8266 là module wifi rất phổ cập ở Việt Nam, sử dụng chip esp8266 tích hòa hợp Wi-Fi 2.4Ghz có thể lập trình trực tiếp bên trên chip. Hiện tại dòng này đã có khá nhiều phiển phiên bản module, sử dụng phổ biến là ESP01, ESP07, ESP12. Bên cạnh đó còn có những board ra chân giúp dễ dãi kết nối với ngoại vi như Nodemcu, Wemos D1… bài này mình đã hướng dẫn chúng ta làm thân quen với module WIFI ESP826601.
Xem thêm: Phụ Cấp Chuyên Cần Có Đóng Bảo Hiểm Không ? Phụ Cấp Chuyên Cần Có Phải Nộp Bhxh Không
Tìm hiểu module Wi
FI ESP8266 v1
Các tính năng:
Kích thước: 24.75mm x 14.5mm Điện áp làm việc 3.3v Tích hợp ăngten bên trên moduleCó led báo nguồn, led TXHoạt cồn cùng lúc 2 chính sách phát Wi
Fi và thu Wi
Fi
AP, STA, AT + STA lúc mua đã bao gồm sẵn firmwave AT command sinh hoạt baudrate 115200 giúp dễ dãi giao tiếp với nước ngoài vi (MCU)PCB tất cả 8 chân

Demo giao tiếp với PC
bọn họ sẽ làm cho quen cùng với module này bằng cách giao tiếp cùng với PC nhằm gửi lệnh AT Command thử. Chúng ta chú ý áp dụng module mới mua (có sẵ firmwave AT) thì mới tiếp xúc được nhé. Nếu các bạn sử dụng module cũ, thâu tóm về thì có thể người cần sử dụng trước đã nạp firmwave không giống vào dẫn tới bài toán không tiếp xúc được.Kết nối:
ESP8266 | MCU |
VCC + CH_PD | 3.3V |
GND | GND |
TX | RX |
RX | TX |
Chuẩn bị công cụ:
Module biến hóa USB-UART PL2303 hoặc 1 module bất kì mà các bạn biết


gửi lênh OK để demo giao tiếp, nếu như nó ý kiến OK như của chính bản thân mình là OK nhé ! (các bạn để ý màu hồng là lệnh mình gởi đi, còn màu đen là ý kiến của ESP8266). Cuối các lệnh các bạn hãy viết thêm $0D$0A vào. Nó tương xứng với 2 byte 0x0D với 0x0A để hoàn thành lệnh ( nếu không có 2 byte này thì ESP8266 sẽ không phản hồi đâu nhé)
Các bạn cũng có thể tham khảo một số ít lệnh AT:
AT | Kiểm tra lệnh, luôn luôn trả về “OK” | AT |
AT+RST | Khởi đụng lại module | AT+RST |
AT+GMR | Truy vấn phiên bản Firmware | AT+GMR |
AT+CWMODE = | Cài đặt chế độ | 1 =Station 2 = Access Point 3 = Both | AT+CWMODE=1 |
AT+CWMODE? | Truy vấn cơ chế đã cài đặt đặt | AT+CWMODE? | |
AT+CWMODE =? | Truy vấn các chế độ có thể cài đặt đặt | AT+CWMODE=? | |
AT+CIPMUX = | Cài đặt số lượng các kênh kết nối | 0 = 1 kênh kết nối 1 = nhiều kênh kết nối | AT+CIPMUX=1 |
AT+CIPMODE = | Cài đặt cơ chế dữ liệu | 0 = transparent 1 = Data | AT+CIPMODE=1 |
AT+CIPMODE? | Truy vấn chính sách dữ liệu tải đặt | AT+CIPMODE? |
Các lệnh ở chế độ Station / client
AT+CWJAP = , | Kêt nối với 1 mạng wifi | ssid “SSID” pass “password” | AT+CWJAP =“fips.edu.vn”, “1235678” |
AT+CWJAP? | Truy vấn mạng wifi sẽ kết nối | AT+CWJAP? | |
AT+CWLAP | Truy vấn các mạng wifi hoàn toàn có thể kết nối | AT+CWLAP | |
AT+CWQAP | Đóng kế nối wifi với một Access Point | AT+ CWQAP | |
AT+CIFSR | Xem địa chỉ cửa hàng IP của module | AT+CIFSR |
AT+CWSAP=, , , | Cài đặt các thông số cho Access Point | ssid “SSID” pass “password” chan “channel” enc “Encryption” (0 = xuất hiện 1= WEP 2=WPA_PSK 3= WPA2_PSK 4=WPA_WPA2_PSK) | AT+CWSAP=”fips.edu.vn″,”12345678″,5,3 |
AT+CWSAP? | Xem thiết lập hiện tại của Access Point | AT + CWSAP? | |
AT+CWLIF | Danh sách các station đang kết nối | AT + CWLIF |