Tách Dữ Liệu Từ Chuỗi Trong Arduino

Hello Xin Chào Mọi Người! Hôm Nay Mình Xin Hướng Dẫn Các Bạn Các Tách Một Chuỗi Chứa Các Dữ Liệu Thành Các Dữ Liệu Riêng Biệt Để Xử Lí. Cụ Thể Mình Sẽ Viết Một Cái App Trên App Inventor Gửi Về Arduino Một Chuỗi Thông Qua Kết Nối Bluetooth.

1. Chuẩn Bị

Các bạn cần chuẩn bị:

Nối dây như sau:

HC05 Arduino
Vcc 5V
GND GND
Tx Rx1 (pin 19)
Rx Tx1 (pin 18)

2. Viết App

Ở đây mình sẽ không nói rõ mà chỉ đăng ảnh phần Code của app vì trên cộng đồng có khá nhiều bài nói về app inventor, bạn cứ search "app inventor" là ra.

App của mình gồm có 2 thanh trượt, mình sẽ code cho app gửi về hc05 1 chuỗi sau mỗi 100ms, chuỗi đó có cú pháp: "<giá trị thanh ray 1>,<giá trị thanh ray 2>" (Ví dụ "150,20").

Thiết kế App

Code cho việc kết nối bluetooth

Code gửi chuỗi qua bluetooth

3. Code Arduino

int val1, val2;
String chuoi = "90,90", chuoi1, chuoi2;
byte moc;
void setup()
{
    Serial1.begin(9600); // Serial 1 kết nối hc05
    Serial.begin(9600); //Serial này in ra màn hình máy tính
}

void loop()
{
    // Đọc và xử lí chuỗi từ app gửi về
    if (Serial1.available()) {
        chuoi = Serial1.readString(); //Serial đọc chuỗi
    }
    for (int i = 0; i < chuoi.length(); i++) {
        if (chuoi.charAt(i) == ',') {
            moc = i; //Tìm vị trí của dấu ","
        }
    }
    chuoi1 = chuoi;
    chuoi2 = chuoi;
    chuoi1.remove(moc); //Tách giá trị thanh trượt 1 ra chuoi1
    chuoi2.remove(0, moc + 1); ////Tách giá trị thanh trượt 2 ra chuoi2
    val1 = chuoi1.toInt(); //Chuyển chuoi1 thành số
    val2 = chuoi2.toInt(); //Chuyển chuoi2 thành số
    //In ra serial
    Serial.println(val1);
    Serial.println(val2);
}

Với đoạn code trên, nếu ai test với arduino không có hc05 và app thì arduino sẽ tách chuỗi "90,90" thành 2 giá trị 90 và 90 để in ra Serial trên máy tính.

Ai muốn tìm hiểu thêm về mấy câu lệnh xử lí chuỗi trong code này thì vào bài này:

http://arduino.vn/reference/library/string/1/gioi-thieu/string-object-doi-tuong-chuoi-cuc-manh-tren-arduino

4. Lời Kết

Chúc các bạn thành công! Hi vọng bài viết này sẽ giúp ích cho bạn và chúc bạn có nhiều niềm vui với Arduino.

lên
9 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

iNut cảm biến - Bài 1: Bước đầu tiến vào thế giới IoT

Xin chào mọi người, cùng với AI thì IoT cũng là một xu thế chắc chắn sẽ phát triển trong cuộc cách mạng công nghiệp 4.0. Ngày trước, khi mới làm quen với các dự án liên quan đến IoT, mọi người thường gặp nhiều khó khăn do phải chuẩn bị gần như mọi thứ từ server tới client và tính ổn định, bảo mật của mô hình cũng khó được đảm bảo. Kể từ khi các nền tảng IoT ra đời thì mọi thứ đã trở nên dễ dàng hơn. Sự đơn giản và tiện lợi khi làm các dự án IoT cũng ngày càng tăng theo dòng phát triển của các nền tảng ấy. Inut Platform chính là một trong những nền tảng như vậy, đây là một nền tảng do người Việt sáng lập nên chắc chắn việc hỗ trợ khi làm dự án sẽ dễ dàng hơn rất nhiều. Chính vì vậy, hôm nay mình xin giới thiệu với các bạn seri bài viết hướng dẫn sử dụng iNut Cảm Biến - Một sản phẩm đa năng của nền tảng iNut.

lên
2 thành viên đã đánh giá bài viết này hữu ích.

Giới thiệu về board Blend Micro

Xin chào mọi người! Hôm nay mình xin giới thiệu với các bạn một board mạch thích hợp cho các dự án Bluetooth hay các dự án IOT. Đó là board Blend Micro.

lên
14 thành viên đã đánh giá bài viết này hữu ích.