LG side by side fridge ER-CO là gì và cách khắc phục? https://appongtho.vn/cach-khac-phuc-tu-lanh-lg-bao-loi-er-co Full hướng dẫn tự sửa mã lỗi ER-C0 trên tủ lạnh LG bao gồm: nguyên nhân lỗi...
Giao tiếp ESP8266 Với Arduino – Điện Tử Hay
Muốn sử dụng được wifi nhưng phải rẻ thì ESP8266 là một sự lựa chọn không tồi, nhưng đang làm bạn lai bực mình vì không đủ chân để làm dự án của mình. Vậy phải làm thế nào ba giờ nhỉ? trả nhẽ lại phải mua nên ESP32! Không! Hôm nay Điện tử hay điện tử hay sẽ mách bạn một cách vừa rẻ, vừa sinh viên mà lại hiệu quả: đo là giao tiếp ESP8266 với Arduino Uno/Mega thông qua nhưng giao tiếp của các chuẩn UART, SPI, I2C một cách đơn giản, hữu hiệu nhât.
Các thứ những bạn cần sẵn sàng chuẩn bị để tiếp xúc :
Giao tiếp ESP8266 chuẩn UART
Có 2 cách để tiếp xúc UART giữa ESP8266 / NodeMCU :
- 1 là giao tiếp bằng cách code trên cả Uno/Mega và ESP8266/NodeMCU
- 2 là chỉ code trên Uno/Mega, trên ESP8266/NodeMCU flash thẳng firmware AT Command,
Hôm nay minh chỉ hướng dẫn bạn cách 1, cách 2 vui lòng bạn xem ở bài sau.
Bạn đang đọc: Giao tiếp ESP8266 Với Arduino – Điện Tử Hay
Sơ đồ 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ó với 2 chân RX và TX. Sau đó thông số kỹ thuật với vận tốc baud là 9600 .
#include
SoftwareSerial s(3, 1);
void setup() {
s.begin(9600);
}
void loop() {
s.write(123);
delay(1000);
}
Code Arduino Uno/Mega
Chương trình sau nhận thông tin, tiên phong là tạo ra biến để nhận data, sau đó là setup baud 9600 để nhận data này .
int data;
void setup() {
Serial3.begin(9600);
}
void loop() {
data = Serial.read();
delay(1000);
}
Kết quả
Quan sát trên serial port sẽ thấy data ‘ 123 ’ được gửi qua Uno / Mega
Giao tiếp ESP8266 chuẩn I2C
Khái niệm
I2C ( Inter-Integrated Circuit ) là giao thức liên kết giao diện bus tiếp nối đuôi nhau. Nó cũng được gọi là TWI vì nó chỉ sử dụng hai dây để tiếp xúc. Hai chân này là SDA ( đường data ) và SCL ( đường clock ) .
I2C là giao thức tiếp thị quảng cáo dựa trên sự thừa nhận, tức là phát tín hiệu kiểm tra xác nhận từ bên nhận sau khi truyền dữ liệu để biết liệu dữ liệu có được nhận thành công xuất sắc hay không .
Hai chính sách thao tác của I2C :
- Master mode
- Slave mode
Dây SDA ( đường dữ liệu ) được sử dụng để trao đổi dữ liệu giữa thiết bị master và thiết bị slave. SCL ( đường xung nhịp đồng hồ đeo tay ) được sử dụng cho đồng hồ đeo tay đồng nhất ở giữa thiết bị master và slave .
Thiết bị master mở màn tiếp xúc với một thiết bị slave. Thiết bị master nhu yếu địa chỉ thiết slave để mở màn tiếp xúc với thiết bị slave. Thiết bị Slave phản hồi cho thiết bị master khi thiết bị master được xử lý .
Sơ sơ lý thuyết thế thôi, đi cụ thể vào thực hành ta sẽ viết chương trình Arduino cho NodeMCU là I2C master và viết chương trình Arduino cho Arduino Uno/Mega là I2C Slave. Master sẽ gửi chuỗi hello slave
đến slave và slave sẽ gửi chuổi hello master
phản hồi lại.
- Master Device: NodeMCU
- Slave Device: Arduino Uno
- Slave Device Address: 8
Sơ đồ kết nối
Chương trình
Code NodeMCU
#include
void setup() {
Serial.begin(9600);
Wire.begin(D1, D2);
}
void loop() {
Wire.beginTransmission(8);
Wire.write(" Hello Slave ");
Wire.endTransmission();
Wire.requestFrom(8, 13);
while(Wire.available()){
char c = Wire.read();
Serial.print(c);
}
Serial.println();
delay(1000);
}
Code Uno/Mega
#include
void setup() {
Wire.begin(8);
Wire.onReceive(receiveEvent);
Wire.onRequest(requestEvent);
Serial.begin(9600);
}
void loop() {
delay(100);
}
void receiveEvent(int
howMany) {
while (0 < Wire.available()) {
char c = Wire.read();
Serial.print(c);
}
Serial.println();
}
void requestEvent() {
Wire.write(" Hello Master ");
}
Kết quả
Đây là hiệu quả mình test thử giữa ESP8266 / NodeMCU và Arduino Mega
Giao tiếp ESP8266 chuẩn SPI
Khái niệm
SPI ( Serial Peripheral Interface ) là chuẩn tiếp xúc dạng bus được đưa ra bởi Motorola Corp .
- SPI dùng 4 chân kết nối, nên ta thường gọi nó là kết nối dạng 4 dây.
- SPI là full duplex master-slave communication protocol. Có nghĩa là chỉ một master và một slave 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 có thể làm việc mở 2 mode cơ bản là SPI Master Mode và SPI Slave Mode.
- Master Device sẽ phản hồi thông tin thiết lập kết nối. Master Device tạo ra Serial Clock để đồng bộ data truyền nhận. Master Device còn có thể quản lý nhiều slave devices trên bus bằng việc lựa chọn từng cái.
ESP8266 có chân SPI ( SD1, CMD, SD0, CLK ) dùng cho Quad-SPI communication với flash memory trên ESP-12E, vì thếta sẽ không hề sử dụng những chân này được, ta sẽ dùng những chân sửa chữa thay thế là GPIO14-GPIO17, những bạn hoàn toàn có thể xem hình dưới đây .
- MISO (Master In Slave Out): Master nhận data và slave truyền data qua pin này.
- MOSI (Master Out Slave In): Master truyền data và slave nhận data qua pin này.
- SCLK (Serial Clock): Master tạo clock cho kết nối, slave dùng clock này. Chỉ duy nhất master có thể thiết lập được serial clock.
- CS (Chip Select): Master có thể lựa chọn slave device thông qua pin này để bắt đầu kết nối với nó.
Sơ đồ kết nối
Chương trình
Chúng ta sẽ viết chương trình tiếp xúc SPI cho ESP8266 / NodeMCU và Uno / Mega, ở đây NodeMCU là master device và Uno / Mega là slave device .
NodeMCU sẽ gửi lời chào với chuỗi “ Hello Slave ” với ‘ \ n ’ ở cuối chuỗi. Uno / Mega Slave device nhận chuỗi này và in nó ra serial .
Chương trình cho NodeMCU
#include
char buff[]=" Hello Slave \ n ";
void setup() {
Serial.begin(9600);
SPI.begin();
}
void loop() {
for(inti=0; i
Chương trình cho Mega/Uno
#include
char buff [100];
volatile byte index;
volatile bool receivedone;
void setup (void)
{
Serial.begin (9600);
SPCR | = bit(SPE);
pinMode(MISO, OUTPUT);
index = 0;
receivedone = false;
SPI.attachInterrupt();
}
void loop (void)
{
if (receivedone)
{
buff[index] = 0;
Serial.println(buff);
index = 0;
receivedone = false;
}
}
ISR (SPI_STC_vect)
{
uint8_t oldsrg = SREG;
cli();
char c = SPDR;
if (index
Kết quả
Kiểm tra trên terminal của Uno sẽ có thông tin “ Hello Slave ”
Tạm kết
Vậy là mình đã triển khai tiếp xúc truyền nhận data từ ESP8266 / NodeMCU sang Arduino Uno / Mega với những chuẩn tiếp xúc UART, I2C, SPI rồi, giờ thì những bạn hoàn toàn có thể tự do phát minh sáng tạo và thử nghiệm với dự án Bất Động Sản của mình nhé .
Để cùng nhau học hỏi nhiều hơn về PCB hay thích Group: Dientuhay
Cần gia công PCB liên hệ ngay: Dientuhay
Source: https://vh2.com.vn
Category : Bảo Mật