Node.js: Node.js Raspberry Pi GPIO - Đèn LED và nút bấm


Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên
Node.js Raspberry Pi GPIO - Đèn LED và nút bấm

Sử dụng cả Đầu vào và Đầu ra

Trong phần trước, chúng ta đã học cách sử dụng Raspberry Pi và GPIO của nó để tạo đèn LED nhấp nháy. Để làm được điều đó, chúng ta đã sử dụng chân GPIO làm "Đầu ra". Trong chương này, chúng ta sẽ sử dụng một chân GPIO khác làm "Đầu vào". Thay vì nhấp nháy trong 5 giây như phần trước thì lần này sẽ hướng dẫn, đèn LED sáng lên khi bạn nhấn một nút được kết nối với breadboard.

Vậy chúng ta cần gì?

Trong phần này, chúng ta sẽ tạo một ví dụ đơn giản trong đó chúng ta điều khiển đèn LED bằng Nút ấn.

Để làm được điều này, bạn cần:

  • Raspberry Pi với Raspian, internet, SSH, đã cài đặt Node.js
  • Mô-đun bật tắt cho Node.js
  • Breadboard (x1)
  • Điện trở 68 Ohm (x1)
  • Điện trở 1k Ohm (x1)
  • Đèn LED xuyên lỗ (x1)
  • Nút ấn (x1)
  • Dây cắm có hai đầu (đầu đực- đầu cái) (x4)
  • Dây cắm có hai đầu (đầu đực- đầu đực) (x1)

Nhấp vào liên kết trong danh sách trên để biết mô tả về các thành phần khác nhau.

Lưu ý: Điện trở bạn cần có thể khác với điện trở trong hướng dẫn đang sử dụng, tùy thuộc vào loại đèn LED bạn sử dụng. Hầu hết các đèn LED nhỏ chỉ cần một điện trở nhỏ, khoảng 200-500 ohms. Nói chung, giá trị chính xác mà bạn sử dụng không quan trọng, nhưng giá trị của điện trở càng nhỏ thì đèn LED càng sáng. 

(Trong phần này, chúng ta sẽ xây dựng trên mạch mà chúng ta đã xây dựng trong chương trước, vì vậy bạn sẽ nhận ra một số phần trong danh sách trên)

Xây dựng mạch

Bây giờ là lúc để xây dựng mạch trên Breadboard (theo hướng dẫn). Chúng ta sẽ sử dụng mạch mà chúng ta đã tạo trong phần trước làm điểm bắt đầu.Nếu bạn chưa quen với thiết bị điện tử, có một lời khuyễn dành cho bạn là nên tắt nguồn Raspberry Pi và sử dụng thảm chống tĩnh điện hoặc dây nối đất để tránh làm hỏng nó.

Tắt Raspberry Pi đúng cách bằng lệnh:

pi@w3demopi:~ $ sudo shutdown -h now

Sau khi đèn LED ngừng nhấp nháy trên Raspberry Pi, rút phích cắm nguồn khỏi Raspberry Pi (hoặc vặn dải nguồn mà nó được kết nối). 

Lưu ý: Chỉ rút phích cắm mà không tắt đúng cách có thể gây hỏng thẻ nhớ.

Raspberry Pi 3 with Breadboard. LED and Button circuit

Nhìn vào hình minh họa trên của mạch.

Bắt đầu với mạch chúng ta đã tạo trong phần trước:

  1. Trên Raspberry Pi, kết nối chân cái của dây với chân nguồn 5V. Trong ví dụ này đã sử dụng Chân vật lý 2 (5V, hàng 1, cột bên phải).
  2. Trên Breadboard, nối chân đực của dây nối với nguồn 5V, với Power Bus ở phía bên phải. Toàn bộ cột trong bảng mạch khung của bạn được kết nối với nhau, vì vậy hàng nào không quan trọng. Trong ví dụ này, chúng tôi đã đính kèm nó vào hàng 1.
  3. Trên Breadboard, kết nối nút ấn sao cho nó vừa với Rãnh. Trong ví dụ này, nó kết nối với hàng 13 và 15, cột E và F.
  4. Trên Breadboard, kết nối một chân của điện trở 1k ohm với cột Ground Bus ở bên phải và chân còn lại với hàng Tie-Point bên phải nơi nó kết nối với một trong các chân bên phải của nút ấn. Trong ví dụ này đã gắn một mặt vào hàng Tie-Point 13, cột J và mặt còn lại vào Ground Bus gần nhất.
  5. Trên Breadboard, kết nối một dây đực - đực từ Power Bus bên phải, đến hàng Tie-Point bên phải kết nối với chân còn lại của nút ấn. Trong ví dụ này đã gắn một bên vào hàng Tie-Point 15, cột J và bên kia vào lỗ Power Bus gần nhất.
  6. Trên Raspberry Pi, kết nối chân cái của dây với chân GPIO. Trong ví dụ này đã sử dụng Chân vật lý 11 (GPIO 17, hàng 6, cột bên trái).
  7. Trên Breadboard, kết nối chân nam của dây với hàng Tie-Point bên trái, chân Nút ấn nằm ngay trên chân kết nối Ground . Trong ví dụ này đã đính kèm nó vào hàng 13, cột A.

 Bây giờ mạch của bạn đã hoàn tất và các kết nối của bạn sẽ trông khá giống với hình minh họa ở trên.

Bây giờ là lúc khởi động Raspberry Pi và viết tập lệnh Node.js để tương tác với nó.

Raspberry Pi và Node.js LED và đoạn mã lệnh của nút ấn

Chuyển đến thư mục "nodetest" và tạo một tệp mới có tên "buttonled.js":

pi@w3demopi:~ $ nano buttonled.js

Tệp hiện đang mở và có thể được chỉnh sửa bằng Trình chỉnh sửa Nano tích hợp sẵn.

Viết, hoặc dán như sau:

var Gpio = require('onoff').Gpio//include onoff to interact with the GPIO
var LED = new Gpio(4'out'); //use GPIO pin 4 as output
var pushButton = new Gpio(17'in''both'); //use GPIO pin 17 as input, and 'both' button presses, and releases should be handled

pushButton.watch(function (err, value) { //Watch for hardware interrupts on pushButton GPIO, specify callback function
  if (err) { //if an error
    console.error('There was an error', err); //output error message to console
  return;
  }
  LED.writeSync(value); //turn LED on or off depending on the button state (0 or 1)
});

function unexportOnClose() { //function to run when exiting program
  LED.writeSync(0); // Turn LED off
  LED.unexport(); // Unexport LED GPIO to free resources
  pushButton.unexport(); // Unexport Button GPIO to free resources
};

process.on('SIGINT', unexportOnClose); //function to run when user closes using ctrl+c

 Nhấn "Ctrl+x" để lưu mã. Xác nhận bằng "y" và xác nhận tên bằng "Enter".

Chạy mã:

pi@w3demopi:~ $ node buttonled.js

Bây giờ, đèn LED sẽ bật khi bạn nhấn nút và tắt khi bạn nhả nút.

Kết thúc chương trình bằng Ctrl+c

 

« Trước: Truy vấn dữ liệu trong bộ sưu tập (Query)
Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên
Copied !!!