Categories
Coding STEM

Sử dụng C++ để lập trình Raspberry Pi – “Đèn LED thông minh với Raspberry Pi”!

Hôm nay, chúng ta sẽ khám phá cách nói chuyện với Raspberry Pi bằng ngôn ngữ C++. Thay vì sử dụng Python hoặc NodeJS, chúng ta sẽ tiếp cận một ngôn ngữ gần gũi hơn với những ai đã từng làm việc với Raspberry Pi – đó chính là C++. Dễ dàng học hơn để lập trình Raspberry Pi với C++ cơ bản (chỉ cần kiến thức cơ bản về C++ là đủ), nên không cần phải lo lắng về việc phải trở thành chuyên gia ngôn ngữ này (đó là khi ta tiếp cận chuyên sâu). Hãy cùng nhau bắt đầu cuộc hành trình này ngay thôi!

Giới thiệu về dự án

Bạn có biết rằng, Raspberry Pi là một thiết bị nhỏ nhưng thần kỳ, có thể giúp chúng ta tạo ra những dự án sáng tạo và độc đáo không giới hạn?

Trong dự án này, chúng ta sẽ học cách lập trình một đèn LED thông minh với Raspberry Pi – một chiếc máy tính siêu nhỏ nhưng siêu thông minh. Nhưng đây không chỉ là một dự án đơn thuần, mà là một dự án đặc biệt có khả năng tự động điều chỉnh đèn LED dựa trên mức ánh sáng trong phòng!

Đúng vậy, bạn không cần phải bật hoặc tắt đèn LED bằng tay nữa. Raspberry Pi sẽ giúp chúng ta làm điều đó một cách thần kỳ, tự động bật đèn LED khi phòng trở nên tối, và tắt nó khi ánh sáng trở lại đủ sáng. Điều này sẽ giúp chúng ta tiết kiệm năng lượng và giúp môi trường trở nên xanh hơn.

Trong dự án này, chúng ta sẽ học cách kết nối các linh kiện với Raspberry Pi, viết mã C++ đơn giản để điều khiển đèn LED và sử dụng cảm biến ánh sáng để nhận biết độ sáng của phòng. Các bạn sẽ không chỉ là người tham gia, mà còn là nhà phát triển công nghệ thực thụ đấy!

Hãy sẵn sàng để cùng nhau khám phá thế giới tuyệt vời của Raspberry Pi với dự án “Đèn LED thông minh với Raspberry Pi”!

Nguyên lý hoạt động

Nguyên lý hoạt động của dự án này rất đơn giản và hữu ích! Chúng ta sẽ sử dụng một cảm biến đặc biệt gọi là “cảm biến ánh sáng” để giúp chúng ta điều chỉnh đèn LED một cách thông minh.

Cảm biến ánh sáng sẽ như một “mắt nhỏ” để đo lường mức ánh sáng trong phòng. Khi môi trường trở nên tối và không đủ ánh sáng, cảm biến sẽ báo cho Raspberry Pi biết rằng “Hỡi Raspberry Pi, bây giờ phòng đang tối đó!”.

Raspberry Pi là một thiết bị nhỏ nhưng thông minh, giống như một “trí não” siêu mạnh mẽ cho dự án. Khi nhận được thông tin từ cảm biến ánh sáng rằng phòng đang tối, Raspberry Pi sẽ nhanh chóng nói với đèn LED “Hãy bật lên đi, đèn LED thông minh ơi!”.

Và đèn LED sẽ tự động tỏa sáng, giống như một “ngôi sao nhỏ” trong phòng, giúp chúng ta nhìn thấy rõ hơn và thỏa sức thực hiện các hoạt động vui chơi, học tập và đọc sách khi ban đêm.

Nhưng khi ánh sáng trong phòng đủ sáng, cảm biến ánh sáng sẽ nói với Raspberry Pi “Đủ rồi, không cần đèn LED nữa đâu!”. Raspberry Pi sẽ thông báo cho đèn LED biết rằng “Đèn LED thông minh ơi, hãy tắt đi để tiết kiệm năng lượng nhé!”.

Và thế là, đèn LED thông minh sẽ tự động tắt đi, giúp tiết kiệm năng lượng, bảo vệ môi trường xung quanh chúng ta.

Chuẩn bị thiết bị Raspberry Pi

Để thực hiện điều này, chúng ta cần:

  1. Một đèn LED được kết nối đến chân GPIO của Raspberry Pi.
  2. Một cảm biến ánh sáng (ví dụ: cảm biến ánh sáng LDR) kết nối đến chân GPIO khác của Raspberry Pi.
  3. Chương trình C++ để kiểm tra giá trị của cảm biến ánh sáng và điều khiển đèn LED dựa trên giá trị đó.
Lập trình Raspberry Pi - đèn led thông minh
Lập trình Raspberry Pi – đèn led thông minh

Lập trình thiết bị với C++

Đoạn mã C++ dưới đây minh họa cách thực hiện việc này:

#include <wiringPi.h>
#include <iostream>

#define LED_PIN 17      // Chân GPIO điều khiển đèn LED
#define SENSOR_PIN 18   // Chân GPIO của cảm biến ánh sáng

int main() {
    if (wiringPiSetupGpio() == -1) {
        std::cerr << "Không thể thiết lập wiringPi. Hãy chạy chương trình với quyền root (sudo)." << std::endl;
        return 1;
    }

    pinMode(LED_PIN, OUTPUT);    // Đặt chân điều khiển đèn LED là OUTPUT
    pinMode(SENSOR_PIN, INPUT);  // Đặt chân cảm biến ánh sáng là INPUT

    while (true) {
        int lightValue = digitalRead(SENSOR_PIN);  // Đọc giá trị cảm biến ánh sáng

        // Cảm biến ánh sáng trả về giá trị 0 khi ánh sáng đủ sáng, và giá trị 1 khi ánh sáng thấp.
        if (lightValue == 1) {
            digitalWrite(LED_PIN, HIGH);  // Bật đèn LED
        } else {
            digitalWrite(LED_PIN, LOW);   // Tắt đèn LED
        }

        delay(1000);  // Chờ 1 giây trước khi đọc lại giá trị cảm biến ánh sáng
    }

    return 0;
}

Giải thích về đoạn code trên đây cho trẻ

Đoạn mã này giống như một “câu chuyện” về việc sử dụng Raspberry Pi để điều khiển một đèn LED thông minh dựa vào ánh sáng trong phòng.

Hãy tưởng tượng Raspberry Pi là một người bạn siêu thông minh có khả năng điều khiển đèn LED. Chúng ta sẽ hỏi bạn Raspberry Pi xem liệu ánh sáng trong phòng có đủ sáng không.

Bước đầu tiên, chúng ta cần nói với Raspberry Pi về những chân (chỗ) mà đèn LED và cảm biến ánh sáng được kết nối. Bạn Raspberry Pi nhớ chúng vào đầu “sổ tay” của mình nhé: “Đèn LED kết nối vào chân số 17 và cảm biến ánh sáng kết nối vào chân số 18.”

Sau khi chúng ta nói cho Raspberry Pi biết về những chân này, chúng ta sẽ đọc thông tin từ cảm biến ánh sáng bằng cách hỏi nó: “Hey cảm biến ánh sáng ơi, hãy nói cho mình biết mức ánh sáng trong phòng là bao nhiêu đi!”.

Cảm biến ánh sáng sẽ nhìn xung quanh và nếu phòng đủ sáng, nó sẽ trả lời bằng số 0. Còn nếu phòng tối, nó sẽ trả lời bằng số 1. Raspberry Pi nghe câu trả lời này và tự động điều khiển đèn LED dựa vào số mà cảm biến ánh sáng nói.

Nếu cảm biến ánh sáng nói “0” (phòng đủ sáng), bạn Raspberry Pi sẽ bật đèn LED để phòng thêm sáng và vui chơi thoải mái hơn. Nhưng nếu cảm biến ánh sáng nói “1” (phòng tối), bạn Raspberry Pi sẽ tắt đèn LED để tiết kiệm năng lượng.

Raspberry Pi cũng biết rằng việc kiểm tra ánh sáng không phải lúc nào cũng nhanh chóng. Vì vậy, sau mỗi lần hỏi cảm biến ánh sáng, bạn Raspberry Pi sẽ chờ một chút (1 giây) trước khi hỏi lại. Điều này giúp tránh việc hỏi quá nhanh và không lấy đúng thông tin.

Như vậy, chúng ta đã học cách sử dụng Raspberry Pi thông minh để tạo ra một đèn LED đặc biệt có khả năng tự điều chỉnh dựa vào mức ánh sáng trong phòng. Điều này giúp chúng ta tiết kiệm năng lượng và giữ cho môi trường xung quanh mình thật xanh và tốt đẹp.

Hãy cùng Trung tâm Năng khiếu BeeLance tìm hiểu thêm các dự án STEM thú vị cùng Raspberry Pi trong các bài viết tiếp theo nhé.