Muốn thực hiện được wifi nhưng buộc phải rẻ thì ESP8266 là một sự tuyển lựa không tồi, tuy nhiên đang làm các bạn lai bực mình bởi vì không đầy đủ chân để triển khai dự án của mình. Vậy cần làm rứa nào bố giờ nhỉ? trả nhẽ lại đề xuất mua đề xuất ESP32! Không! Hôm nay Điện tử xuất xắc điện tử hay đã mách bạn một bí quyết vừa rẻ, vừa sinh viên mà lại hiệu quả: đo là giao tiếp ESP8266 cùng với Arduino Uno/Mega thông qua nhưng tiếp xúc của các chuẩn UART, SPI, I2C một cách 1-1 giản, bổ ích nhât.
Bạn đang xem: Giao tiếp uart giữa arduino và esp8266
Các thứ các bạn cần sẵn sàng để giao tiếp :
Giao tiếp ESP8266 chuẩn chỉnh UART
Có 2 cách để giao tiếp UART giữa ESP8266/NodeMCU:
1 là giao tiếp bằng cách code bên trên cả Uno/Mega và ESP8266/NodeMCU2 là chỉ code trên Uno/Mega, bên trên ESP8266/NodeMCU flash thẳng firmware AT Command,Sơ đồ vật kết nối

Chương trình
Code NodeMCU
Gửi data ‘123’ qua Uno/Mega, ở đây ta cần có thư viện SoftwareSerial và gán nó cùng với 2 chân RX với TX. Sau đó cấu hình với vận tốc baud là 9600.
#include //Included SoftwareSerial Library//Started SoftwareSerial at RX & TX sạc of ESP8266/NodeMCUSoftwareSerial s(3, 1);void setup() //Serial S Begin at 9600 Baud s.begin(9600);void loop() //Write "123" to lớn Serial s.write(123); delay(1000);
Code Arduino Uno/Mega
Chương trình sau thừa nhận thông tin, đầu tiên là tạo thành biến để dấn data, tiếp nối là cài đặt baud 9600 để dấn data này.
int data; //Initialized variable to store recieved datavoid setup() //Serial Begin at 9600 Baud Serial3.begin(9600);void loop() data = Serial.read(); //Read the serial data and store it delay(1000);
Khái niệm
I2C (Inter-Integrated Circuit) là giao thức liên kết giao diện bus nối tiếp. Nó cũng rất được gọi là TWI bởi vì nó chỉ thực hiện hai dây để giao tiếp. Nhì chân này là SDA (đường data) và SCL (đường clock).
I2C là giao thức media dựa trên sự quá nhận, có nghĩa là phát biểu lộ kiểm tra xác nhận từ mặt nhận sau khoản thời gian truyền dữ liệu để biết liệu dữ liệu có được trao thành công xuất xắc không.
Hai chế độ làm việc của I2C:
Master modeSlave modeDây SDA (đường dữ liệu) được thực hiện để trao đổi dữ liệu giữa sản phẩm master và thiết bị slave. SCL (đường xung nhịp đồng hồ) được áp dụng cho đồng hồ đồng hóa ở giữa sản phẩm master với slave.
Thiết bị master bắt đầu giao tiếp với một lắp thêm slave. Trang bị master yêu thương cầu add thiết slave để bắt đầu giao tiếp với sản phẩm slave. Sản phẩm công nghệ Slave đánh giá cho lắp thêm master khi lắp thêm master được giải quyết.
Sơ sơ kim chỉ nan thế thôi, đi cụ thể vào thực hành ta sẽ viết lịch trình Arduino mang đến NodeMCU là I2C master và viết chương trình Arduino đến Arduino Uno/Mega là I2C Slave. Master sẽ gửi chuỗi hello slave đến slave cùng slave đã gửi chuổi hello master phản hồi lại.
Master Device: NodeMCUSlave Device: Arduino UnoSlave Device Address: 8Sơ đồ dùng kết nối

