Skip to main content
IOT ESP8266 Maker Việt Nam

IoT ESP8266 – Lập trình IoT sử dụng ESP8266 – [Bài 3] Điều khiển đèn led

Trong bài viết trước, Maker Việt Nam đã giới thiệu về PlatformIO và cách cài đặt PlatformIO trên Visual Studio Code. Trong bài viết này, Maker Việt Nam sẽ hướng dẫn bạn tạo project và lập trình đèn led cho module NodeUSB. Như đã nói, module NodeUSB do Maker Việt Nam phát triển sẽ được sử dụng xuyên suốt tutorial này. Tuy nhiên, bạn hoàn toàn có thể sử dụng các module tương thích khác như ESP-01 hoặc NodeMCU.

Tạo project mới

1.Sau khi mở Visual Studio Code, nhấn vào nút PlatformIO Home tại thanh công cụ bên dưới.

2. Ấn New Project để tạo project mới

3. Nhập tên project: nodeusb-blink, chọn Board NodeMCU 1.0 (ESP-12E Module) và ấn Finish để tạo project.

Code

Mở file main.cpp trong thư mục src, nhập vào đoạn code sau đây.

#include <Arduino.h>

void setup() {
  // put your setup code here, to run once:
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(LED_BUILTIN, HIGH);
  delay(500);
  digitalWrite(LED_BUILTIN, LOW);
  delay(500);
}

LED_BUILTIN chính là D0/ GPIO16, tích hợp sẵn trong mạch NodeUSB (tham khảo hình dưới đây).

Sơ đồ cổng kết nối và đèn led trong NodeUSB

Cắm NodeUSB vào cổng USB của máy tính, nhấn vào nút PlatformIO: Upload. Visual Studio Code sẽ tự động nạp chương trình vào cổng USB được kết nối.

Nút PlatformIO: Upload, dùng để nạp chương trình

Sau khi quá trình hoàn tất, bạn sẽ thấy led nhấp nháy với chu kì 1 giây.

Thư mục trong PlatformIO

Thư mục và phím chức năng trong PlatformIO

Bạn chỉ cần quan tâm đến những thư mục sau đây:

  • .pioenvs – Chứa các tập tin sau khi biên dịch, bao gồm file bin để nạp chương trình
  • lib – Chứa các thư viện do người dùng định nghĩa. Để tìm hiểu các tạo thư viện, bạn có thể đọc thêm trong tập tin README.md nằm trong thư mục này.
  • src – Chứa “main.cpp” và file source code khác
  • platformio.ini – ngoài file main.cpp, thì đây là file mà bạn có thể phải chỉnh sửa nhiều nhất khi làm việc với project của mình. platformio.ini được dùng để thiết lập một số cài đặt cơ bản như: tốc độ nạp chương trình, chọn cổng dể nạp, chọn board được sử dụng… Sau đây là nội dung file platformio.ini sau khi project được tạo.
; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[env:nodemcuv2]
platform = espressif8266
board = nodemcuv2
framework = arduino

Bạn có thể thấy framwork được sử dụng là arduino. Đồng nghĩa với việc bạn sẽ lập trình cho NodeUSB tương tự như cách lập trình cho các mạch Arduino khác. Điều khác biệt là bạn phải thêm thư viện Arduino.h vào file main.cpp.

Phím chức năng trong PlatformIO

Các phím chức năng trong PlatformIO
  1. PlatformIO Home – Tạo project mới, cài đặt thư viện, cập nhật thư viện…
  2. PlatformIO: Build – Biên dịch chương trình
  3. PlatformIO: Upload – Biên dịch lại chương trình (nếu cần) và nạp chương trình
  4. PIO Remote – Nạp chương trình không dây
  5. PlatformIO: Clean – Clean project
  6. PIO Unit Testing
  7. Run a task…
  8. Serial Port Monitor – Serial monitor
  9. PIO Terminal

Gỡ rối

1.Không tìm thấy cổng USB để nạp mạch

Error: Please specify upload_port for environment or use global --upload-port option.

Trong trường hợp màn hình hiển thị lỗi trên đây, kiểm tra lại kết nối. Nếu như bạn kết nối đồng thời nhiều module NodeUSB, có thể tùy chỉnh cổng mặc định để nạp mạch. Bằng cách thêm tùy chọn upload_port vào file platformio.ini, ví dụ:

; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[env:nodemcuv2]
platform = espressif8266
board = nodemcuv2
framework = arduino
upload_port = COM3

Ở đây, COM3 là cổng USB của mạch NodeUSB

Để lại comment ở phần bình luận nếu bạn có bất kì thắc mắc về nội dung hay cần hỗ trợ gỡ lỗi. Maker Việt Nam luôn sẵn sàng hỗ trợ. Mọi ý kiến đóng góp xin gửi về địa chỉ email editors@maker.com.vn

Leave a Reply

Your email address will not be published. Required fields are marked *