Tổng Hợp Hướng Dẫn Esp8266, Lập Trình Esp8266 Bằng Arduino Ide

Xin chào, tiếp nối loạt bài viết về chuẩn giao tiếp Bluetooh Low Energy, hôm nay chúng ta sẽ bắt đầu quá trình tìm hiểu các ứng dụng Internet Of Things sử dụng công nghệ truyền không dây khác, đó chính là chuẩn truyền Wifi. Hiện tại dòng chip ESP8266 của Espressif đang được sử dụng rất phổ biến trong các thiết bị giao tiếp với smartphone hay web server thông qua Wifi nhờ giá thành rẻ, module nhỏ gọn và đặc biệt dễ sử dụng thông qua firmware có sẵn từ nhà sản xuất. Do đó trong loạt bài viết này chúng ta sẽ thảo luận và tìm hiểu môi trường lập trình ứng dụng với các dòng chip ESP8266

Giới thiệu về dòng chip Wifi ESP8266

Chip ESP8266 được phát triển bởi Espressif để cung cấp giải pháp giao tiếp Wifi cho các thiết bị IoT. Điểm đặc biệt của dòng ESP8266 là nó được tích hợp các mạch RF như balun, antenna switches, TX power amplifier và RX filter ngay bên trong chip với kích thước rất nhỏ chỉ 5x5mm nên các board sử dụng ESP8266 không cần kích thước board lớn cũng như không cần nhiều linh kiện xung quanh. Ngoài ra, giá thành của ESP8266 cũng rất thấp đủ để hấp dẫn các nhà phát triển sản phẩm IoT

Tóm lại, ESP8266 vừa tích hợp nhiều phần cứng hỗ trợ, vừa kích thước nhỏ, vừa hợp túi tiền thì sao chúng ta có thể cưỡng lại được, đúng không nào ?

Cấu trúc phần cứng của dòng chip ESP8266 có thể tóm tắt như sau:

Sử dụng 32-bit MCU core có tên là TensilicaTốc độ system clock có thể set ở 80MHz hoặc 160MHzKhông tích hợp bộ nhớ Flash để lưu chương trìnhTích hợp 50KB RAM để lưu dữ liệu ứng dụng khi chạyCó đầy đủ các ngoại vi chuẩn đê giao tiếp như 17 GPIO, 1 Slave SDIO, 3 SPI, 1 I2C, 1 I2S, 2 UART, 2 PWMTích hợp các mạch RF để truyền nhận dữ liệu ở tần số 2.4GHzHỗ trợ các hoạt động truyền nhận các IP packages ở mức hardware như Acknowledgement, Fragmentation và Defragmentation, Aggregation, Frame Encapsulation v.v… (và phần stack TCP/IP sẽ được thực hiện trên firmware của ESP8266)

Do không hỗ trợ bộ nhớ Flash nên các board sử dụng ESP8266 phải gắn thêm chip Flash bên ngoài và thường là Flash SPI để ESP8266 có thể đọc chương trình ứng dụng với chuẩn SDIO hoặc SPI.

Đang xem: Hướng dẫn esp8266

Dưới đây là mạch nguyên lý đầy đủ cho ESP8266:

*

Chúng ta có thể thấy board ESP8266 chỉ cần thạch anh và SPI flash chip và vài linh kiện điện trở rất đơn giản phải không nào. Do đó việc tích hợp giao tiếp Wifi vào board ứng dụng với ESP8266 rất dễ dàng và nhanh chóng.

Công ty Espressif cũng cung cấp khá đầy đủ tài liệu và software tools để các nhà phát triển sản phẩm có thể nhanh chóng làm quen và phát triển ứng dụng với ESP8266. Các bạn có thể tải về từ trang https://espressif.com/en/products/hardware/esp8266ex/resources . Chúng ta sẽ thảo luận 1 số tools trong các bài sau khi đi sâu vào làm việc với ESP8266 nha.

Xem Thêm : Soạn bài Từ trái nghĩa | Soạn văn 7 hay nhất

Xem thêm: 18+ Tư Thế Quan Hệ Tình Dục Lên Đỉnh Sướng Thỏa Mãn Nhất Cho Cả Chàng Và Nàng

Về mô hình lập trình ứng dụng với ESP8266, chúng ta có thể chia làm 2 loại như sau:

Sử dụng firmware được cung cấp bởi Espressif và giao tiếp thông qua AT commandsLập trình firmware trực tiếp vào ESP8266 sử dụng bộ thư viện SDK cung cấp bởi Espressif

Chúng ta sẽ thảo luận cách thức lập trình và so sánh 2 loại lập trình trên trong các bài viết tiếp theo.

Các chế độ boot up của ESP8266

Do ESP8266 không tích hợp Flash bên trong chip để lưu code ứng dụng nên chúng ta phải lưu code ứng dụng trong bộ nhớ ngoài bao gồm chip SPI Flash hoặc SDCard. Chúng ta có thể kết nối 1 số chân GPIO để báo cho ESP8266 nơi lưu code ứng dụng để từ đó ESP8266 có thể đọc code và thực thi.

Xem thêm: Các Hướng Dẫn Angularjs Cơ Bản Cho Người Mới Bắt Đầu, Các Hướng Dẫn Angularjs

Các chế độ boot up của ESP và cấu hình chân GPIO tương ứng như sau:

*

