Arduino IDE cho ESP8266

Arduino IDE cho ESP8266

Arduino là gì?

01.arduino
Hình 1. Board mạch Arduino 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ỗ.

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 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 hỗ trợ cài đặt board ESP8266
Hình 2. Thêm file thông tin board 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 <a href="http://arduino.esp8266.com/stable/package_esp8266com_index.json" class="bare">arduino.esp8266.com/stable/package_esp8266com_index.json</a>.

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.

Board manager
Hình 3. Cài đặt board 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 libraryManage libraries:

Khởi động Library Manager
Hình 4. Khởi động Library 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ư viện
Hình 5. Cài đặt thư 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 ESP8266 WiFi Uno
Hình 6. Cấu hình Board Node 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 trình xuống board dùng Arduino IDE
Hình 7. Nạp chương 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.

export fw
Hình 8. Xuất file 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ở:

Nạp chương trình xuống board dùng Arduino IDE
Hình 9. Arduino IDE Serial 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/

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *