Viet Dev

Cover image for Arduino IDE cho ESP8266
Tuan for Unicloud Group

Posted on

Arduino IDE cho ESP8266

Arduino IDE cho ESP8266

Arduino là gì?

Board mạch Arduino<br>
Uno

Arduino là một IDE tích hợp sẵn editor, compiler, programmer và
đi kèm với nó là các firmware có bootloader, các bộ thư viện được xây
dựng sẵn và dễ dàng tích hợp. Ngôn ngữ sử dụng là C/C++. Tất cả đều
opensource và được đóng góp, phát triển hàng ngày bởi cộng đồng. Triết
lý thiết kế và sử dụng của Arduino giúp cho người mới, không chuyên rất
dễ tiếp cận, các công ty, hardware dễ dàng tích hợp. Tuy nhiên, với
trình biên dịch và các thư viện chất lượng được xây dựng bên dưới thì
mức độ phổ biến ngày càng tăng và hiệu năng thì không hề thua kém các
trình biên dịch chuyên nghiệp cho chip khác.

Đại diện cho Arduino ban đầu là chip AVR, nhưng sau này có rất nhiều
nhà sản xuất sử dụng các chip khác nhau như ARM, PIC, STM32 gần đây
nhất là ESP8266, ESP32, và RISCV với năng lực phần
cứng và phần mềm đi kèm mạnh mẽ hơn nhiều.

Một số đặc điểm của Arduino

  • Arduino che dấu đi sự phức tạp của điện tử bằng các khái niệm đơn
    giản, che đi sự phức tạp của phần mềm bằng các thủ tục ngắn gọn.
    Việc setup output cho 1 MCU bằng cách setup thanh ghi rõ ràng phức
    tạp đến độ người chuyên cũng phải lật datasheet ra xem, nhưng với
    Arduino thì chỉ cần gọi 1 hàm.

  • Bởi vì tính phổ biến và dễ dùng, với các thư viện được tích hợp sẵn.
    Bạn chỉ cần quan tâm đến tính năng sản phẩm mà bỏ qua các tiểu tiết
    (protocol, datasheet …​) Nên giúp các newbie không chuyên dễ dàng
    tiếp cận và làm ra các sản phẩm tuyệt vời mà không cần phải biết
    nhiều về điện tử.

  • Chính vì không quan tâm nhiều đến cách thức hoạt động của các Module
    đi kèm, nên đa phần người dùng sẽ khó xử lý được khi có các vấn đề
    phát sinh ngoài tầm của thư viện.

  • Các module prototype làm sẵn cho Arduino có độ bền không cao, mục
    tiêu đơn giản hóa quá trình làm sản phẩm.

Các lợi ích khi sử dụng Arduino

  • Thiết kế IDE tốt, có thể dễ dàng tích hợp nhiều loại compiler, nhiều
    loại hardware mà không hề giảm hiệu năng. Ví dụ: Arduino gốc cho
    AVR, nhưng có nhiều phiên bản cho STM32, PIC32, ESP8266, ESP32…​ tận
    dụng tối đa các thư viện sẵn có.

  • Các thư viện được viết dựa trên lớp API trên cùng, nên đa số các thư
    viện cho Arduino có thể dùng được cho tất cả các chip. Điển hình là
    Arduino cho ESP8266 có thể tận dụng trên 90% các thư viện cho
    Arduino khác.

  • Trình biên dịch cho Arduino là C/C++, bạn có biết là khi biên dịch
    ESP8266 non-os SDK và ESP8266 Arduino cùng dùng chung trình biên
    dịch? Vậy thì hiệu năng không hề thua kém.

  • Cách tổ chức các thư viện C/C++ theo dạng OOP giúp phân lớp, kế thừa
    và quản lý cực kỳ tốt cho các ứng dụng lớn. Các MCU ngày càng mạnh
    mẽ và ứng dụng cho nó sẽ ngày càng lớn. Các mô hình quản lý code đơn
    giản trước đây (thuần C) sẽ khó.

  • Các project cho Arduino đều opensource, bạn dễ dàng lấy nó và đưa
    vào sản phẩm production với chất lượng tốt và học hỏi được nhiều từ
    cách thức thiết kế chương trình của các bậc thầy.

  • Arduino chú trọng tính đa nền tảng, module hóa cao, phù hợp với các
    ứng dụng từ phức tạp tới cực kỳ phức tạp. Các ứng dụng kiểu này rất
    phổ biến trong thực tế. Nếu bạn không dùng C++, hoặc arduino mà gặp
    vấn đề về overcontrol thì nên thử qua Arduino.

  • Bạn sẽ tiết kiệm được rất rất nhiều thời gian cho việc tập trung vào
    tính năng sản phẩm đấy. Thời buổi này, thời gian là tiền và có quá
    nhiều thứ để học, làm thì nên ưu tiên đúng chỗ.

Cộng đồng Arduino trên thế giới

Arduino cho ESP8266 & board mạch NodeMCU

NodeMCU là một nền tảng mã nguồn mở giúp hỗ trợ môi trường phát triển
Arduino cho ESP8266. Giúp bạn có thể viết 1 Sketch sử dụng các thư viện
và hàm tương tự của Arduino, có thể chạy trực tiếp trên ESP8266 mà không
cần bất kỳ vi điều khiển nào khác.

