Mạng WLAN trên Arduino - kết nối ESP8266-01 với Arduino và điều khiển NodeMCU Amica từ xa với điện thoại thông minh của bạn
Arduino là một trong những ban phát triển nổi tiếng nhất. Thật không may, các mô hình tiêu chuẩn không được cài đặt chip Wi-Fi. Mẹo thực tế này chỉ cho bạn cách kết nối mô-đun WLAN ESP8266-01 với Arduino và cách bạn có thể điều khiển từ xa NodeMCU Amica với điện thoại thông minh của mình.
Điều khiển NodeMCU Amica bằng điện thoại thông minh của bạn
NodeMCU Amica có nhiều loại chân khác nhau, cũng như chip Wi-Fi ESP8266 tích hợp và ổ cắm microUSB. Do đó, nó có ý nghĩa để sử dụng thiết bị nhiều hơn như một thiết bị độc lập. Cách kết nối bảng ESP8266 "cổ điển" với Arduino sẽ được mô tả sau trong bài viết.
- Để có thể lập trình chip ESP, trước tiên bạn phải tải xuống và cài đặt trình điều khiển cho tất cả các chip CP210er từ Phòng thí nghiệm Silicon. May mắn thay, điều này xảy ra tương đối nhanh chóng.
- Sau đó mở Arduino IDE và vào Cài đặt. Thêm URL "//arduino.esp8266.com/urdy/package_esp8266com_index.json" (không có dấu ngoặc kép) vào các URL quản trị viên bổ sung. Sau đó khởi động quản trị viên, nhập "ESP8266" và cài đặt gói.
- Đồng thời đi đến trình quản lý thư viện, nhập "Blynk" và cài đặt phiên bản mới nhất. Tất cả các thành phần cần thiết hiện đang được cài đặt.
- Bạn cần ứng dụng Blynk để điều khiển NodeMCU bằng điện thoại thông minh của bạn. Nếu chưa được thực hiện, hãy tạo một tài khoản mới tại đây hoặc đăng nhập bằng tài khoản hiện có. Sau đó tạo một dự án mới và chọn NodeMCU làm bảng.
- Với các mã mẫu trong Arduino IDE, bạn cũng nên tìm mã cho Blynk (→ "Boards_WiFi") trên NodeMCU. Chỉ cần nhập mã thông báo Blynk của dự án của bạn vào đây, mà bạn đã được tự động gửi qua email. Đồng thời nhập SSID và mật khẩu của bạn.
- Để tải mã lên bảng, tất nhiên bạn phải chọn mã từ tab "Công cụ". Trong trường hợp của chúng tôi, "NodeMCU 1.0 (Mô-đun ESP12E)" phải được chọn, tần số 80 MHz, kích thước bộ nhớ "4M (3M SPIFFS)" và tốc độ baud 115200. Tuy nhiên, xin lưu ý rằng thông tin có thể khác nhau tùy thuộc vào kiểu máy.
- Sau đó, bạn có thể chỉ cần tải mã lên bảng và điều khiển nó bằng ứng dụng Blynk. Tại đây bạn có thể dễ dàng tạo các vật dụng khác nhau và, ví dụ, điều khiển đèn LED bằng một nút.
Kết nối WiFi trên Arduino - ESP8266-01 với Arduino
Tiếp theo chúng tôi muốn kết nối và sử dụng mô-đun ESP8266-01 với Arduino.
- Nếu bạn xoay bảng để nó hướng xuống với ăng-ten vàng, bạn có thể tìm thấy chân VCC ở trên cùng bên trái, tất nhiên phải được đặt thành CAO. Bên phải là pin RST mà bạn thường không cần sử dụng. Chân CH_PD bên cạnh nó cũng phải được đặt lại thành CAO. Ở phía trên bên phải, chúng ta có chân TXD để phát tín hiệu và ở phía dưới bên trái, chúng ta có chân RXD nhận tín hiệu, tất nhiên. Chúng tôi cũng có GPIO0 và GPIO2, cũng như pin mặt đất cổ điển, nằm ở phía dưới bên phải.
- Để có thể sử dụng mô-đun trên Arduino, nên sử dụng SoftwareSerial, vì phần cứng được sử dụng chủ yếu để liên lạc giữa Arduino và PC. Tuy nhiên, trong trường hợp của chúng tôi, mô-đun sử dụng 115200 làm tốc độ truyền, điều đó có nghĩa là không thể liên lạc giữa ESP và Arduino thông qua SoftwareSerial.
- Để thay đổi tốc độ baud, nhiều người dùng chỉ cần flash firmware mới cung cấp tốc độ baud khác. Tuy nhiên, điều này không thực sự cần thiết vì tốc độ truyền cũng có thể được thay đổi bằng lệnh. Lệnh này là "AT + UART_DEF". Các lệnh khác như "AT + IPR" hoặc "AT + CIOBAUD" cũng có thể được tìm thấy trên Internet, nhưng điều này không được khuyến khích, vì đặc biệt "AT + IPR" cũng có thể làm sập mô-đun.
- Để gửi lệnh tới mô-đun, nên kết nối nó với PC bằng bộ chuyển đổi USB, thường được cung cấp miễn phí hoặc có thể tìm thấy trên Internet với giá khoảng một euro. Nếu bạn không có bộ chuyển đổi USB, bạn có thể đặt hàng trực tuyến, rất được khuyến khích hoặc sử dụng bộ chuyển đổi FTDI phổ quát, khá phức tạp và thường không hoạt động chính xác. Ngoài ra, có một biến thể khác sẽ được giải thích sau.
- Nếu bạn đã kết nối mô-đun với bộ điều hợp với PC, bạn có thể gửi lệnh "AT + UART_DEF = 9600, 8, 1, 0, 0" với tốc độ baud 115200 và CR + LF. Sau đó, bạn có thể kết nối lại mô-đun và gửi lệnh ở tốc độ baud 9600.
- Tiếp theo bạn phải lập trình Arduino. Mã tương đối đơn giản. Trước tiên, chúng tôi xác định một chuỗi rỗng bằng lệnh »String s =" ";«, nhập SoftwareSerial (»#include«) và tạo một đối tượng SoftwareSerial mới (»SoftwareSerial serial_ESP (2, 3);«). Trong phương thức thiết lập, kết nối với ESP (»serial_ESP.begin (9600);«) và kết nối với PC (»serial.begin (9600);«) được bắt đầu. Nếu ESP gửi tín hiệu, chuỗi này sẽ được thêm vào chuỗi và sau đó chuỗi sẽ xuất ra trong màn hình nối tiếp (»while (serial_ESP.av Available ()> 0) {s + = (char) Serial_ESP.read ();} if (s ! = "") {Nối tiếp.println (s); s = "";} «). Ngược lại, các tín hiệu được gửi bởi màn hình nối tiếp, tức là PC, cũng được chuyển đến ESP ("while (serial.av Available ()> 0) {serial_ESP.write (serial.read ());}"). Tuy nhiên, điều rất quan trọng là toàn bộ mọi thứ được chuyển đổi thành char, vì ESP gửi lại số. Bạn cũng có thể tìm lại mã trong bộ sưu tập hình ảnh ở cuối bài viết.
- Khi bạn đã tải mã lên Arduino, bạn cần kết nối ESP. Chú ý! ESP sử dụng 3, 3 volt thay vì 5V. 5V phá vỡ hoàn toàn này. Tuy nhiên, do Arduino hoạt động với logic 5V, nên điện áp phải được điều chỉnh cho phù hợp.
- Về lý thuyết, bạn có thể sử dụng một bộ chia điện áp với điện trở, nhưng trong thực tế, toàn bộ điều này khá thiếu chính xác và có thể dễ dàng bị xáo trộn. Do đó, bạn cần chuyển đổi một bộ chuyển đổi mức logic giữa Arduino và ESP.
- Kết nối chân 5V của Arduino với HV, tức là chân điện áp cao trên bộ chuyển đổi và chân LV của bộ chuyển đổi với chân VCC của ESP. Đồng thời kết nối chân LV song song với chân CH_PD của ESP để chip cũng được bật. Ngoài ra, để có đủ dòng điện, bạn nên kết nối chân 3, 3V của Arduino với chân LV của bộ chuyển đổi, do đó, với VCC và CH_PD của ESP. Bây giờ kết nối chân TX từ SoftwareSerial - trong trường hợp của chúng tôi là chân 3 trên Arduino - với HV 1, 2, 3 hoặc 4 và chân LV đối diện với chân RXD trên ESP. Lặp lại bước này cho chân RX của Arduino.
- Cuối cùng, bạn phải kết nối mặt đất. Để làm điều này, kết nối mặt đất của Arduino với mặt đất ở phía HV của bộ chuyển đổi. Sau đó kết nối mặt đất ở phía LV với mặt đất của ESP. Cuối cùng, bạn phải kết nối mặt đất HV và mặt đất LV.
- Bây giờ bạn có thể dễ dàng gửi các lệnh AT với PC của bạn tới ESP thông qua Arduino. Bạn có thể dễ dàng kết nối Arduino với WiFi, tạo máy chủ web và nhiều hơn nữa. Chỉ cần thêm các lệnh AT tương ứng vào mã Arduino (trong phương thức thiết lập) sẽ được gửi đến ESP, mà bạn cũng có thể tìm thấy trong "Tập lệnh AT".
- Nếu bạn chưa có bộ chuyển đổi USB, bạn cũng có thể gửi lệnh để thay đổi tốc độ truyền qua Phần cứng bằng cách sử dụng cùng một mạch, sử dụng các chân TX và RX của Arduino, tức là 0 và 1. Tuy nhiên, đừng quên điều chỉnh tốc độ baud trong mã cho phù hợp.
Trong mẹo thực tế tiếp theo, chúng tôi sẽ giới thiệu cho bạn về ngôn ngữ lập trình Java.