You are currently viewing Hướng dẫn lập trình cho ESP8266 bằng Arduino IDE

Hướng dẫn lập trình cho ESP8266 bằng Arduino IDE

Trong bài viết Bộ thu/phát WiFi ESP8266 chúng ta đã tìm hiểu về đặc điểm và tính năng của mô-đun thu phát WiFi ESP8266. Chúng ta biết rằng mô-đun ESP8266 có một vi điều khiển bên trong nó, do đó chúng ta có thể dùng nó như một hệ máy tính nhúng độc lập và lập trình nó để thực hiện một chức năng nào đó. Trong bài viết này chúng ta cùng nhau tìm hiểu cách lập trình cho mô-đun ESP8266.

Có nhiều cách khác nhau để lập trình ESP8266 bằng các ngôn ngữ lập trình khác nhau: Arduino C/C++ sử dụng lõi Arduino cho ESP32, Micropython, LUA và các ngôn ngữ khác.

Phương pháp ưa thích của nhiều người là lập trình ESP8266 bằng “ngôn ngữ lập trình Arduino” với Arduino IDE hoặc Mã VS. Nếu là người mới bắt đầu làm quen với ESP8266, bạn nên bắt đầu với Arduino IDE. Trong bài viết này, chúng ta sẽ tập trung tìm hiểu cách cài đặt và sử dụng Arduino IDE.

> Bộ thu/phát WiFi ESP8266

> Điều khiển LED qua IoT bằng Google Firebase và ESP8266

1. Lập trình ESP8266 với Arduino IDE

Arduino IDE logo

Loggo của Arduino IDE.

      Để lập trình ESP8266, bạn cần một môi trường phát triển IDE để viết mã, biên dịch và nạp chương trình lên chip ESP8266. Nếu bạn mới bắt đầu với ESP8266, hãy bắt đầu với Arduino IDE. Mặc dù nó không phải là IDE tốt nhất, nhưng nó hoạt động tốt, đơn giản và trực quan để sử dụng cho người mới bắt đầu. Sau khi làm quen với Arduino IDE, nếu bạn muốn tạo các dự án phức tạp hơn, bạn có thể thấy hữu ích khi sử dụng Mã VS với phần mở rộng PlatformIO để thay thế.

    

2. Cài dặt Arduino IDE

      Để chạy Arduino IDE, bạn cần cài đặt JAVA trên máy tính của mình. Nếu chưa cài đặt, hãy truy cập trang web sau để tải xuống và cài đặt phiên bản mới nhất: http://java.com/download.

    Bạn tham khảo video hướng dẫn cài đặt Arduino IDE ở link sau: https://youtu.be/9NrI5NQV0dc

Tải Arduino IDE

      Để tải Arduino IDE, hãy truy cập URL sau: https://www.arduino.cc/en/software

Trang web để tải bộ cài Arduino IDE

Trang web để tải bộ cài Arduino IDE.

      Tại thời điểm viết hướng dẫn này, phiên bản Arduino mới nhất là 2.0 như bạn thấy ở hình trên.  Mặc dù phiên bản 2.0 hoạt động tốt với Arduino nhưng vẫn còn một số lỗi và một số tính năng chưa được hỗ trợ cho ESP8266. Nếu bạn gặp lỗi với phiên bản 2.0, bạn nên sử dụng phiên bản cũ (1.8.19) để lập trình cho ESP8266.

      Để download phiên bản 1.8.19, hãy kéo xuống cho đến khi bạn tìm thấy phần phiên bản cũ.

Phiên bản Arduino IDE 1.8.19

Phiên bản Arduino IDE 1.8.19.

      Chọn phiên bản phù hợp với hệ điều hành của bạn và tải xuống phần mềm. Đối với Windows, bạn nên tải xuống “Windows ZIP file”.

Chạy bộ cài Arduino IDE

      Giải nén tệp bạn vừa tải xuống và chạy tệp thực thi có tên là arduino.exe (được đánh dấu bên dưới).

Chạy bộ cài Arduino IDE

Chạy bộ cài Arduino IDE.

      Sau khi cài đặt, Arduino IDE sẽ mở ra một cửa sổ như bên dưới.

Giao diện của Arduino IDE sau khi cài đặt

Giao diện của Arduino IDE sau khi cài đặt.

Cài đặt thư viện ESP8366 NodeMCU trong Arduino IDE

      Để có thể lập trình NodeMCU ESP8266 bằng Arduino IDE, bạn cần cài thêm gói thư viện hỗ trợ cho các bo mạch ESP8266. Thực hiện theo các bước tiếp theo để cài đặt các gói hỗ trợ.

  1. Chuyển tới File -> Preferences

Arduino IDE Preferences

 

