Tải bản đầy đủ - 0 (trang)
Đặc điểm của quá trình lập trình trên chip ESP8266

Đặc điểm của quá trình lập trình trên chip ESP8266

Tải bản đầy đủ - 0trang

Hình 4.2 Cấu trúc thư mục của Non-OS SDK

app: Thư mục làm việc chính chứa tất cả source code sẽ được compile của ứng dụng.

bin: Chứa firmware đã được compile và nạp trực tiếp xuống flash.

documents: các tài liệu liên quan đến SDK.

driver_lib: Các thư viện hỗ trợ các thiết bị ngoại vi như UART, I2C và GPIO.

examples: Chứa các ví dụ mẫu để tham khảo.

include: Chứa các header file sử dụng trong SDK. Các tập tin này cũng định nghĩa các

API cũng như các macro mà SDK hỗ trợ. Người sử dụng không nên sửa các file này.

ld: Chứa các file tương tác với các phần mềm chạy SDK . Nhà sản xuất khuyến cáo khơng

nên sửa đổi nó trừ khi có những yêu cầu đặc biệt.

lib: Chứa các thư viện hỗ trợ bởi SDK như cấu hình chip, Wifi config... đến các tính năng

cao cấp như Mesh, SmartConfig, mDNS, Sniffer…

SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58



Page 34



tools: Chứa các script cần thiết cho quá trình compile firmware: script tạo file binary, script

tạo certificate… Nhà sản xuất khuyến cáo người sử dụng không nên sửa các file này.

RTOS SDK: Sử dụng FreeRTOS mã nguồn mở giúp hệ thống hoạt động đa nhiệm.

Do đó, hệ thống này cho phép người dùng sử dụng các phương thức chuẩn cho việc quản lý

tài nguyên, chu kỳ hoạt động theo chu kỳ, quản lý thời gian trễ trong tác vụ , cung cấp

thơng tin cũng như đồng bộ hóa giữa các tác vụ. Ưu điểm của nó có thể xử lý đa nhiệm

trong các yêu cầu dự án lớn tuy nhiên phụ thuộc vào chất lượng SDK mà hệ thống hoạt

động ổn định hay khơng. Do đó thơng thường các API mới được cập nhật chậm hơn so

với Non-OS. Điểm đặc biệt cần lưu ý là RTOS không hỗ trợ AT command. Do đó nếu

bạn muốn viết 1 firmware mà cần hỗ trợ AT command để giao tiếp với MCU bạn phải sử

dụng Non-OS SDK. Hiện nay, phiên bản mới nhất của RTOS SDK là V1.4.0 cung cấp

hầu hết tất cả các Api của Non-OS SDK ngoại trừ việc không hỗ trợ AT command.

Cấu trúc thư mục của RTOS SDK như sau:



Hình 4.3 Cấu trúc thư mục của RTOS SDK

bin: Chứa firmware đã được compile và nạp trực tiếp xuống flash.

documents: các tài liệu liên quan đến SDK.

examples: Chứa các ví dụ mẫu để tham khảo.

examples/driver_lib: Các thư viện hỗ trợ các thiết bị ngoại vi như UART, I2C và GPIO.

SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58



Page 35



examples/project_template: template cho project.

examples/smart_config: Ví dụ mẫu cho Smart Config.

examples/spiffs_test: Ví dụ mẫu cho SPIFFS.

examples/websocket_demo: Ví dụ mẫu cho WebSocket.

extra_include: Các header files của Xtensa.

include: Chứa các header file sử dụng trong SDK. Các tập tin này cũng định nghĩa các API

cũng như các macro mà SDK hỗ trợ. Người sử dụng không nên sửa các file này.

ld: Chứa các file tương tác với các phần mềm chạy SDK. Nhà sản xuất khuyến cáo khơng

nên sửa đổi nó trừ khi có những yêu cầu đặc biệt.

lib: Chứa các thư viện hỗ trợ bởi SDK như cấu hình chip, Wifi config, FreeRTOS... đến các

