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ế độ kết nối đơn kênh) | type:"TCP" /"UDP"address"IPaddress"port: TCP/UDP port | AT+CIPSTART="TCP","192.168.3.10", 3000 |
AT+CIPSEND= | truyền dữ liệu tới server | len: độ lâu năm dữ liệu | AT+CIPSEND = 5>hello |
AT+CIPCLOSE | Đóng liên kết TCP/UDP | AT+CIPCLOSE | |
AT+CIPSTART=,,, | Tạo một kết nối IP cùng với AT+CIPMUX = 1(chể độ liên kết đ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 |
Trong clip sau sẽ hướng dẫn các bạn đưa tài liệu lên website "thingspeak.com"( đóng vai trò là server) thực hiện module wifi esp8266. Chúng ta hãy tìm hiểu kĩ rộng về " thingspeak.com" tốt internet of thing (IOT) chúng để giúp ích cho bạn rất nhiều.
Bạn đang xem: Hướng dẫn test module wifi esp8266 với máy tính phần 2
Chú say mê trong Clip:
- Đăng kí một tài khoản trên website” thingspeak.com”
- chế tạo ra một kênh để up dữ liệu lên
- kết nối module Esp8266 với module Uart như làm ở vị trí 1
- cung cấp nguồn đến module Esp8266
- thông số kỹ thuật Esp8266 là Station
AT+CWMODE=1
- truy vấn vào một mạng wifi
AT+CWJAP=”TÊN MẠNG”,“MẬT KHẨU”
- cài đặt ESP8266 rất có thể kết nối được với tương đối nhiều kênh
AT+CIPMUX=1
( là kênh ESP8266 dùng để 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ừ bỏ 0-4)
- giữ hộ số liệu lên thingspeak server, tới kênh dữ liệu đã được tạo ra trên thingspeak, tại các 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 tự với vấn đề truyền đi 2 byte 0x0D , 0x0A.
Trong đó:
Write API Key - mật mã nhằm viết số liệu lênh 1 kênh của server, mỗi một kênh bên trên sever sẽ có một mật mã riêng.
fieldx là một trong các trường trường đoản cú field1… field8
AT+CIPSEND=,
> “Chuỗi kí tự cần truyền đi “
Ví dụ, muốn truyền quý hiếm 12.5 lênh một kênh nào kia của vps tại field1 thì chuỗi yêu cầu truyền đi sẽ là:
“GET /update?key=XOMM1M44L0ZHZE85&field1=12.5”
Để truyền được chuỗi này nên phải khẳng định được độ nhiều năm của chuỗi kí tự, sinh hoạt ví dụ này là 46 kí trường đoản cú (bạn nhớ thêm vào đó 2 byte 0x0D cùng 0x0A)
AT+CIPSEND=3,46
> GET /update?key=XOMM1M44L0ZHZE85&field1=12.5
- sau cùng để đóng liên kết TCP
AT+CIPCLOSE
Các lệnh so với IP server
AT+CIPSERVER=1 <, > | TCP server ban đầu hoạt động | port: TCP port | AT+CIPSERVER = 1.8001 |
AT+CIPSERVER=0 | TCP hệ thống ngắt kết nối | AT+CIPSERVER = 0 | |
AT+CIPSTO= | đặt thời hạn timeout mang đến TCP server | timeout = 0-28800s | AT+CIPSTO = 180 |
AT+CIPSTO? | AT+CIPSTO? |
Khi một TCP server ban đầu hoạt động, nó rất có thể làm việc đồng thời với 5 kết nối
Chú ý:IP vps chỉ hoàn toàn 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 vi tính (phần 1) |
lý giải lập trình ESP8266 EVB (MLAB) sử dụng Arduino IDE |
gợi ý nạp Firmware AT đến ESP8266 |
Viết tiến công giá
Họ và tên: Đánh giá bán của bạn: giữ ý: Không cung cấp HTML! Bình chọn: Dở Hay Nhập mã bảo vệ:Tiếp tục
Xin chào những bạn, bản thân đã quay trở về rồi đây. Như đang nói ở bài trước bài lúc này mình xin viết về việc thiết lập chương trình tùy chỉnh cấu hình kết nối vào mạng wifi mang đến ESP8266. Trong bài viết này bản thân vẫn sử dụng em wemos d1 mini tựa như những bài trước.
Ý tưởngÝ tưởng để gửi SSID và PASS của wifi mang lại ESP8266 là ESP8266 sẽ làm cho một vps web cung ứng 1 API để máy vi tính gửi dữ liệu vào. Nhưng lại muốn laptop truy cập được API đó thì nó buộc phải được kết nối 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 nào rồi chính vì mình đang xây cất chương trình để kết nối wifi nhưng mà
. Vậy làm thế nào để ESP8266 có thể kết nối đến máy vi tính mà chính này lại không thể liên kết wifi?Bạn rất có thể nghĩ đến một cách thực hiện là cho ESP8266 liên kết đến wifi khoác định. Mọi khi muốn thiết đặt cho ESP8266 liên kết đến wifi không giống thì máy tính xách tay phải vạc một wifi mang định mang lại ESP8266 kết nối đến rồi thừa trình thiết đặt diễn ra. Đây là một ý tưởng rất có thể thực hiện được nhưng này lại khá là tinh vi để tiến hành nếu người dùng không biết cách cài đặt cho việc phát wifi từ sản phẩm tính.
Một phát minh khác được đưa ra là mang đến ESP8266 phát wifi để laptop kết nối đến. Bài toán sử dụng máy tính để kết nối wifi thì người nào cũng có thể có tác dụng được. Việc quan trọng đặc biệt là mình phải viết chương trình thế nào cho ESP8266 phân phát được wifi thôi. Để làm cho được câu hỏi này thì ESP8266 cần có tính năng phát wifi không thì sao hoàn toàn có thể phát wifi được. Thật tuyệt vời nhất ESP8266 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 ý tưởng phát minh cho công tác sẽ như sau:
ESP8266 phạt một wifi cùng với mật khẩu mặc định là "12345678" với đồng thời chạy website server hỗ trợ API thừa nhận SSID và PASS của wifi. Máy tính xách tay sẽ liên kết đến wifi cơ mà ESP8266 vạc ra, truy vấn vào địa chỉ cửa hàng IP của ESP8266 cùng gửi POST request yêu cầu ESP8266 kết nối đến wifi người dùng nhập vào.Chúng ta cũng phải viết thêm công dụng để chuyển giữa chế độ hoạt động thông thường và chế độ cài đặt nữa. Ý tưởng được phát biểu như sau: lúc ESP8266 đang vận động bình thường, muốn vào chế độ cài đặt thì đề nghị ấn cùng giữ 1 nút trên phần cứng khoảng 3s. Khi cài đặt xong thì đang về cơ chế bình thường. Nhưng khi vẫn ở chế độ thiết lập muốn về cơ chế hoạt động bình thường thì người dùng cũng đề nghị ấn và giữ nút setup khoảng 3s để đưa chế độ.Thiết kế chương trìnhSơ đồ hoạt động vui chơi của hệ thống đã như sau:
Khi hệ thống hoạt động bình thường ấn và giữ nút thiết đặt 3s nhằm vào trạng thái cài đặt. Khi ở trạng thái thiết đặt ESP8266 đã phát ra 1 wifi với password là "12345678". Đồng thời ESP8266 sẽ làm web server cung ứng API để truy vấn vào. Máy tính sẽ liên kết với wifi ESP8266 vì chưng phát ra và sử dụng một đồ họa web để truy vấn API mang đến ESP8266. Và tiếp theo sau quá trình thiết đặt sẽ ra mắt như sơ đồ mặt trên.
Viết chương trình đến ESP8266Chương trình viết đến ESP8266 lần này sẽ phức tạp hơn 1 chút nên mình sẽ chia thành các Service nhỏ. Chúng ta cần xây dựng các service sau:
EEPROM Service: Service này sẽ có được nhiệm vụ đọc và ghi tài liệu vào EEPROM. Cốt truyện về EEPROM một chút. EEPROM là một trong loại bộ nhớ của ESP8266. Nó rất 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 những dữ liệu thọ dài.Wifi Service: Service sẽ sở hữu được nhiệm vụ giúp ESP8266 vạc wifi và liên kết với wifi dìm được.HttpServer
H: trách nhiệm của Service này là giúp ESP8266 sinh sản một website server hỗ trợ các API. Bản thân thêm chữ H do ESP8266 đã gồm một thư viện thương hiệu là Http
Server rồi.
Bây giờ họ sẽ từng bước, từng bước tạo các Service đã làm được liệt kê ở bên trên.
Trong nội dung bài viết này mình đã sử dụng những thư viện:
ArduinoJson: 5.13
Đầu tiên đã là EEPROM Service.
EEPROM Service
Để thao tác làm việc với EEPROM ta sẽ thực hiện thư viện EEPROM của ESP8266. Mặc dù thư viện này chỉ làm việc với từng ô nhớ. Nhưng phần lớn giá trị cần lưu vào là những String vày vậy rất cần được viết các hàm thực hiện được điều đó. Service này sẽ có 4 hàm cơ bản sau:
write Hàm ghiread Hàm đọcclear Hàm xóa dùng làm xóa những ô ghi nhớ về cực hiếm 0commit Hàm commit nhằm lưu những chuyển đổi vào EEPROM thậtvoid EEPRom
HClass::write(const String &data, int begin, int end
Max){ int end = data.length() + begin; if (end - 1 > end
Max) ECHOLN("
Max); for (int i = begin; i WIFI Service
Wifi service sẽ có được 2 hàm 3 hàm để tiến hành việc: liên kết wifi, tàng trữ wifi, vạc wifi. Rõ ràng như sau:
Kết nối wifi: gồm 2 hàm kết nối wifi. Một là lấy tài liệu từ bộ lưu trữ EEPROM rồi kết nối, một hàm sẽ chất nhận được truyền ssid cùng pass từ bên phía ngoài vào để kết nối. Lúc truyền từ phía bên ngoài vào giả dụ wifi kết nối thành công thì ssid cùng pass sẽ tiến hành lưu lại để sử dụng cho lần sau. Code của hàm liên kết sẽ như sau:
int Wifi
Service
Class::connect() ECHOLN("
Service
Class::connect(const String &ssid, const String &pass, boolean is
New){ ECHOLN("
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 to connect"); int c = 0; while (c Lưu wifi: Hàm này vẫn viết vào bộ nhớ lưu trữ và lưu lại lại. Địa chỉ cấp cho mỗi chuỗi ssid với pass là trăng tròn byte tương tự với trăng tròn 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 phải ngắt hết phần đa kết nối. Tiếp đến chuyển chế độ sang WIFI_AP để phát wifi.
void Wifi
Service
Class::setup
AP() ECHOLN("
Fi.soft
APdisconnect(); Wi
Fi.disconnect(); delay(3000); Wi
Fi.mode(WIFI_AP); Wi
Fi.soft
AP(WIFI_AP_SSID, WIFI_AP_PASSWORD); ECHO("
IP = Wi
Fi.soft
APIP(); ECHO("
IP);Cuối cùng tạo thành object của class cho bài toán sử dụng: Wifi
Service
Class Wifi
Service;
Http
Server
H
Service này sẽ tạo nên Web hệ thống và hỗ trợ API giao hàng cho việc kết nối. Tất yếu là dữ liệu trao đổi vẫn là chuỗi json để dễ xử lý. ESP8266 có thư viện Arduino
Json để tiến hành parse những chuỗi json. Họ sẽ thực hiện thư viện này nhằm parse dữ liệu nhận được từ thiết bị tính.
Sẽ gồm 3 hàm thực hiện API chính:
handleStatus dùng để làm kiểm tra trạng thái của thiết bịhandle
Wifis dùng để quét những wifi lân cận để gởi trả lại phía vật dụng tínhhandle
Connect
To dùng để nhận password từ máy tính xách tay gửi đến và điện thoại tư vấn hàm connect wifi.
Hàm sản xuất ESP8266Web
Server cùng on các request vẫn như sau:
void start
Config
Server() if (server) return; ECHOLN("
H>
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("
H>
Server> HTTP vps started");Lưu ý: lúc trình coi ngó gửi request từ một địa chỉ khác (địa chỉ web đồ họa tới địa chỉ ESP API là 2 địa chỉ cửa hàng khác nhau) thì trình chuyên chú sẽ giữ hộ 1 OPTIONS REQUEST do thế phải có các câu lệnh 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 thứ nhất khi bật nguồn. Do vậy hàm này sẽ phải thiết đặt chế độ của những chân (PIN) bắt buộc thiết, init Serial và tiến hành là hiểu SSID với PASS wifi được lưu giữ trong bộ nhớ 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 việc của lắp thêm để triển khai 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 như wifi không được kết nối thì sẽ tiến hành kết nối wifi đã có lưu trong cỗ nhớ. Khi mà đã kết nối wifi thì sẽ hoạt động bình thường. Ở trên đây mình sẽ cho nháy led để bộc lộ là sản phẩm đang chuyển động bình thường. Còn khi ở cơ chế SERVER thì tất yếu sẽ ngóng client liên kết đến rồi (handle
Client). Cuối cùng phải luôn luôn soát sổ xem nút Setting đạt được bấm với giữ trong 3s tốt không.
Xem thêm: Hướng Dẫn Đăng Ký 3G Mobifone Trọn Gói, Access Denied
void handle
Normal
Mode() if (Wi
Fi.status() == WL_CONNECTED) // tiến hành nháy led if(toggle
Timeout handle
Client(); void check
Button
Reset
Click(){ // đánh giá 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 đầy đủ tại đây
Trên đây tôi đã hướng dẫn chúng ta tạo một chương trình để tiến hành việc thiết đặt wifi mang đến ESP8266. Nếu có bất kể thắc mắc làm sao hoặc bị vướng mắc tại đoạn nào thì hãy để lại comment dưới nhé.
Cảm ơn các bạn đã đọc 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!