Hướng dẫn cài đặt Visual Studio Code và PlatformIO để lập trình Arduino, ESP32, ESP8266
Qua bài viết này, các bạn sẽ biết cách lập trình các bo mạch Arduino, ESP32 và ESP8266 NodeMCU sử dụng VS Code (Microsoft Visual Studio Code) với tiện ích mở rộng PlatformIO IDE. Chúng tôi sẽ hướng dẫn cách cài đặt phần mềm trên hệ điều hành Windows.
Mặc dù Arduino IDE rất tốt cho các ứng dụng nhỏ. Tuy nhiên, đối với các dự án nâng cao với hơn 200 dòng mã, nhiều tệp và các tính năng nâng cao khác như tự động hoàn thành và kiểm tra lỗi, VS Code với tiện ích mở rộng PlatformIO IDE là lựa chọn tốt nhất.
Cài đặt Visual Studio Code cho Windows
Truy cập https://code.visualstudio.com/ và tải xuống phiên bản ổn định dành cho hệ điều hành của bạn (Windows).

Nhấp vào trình hướng dẫn cài đặt để bắt đầu cài đặt và làm theo tất cả các bước để hoàn tất quá trình cài đặt. Chấp nhận thỏa thuận và nhấn nút Next.

Chọn những tùy chọn sau:

Nhấn Install:


Visual Studio Code sẽ khởi động với màn hình chào mừng bạn

Cài đặt Python cho Windows
Để lập trình các bo mạch Arduino, ESP32 và ESP8266 với PlatformIO IDE, bạn cần cài đặt Python 3.5 hoặc phiên bản cao hơn trên máy tính của bạn. Chúng tôi đang sử dụng Python 3.8.5.
Truy cập python.org/download và tải xuống Python 3.8.5 hoặc phiên bản mới hơn.
Mở tệp tải xuống để bắt đầu trình hướng dẫn cài đặt Python.
Cửa sổ sau đây sẽ xuất hiện.

Sau khi cài đặt thành công sẽ hiển thị thông báo như sau:

Cài đặt extension PlatformIO trên VS code
Bạn có thể lập trình các bo mạch Arduino, ESP32 và ESP8266 sử dụng VS Code với tiện ích mở rộng PlatformIO IDE. Thực hiện các bước sau để cài đặt tiện ích mở rộng PlatformIO IDE:
- Mở VS Code.
- Nhấp vào biểu tượng Extensions hoặc nhấn Ctrl+Shift+X để mở tab Extensions.
- Tìm kiếm “PlatformIO IDE”.
- Chọn tùy chọn đầu tiên.
- Cuối cùng, nhấp vào nút Install (Lưu ý: quá trình cài đặt có thể mất vài phút).

Sau khi cài đặt, hãy chắc chắn rằng bạn đã Enable nó

Sau khi cài đặt xong, biểu tượng PlatformIO sẽ xuất hiện trên thanh bên trái, cùng với một biểu tượng Home để chuyển bạn đến trang chính của PlatformIO.

Vậy là xong, tiện ích mở rộng PlatformIO IDE đã được thêm thành công vào VS Code.
Nếu bạn không thấy biểu tượng PIO và các công cụ nhanh ở dưới cùng, bạn có thể cần khởi động lại VS Code để thay đổi có hiệu lực.
Dù sao, chúng tôi khuyến khích các bạn nên khởi động lại VS Code trước khi tiếp tục.
PlatformIO IDE trên VS Code
Sau khi cài đặt hoàn tất, bạn sẽ thấy slide bar nhỏ của platform IO ở góc trái bên dưới

Dưới đây là các chức năng của các biểu tượng từ trái sang phải:
- PlatformIO Home: Mở trang chính của PlatformIO.
- Build/Compile: Xây dựng hoặc biên dịch mã nguồn.
- Upload: Tải mã nguồn lên bo mạch.
- Clean: Xóa các tệp tạm thời và bản biên dịch cũ.
- Serial Monitor: Mở cửa sổ giám sát serial để xem dữ liệu từ bo mạch.
- New Terminal: Mở cửa sổ terminal mới.
Nếu bạn di chuột qua các biểu tượng, nó sẽ hiển thị chức năng của từng biểu tượng.
Ngoài ra, bạn có thể click vào biểu tượng platfiomIO extension để biết thêm chi tiết

Nếu các tác vụ không hiển thị trên IDE của bạn khi bạn nhấp vào biểu tượng, bạn có thể cần nhấp vào biểu tượng ba chấm ở trên cùng và bật các tác vụ PlatformIO như hình dưới đây.

Lập trình Arduino, ESP32, ESP8266 với PlatformIO
Để có cái nhìn tổng quan về cách PlatformIO hoạt động trên VS Code, chúng tôi sẽ hướng dẫn bạn cách tạo, lưu và tải lên một sketch “Blinking LED” (nhấp nháy LED) vào bo mạch ESP32 hoặc ESP8266 của bạn.
Tạo Project mới
Trong VS Code, nhấp vào biểu tượng PlatformIO Home. Nhấp vào + New Project để bắt đầu một dự án mới.