Chọn Preferences.

  1. Nhập URL phía dưới vào trường “Additional Board Manager URLs” như hình phía dưới. Sau đó nhấp vào “OK”.

   https://arduino.esp8266.com/stable/package_esp8266com_index.json

Chọn Preferences

Lưu ý: Nếu bạn đã có URL của các bo mạch ESP khác, bạn phải tách biệt các URL bằng cách đặt chúng trên các dòng khác nhau.

  1. Mở Board Manager bằng cách chọn biểu tượng ở lề trái màn hình hoặc chọn Tools -> Board -> Boards Manager… từ trình đơn.
  2. Nhập vào ô tìm kiếm “ESP8266” và chọn Install “ESP8266 by ESP8266 Community”.

Arduino IDE Boards Manager

  1. Khởi động lại Arduino IDE. Sau đó chuyển tới Tools -> Board để kiểm tra xem bo ESP8266 đã khả dụng hay chưa. Nếu gói hỗ trợ các bo mạch ESP8266 đã được cài đặt đúng, bạn sẽ thấy được một cấu hình như hình bên dưới.

Arduino IDE ESP8266 package

  1. Bây giờ bạn đã sẵn sàng để lập trình cho ESP8266 bằng Arduino IDE.

Các ví dụ về ESP8266

      Trong Arduino IDE, bạn có thể tìm thấy nhiều ví dụ cho bo mạch ESP8266. Trước tiên, hãy đảm bảo rằng bạn đã chọn bo mạch ESP8266 trong Tools > Boards. Sau đó, chỉ cần vào File -> Examples và xem các ví dụ trong phần ESP8266.

ESP8266 examples on Arduino IDE

Cập nhật lõi ESP8266 trong Arduino IDE

      Thỉnh thoảng, bạn nên kiểm tra xem mình đã cài đặt phiên bản mới nhất của tiện ích bổ trợ cho ESP8266 chưa. Để làm điều này, bạn chỉ cần vào Tools > Board > Boards Manager, tìm kiếm ESP8266 và kiểm tra phiên bản bạn đã cài đặt. Nếu có phiên bản mới hơn, hãy chọn phiên bản đó để cài đặt.

3.  Nạp chương trình lên ESP8266 bằng Arduino IDE

a)  Nạp chương trình cho bo mạch ESP8266 NodeMCU

      Để chỉ cho bạn cách tải mã lên bo mạch ESP8266 của mình, tôi sẽ dùng một ví dụ đơn giản có sẵn trong các ví dụ cho ESP8266 có sẵn trên Arduino IDE.

      Trước tiên, hãy đảm bảo rằng bạn đã chọn một bo mạch ESP8266 trong Tools -> Boards. Nếu bạn đang sử dụng Kit NodeMCU ESP8266-12E như minh họa trong các hình ảnh phần trước, hãy chọn tùy chọn NodeMCU 1.0 (Mô-đun ESP-12E). Nếu bạn không biết bo của mình là gì, bạn có thể chọn Mô-đun Generic ESP8266 Module.

      Sau đó, chuyển tới File > Examples > ESP8266WiFi > WiFiScan.

      Điều này sẽ mở ra một chương trình (Sketch) có chức năng quét các mạng Wi-Fi trong phạm vi phủ sóng của bo mạch ESP8266 của bạn.

Wifiscan by ESP8266 on Arduino IDE

      Kết nối bo mạch phát triển ESP8266 của bạn với máy tính bằng cáp USB.

Cảnh báo: bạn phải sử dụng cáp USB có dây dữ liệu. Một số cáp USB từ bộ sạc hoặc sạc dự phòng chỉ cấp nguồn và không truyền dữ liệu—những cáp này không dùng được cho nạp chương trình lên bo mạch ESP8266.

      Bây giờ, hãy làm theo các bước sau để tải mã lên.

  1. Vào Tools -> Boards, cuộn xuống phần ESP8266 và chọn một bo mạch tương ứng với bo mạch ESP8266 mà bạn có. Nếu bạn không biết bo mạch của mình là gì hãy chọn Generic ESP8266 module – lựa chọn này thường hoạt động tốt với hầu hết các bo mạch.
  2. Vào Tools -> Port và chọn một cổng COM khả dụng. Nếu cổng COM chuyển sang màu xám, điều này có nghĩa là bạn không có trình điều khiển USB cần thiết. Kiểm tra phần 5 (Cài đặt USB driver cho bo mạch ESP8266) trước khi tiếp tục.
  3. Nhấn nút tải lên.

Arduino IDE upload button

Nút tải lên Arduino 2.0

      Mã sẽ được tải thành công lên bảng sau vài giây.

Arduino IDE upload Done

b) Nạp chương trình cho bo mạch ESP-01

Nếu bạn đang sử dụng bo mạch ESP-01, hãy đọc phần này để tìm hiểu cách tải mã lên chip ESP8266.