ESP8266 Arduino core đi kèm với thư viện kết nối WiFi hỗ trợ TCP, UDP và
các ứng dụng HTTP, mDNS, SSDP, DNS Servers. Ngoài ra còn có thể thực
hiện cập nhật OTA, sử dụng Filesystem dùng bộ nhớ Flash hay thẻ SD, điều
khiển servos, ngoại vi SPI, I2C.

01.node<br>
mcu

Cài đặt và chuẩn bị

Arduino IDE

Bước 1: Cài đặt Arduino IDE.

Download và cài đặt arduino từ trang chủ của arduino. Link donwload:
www.arduino.cc/en/Main/Software.

Tùy hệ điều hành mà chọn gói cài đặt thích hợp.

Bước 2: Cài đặt bộ công cụ, trình biên dịch, SDK hỗ trợ chip ESP8266
trong Arudino IDE.

Với bộ công cụ này, chúng ta có thể dễ dàng lập trình, biên dịch và sử
dụng các thư viện dành cho ESP8266 trực tiếp trên Arduino IDE. Mở
Arduino IDE, trên thanh Menu chọn FilePreferecens, trong tab
settings chọn các tùy chọn như hình dưới:

Thêm file thông tin board<br>
ESP8266

Sketchbook location là đường dẫn mà bạn muốn lưu Sketch (file chương
trình), trên các hệ điều hành Unix liked đường dẫn mặc định là:
/home/name_your_computer/Arduino. Đây cũng sẽ là vị trí lưu những thư
viện mà chúng ta sẽ thêm vào sau này.

Mục Additional Board Manager URLs field nhập đường dẫn
arduino.esp8266.com/stable/package_esp8266com_index.json.

Bước 3: Cài đặt board ESP8266.

Mở Boards Manager ở mục Tools trên thanh menu-bar → tìm board cần sử
dụng với keyword Generic 8266 → chọn board cần cài đặt như hình và
nhấn vào install.

Cài đặt board<br>
ESP8266

Cài đặt thư viện Arduino

Một số thư viện do các nhà phát triển khác công bố và được tự do sử dụng
có thể cài đặt trực tiếp bằng công cụ Library Manager của Arduino.

Khởi động arduino IDE và chọn mục Sketchinclude library
Manage libraries:

Khởi động Library<br>
Manager

Trong mục libbrary manager nhập nội dung thư viện cần tìm tại hộp
thoại text box, chọn phiên bản, rồi nhấn install, Những thư viện đã
được cài đặt sẽ có text hiển thị INSTALLED ở đầu mỗi thư viện. Ví dụ
tìm thư viện OLED liên quan đến ESP8266:

Cài đặt thư<br>
viện

USB CDC driver.

Board NodeMCU được kết nối với máy tính qua cổng Micro USB và sử dụng
chip CP2102 để chuyển đổi USB sang UART. Vì vậy cần cài USB driver
để máy tính và board có thể giao tiếp với nhau.

Chọn Board NodeMCU trong Arduino IDE

Sau khi kết nối và cài đặt driver CP2102 xong, sẽ xuất hiện cổng COM ảo
trên máy tính (tùy từng loại hệ điều hành mà có những tên cổng như:
COM1, COM2 …​ đối với Windows, /dev/tty.wchusbserial1420 trên Mac
OS, /dev/ttyUSB0 trên Linux). Mở Arduino IDE và lựa chọn (tham khảo
cấu hình kết nối như hình dưới):

Cấu hình Board Node<br>
MCU

  • Board: NodeMCU 1.0.

  • Upload Speed: 921600.

  • Flash Size: 4M (3M SPIFFS).

  • Port: chọn cổng khi gắn thiết bị vào sẽ thấy xuất hiện.

Nạp chương trình xuống board dùng Arduino IDE

Trên giao diện Arduino có 2 nút, ngoài cùng bên trái là nút Verify, để
biên dịch chương trình, tương đương với Sketch > Verify/Compile, nút
tiếp theo là Upload, tương đương Sketch > Upload. Khi đã lựa chọn
board phù hợp, chương trình không có lỗi, thì nhấn Upload sẽ nạp
chương trình vào board và thực thi sau đó.

Nạp chương<br>
trình

Xuất firmware binary trong Arduino IDE

Với bất kỳ tình huống nào cần file Binary, bạn có thể được xuất ra bằng
cách Sketch > Export compiled Binary, và file .bin sẽ nằm trong thư
mục của Sketch.

Xuất file<br>
Binary

Serial Terminal

Có nhiều ứng dụng miễn phí để tương tác với cổng Serial trên máy tính:

  • Windows: PuTTY, realterm

  • Linux: minicom, screen

  • MacOS: minicom, screen

Sử dụng Arduino IDE Serial Monitor

Arduino có tích hợp sẵn Serial Monitor, khi chọn đúng cổng Serial, thì
có thể nhấn biểu tượng Serial trên IDE để mở:

Arduino IDE Serial<br>
Monitor

Node.js

Tải và cài đặt Node.js tại: nodejs.org/en/download/

Sublime Text

Tải và cài đặt tại: www.sublimetext.com/

Git

Một công cụ hỗ trợ khác bạn cũng nên cài đặt và tập sử dụng, nó không
giúp bạn trở thành 1 lập trình viên, nhưng nó giúp 1 lập trình viên trở
nên chuyên nghiệp và làm việc hiệu quả: git-scm.com/

Latest comments (0)