#include void setup() Serial.begin(9600); /* begin serial for debug */ Wire.begin(D1, D2); /* join i2c bus with SDA=D1 and SCL=D2 of NodeMCU */ void loop() Wire.beginTransmission(8); /* begin with device address 8 */ Wire.write("Hello Slave"); /* sends hello slave string */ Wire.endTransmission(); /* stop transmitting */ Wire.requestFrom(8, 13); /* request & read data of size 13 from slave */ while(Wire.available()) char c = Wire.read(); Serial.print(c); Serial.println(); delay(1000);
#include void setup() Wire.begin(8); /* join i2c bus with address 8 */ Wire.onReceive(receiveEvent); /* register receive sự kiện */ Wire.onRequest(requestEvent); /* register request sự kiện */ Serial.begin(9600); /* start serial for debug */void loop() delay(100);// function that executes whenever data is received from mastervoid receiveEvent(int howMany) while (0 Wire.available()) char c = Wire.read(); /* receive byte as a character */ Serial.print(c); /* print the character */ Serial.println(); /* lớn newline */// function that executes whenever data is requested from mastervoid requestEvent() Wire.write("Hello Master"); /*send string on request */
Kết quả
Đây là tác dụng mình thử nghiệm thử giữa ESP8266/NodeMCU và Arduino Mega
Khái niệm
SPI (Serial Peripheral Interface) là chuẩn giao tiếp dạng bus được đưa ra do Motorola Corp.
SPI sử dụng 4 chân kết nối, bắt buộc ta thường gọi nó là liên kết dạng 4 dây.SPI là full duplex master-slave communication protocol. Tức là chỉ một master cùng một slave hoàn toàn có thể kết nối nhau thông qua bus interface trong cùng một thời điểm.SPI cho phép device hoàn toàn có thể làm việc mở 2 mode cơ bạn dạng là SPI Master Mode với SPI Slave Mode.Master Device sẽ ý kiến thông tin cấu hình thiết lập kết nối. Master Device tạo nên Serial Clock để nhất quán data truyền nhận. Master Device còn có thể cai quản nhiều slave devices trên bus bằng việc lựa lựa chọn từng cái.ESP8266 gồm chân SPI (SD1, CMD, SD0, CLK) cần sử dụng cho Quad-SPI communication với flash memory bên trên ESP-12E, vì chưng thếta sẽ không thể sử dụng những chân này được, ta đã dùng những chân sửa chữa thay thế là GPIO14-GPIO17, các bạn có thể xem hình bên dưới đây.
Xem thêm: Nhạc Phim Giang Sơn Mỹ Nhân 1993, Phim Giang Sơn Mỹ Nhân Thuyết Minh

Sơ đồ vật kết nối

Chương trình
Chúng ta đang viết chương trình tiếp xúc SPI đến ESP8266/NodeMCU với Uno/Mega, tại đây NodeMCU là master device với Uno/Mega là slave device.
NodeMCU đã gửi lời kính chào với chuỗi “Hello Slave” với ‘ ’ làm việc cuối chuỗi . Uno/Mega Slave device dìm chuỗi này với in nó ra serial.
Chương trình cho NodeMCU#includechar buff<>="Hello Slave
";void setup() Serial.begin(9600); /* begin serial with 9600 baud */ SPI.begin(); /* begin SPI */void loop() for(inti=0; isizeof buff; i++) /* transfer buff data per second */ SPI.transfer(buff); delay(1000); Vậy là mình đã thực hiện giao tiếp truyền dấn data tự ESP8266/NodeMCU quý phái Arduino Uno/Mega với các chuẩn chỉnh giao tiếp UART,I2C, SPI rồi, giờ thì các chúng ta cũng có thể thoải mái trí tuệ sáng tạo và nghiên cứu với dự án của chính mình nhé. Để cùng cả nhà học hỏi nhiều hơn thế nữa về PCB hay say đắm Group: padinno.com Cần tối ưu PCB liên hệ ngay: padinno.com Email của bạn sẽ không được hiển thị công khai. Các trường đề xuất được ghi lại * Bình luận Tên * Email * Trang website lưu tên của tôi, email, và website trong trình chú tâm này cho lần comment kế tiếp của tôi. Điện Tử Hay ( padinno.com ) là trang liên kết đam mê trí tuệ sáng tạo và chia sẻ kiến thức về chế đồ, lập trình, các dự án arduino và những mạch năng lượng điện tử. Xung quanh ra, chúng tôi còn cung ứng các mạch năng lượng điện tử và hộ trợ làm cho mạch điện tử PCB với công nghệ SMT. padinno.com là trang liên kết đam mê sáng tạo và share kiến thức về chế đồ, lập trình, các dự án arduino và các mạch điện tử. Ko kể ra, chúng tôi còn hỗ trợ các mạch năng lượng điện tử cùng hộ trợ có tác dụng mạch năng lượng điện tử PCB với công nghệ SMT. Giới Thiệu Chung Bảo Hành và Đổi Trả Phí Ship COD Quy Trình Gia Hàng Báo Giá cung ứng SMT Hướng Dẫn Đặt Hàng Hình Thức Thanh Toán Hướng Dẫn Liên Hệ
#include char buff <100>;volatile byte index;volatile bool receivedone; /* use reception complete flag */void thiết lập (void) Serial.begin (9600); SPCR void loop (void) if (receivedone) /* check and print received buffer if any */ buffTạm kết
Trả lời Hủy
Về bọn chúng Tôi
Thông Tin Chung
Hướng Dẫn