Arduino, Ứng Dụng Arduino

Nạp code từ xa cho arduino không cần dùng dây

Nap-code-arduino-thong-qua-bluetooth

Bạn đang làm việc với board Arduino, chắc hẳn bạn đã phải nạp code cho Arduino để thực hiện một “project Blink Led” thần thánh rồi 😃 . Thế bạn có cảm thấy phiền khi phải liên tục cắm dây nạp vào Module để tiến hành nạp code cho Arduino, nhất là các dự án thực hiện cần kết nối với phần cứng cồng kềnh, dự án xe điều khiển, chế tạo drone, hay các dự án cần kiểm tra liên tục. Nạp code từ xa cho Arduino có được không ta? 🤔

Bài viết bạn nên đọc:

Hôm nay ESPITEK sẽ đem đến cho bạn một giải pháp nạp code từ xa cho arduino, thật đấy, bạn hoàn toàn có thể ngồi một chỗ và chỉ việc lả lướt đôi tay trên bàn phím mà thôi và cuối cùng chỉ với cú nhấp chuột bạn đã có thể nạp code cho arduino mà không cần dây lằng nhằng nữa.

XEM THÀNH QUẢ CỦA DỰ ÁN NHÉ

Cần chuẩn bị

  • Arduino UNO
  • Bluetooth Module HC05
  • Board lỗ
  • Rào đực, rào cái
  • Điện trở 1k, 2.2k
  • Tụ 0.1uF (1uF vẫn chạy phà phà nhé)
  • Pin 9V (Nguồn cấp cho Arduino Uno)

Module Bluetooth HC-05

Một module không quá xa lạ với các bạn rồi đúng không, với chuẩn giao tiếp SPP. Khoảng cách truyền nhận 20-30 mét, có thể cấu hình ở chế độ Master/Slave. Module khá phù hợp cho các dự án IOT cần điều khiển, giám sát không dây.

Module HC05

Chức năng các chân:

  • VCC: Chân cấp nguồn cho module (+5V).
  • GND: Chân Mass.
  • TX: Chân truyền tín hiệu UART.
  • RX: Chân nhận tín hiệu UART.
  • EN/KEY: Chân Enable của HC05. Nó có thể được thả nổi hoặc nối với chân nguồn 3.3v để cho phép Module hoạt động, nếu bạn nối với GND thì module sẽ không hoạt động.
  • STATE: Chân trạng thái (LOW-Không kết nối, HIGH-Có kết nối).

Tiến hành kết nối phần cứng

Kiểm tra giao tiếp giữa HC05 và Arduino Uno bằng tập lệnh AT

Kết nối Arduino và HC05 kiểm tra AT

HC-05  Arduino Uno
Vcc 5V
GND GND
Tx 2
Rx 3

Để vào chế độ AT của HC05, chúng ta cần sử dụng nút KEY. Đầu tiên nhấn nút cho đến khi đèn LED trên module bắt đầu nhấp nháy trong khoảng 2 giây. Nếu đèn LED bắt đầu nhấp nháy cứ sau 2 giây nghĩa là module đã vào chế độ AT. Bây giờ chúng ta có thể đưa các lệnh AT đến HC05 thông qua màn hình Serial của Arduino UNO. Hay đơn giản là chúng ta đang giao tiếp UART giữa Arduino và HC05.

Nếu HC05 không có nút nào, thì có thể kết nối chân KEY/EN của module với chân 3,3 volt để đưa HC05 vào chế độ AT.

Code kiểm tra giao tiếp Arduino và HC05

#include <SoftwareSerial.h>
SoftwareSerial HC05(2,3);

void setup()
{
Serial.begin(9600);
Serial.println("Enter AT commands:");
HC05.begin(38400);
}

void loop()
{
  if (HC05.available())
    Serial.write(HC05.read());
  if (Serial.available())
    HC05.write(Serial.read());
}

Cấu hình SoftwareSerial ảo ở chân 2 và 3 của Arduino Uno. Sau đó trong vòng Loop() ta sẽ kiểm tra ký tự đọc được từ HC05 và ghi ra màn hình Serial của Arduino và nếu có bất kỳ ký tự nào được nhập vào Serial Arduino thì sẽ gửi đến module HC05 ở đây chúng ta sẽ gửi các lệnh AT cần thiết.

Ý nghĩa các lệnh AT của HC05

Các lệnh AT phía dưới được dùng để gửi đến HC05 thông qua kết nối UART.

AT 

Kiểm tra module HC05 được kích hoạt hay chưa – HC05 sẽ trả về “OK”

AT+ORGL

Đưa module HC05 về chế độ mặc định: Ở chế độ Slave, mật khẩu: 1234 và tốc độ Baud rate : 38400 bits/sec.

AT+NAME= NAME

Đặt tên cho HC05 khi nó phát bluetooth, “NAME” chính là tên bạn muốn đặt.

 AT+ROLE=0

Cấu hình HC05 ở chế độ SLAVE.

AT+POLAR=1,0

Cấu hình chân led

AT+UART=115200,0,0

Cấu hình tốc độ giao tiếp

AT+PSWD

Đặt mật khẩu cho HC05

AT+INIT

Khởi tạo giao tiếp SPP

AT+RESET

Reset và thoát chế độ AT

Kết nối phần cứng để có thể nạp code từ xa cho Arduino

Sau khi kiểm tra giao tiếp giữa Arduino và HC05 ta tiến hành nối lại mạch theo sơ đồ sau để có thể nạp code từ xa cho arduino nhé.

Sơ đồ kết nối tổng thể

Để tiện hơn và chuyên nghiệp mình đã tạo các chân cắm và kết nối mạch theo nguyên lý ở hình trên

Sắp xếp link kiện

Hàn mặt dưới

Và đây là thành quả 🤣🤣

Mạch kết nối HC05 và Arduino

Tiếp theo ta sẽ cắm nguồn vào cho hệ thống vừa chế xong (pin 9v hoặc sạc dự phòng). Và sau đó dùng máy tính để kết nối với Bluetooth của HC05 phát ra.

Tìm thiết bị HC05

Tiến hành ghép nối

Ghép nối với HC05

Nhập mật khẩu để có thể kết nối đến module HC05

Nhập mật khẩu của HC05

Sau khi ghép nối thiết bị thành công, nhiệm vụ tiếp theo là tìm cổng COM cho module Bluetooth HC05. Hiển thị hai cổng COM, một là cổng nhận vào và một cổng gửi đi. Ở đây ta cần quan tâm đến COM gửi đi vì cần phải nạp code từ xa cho Arduino thông qua cổng này.

Cổng COM OUT/IN

Bước cuối cùng là tiến hành nạp code từ xa cho Arduino mà không cần dùng dây. Có thể dùng các chương trình bất kỳ, ở đây mình sử dụng Example Blink led có sẵn trên Arduino IDE. Chọn cổng COM gửi đi đã tìm thấy ở bước trên và Upload chương trình đến Arduino UNO qua kết nối Bluetooth.

Blink led

 

Bài viết đã giới thiệu các bạn một ứng dụng rất hay và hữu ích của Arduino và module Bluetooth đó là nạp code từ xa cho arduino, phù hợp cho mọi ứng dụng sử dụng Arduino. Ngoài ra thông qua cách giao tiếp với module HC05 bạn cũng có thể phát triển thêm nhận dữ liệu từ xa thông qua HC05 được gửi từ Arduino.

Chúc các bạn thành công!

Được gắn thẻ , ,

Trả lời

Email của bạn sẽ không được hiển thị công khai.