Tổng hợp dự án lập trình ESP32 trên Arduino IDE cơ bản & nâng cao
Lập trình ESP32 là một chủ đề quen thuộc với cộng đồng dân Maker hiện nay. Trong bài viết này, mình sẽ tổng hợp chi tiết các bài viết hướng dẫn về ESP32, từ các bài cơ bản nhất như làm quen với con chip này, cho đến các dự án nâng cao với ESP32 như tạo bộ đếm giờ Timer, xây dựng Web Server để điều khiển ESP32 qua Internet,… Nào, cùng bắt đầu nhé!
ESP32 là gì?
ESP32 là một mạch điều khiển mạnh mẽ được phát triển bởi Espressif Systems, sở hữu khả năng kết nối không dây WiFi lẫn Bluetooth. Ngoài ra, chúng cũng tích hợp nhiều linh kiện điện tử đa dạng cho dự án như:
- Ăng ten tích hợp
- Bộ khuếch đại công suất
- Bộ khuếch đại tiếng ồn thấp
- Module quản lý năng lượng…
Bạn có thể dùng ESP32 để kết nối với các module cảm biến khác qua cổng SPI / SDIO hoặc I2C / UART đều được. Mạch này được dùng khá nhiều trong các dự án điện tử, dự án IoT.
Mình đã có bài viết chi tiết giải thích về mạch ESP32 là gì rồi, bạn có thể xem qua tại bài viết sau nhé: Làm quen với ESP32.
Giới thiệu Arduino IDE
Chúng ta sẽ sử dụng nền tảng Arduino IDE để lập trình ESP32. Cụ thể, Arduino IDE là một nền tảng mã nguồn mở dựa trên phần cứng và phần mềm, cho phép chúng ta xây dựng các dự án.
Tính đến nay, đã có vô số dự án khác nhau, từ các thiết bị gia dụng đơn giản đến những cỗ máy tính toán phức tạp sử dụng Arduino làm bộ não xử lý.
Nếu bạn tìm kiếm trên Facebook hoặc bất kỳ nền tảng nào khác, bạn cũng đều có thể thấy cộng đồng người dùng Arduino cực kỳ rộng lớn và gồm nhiều đối tượng khác nhau: sinh viên, lập trình viên, chuyên gia lập trình,… Nhờ vào đó, chúng ta có thể học hỏi và dễ dàng tìm kiếm tài liệu sử dụng nền tảng này.
Cách bắt đầu lập trình ESP32 cơ bản trên Arduino IDE
Bằng cách kết hợp ưu điểm của cả 2 nền tảng là ESP32 và Arduino IDE, chúng ta có thể xây dựng các dự án điện tử hoặc dự án IoT dễ dàng, thông qua khả năng kết nối không dây của ESP32 và tính phát triển dễ dàng của Arduino. Bạn có thể làm các dự án về giám sát, điều khiển thiết bị từ xa, hệ thống tự động hóa trong nhà thông minh, hệ thống mạng gồm nhiều cảm biến,…
Không đi lòng vòng nữa, bây giờ mình sẽ hướng dẫn bạn cách lập trình ESP32 cơ bản với Arduino IDE từ con số 0 nhé!
Tải Arduino IDE và setup
Đầu tiên, bạn vào link Website chính của Arduino và tải phần mềm phù hợp với hệ điều hành bạn đang dùng (Link: https://www.arduino.cc/en/Main/Software)
Mở Arduino, click vào File >> Preferences >> Settings, sao chép đường link sau và dán vào Additional Board Manager URLs như hình:
- Đường link: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json
Bạn dùng loại mạch nào thì bạn sao chép URL đó và dán vào bảng. Ví dụ, nếu dùng mạch phát triển M5Stack, thì bạn chỉ cần copy URL của board M5Stack và dán link vào Additional Board Manager URLs: https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
Cài ESP32 vào Arduino IDE
Bạn chọn vào Tools >> Board >> Board Manager:
Bạn sử dụng mạch ESP32 nào thì bạn chọn mạch đó và nhấn vào Install nhé!
Bắt đầu lập trình ESP32 cơ bản – Hello World
Dự án làm quen đầu tiên với ESP32 hay các mạch lập trình khác, đa số đều là dự án “Hello World”.
IoTZone đã có bài viết chi tiết về dự án này, bạn có thể xem tại đây: ESP32 Hello World – Hướng dẫn chi tiết
Lộ trình học lập trình ESP32
ESP32 cơ bản
Một số thao tác cơ bản trên ESP32:
- Bộ nhớ Flash ESP32 – Cách lưu dữ liệu vĩnh viễn
- Tổng quan về ESP32 Pinout GPIOs & Cách sử dụng
- Dùng nút nhấn ESP32 điều khiển đèn LED – Digital Input & Output
- Tạo PWM Arduino IDE với ESP32 (Analog) – Điều chỉnh độ sáng đèn LED
- ESP32 ADC – Đọc giá trị Analog bằng Arduino IDE
- ESP32 WiFi – Giao tiếp giữa 2 mạch ESP32 với nhau
Một số dự án lập trình ESP32 cơ bản ban đầu mà bạn cần biết:
- Cách đặt ESP32 Access Point – Điểm truy cập AP cho Web Server
- WebSocket ESP32 điều khiển đèn LED từ xa
- NTP ESP32 – Lấy ngày tháng từ Internet cho ESP32 bằng Arduino IDE
ESP32 với Web Server – Điều khiển, giám sát qua Internet
- Cách tạo ESP32 Web Server với Arduino IDE
- ESP32 / ESP8266 Web Server: Điều khiển Output qua công tắc tạm thời
- Hướng dẫn ESP32 DS18B20 trên Web Server
- Điều khiển ESP32 Servo qua Web Server
- ESP32 điều khiển Relay qua Web Server – Điều khiển thiết bị AC
- Điều khiển đổi màu LED RGB ESP32 trên Web Server
- ESP32 Web Server: Hiển thị thông tin cảm biến bằng biểu đồ Gauge
- Xây dựng Web Server HTTP Authentication với ESP32
Làm việc với các cảm biến
- Nhiệt độ độ ẩm DHT20
- Cảm biến PIR
- Màn hình OLED
- Relay
- MPU6050
- LoadCell
- Động cơ DC
- Động cơ Servo
- Cảm biến siêu âm HC-SR04
Các dự án lập trình ESP32 IoT
- Gửi tin nhắn qua WhatsApp
- Gửi tin nhắn qua Email
- Đồng bộ thông tin lên Google Sheets
- Trạm thông báo thời tiết
- Máy chơi game điện tử thông qua lập trình ESP32
- Thiết bị định vị vị trí GPS
- Đèn nhiều màu có thể điều khiển qua Internet trên ESP32
Lời kết
Nhìn chung, ESP32 là một loại chip đang rất được ưa chuộng hiện nay, đặc biệt là trong cộng đồng Maker. Chúng ta có thể lập trình và làm khá nhiều dự án với nó. Chúc các bạn có trải nghiệm tốt với mạch xử lý này và lập trình ESP32 làm được nhiều dự án thú vị nhé!