AT commandDescription
Parameter
Example
AT+CIPSTATUSKiểm tra tâm trạng kết nAT + 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 portAT+CIPSTART="TCP","192.168.3.10", 3000
AT+CIPSEND=truyền tài liệu tới serverlen: độ lâu năm dữ liệuAT+CIPSEND = 5>hello
AT+CIPCLOSEĐóng kết nối TCP/UDPAT+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 portAT+CIPSTART=4,"TCP","192.168.3.10", 3000
AT+CIPSEND= , Truyền tài liệu tới serverid: 0-4len: Độ dài dữ liệuAT+CIPSEND = 1,5> hello
AT+CIPCLOSE= Đóng liên kết TCP/UDPid: 0-4AT+CIPCLOSE = 1
Trong clip sau đã hướng dẫn các bạn đưa tài liệu lên trang web "thingspeak.com"( vào vai trò là server) áp dụng module wifi esp8266. Các bạn hãy tò mò kĩ hơn về " thingspeak.com" hay internet of thing (IOT) chúng để giúp ích cho bạn rất nhiều.Bạn vẫn xem: hướng dẫn demo module wifi esp8266 với máy vi tính phần 2

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 command
Description
Parameter
Example
AT+CIPSERVER=1 TCP server bắt đầu hoạt độngport: TCP portAT+CIPSERVER = 1.8001
AT+CIPSERVER=0TCP server ngắt kết nốiAT+CIPSERVER = 0
AT+CIPSTO=đặt thời hạn timeout cho TCP servertimeout = 0-28800sAT+CIPSTO = 180
AT+CIPSTO?AT+CIPSTO?
Khi một TCP server bước đầu hoạt động, nó hoàn toàn có thể làm việc đồng thời với 5 kết nối

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ình

Sơ đồ 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 ESP8266

Chươ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.Http
Server
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:

Arduino
Json: 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ật

void 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:

handle
Status
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

Kết luận

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 module
Có 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
*
sơ đồ vật chân esp8266v1

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:

ESP8266MCU
VCC + CH_PD3.3V
GNDGND
TXRX
RXTX

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
*
Các bạn có thể thấy vết chấm than ! Như này là chưa download driver. đề xuất cài driver cùng dấu chấm than quà mất đi thì mởi được nhé !
*
Setup ứng dụng hecurles UART fips.edu.vn
*

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:

ATKiểm tra lệnh, luôn luôn trả về “OK”AT
AT+RSTKhởi đụng lại moduleAT+RST
AT+GMRTruy vấn phiên bản FirmwareAT+GMR
AT+CWMODE =Cài đặt chế độ1 =Station 2 = Access Point 3 = BothAT+CWMODE=1
AT+CWMODE?Truy vấn cơ chế đã cài đặt đặtAT+CWMODE?
AT+CWMODE =?Truy vấn các chế độ có thể cài đặt đặtAT+CWMODE=?
AT+CIPMUX = Cài đặt số lượng các kênh kết nối0 = 1 kênh kết nối 1 = nhiều kênh kết nốiAT+CIPMUX=1
AT+CIPMODE = Cài đặt cơ chế dữ liệu0 = transparent 1 = DataAT+CIPMODE=1
AT+CIPMODE?Truy vấn chính sách dữ liệu tải đặtAT+CIPMODE?

Các lệnh ở chế độ Station / client

AT+CWJAP = ,

Kêt nối với 1 mạng wifissid “SSID” pass “password”AT+CWJAP =“fips.edu.vn”, “1235678”
AT+CWJAP?Truy vấn mạng wifi sẽ kết nốiAT+CWJAP?
AT+CWLAPTruy vấn các mạng wifi hoàn toàn có thể kết nốiAT+CWLAP
AT+CWQAPĐóng kế nối wifi với một Access PointAT+ CWQAP
AT+CIFSRXem địa chỉ cửa hàng IP của moduleAT+CIFSR
Các lệnh ở chính sách Access Point

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 PointAT + CWSAP?
AT+CWLIFDanh sách các station đang kết nốiAT + CWLIF
Ngoài ra còn không hề ít lệnh không giống nữa, hãy bài viết liên quan ở datasheet nhé !Trong bài tiếp theo chúng ta sẽ mang đến ESP8266 hoạt động ở mode Station và kết nối tới internet !