Energia – Bài 9: Giao tiếp ESP8266 và TIVA C

Hẹn mãi giờ mới làm được bài hướng dẫn giao tiếp giữa TIVA C và ESP8266 cho các bạn. Mình đi vào vấn đề luôn, bài viết này mình xin chia sẻ cách giao tiếp điều khiển ESP8266 thông qua tập lệnh AT. Cách này khác hẳn với những bài viết về lập trình trực tiếp trên ESP8266.

Chuẩn bị

Phần cứng

  • TIVA C Launchpad
  • Mạch ESP8266 phiên bản bất kỳ.
  • Dây nối
  • Nguồn 3v3
  • Mạch USB2UART PL2303 hoặc mạch tương tự (có thể có hoặc không)
Lưu ý:

Ở đây mình sử dụng bản esp8266 có sẵn là bản v1, nếu các bạn mua mới thì nên mua từ bản v7 hoặc v12 thì tốt hơn.

Cách lập trình cho esp8266 các phiên bản là giống nhau, kể cả NodeMCU cũng vậy (NodeMCU là esp8266 v12)

Nguồn cấp cho esp8266 nên dùng nguồn ngoài 3v3. Dùng nguồn có sẵn từ TIVA cũng được nhưng mình không khuyến khích.

Phần mềm

  • Energia IDE
  • Firmware AT-command ai-thinker cho ESP8266

 

Trước khi bắt đầu, các bạn nên xem qua bài ESP8266 cho người không biết gì, đây là bài cơ bản cũng như là cách để bạn kiểm tra hoạt động của ESP8266 dùng firmware ai-thinker. Nếu gửi lệnh AT và nhận OK là modul hoạt động bình thường, có thể lấy để lập trình với TIVA C được.

Nếu bạn có từng lập trình trực tiếp nạp firmware vào ESP8266 thông qua các bài hướng dẫn trước của mình  thì nên tham khảo cách nạp lại firmware AT-command cho ESP8266.

Sơ đồ chân của ESP8266 v1

Kiểm tra lệnh AT

Sau khi đã kiểm tra xong đảm bảo modul esp8266 hoạt động bình thường thì mình thử viết chương trình để thực hiện gửi lệnh AT và nhận phản hồi.

Nói thêm 1 chút về vai trò của TIVA C ở đây, như các bạn biết thì quá trình kiểm tra modul ban đầu phải qua các bước: mở phần mềm -> kết nối com -> gõ lệnh -> gửi lệnh -> chờ và xem phản hồi. Với 1 lệnh và mục đích test bình thường thì quá đơn giản, nhưng nếu nhiều lệnh hơn thì chẳng lẽ phải ngồi gõ lệnh hoài, làm thế chắc sớm muộn gì cũng lên đường sớm thôi. Cảm ơn TIVA C đã xuất hiện như một vị cứu tinh, giờ chỉ lập trình cho TIVA một chút thôi là chúng ta chỉ việc ngồi chơi xơi nước.

Thôi nhảm hơi nhiều rồi, mình vào vấn đề chính, dưới đây là cách mình kết nối dây và lập trình, chương trình đơn giản nên mình gom hết kết nối mô tả vào làm một

Lệnh sử dụng

LệnhPhản hồiMô tả
ATOKNếu nhận được OK nghĩa là modul hoạt động bình thường
Chương trình

Kết quả

Kết nối wifi

Coi như bước đầu giao tiếp đã thành công, giờ mình viết lại hàm gửi lệnh AT cho đơn giản hơn một chút, hàm

int8_t sendATcommand(char* ATcommand, char* expected_answer, unsigned int timeout) có 3 tham số là

  • ATcommand: lệnh AT gửi
  • expected_answer: kết quả phản hồi mong muốn
  • timeout: thời gian timeout cho lệnh

Với hàm này không cần phải delay chờ đợi gì nữa, cứ kiểm tra kết quả nhận được đúng với expected_answer thì thoát hàm, thực hiện lệnh tiếp theo.

Lệnh sử dụng

Lệnh ATPhản hồiMô tả
AT+CWMODE =1OKCài đặt chế độ station
AT+CWJAP = "ten_wifi", "pass"OKKết nối với mạng wifi
AT+CIPMUX = 1OKCài đặt chế độ đa kết nối
AT+CIFSROKHiển thị IP
Chương trình

Kết quả

Tạm kết

Thế là tạm xong những bước ban đầu để kiểm tra kết nối của TIVA C và ESP8266, thử được kết nối tới server, có vẻ là hơi vất vả một chút nhưng giờ TIVA gánh được phần xử lý dữ liệu từ các cảm biến, io,.. còn ESP chỉ lo mỗi việc kết nối wifi và gửi dữ liệu lên cloud. Cách gửi dữ liệu lên server mình sẽ giới thiệu với các bạn ở bài tiếp theo.

10
Leave a Reply

avatar
3 Comment threads
7 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
5 Comment authors
scVũthạchQuânnguyen Recent comment authors

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.

  Subscribe  
newest oldest most voted
Notify of
tran
Guest
tran

bạn cho cái sơ đồ nối chân giữa esp 8266 và arduino vs, hướng dẫn tập lệnh ko thì sao mà làm thành côg, nối chân sai là cháy mất linh kiện còn đâu

Quân
Guest
Quân

cho em hoi cai này là mình viêt cho esp phải không anh

Vũ
Guest
Vũ

Nó báo lỗi này ad ơi :(((
sketch_nov07a:10: error: ‘Serial1’ was not declared in this scope