ESP-01 không có bộ nạp chương trình tích hợp trên bo mạch nên việc tải mã lên không đơn giản. Cách dễ nhất để tải mã lên ESP-01 là sử dụng một bộ nạp chương trình cho ESP-01 (ESP-01 Programmer). Có một số bộ chuyển đổi và lập trình cho ESP-01 có sẵn trên thị trường, hình dưới đây cho thấy một ví dụ về một bộ nạp chương trình cho ESP-01.

ESP866 Converter and Programmer

Bạn có thể mua Bộ chuyển đổi và lập trình ESP01 ở đây.

Bộ chuyển đổi loại này khá tiện dụng vì bạn chỉ cần cắm mô-đun ESP-01 lên Bộ chuyển đổi và kết nối bộ chuyển đổi với máy tính để lập trình cho ESP8266.

Một giải pháp thay thế khác là sử dụng bộ lập trình FTDI. Bạn sẽ cần kết nối ESP-01 với bộ lập trình FTDI như hình bên dưới. Sau đó, chỉ cần kết nối bộ lập trình FTDI với máy tính của bạn.

FTDI programmer for ESP8266

Bạn có thể mua Bộ lập trình FTDI ở đây.

Bảng sau đây cho thấy các kết nối bạn cần thực hiện giữa mô-đun ESP-01 và bộ lập trình FTDI.

ESP8266 Bộ lập trình FTDI
RX TX
TX RX
CH_PD 3.3V
GPIO 0 GND
VCC 3.3V
GND GND

Nếu bạn có một bộ lập trình FTDI hoàn toàn mới, có thể bạn sẽ cần cài đặt trình điều khiển FTDI trên PC Windows của mình. Truy cập trang web này để biết các trình điều khiển chính thức. (Nếu cổng COM trong Arduino IDE của bạn chuyển sang màu xám, có thể là do bạn chưa cài đặt trình điều khiển).

Sau đó, bạn chỉ cần kết nối bộ lập trình FTDI với máy tính của mình và tải mã lên ESP8266 bằng cách nhấp vào nút tải lên.

Arduino IDE upload button

1.1.4.     Chạy đề-mô

Để xem mã có hoạt động như mong đợi hay không, hãy mở Serial Monitor (có biểu tượng như hình bên dưới) và thiết lập tốc độ truyền là 115200.

Arduino IDE serial monitor

Nhấn nút RST hoặc EN trên bo mạch ESP8266 để khởi động lại bo mạch và bắt đầu chạy mã vừa được tải lên.

Bạn sẽ nhận được một danh sách các mạng wi-fi gần đó như hình dưới.

ESP8266 Wifiscan Results

Nếu bạn đang sử dụng mô-đun ESP-01, sau khi tải mã lên, hãy ngắt kết nối GPIO0 khỏi GND để tắt chế độ lập trình. Sau đó, kết nối chân RST với GND trong khoảng một giây rồi ngắt kết nối để thiết lập lại bo mạch.

Xem video sau để biết cách chạy nhiều ví dụ hơn: https://youtu.be/9NrI5NQV0dc

5.  Cài đặt USB driver cho bo mạch ESP8266

Sau khi kết nối bo mạch ESP8266 với máy tính của bạn, nếu cổng COM trong Arduino IDE có màu xám, điều đó có nghĩa là bạn chưa cài đặt trình điều khiển USB cần thiết trên máy tính của mình.

Hầu hết các bo mạch ESP8266 đều sử dụng trình điều khiển CP2101 hoặc CH340. Kiểm tra bộ chuyển đổi USB sang UART trên bo mạch của bạn và cài đặt các trình điều khiển tương ứng.

ESP8266 USB-to-serial CP2101 hoặc CH340

Nguyễn Kiêm Hùng

Hung K. Nguyen studied “Electronic Engineering” in both his bachelor’s and master’s degrees at the Vietnam National University, Hanoi, Vietnam. He received the bachelor’s degree in 2003. After receiving his bachelor’s degree, He worked as an internship in the Research Center of Electronics and Telecommunications. In 2006, He received the master’s degree in electronic engineering from VNU University of Engineering and Technology (VNU-UET). Before pursuing his Ph.D’s degree, He worked as a researcher at the Laboratory for Smart Integrated Systems in VNU University of Engineering and Technology for two years. In 2008, He went to Southeast University, Nanjing, China to get his Ph.D degree. He received the Ph.D. degree in Microelectronics and Solid State Electronics from Southeast University in 2013. After got his Ph.D’s degree, He returned to VNU University of Engineering and Technology to continue his research in VLSI design. He works currently as an assistant professor and senior researcher at VNU Key Laboratory for Smart Integrated Systems. His research interests mainly include multimedia processing, reconfigurable computing, and SoC designs.

This Post Has 3 Comments

Trả lời