tính năng cao cấp như Mesh, SmartConfig, mDNS, Sniffer…

third_party: Các thư viện hỗ trợ open-source từ các nhà phát triển: Spiffs, Lwip, ssl…

tools: Chứa các script cần thiết cho quá trình compile firmware: script tạo file binary, script

tạo certificate… Nhà sản xuất khuyến cáo người sử dụng không nên sửa các file này.

Hiện tại Espressif chưa hỗ trợ một chương trình IDE như IAR, Keil để lập trình cho

ESP8266. Do đó chúng ta sẽ dùng một trình soạn thảo text cơ bản (Java, Visual Studio,

Notepad...) để viết code ứng dụng cho ESP8266, sau đó sử dụng trình biên dịch để biên

dịch mã code cùng với SDK hỗ trợ ra file binary. Cuối cùng chúng ta sử dụng tool

download để nạp firmware xuống device.



III.



LẬP TRÌNH ESP 8266 SỬ DỤNG ARDUINO IDE

1. Nguyên lý hoạt động



Chúng ta có thể hiểu ngun lý của mơ hình này là bộ thư viện ArduinoESP8266

giúp tạo ra các dòng code của ESP8266 từ những lệnh quen thuộc trên Arduino IDE. Vì vậy

người lập trình vẫn có thể sử dụng ngơn ngữ Arduino đã quen thuộc và dễ hiểu để lập trình

cho ESP8266. Hơn nữa ArduinoESP8266 cũng hỗ trợ tích hợp trình biên dịch vào Arduino

IDE để tạo file firmware và được nạp xuống module ESP8266 thông qua UART.

Hiện tại, thư viện mới nhất của ESP8266 trên Adruino hỗ trợ khá đầy đủ các chức năng cần

thiết của 1 module wifi như: TCP, UDP, thiết lập HTTP, mDNS, SSDP, DNS servers,

OTA… Ngoài ra nó cũng hỗ trợ giao tiếp các thiết bị ngoại vi như: flash memory, SD cards,

servos, SPI, I2C…

Chúng ta có thể sử dụng các lệnh quen thuộc trong Adruino IDE. Khi biên dịch trong

Arduino IDE, bộ thư viện ESP8266 sẽ chuyển đổi các lệnh Arduino thành các code của

ESP8266 sử dụng các API của Non-OS SDK. (Được thể hiện rõ trong mơ hình dưới đây).



SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58



Page 36



Hình 4.4 Mơ hình sử dụng IDE của Adruino lập trình cho Esp8266



2. Các hàm chuẩn

Các hàm chuẩn cho digital IO:

pinMode(pin, Mode)

//pin = 0 cho GPIO0, 1 cho GPIO01 và 2 cho GPIO02

digitalRead(pin)

digitalWrite(pin, value)

attachInterrupt(digitalPinToInterrupt(pin), callback_func, mode); //Lưu ý khơng có interrupt

cho GPIO16

deattachInterrupt(digitalPinToInterrupt(pin)

Các hàm chuẩn cho Analog IO:

analogRead(A0)

//trả về 0-1023 tương ứng với 0-1V

analogWrite(pin, value) // tạo điện áp analog tại chân GPIO, value từ 0-1023

analogWriteFreq(new_frequency) //thay đổi tần số 1KHz mặc định của PWM để tạo

analog điện áp.

Các hàm chuẩn cho timer:

delay(ms)

delayMicroseconds(us)

Lưu ý là chúng ta nên gọi hàm delay(), delayMicroseconds() thường xuyên để firmware xử

lý chức năng Wifi của ESP có thể hoạt động bình thường. Nếu chương trình ứng dụng trên

Arduino chiếm nhiều thời gian và ít gọi hàm delay(), chức năng Wifi sẽ có thể khơng hoạt

động như mong đợi



SV Nguyễn Thị Hạnh - BM. Mạng Máy Tính– Khóa 58



Page 37



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Đặc điểm của quá trình lập trình trên chip ESP8266

Tải bản đầy đủ ngay(0 tr)

×