Đặt tên cho dự án của bạn (ví dụ: Blink_LED) và chọn bo mạch bạn đang sử dụng. Trong trường hợp của chúng tôi, chúng tôi đang sử dụng DOIT ESP32 DEVKIT V1. Khung làm việc (Framework) nên được đặt thành “Arduino” để sử dụng lõi Arduino.
Bạn có thể chọn vị trí lưu dự án theo mặc định hoặc chọn vị trí tùy chỉnh.
Vị trí lưu mặc định là tại đường dẫn Documents > PlatformIO > Projects. Đối với bài kiểm tra này, bạn có thể sử dụng vị trí mặc định. Cuối cùng, nhấp vào “Finish”.

Trong ví dụ này, chúng tôi sẽ sử dụng bo mạch DOIT ESP32 DEVKIT. Nếu bạn đang sử dụng bo mạch ESP8266 NodeMCU, quy trình rất tương tự, bạn chỉ cần chọn bo mạch ESP8266 của bạn:

Dự án Blink_LED sẽ có sẵn từ tab Explorer.

VS Code và PlatformIO có cấu trúc thư mục khác với dự án .ino tiêu chuẩn. Nếu bạn nhấp vào tab Explorer, bạn sẽ thấy tất cả các tệp được tạo ra trong thư mục dự án của bạn. Có thể có nhiều tệp để làm việc, nhưng đừng lo lắng, thường thì bạn chỉ cần làm việc với một hoặc hai tệp trong số đó.
platformio.ini file
Tệp platformio.ini là tệp cấu hình của PlatformIO cho dự án của bạn. Nó hiển thị nền tảng, bo mạch và khung làm việc cho dự án của bạn. Bạn cũng có thể thêm các cấu hình khác như thư viện cần bao gồm, tùy chọn tải lên, thay đổi baud rate của Serial Monitor và các cấu hình khác.

- platform: tương ứng với SoC (System-on-Chip) sử dụng trên bo mạch.
- board: bo mạch phát triển mà bạn đang sử dụng.
- framework: môi trường phần mềm sẽ chạy mã dự án.
Với ESP32 và ESP8266, nếu bạn muốn sử dụng baud rate là 115200 trong Serial Monitor, bạn chỉ cần thêm dòng sau vào tệp platformio.ini:
monitor_speed = 115200Sau đó, đảm bảo lưu các thay đổi vào tệp bằng cách nhấn Ctrl+S.
Trong tệp này, bạn cũng có thể bao gồm các thư viện bạn sẽ sử dụng trong dự án của mình bằng cách sử dụng chỉ thị lib_deps, như chúng ta sẽ xem xét sau.
Thư mục Src
Thư mục src là thư mục làm việc của bạn. Dưới thư mục src, có một tệp main.cpp. Đây là nơi bạn viết mã của mình. Nhấp vào tệp đó, cấu trúc của một chương trình Arduino sẽ mở ra với các hàm setup() và loop().

Trong platformio, file main.cpp nên bắt đầu với #include <Arduino.h>
Upload code sử dụng Platformio cho Arduino, ESP32, ESP8266
Copy đoạn code dưới đây vào file main.cpp
/*********
Rui Santos
Complete project details at https://RandomNerdTutorials.com/vs-code-platformio-ide-esp32-esp8266-arduino/
*********/
#include <Arduino.h>
#define LED 2
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(LED, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(LED, HIGH);
Serial.println("LED is on");
delay(1000);
digitalWrite(LED, LOW);
Serial.println("LED is off");
delay(1000);
}Mã này làm nhấp nháy LED trên bo mạch mỗi giây. Nó hoạt động với các bo mạch ESP32 và ESP8266 (cả hai đều có LED trên bo mạch kết nối với GPIO 2).
Chúng tôi khuyến khích các bạn sao chép mã này thủ công để bạn có thể thấy tính năng tự động hoàn thành và các tính năng thú vị khác của IDE trong hành động. Thêm vào đó, nếu bạn có lỗi cú pháp ở đâu đó trong chương trình của mình, nó sẽ gạch dưới bằng màu đỏ ngay cả trước khi biên dịch.
Sau đó, nhấn Ctrl+S hoặc đi đến File > Save để lưu tệp.
Bây giờ, bạn có thể nhấp vào biểu tượng Upload để biên dịch và tải mã lên bo mạch. Ngoài ra, bạn có thể vào menu PIO Project Tasks và chọn Upload.

Sau khi upload thành công, bạn sẽ nhận được thông báo như bên dưới:

LED trên ESP32 sẽ nhấp nháy theo chu kỳ 1s

Sau khi mở Serial port, bạn sẽ nhận được:

Tự nhận diện cổng COM, Serial
PlatformIO sẽ tự động phát hiện cổng mà bo mạch của bạn đang kết nối. Để kiểm tra các thiết bị đã kết nối, bạn có thể vào PIO Home và nhấp vào biểu tượng Devices.

Thay đổi tốc độ truyền nhận – Baudrate trên PlatformIO
Tốc độ baud mặc định mà PlatformIO sử dụng là 9600. Tuy nhiên, bạn có thể thiết lập một giá trị khác như đã đề cập trước đó. Trong File Explorer, dưới thư mục dự án của bạn, mở tệp platformio.ini và thêm dòng sau:
monitor_speed = baud_rateVí dụ:
monitor_speed = 115200
Cài đặt thư viện cho Arduino, ESP32, ESP8266 trên PlatformIO
Thực hiện theo quy trình sau nếu bạn cần cài đặt thư viện trong PlatformIO IDE:
- Nhấp vào biểu tượng Home để vào PlatformIO Home.
- Nhấp vào biểu tượng Libraries ở thanh bên trái.
- Tìm kiếm thư viện bạn muốn cài đặt. Ví dụ: Adafruit_BME280.

Nhấp vào thư viện bạn muốn thêm vào dự án của mình. Sau đó, nhấp vào Add to Project.

Chọn project mà bạn muốn thêm thư viện vào

Điều này sẽ thêm định danh thư viện bằng chỉ thị lib_deps vào tệp platformio.ini của bạn. Nếu bạn mở tệp platformio.ini của dự án, nó sẽ trông giống như hình ảnh dưới đây.

Ngoài ra, trong cửa sổ thư viện, nếu bạn chọn tab Installation và cuộn xuống một chút, bạn sẽ thấy định danh cho thư viện. Bạn có thể chọn bất kỳ định danh nào trong số đó tùy thuộc vào các tùy chọn bạn muốn sử dụng. Các định danh thư viện được làm nổi bật bằng màu đỏ.

lib_deps = adafruit/Adafruit BME280 Library@^2.1.0Nếu bạn cần nhiều thư viện, bạn có thể phân tách tên của chúng bằng dấu phẩy hoặc đặt chúng trên các dòng khác nhau. Ví dụ:
lib_deps =
arduino-libraries/Arduino_JSON @ 0.1.0
adafruit/Adafruit BME280 Library @ ^2.1.0
adafruit/Adafruit Unified Sensor @ ^1.1.4PlatformIO có một Trình Quản Lý Thư Viện mạnh mẽ tích hợp sẵn, cho phép bạn chỉ định các phụ thuộc tùy chỉnh cho từng dự án trong tệp cấu hình dự án platformio.ini bằng cách sử dụng lib_deps. Điều này sẽ yêu cầu PlatformIO tự động tải xuống thư viện và tất cả các phụ thuộc của nó khi bạn lưu tệp cấu hình hoặc khi bạn biên dịch dự án của mình.
Mở Project sẵn có
Để mở một thư mục dự án hiện có trên PlatformIO, hãy mở VS Code, đi đến PlatformIO Home và nhấp vào Open Project. Duyệt qua các tệp và chọn thư mục dự án của bạn.

Danh sách phím tắt
Bạn có thể tham khảo danh sách phím tắt theo link dưới đây
VS Code Keyboard Shortcuts Reference.
Lời kết
Trong hướng dẫn này, bạn đã học cách cài đặt và chuẩn bị Visual Studio Code để làm việc với các bo mạch ESP32 và ESP8266. VS Code với phần mở rộng PlatformIO IDE là một sự thay thế tuyệt vời cho IDE Arduino cổ điển, đặc biệt khi bạn đang làm việc với các sketch nâng cao cho các ứng dụng lớn hơn.
Dưới đây là một số lợi ích của việc sử dụng VS Code với PlatformIO IDE so với Arduino IDE:
- Tự động phát hiện cổng COM mà bo mạch của bạn kết nối.
- VS Code IntelliSense: Tự động hoàn thành. IntelliSense dự đoán những gì bạn muốn viết, hiển thị các khả năng khác nhau và cung cấp cái nhìn về các tham số mà một hàm có thể yêu cầu.
- Nổi bật lỗi: VS Code + PIO gạch chân các lỗi trong mã của bạn trước khi biên dịch.
- Nhiều tab mở: Bạn có thể mở nhiều tab mã cùng một lúc.
- Bạn có thể ẩn các phần mã nhất định.
- Điều hướng mã nâng cao.
- Và nhiều tính năng khác…
Nếu bạn đang tìm kiếm một IDE nâng cao hơn để viết ứng dụng cho các bo mạch ESP32 và ESP8266, VS Code với phần mở rộng PlatformIO IDE là một lựa chọn tuyệt vời.
Link tham khảo: https://randomnerdtutorials.com/








