ESP32 Cấu Trúc Code

Để học cách lập trình cho ESP32, bạn cần tìm hiểu cấu trúc code của ESP32. Hướng dẫn này cung cấp và giải thích cấu trúc code ESP32.

Linh Kiện Cần Thiết

1×38-pin ESP32 ESP-WROOM-32 Dev Module - Narrow Amazon
1×Alternatively, 38-pin ESP32 ESP-WROOM-32 Dev Module - Wide Amazon
1×Alternatively, 30-pin ESP32 ESP-WROOM-32 Dev Module - Wide Amazon
1×Alternatively, ESP32 Uno-form board Amazon
1×Alternatively, ESP32 S3 Uno-form board Amazon
1×Cáp USB Type-C Amazon
1×(Tùy chọn) Jack Nguồn DC Amazon
1×breadboard Amazon
1×Dây Nối Jumper Amazon
1×(Khuyến nghị) Screw Terminal Expansion Board for ESP32 Amazon
1×(Khuyến nghị) Breakout Expansion Board for ESP32 Amazon
1×(Khuyến nghị) Power Splitter for ESP32 Amazon

Or you can buy the following kits:

1×DIYables ESP32 Starter Kit (ESP32 included) Amazon
1×DIYables Sensor Kit (18 sensors/displays) Amazon
Tiết lộ: Một số liên kết trong bài viết này là liên kết tiếp thị Amazon và có thể nhận hoa hồng theo chính sách của chương trình.

Cấu Trúc Code Cơ Bản

Code ESP32 (còn được gọi là ESP32 sketch) có cấu trúc giống với Arduino Code. Nó bao gồm hai phần chính: setup code và loop code.

Setup Code

  • Setup code là code trong hàm setup().
  • Setup code được thực thi ngay sau khi bật nguồn hoặc reset
  • Setup code chỉ được thực thi một lần duy nhất.
  • Setup code được sử dụng để khởi tạo biến, chế độ chân, bắt đầu sử dụng thư viện,

Loop Code

  • Loop code là code trong hàm loop().
  • Loop code được thực thi ngay sau setup code.
  • Loop code được thực thi lặp đi lặp lại (vô hạn).
  • Loop code được sử dụng để thực hiện tác vụ chính của ứng dụng

Ví Dụ

void setup() { // put your setup code here, to executed once: Serial.begin(9600); Serial.println("This is ESP32 setup code"); } void loop() { // put your main code here, to run repeatedly: Serial.println("This is ESP32 loop code"); delay(1000); }

Các Bước Thực Hiện

  • Nếu đây là lần đầu tiên bạn sử dụng ESP32, hãy xem ESP32 - Cài Đặt Phần Mềm.
  • Sao chép đoạn code trên và dán vào Arduino IDE.
  • Biên dịch và upload code lên board ESP32 bằng cách nhấp vào nút Upload trên Arduino IDE
  • Mở Serial Monitor trên Arduino IDE
how to open serial monitor on Arduino ide
  • Xem kết quả trên Serial Monitor
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
This is ESP32 setup code This is ESP32 loop code This is ESP32 loop code This is ESP32 loop code This is ESP32 loop code This is ESP32 loop code This is ESP32 loop code This is ESP32 loop code
Ln 11, Col 1
ESP32 Dev Module on COM15
2

Như bạn có thể thấy trên Serial Monitor, "This is ESP32 the setup code" được in một lần, nhưng "This is ESP32 loop code" được in nhiều lần. Điều này có nghĩa là ESP32 setup code được thực thi một lần, ESP32 loop code được thực thi lặp đi lặp lại. Setup code được thực thi trước.

※ Lưu ý:

Hàm setup()loop() BẮT BUỘC phải được sử dụng trong code ESP32. Nếu không, sẽ xuất hiện lỗi.

Các Phần Khác

Ngoài setup và loop code, một ESP32 sketch có thể bao gồm một số phần sau:

  • Block comment: thường được sử dụng để ghi một số thông tin về tác giả, hướng dẫn kết nối, giấy phép ... ESP32 sẽ bỏ qua phần này.
  • Libraries inclusion: được sử dụng để bao gồm các thư viện vào sketch.
  • Constant definition: được sử dụng để định nghĩa hằng số
  • Khai báo biến toàn cục

Ví dụ:

/* * Mã ESP32 này được phát triển bởi newbiely.vn * Mã ESP32 này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/esp32/esp32-code-structure */ #include <ESP32Servo.h> #include <LiquidCrystal.h> #define MAX_COUNT 180 Servo servo; LiquidCrystal lcd(3, 4, 5, 6, 7, 8); int loop_count = 0; void setup() { Serial.begin(9600); lcd.begin(16, 2); servo.attach(9); Serial.println("This is ESP32 setup code"); } void loop() { loop_count++; Serial.print("This is ESP32 loop code, count: "); Serial.println(loop_count); lcd.print("Hello World!"); servo.write(loop_count); if(loop_count >= MAX_COUNT) loop_count = 0; delay(1000); }

Các Bước Thực Hiện

  • Nếu đây là lần đầu tiên bạn sử dụng ESP32, hãy xem ESP32 - Cài Đặt Phần Mềm.
  • Sao chép đoạn code trên và dán vào Arduino IDE.
  • Biên dịch và upload code lên board ESP32 bằng cách nhấp vào nút Upload trên Arduino IDE
  • Mở Serial Monitor trên Arduino IDE
how to open serial monitor on Arduino ide
  • Xem kết quả trên Serial Monitor
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
This is ESP32 setup code This is ESP32 loop code, count: 1 This is ESP32 loop code, count: 2 This is ESP32 loop code, count: 3 This is ESP32 loop code, count: 4 This is ESP32 loop code, count: 5 This is ESP32 loop code, count: 6 This is ESP32 loop code, count: 7
Ln 11, Col 1
ESP32 Dev Module on COM15
2

Chúng ta KHÔNG cần phải hiểu code từng dòng một ngay bây giờ. Chúng ta chỉ cần biết về cấu trúc code. Code từng dòng sẽ được giải thích trong các hướng dẫn tiếp theo.

Bình Luận