Giao tiếp ESP8266 Với Arduino

Muốn có một kết nối wifi trong dự án của bạn mà vẫn giữ được sự tiết kiệm, thì ESP8266 là một sự lựa chọn tuyệt vời. Nhưng có thể bạn lo lắng vì không có đủ chân để thực hiện ý tưởng của mình. Có một giải pháp tốt hơn đó là sử dụng ESP8266 để giao tiếp với Arduino Uno/Mega thông qua các giao tiếp phổ biến như UART, SPI, I2C. Hôm nay, Điện tử hay sẽ chia sẻ với bạn cách tiết kiệm và hiệu quả để thực hiện điều này.

Chuẩn UART

Có hai cách để giao tiếp UART giữa ESP8266/NodeMCU và Arduino:

  1. Sử dụng cả code trên Arduino Uno/Mega và ESP8266/NodeMCU.
  2. Chỉ sử dụng code trên Arduino Uno/Mega và flash firmware AT Command lên ESP8266/NodeMCU.

Sơ đồ kết nối

Sơ đồ kết nối Arduino Uno với ESP8266

Chương trình

Code NodeMCU

Gửi chuỗi ‘123’ từ NodeMCU tới Uno/Mega. Ở đây, bạn cần thêm thư viện SoftwareSerial và gắn nó với chân RX và TX. Đồng thời, cấu hình tốc độ baud là 9600.

Code Arduino Uno/Mega

Chương trình này nhận thông tin, đầu tiên ta tạo một biến để nhận dữ liệu, sau đó cấu hình baud 9600 để nhận dữ liệu.

Kết quả

Quan sát trên cổng serial, bạn sẽ thấy chuỗi ‘123’ được gửi từ Uno/Mega.

Chuẩn I2C

Khái niệm

I2C (Inter-Integrated Circuit) là giao thức kết nối bus nối tiếp. Nó còn được gọi là TWI (Two-Wire Interface) vì chỉ sử dụng hai dây để giao tiếp. Đó là một giao thức truyền thông dựa trên sự thừa nhận, tức là sau khi truyền dữ liệu, người nhận sẽ phản hồi bằng tín hiệu xác nhận để biết liệu dữ liệu đã nhận thành công hay không.

Sơ đồ kết nối

Sơ đồ kết nối ESP8266 với Arduino

Chương trình

Code NodeMCU

Code Uno/Mega

Kết quả

Đây là kết quả khi thử nghiệm giữa ESP8266/NodeMCU và Arduino Mega.

Chuẩn SPI

Khái niệm

SPI (Serial Peripheral Interface) là chuẩn giao tiếp bus do Motorola Corp đưa ra. SPI sử dụng 4 chân kết nối, do đó thường được gọi là kết nối 4 dây. Đây là giao thức giao tiếp full-duplex master-slave, có nghĩa là chỉ có một master và một slave có thể kết nối thông qua bus interface cùng một lúc. SPI cho phép một thiết bị làm việc ở hai chế độ: SPI Master Mode và SPI Slave Mode. Thiết bị master tạo ra tín hiệu đồng bộ để truyền và nhận dữ liệu.

Sơ đồ kết nối

Sơ đồ kết nối ESP8266 chuẩn SPI

Chương trình

Chúng ta sẽ viết chương trình giao tiếp SPI cho ESP8266/NodeMCU và Arduino Uno/Mega. NodeMCU là master device và Uno/Mega là slave device. NodeMCU sẽ gửi chuỗi “Hello Slave” với ‘n’ ở cuối chuỗi. Uno/Mega slave device nhận chuỗi này và in ra cổng serial.

Kết quả

Kiểm tra trên terminal của Uno sẽ có thông tin “Hello Slave”.

Tạm kết

Bây giờ bạn đã biết cách giao tiếp và truyền nhận dữ liệu giữa ESP8266/NodeMCU và Arduino Uno/Mega thông qua các chuẩn giao tiếp UART, I2C, SPI. Hy vọng thông qua bài viết này bạn đã có thêm sự sáng tạo và thử nghiệm với dự án của mình.

Để cùng nhau học hỏi và thảo luận về PCB, hãy tham gia Group: Dientuhay.

Nếu bạn cần gia công PCB, hãy liên hệ ngay: Dientuhay.

FEATURED TOPIC

hihi