Chân MTD0 chính là chân GPIO15 của ESP8266. Chúng ta có thể kết nối điện trở kéo lên/kéo xuống hoặc dùng nút nhấn v.v.. trên board tạo tín hiệu High/Low cho các chân để chọn bộ nhớ chứa code trên board mà ESP8266 có thể đọc vào và thực thi (ví dụ như SPI Flash chip, SDCard). Ngoài ra ESP8266 còn chế độ cho phép truyền code ứng dụng từ máy tính thông qua UART và lưu vào bộ nhớ SPI Flash trên board. Chúng ta sẽ dùng chế độ này để nạp code mới cho các board ESP8266

Các loại module cho ESP8266 trên thị trường

Ngoại trừ module ESP-WROOM-02 được phát triển bởi chính Espressif cho mục đích nghiên cứu các tính năng của ESP8266, các module ứng dụng phổ biến hiện nay của ESP8266 đều được phát triển bởi công ty AI-Thinker

Hiện tại có khá nhiều module khác nhau cho ESP8266 được sản xuất bởi công ty AI-Thinker. Đặc điểm khác nhau giữa các module này bao gồm:

Xem Thêm : Hướng Dẫn Crack Phần Mềm Bất Kì, Tự Học Crack Phần Mềm Tại Nhà

Loại anten sử dụng (PCB anten, chip anten hoặc gắn anten ngoài)Dung lượng của chip Flash SPI trên boardKích thước board của moduleCó gắn khung nhôm chống nhiễu hay khôngSố lượng pin GPIO đưa ra chân kết nối

Hiện tại AI-Thinker sản xuất 14 loại module cho ESP từ module ESP-01 đến ESP-14. Các bạn có thể tham khảo chi tiết tất cả 14 loại module này trong website http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family

Ở thị trường VN thì 3 module là ESP-01, ESP-07 và ESP-12F khá phổ biến và sẽ được sử dụng để demo trong các bài viết sau nên chúng ta sẽ giới thiệu sơ các module ở đây:

ESP-01

*

Sử dụng on-board PCB antennaCó 2 LED trên board để báo nguồn và báo TXCung cấp 3 chân GPIO (GPIO0, GPIO2 và GPIO6) và 2 chân TXD/RXD cho UARTDung lượng SPI Flash 4MByteĐưa chân ra jumper luôn nên có thể kết nối trực tiếp với các board khác 1 cách nhanh chóngThông tin chi tiết có thể tham khảo ở đây

ESP-07

*

Sử dụng chip anten on-board và có IPEX connector hỗ trợ gắn thêm anten ngoài để tăng khoảng cách truyềnCó 2 LED trên board để báo nguồn và báo TXĐưa ra 9 chân GPIO, 2 chân TX/RX cho UART, 1 chân REST để reset chip, 1 chân ADC, 1 chân CH_PD để đưa chip vào chế độ low powerDung lượng SPI Flash trên board là 4MByteCó thể hàn thêm jumper để kết nối trực tiếp với board khác hoặc hàn trực tiếp lên board ứng dụngThông tin chi tiết có thể tham khảo ở đây

ESP-12F

*

Sử dụng PCB anten on-boardĐưa ra 11 chân GPIO, 2 chân TX/RX cho UART, các chân cho SPI, chân RST để reset chip, 1 chân ADCDung lượng SPI Flash là 4MByteCó thể hàn jumper để căm dây vào các board khác hoặc hàn trực tiếp lên board ứng dụngThông tin chi tiết có thể tham khảo ở đây

Qua 3 module ESP8266 trên chúng ta có thể so sánh nhanh như sau:

ESP-01 đơn giản nhất, số chân GPIO ít nhất và không có shield chống nhiễuESP-07 thì nhiều chân GPIO hơn, có shield chống nhiễu nhưng dùng chip antenna nên khoảng cách truyền không xa bằng PCB anten. Tuy nhiên có thể tăng khoảng cách truyền bằng cách gắn thêm anten ngoài với IPEX connector trên boardESP-12F đưa ra nhiều chân GPIO nhất, có shield chống nhiễu và on-board PCB anten (lưu ý là mặc dù có các chân SPI nhưng đã được sử dụng để đọc SPI Flash bên trong nên chúng ta không thể sử dụng các chân này nha)

Do đó tùy vào yêu cầu của ứng dụng, chúng ta có thể lựa chọn module từ đơn giản đến phức tạp

Qua bài viết này, chúng ta đã được giới thiệu tổng quan về dòng chip ESP8266 cho giao tiếp Wifi của các thiết bị IoT. Đây là chip SOC tích hợp đầy đủ mạch RF và phần cứng để hỗ trợ truyền nhận dữ liệu trên Wifi nên không yêu cầu thiết kế board phức tạp; và đặc biệt giá thành lại rất rẻ nên rất phổ biến trong cộng đồng phát triển ứng dụng IoT. Trong bài viết, chúng ta đã khảo sát kiến trúc phần cứng, các ngoại vi, mạch nguyên lý cũng như các module phổ biến hiện nay của ESP8266. Đây chính là kiến thức cần thiết để tiếp tục tìm hiểu sâu hơn về cách sử dụng ESP8266 trong các bài viết tiếp theo.

Nguồn: https://truongxaydunghcm.edu.vn
Danh mục: Kiến thức

Related Articles

Back to top button