Giao tiếp không dây giữa các thiết bị điện tử và mô-đun là rất quan trọng, để làm cho chúng trở nên 'Phù hợp' trong Thế giới của Internet of Things. Giao thức HTTP và ngôn ngữ HTML đã giúp bạn có thể truyền Dữ liệu đến mọi nơi trên thế giới, qua web. Chúng tôi đã đề cập đến một số dự án sử dụng Wi-Fi với Arduino, hãy xem chúng để Bắt đầu:
- Gửi Email bằng Arduino và Mô-đun WiFi ESP8266
- Robot điều khiển WiFi bằng Arduino
- Điều khiển đèn LED RGB bằng Arduino và Wi-Fi
Bây giờ trong hướng dẫn này, chúng tôi đang xây dựng một chương trình để gửi dữ liệu lên web bằng Arduino và mô-đun Wi-Fi. Đối với điều này, trước tiên, chúng tôi cần một địa chỉ IP của máy chủ Toàn cầu hoặc Máy chủ cục bộ, ở đây cho mục đích dễ hiểu và trình diễn, chúng tôi đang sử dụng Máy chủ cục bộ.
Các thành phần bắt buộc:
- Arduino UNO
- Mô-đun Wi-Fi ESP8266
- Cáp USB
- Kết nối dây
- Máy tính xách tay
- Nguồn cấp
Mô-đun Wi-Fi ESP8266:
Kết nối mạch:
Sơ đồ mạch cho “Đăng dữ liệu từ Arduino lên Web” được đưa ra bên dưới. Chúng tôi chủ yếu cần một mô-đun Wi-Fi Arduino và ESP8266. Các chân Vcc và GND của ESP8266 được kết nối trực tiếp với 3.3V và GND của Arduino và CH_PD cũng được kết nối với 3.3V. Các chân Tx và Rx của ESP8266 được kết nối trực tiếp với chân 2 và 3 của Arduino. Thư viện nối tiếp phần mềm được sử dụng để cho phép giao tiếp nối tiếp trên chân 2 và 3 của Arduino. Chúng tôi đã trình bày chi tiết về Giao diện của mô-đun Wi-Fi ESP8266 với Arduino.
Bằng cách sử dụng Thư viện nối tiếp phần mềm tại đây, chúng tôi đã cho phép giao tiếp nối tiếp trên chân 2 và 3, đồng thời biến chúng thành Rx và Tx tương ứng. Theo mặc định, chân 0 và 1 của Arduino được sử dụng để giao tiếp nối tiếp nhưng bằng cách sử dụng thư viện SoftwareSerial, chúng tôi có thể cho phép giao tiếp nối tiếp trên các chân kỹ thuật số khác của Arduino.
Lưu ý: Để xem phản hồi của ESP8266 trên màn hình nối tiếp, vui lòng mở Màn hình nối tiếp của Arduino IDE.
Giải thích làm việc:
Trước hết, chúng ta cần kết nối mô-đun Wi-Fi của mình với bộ định tuyến Wi-Fi để kết nối mạng. Sau đó chúng ta sẽ Cấu hình máy chủ cục bộ, Gửi dữ liệu lên Web và cuối cùng là Đóng kết nối. Quá trình này và các lệnh đã được giải thích trong các bước dưới đây:
1. Đầu tiên chúng ta cần kiểm tra mô-đun Wi-Fi bằng cách gửi lệnh AT , nó sẽ hoàn nguyên phản hồi có chứa OK .
2. Sau đó, chúng ta cần chọn chế độ bằng lệnh AT + CWMODE = mode_id , chúng ta đã sử dụng Mode id = 3. Id chế độ:
1 = Chế độ trạm (máy khách)
2 = Chế độ AP (máy chủ)
3 = Chế độ AP + Trạm (Có, ESP8266 có chế độ kép!)
3. Bây giờ chúng ta cần ngắt kết nối mô-đun Wi-Fi của mình khỏi mạng Wi-Fi đã kết nối trước đó, bằng cách sử dụng lệnh AT + CWQAP, vì ESP8266 được mặc định tự động kết nối với bất kỳ mạng Wi-Fi nào có sẵn trước đó
4. Sau đó, người dùng có thể Reset module bằng lệnh AT + RST . Bước này là tùy chọn.
5. Bây giờ chúng ta cần kết nối ESP8266 với bộ định tuyến Wi-Fi bằng lệnh đã cho
6. Bây giờ lấy Địa chỉ IP bằng cách sử dụng lệnh đã cho:
Nó sẽ trả về một Địa chỉ IP.
7. Bây giờ hãy bật chế độ ghép kênh bằng cách sử dụng AT + CIPMUX = 1 (1 cho nhiều kết nối và 0 cho một kết nối)
8. Bây giờ cấu hình ESP8266 làm máy chủ bằng cách sử dụng AT + CIPSERVER = 1, port_no (cổng có thể là 80). Bây giờ Wi-Fi của bạn đã sẵn sàng. Ở đây '1' được sử dụng để tạo máy chủ và '0' để xóa máy chủ.
9. Bây giờ bằng cách sử dụng lệnh đã cho, người dùng có thể gửi dữ liệu đến máy chủ được tạo cục bộ:
Id = ID không. kết nối truyền
Độ dài = Độ dài tối đa của dữ liệu là 2 kb
10. Sau khi gửi ID và Độ dài đến máy chủ, chúng ta cần gửi các dữ liệu như: Serial.println (“[email protected]”);
11. Sau khi gửi dữ liệu, chúng ta cần đóng kết nối bằng lệnh đã cho:
Bây giờ dữ liệu đã được truyền đến máy chủ cục bộ.
12. Bây giờ gõ Địa chỉ IP vào Thanh địa chỉ trong trình duyệt web và nhấn Enter. Bây giờ người dùng có thể xem dữ liệu được truyền trên trang web.
Kiểm tra Video bên dưới để biết quy trình hoàn chỉnh.
Các bước lập trình:
1. Bao gồm Thư viện SoftwareSerial để cho phép giao tiếp nối tiếp trên mã PIN 2 & 3 và khai báo một số biến và chuỗi.
#include
2. Sau đó, chúng ta phải xác định một số chức năng để thực hiện các tác vụ mong muốn của chúng ta.
Trong hàm Setup () , chúng tôi khởi tạo giao tiếp UART nối tiếp có sẵn cho ESP8266 dưới dạng client.begin (9600); ở tốc độ truyền 9600.
void setup () {Serial.begin (9600); client.begin (9600); wifi_init (); Serial.println ("Hệ thống đã sẵn sàng.."); }
3. Trong hàm wifi_init () , chúng ta khởi tạo module wifi bằng cách gửi một số lệnh như thiết lập lại, thiết lập chế độ, kết nối với bộ định tuyến, cấu hình kết nối… Các lệnh này cũng đã được giải thích ở trên trong phần mô tả.
void wifi_init () {connect_wifi ("AT", 100); connect_wifi ("AT + CWMODE = 3", 100); connect_wifi ("AT + CWQAP", 100); connect_wifi ("AT + RST", 5000);…………………
4. Trong hàm connect_wifi () , chúng tôi gửi dữ liệu lệnh đến ESP8266 và sau đó đọc phản hồi từ mô-đun Wi-Fi ESP8266.
void connect_wifi (Chuỗi cmd, int t) {int temp = 0, i = 0; while (1) {Serial.println (cmd);…………………
5. Hàm sendwebdata () được sử dụng để gửi dữ liệu đến Máy chủ cục bộ hoặc Trang web.
void sendwebdata (String webPage) {int ii = 0; while (1) {unsigned int l = webPage.length (); Serial.print ("AT + CIPSEND = 0,"); client.print ("AT + CIPSEND = 0,");…………………
6. Hàm void send () được sử dụng để gửi các chuỗi dữ liệu đến hàm sendwebdata () . Điều đó sẽ được tiếp tục gửi đến trang web.
void Gửi () {webpage = "
Chào mừng bạn đến với Circuit Digest
"; sendwebdata (trang web); webpage = name; webpage + = dat;………………….7. Hàm get_ip () được sử dụng để lấy địa chỉ IP của máy chủ tạo cục bộ.
8. Trong hàm void loop () , chúng tôi gửi hướng dẫn cho người dùng để làm mới trang và kiểm tra xem máy chủ có được kết nối hay không. Khi người dùng làm mới hoặc yêu cầu trang web, dữ liệu sẽ tự động được truyền đến cùng một địa chỉ IP.
void loop () {k = 0; Serial.println ("Vui lòng Làm mới Trang của bạn"); trong khi (k <1000)………………
Chúng tôi có thể hiển thị bất kỳ dữ liệu nào từ Arduino tới Trang web bằng cách sử dụng quy trình này, như Nhiệt độ và độ ẩm trong phòng, Giờ đồng hồ, tọa độ GPS, Nhịp tim, v.v.