BÀI 1: NHỮNG CHUẨN BỊ CẦN THIẾT ĐỂ HỌC LẬP TRÌNH ESP8266 NONOS SDK


Hiện nay ESP8266 là một trong những loại vi điều khiển được sử dụng phổ biến trong các ứng dụng IoT, truyền dẫn không dây và nhiều ứng dụng khác. Khi tiếp cận với ESP8266 thì chúng ta thường sử dụng Trình biên dịch Arduino để lập trình vì nó đơn giản, cộng đồng hỗ trợ nhiều và nhiều thư viện từ đó rút ngắn được thời gian lập trình. Tuy nhiên, khi vào môi trường công ty – doanh nghiệp thì mình nghĩ Arduino sẽ không còn được ưa chuộng và thay vào đó, người ta sẽ chuyển sang sử dụng những tools từ nhà sản xuất cung cấp.

Trong Series này, mình sẽ hướng dẫn các bạn tiếp cận được một cách lập trình mới - đó là sử dụng SDK(software development kit) từ nhà sản xuất - NONOS SDK.

NHỮNG THỨ CẦN CHUẨN BỊ
  • Board ESP8266 + Cáp micro USB (mình sử dụng loại D1 Mini, các bạn có thể tham khảo tại đây nhé: ESP8266 D1 MINI).
Board ESP8266 D1 mini

  • Máy vi tính còn hoạt động bình thường :D

Để có thể biên dịch được code nạp cho ESP8266 từ NONOS SDK, thì chúng ta cần phải có một hệ điều hành Linux. Nên vì vậy, mình sẽ tiến hành cài đặt một máy ảo (https://download.virtualbox.org/virtualbox/5.2.22/VirtualBox-5.2.22-126460-Win.exe) và một image Linux Lubuntu để cài hệ điều hành Linux cho máy ảo (http://downloads.espressif.com/FB/ESP8266_GCC.zip). Sau khi đã chuẩn bị được những phần mềm trên, chúng ta tiến hành cài đặt theo các bước sau:

Bước 1: Cài đặt Máy ảo Linux
Quá trình cài đặt diễn ra bình thường như bao ứng dụng khác (các bạn cứ nhấn next đến khi nào hư chuột thì ok).
Giao diện Máy ảo khi khởi chạy

Bước 2:  Import Image Linux Lubuntu cho máy ảo
Chọn File > Import Appliance và sau đó dẫn đường dẫn đến Image Lubuntu (file có đuôi .OVA). Sau đó nhấn Next.
Import Linux Lubuntu

Bước 3: Tạo thư mục Share và liên kết máy tính với máy ảo
Ở bước này, chúng ta tiến hành tạo một thư mục Share (hoặc bất cứ tên gì bạn muốn) - thư mục này sẽ là nơi chứa SDK và các Projects của các bạn khi lập trình.
- Copy SDK đã tải về và di chuyển nó vào trong thư mục Share.
Di chuyển thư mục SDK vào trong thư mục Share

- Liên kết thư mục Share của máy tính và máy ảo: Máy ảo giúp chúng ta biên dịch được các chương trình đã viết. Nhưng để máy ảo biết được thư mục code/project nằm ở đâu trong máy tính, thì chúng ta sẽ liên kết thư mục đó(Share) với máy ảo.
Chọn Machine > Settings > Shared Folders, di chuyển đến dẫn thư mục share vừa tạo ở bước trên.


Bước 4: Khởi chạy máy ảo:
Chọn Start để khởi chạy máy ảo.
Chọn Start để khởi chạy máy ảo


Giao diện Desktop khi máy ảo khởi động xong

Sau khi máy ảo đã khởi động xong, chúng ta tiến hành nhấp chuột vào biểu tượng LXTerminal trên màn hình và gõ khởi chạy chương trình ./mount.sh và sau đó nhập vào mật khẩu: espressif
Việc khởi chạy chương trình ./mount.sh mỗi lần khởi động máy ảo lên giúp cho máy ảo thấy được thư mục share trên máy vi tính.

Bước 5: Tạo Project



Để kiểm tra quá trình biên dịch diễn ra thành công hay không, chúng ta sẽ copy một thư mục trong thư mục examples (peripheral_test) và di chuyển nó vào trong thư mục SDK như hình trên. Và Những Project sau, các bạn cũng đặt project mình trong thư mục SDK như trong ví dụ này nhé!

Bước 6: Biên dịch chương trình



Để biên dịch được chương trình, các bạn làm theo các bước sau:
  • cd ESP...         -> đi vào trong thư mục SDK.
  • ls                     -> liệt kê các file, thư mục có trong thư mục hiện tại.
  • cd peripheral_test        -> vào trong thư mục project.
  • ./gen_misc.sh               -> thư thi file để sinh ra mã code.
  • Sau đó nhập các thông số cấu hình cho trình biên dịch (1, 1, 2, 0, 4).
Nhập các thông số cấu hình cho chương trình dịch


Biên dịch chương trình thành công

Để tránh trường hợp mất thời gian ở bước nhập các thông số cấu hình cho trình biên dịch, chúng ta sẽ fix các giá trị này (Mặc định compiler sẽ lấy các thông số này để biên dịch). Các bạn vào trong thư mục project, chọn file gen_misc.sh (open with - mở với editor nào bạn có) và sau đó sửa lại lại các thông số tại các dòng số: 9, 26, 66, 85, 113. Sửa read input thành input=params với params là 1, 1, 2, 0, 4 (tùy theo ESP8266 sử dụng). Ví dụ: input=1




Bước 7: Nạp chương trình

Đối với NONOS SDK, nhà sản xuất cung cấp cho chúng ta hai kiểu nạp: FOTA và Non FOTA (Firmware Over the Air) - chi tiết xem trong tài liệu: 2a-esp8266-sdk_getting_started_guide_en
  • FOTA : cho phép nạp chương trình từ xa.
  • Non FOTA : không cho phép nạp chương trình từ xa.
Trong series này, mình sẽ hướng dẫn các bạn sử dụng chức năng nạp FOTA - nạp firmware từ xa. Để dễ hiểu, chức năng này giống với chức năng update firmware trên điện thoại - cập nhật Android 7 lên Android 8 chẳng hạn.

Địa chỉ để nạp cho ESP8266

Để nạp được chương trình cho ESp8266, chúng ta cần các file: blank.bin, esp_init_default.bin, boot.binuser1.bin. Các file này nằm trong thư mục bin của SDK.




Chúng ta tiến hành nhập những thông số cần thiết cho chương trình nạp:
  • 1: các file và địa chỉ cần thiết để nạp chương trình.
  • 2: cấu hình của esp8266.
  • 3: chọn cổng com và tốc độ baud.
  • 4: tiến hành nạp.
  • 5: trạng thái nạp, nếu finish là quá trình nạp diễn ra thành công.

VIDEO HƯỚNG DẪN CHI TIẾT:

Nhận xét

Đăng nhận xét

Bài đăng phổ biến từ blog này

Dòng điện, điện áp 1 chiều và các định luật cơ bản

Dòng điện 1 chiều (DC) là gì ?

Các cách mắc điện trở

Dòng điện xoay chiều

Biến áp, Triết áp, Phân loại điện trở