- Node.js là gì?
- Thành phần bắt buộc
- Sơ đồ mạch
- Thiết lập khung Node.js
- Cài đặt Thư viện Johnny-Five
- Đèn LED nhấp nháy với Arduino và Node.js
- Kiểm soát độ sáng đèn LED bằng Arduino và Máy chủ web Node.js
Chúng tôi đã thấy nhiều ví dụ về Nhấp nháy đèn LED bằng các Bộ vi điều khiển khác nhau và các ngôn ngữ lập trình khác nhau. Hôm nay, chúng ta sẽ sử dụng một khung JavaScript rất phổ biến Node.js để điều khiển đèn LED được kết nối với Arduino Uno. Chúng tôi cũng sẽ sử dụng Node.js để kiểm soát độ sáng của đèn LED từ trang web bằng Arduino. Bằng một vài chỉnh sửa và sử dụng ESP8266, điều này có thể được chuyển đổi thành một dự án IoT nơi đèn LED có thể được điều khiển từ mọi nơi.
Node.js là gì?
Các Node.js là một sử dụng rộng rãi khuôn khổ dựa trên JavaScript xây dựng trên JavaScript V8 động cơ của Google Chrome và ứng dụng trong việc phát triển I / O các ứng dụng web chuyên sâu như các ứng dụng một trang duy nhất, video streaming các trang web, vv
Chúng tôi đã thực hiện một hướng dẫn thông tin trước đây về Bắt đầu với Node.js và Raspberry Pi để điều khiển đèn LED. Trong hướng dẫn này, chúng ta sẽ làm theo cách tiếp cận tương tự, tức là đèn LED sẽ được điều khiển bằng hai phương pháp như:
- Đèn LED nhấp nháy đơn giản bằng cách viết mã JavaScript trong khung Node.js.
- Điều khiển độ sáng LED Sử dụng khung Node.js và giao diện web từ bất kỳ trình duyệt nào: Arduino UNO sẽ hoạt động như một máy chủ web và trang web HTML sẽ được lưu trữ trên PC hoặc Máy tính xách tay.
Thành phần bắt buộc
Phần cứng:
- Bảng Arduino UNO
- Đã dẫn
- Điện trở
Phần mềm:
- Arduino IDE: Để tải bản phác thảo lên Arduino UNO Board.
- Firmata: Là giao thức giao tiếp với các vi điều khiển khác nhau từ phần mềm trên máy tính, điện thoại thông minh,… Phần mềm Firmata có thể được tải trong bất kỳ bảng vi điều khiển nào (như Arduino, Teensy) và có thể nói chuyện với bất kỳ máy tính xách tay, PC hoặc điện thoại thông minh nào. Thư viện Firmata đi kèm với Arduino IDE, vì vậy không cần tải xuống từ bất cứ đâu. Chúng tôi đã thực hiện một bài hướng dẫn điều khiển Arduino bằng Raspberry Pi bằng pyFirmata.
- Johnny-Five: Johnny-Five là nền tảng Robotics và IoT dựa trên JavaScript được sử dụng để viết mã bằng JavaScript và Được sử dụng để làm cầu nối giữa Bảng Arduino và Máy tính. Johnny-Five đã được thử nghiệm với nhiều loại Bo mạch tương thích với Arduino như Arduino UNO, NANO, Promini, v.v. Trong hướng dẫn này, thư viện Johnny-Five phải được tải xuống để sử dụng tất cả các tính năng của nó. Hướng dẫn cài đặt sẽ được giải thích ở phần sau của hướng dẫn này.
Sơ đồ mạch
Sơ đồ mạch rất cơ bản, chúng ta chỉ cần kết nối một đèn LED với Arduino.Thiết lập khung Node.js
Trước khi bắt đầu viết mã và phát triển, Node.js phải được tải xuống và thiết lập. Để tải xuống môi trường Node.js, chỉ cần làm theo các bước đơn giản.
Bước 1: - Tải xuống tệp.exe của Node.js từ trang web chính thức của nó.
Bước 2: - Chạy.exe và làm theo hướng dẫn trong trình cài đặt.
Bước 3: - Khởi động lại máy tính của bạn theo khuyến nghị trong Tài liệu Node.js và cũng để sử dụng tất cả các tính năng của Node.js
Bước 4: - Để kiểm tra xem nút đã được cài đặt chưa, hãy mở Command Prompt và gõ Node –v
Bước 5: - Phiên bản Node.js sẽ được hiển thị cho biết Node.js đã được cài đặt.
Cài đặt Thư viện Johnny-Five
Bây giờ sau khi tải xuống Node.js, hãy tạo một Thư mục mới có tên “LED_Control” trong Tài liệu để giữ tất cả các tệp dự án ở một nơi. Mọi tệp dự án sẽ được giữ trong thư mục “ LED_Control ”. Bây giờ tải xuống Thư viện Johnny-Five trong thư mục “ LED_Control ”. Để tải xuống, hãy làm theo các bước bên dưới:
Bước 1: - Mở Command Prompt
Bước 2: - Đến “ LED_Control ” Folder bằng cách làm theo ' cd ' lệnh.
Bước 3: - Chạy lệnh ' npm install johnny-five'
Bước 4: - Thao tác này sẽ cài đặt tất cả các phụ thuộc của Johnny-Five.
Bước 5: - Cũng cài đặt các thư viện cần thiết được sử dụng trong hướng dẫn này để kiểm soát độ sáng của đèn LED. Có ba thư viện được sử dụng ở đây:
- express: Trình bao bọc máy chủ
- socket.i o: Thư viện WebSockets
- serialpor t: Trình bao bọc cổng nối tiếp
Bước 5: - Chạy lần lượt các lệnh dưới đây để cài đặt ba thư viện này.
npm cài đặt express npm cài đặt socket.io npm cài đặt serialport
Như đã nói trước đó, dự án được chia thành hai phần:
- Đầu tiên, đèn LED nhấp nháy Arduino với Node.js
- Thứ hai, Kiểm soát độ sáng đèn LED từ giao diện web bằng Arduino và Node.js.
Đèn LED nhấp nháy với Arduino và Node.js
Để nhấp nháy đèn LED, Arduino phải được Thiết lập để giao tiếp với Máy tính.
Thiết lập Arduino UNO cho đèn LED nhấp nháy:
Để Arduino UNO chấp nhận lệnh từ Máy tính xách tay đến Đèn LED điều khiển, phần sụn Firmata phải được tải vào Arduino UNO. Để tải phần mềm chương trình cơ sở dữ liệu, chỉ cần làm theo các bước đơn giản sau:
- Kết nối Arduino UNO bằng cáp USB
- Mở Arduino IDE và chọn bảng Arduino UNO (Nếu sử dụng bảng khác thì chọn bảng tương ứng) từ Công cụ.
- Chọn cổng COM tương ứng của Arduino UNO được kết nối
- Bây giờ hãy tìm Bản phác thảo Firmata bằng Menu -> Tệp -> Ví dụ -> Firmata -> StandardFirmata.
- Tải lên bản phác thảo “StandardFirmata” bằng cách đi tới Tệp -> Tải lên.
Thao tác này sẽ tải Bản phác thảo dữ liệu vào Arduino UNO và bây giờ Arduino UNO đã sẵn sàng chấp nhận bất kỳ lệnh nào từ máy tính.
Viết chương trình Node.js cho đèn LED nhấp nháy:
Để viết một chương trình Node.js, hãy mở bất kỳ trình soạn thảo văn bản nào (Notepad, Notepad ++, v.v.) và dán mã 'flash_led' được đính kèm ở cuối hướng dẫn này và lưu nó với phần mở rộng là '.js' tức là (flash_led.js) trong thư mục “LED_Control” đã tạo trước đó. Chúng ta sẽ thảo luận về các bước quan trọng trong tệp mã flash_led.js.
Bước đầu xác định chân của vi điều khiển nơi kết nối led. Trong ví dụ này, đèn LED được kết nối với Chân 5 của Arduino UNO. 'Var' trong Node.js đại diện cho khai báo biến.
var led_pin = 5;
Mô - đun johnny-five cần được bao gồm và bảng cần được chọn. Các mô-đun trong Node.js là thư viện. Hàm ' request () ' sẽ truy cập vào mô-đun.
var johnny_five = demand ("johnny-five"); var arduino_board = new johnny_five.Board ();
Câu lệnh console.log tương tự như câu lệnh print và nó sẽ in ra thông báo. Và chân LED được đặt ở chế độ đầu ra và độ trễ xác định được đưa ra để nhấp nháy led.
console.log ("Đèn LED đã bắt đầu nhấp nháy!"); var led = new johnny_five.Led (led_pin); led.blink (100);
Bây giờ để chạy chương trình, hãy làm theo các bước dưới đây:
- Mở Command Prompt
- Tìm thư mục “LED_Control” bằng cách làm theo lệnh 'cd'
- Chạy lệnh 'Node led_blink.js'. Nếu thực hiện thành công, nó sẽ hiển thị "Đèn LED đã bắt đầu nhấp nháy!" như trong hình bên dưới .
- Đèn led sẽ bắt đầu nhấp nháy ở Chân 5 của Arduino UNO.
- Và điều này kết thúc phần đầu tiên của hướng dẫn của chúng tôi, tức là Đèn LED nhấp nháy với Node.js
Kiểm soát độ sáng đèn LED bằng Arduino và Máy chủ web Node.js
Tương tự như Nhấp nháy đèn LED với Node.js, phần này cũng sẽ có một số phần như Thiết lập Arduino UNO, Thiết lập giao diện web và Viết chương trình Node.js.
Thiết lập Arduino UNO để kiểm soát độ sáng của đèn LED:
Để thiết lập Arduino UNO, chỉ cần tải bản phác thảo “ arduino_control.ino ” lên board Arduino UNO và thế là xong. Thao tác này sẽ thiết lập Bảng Arduino. Bạn có thể tải xuống mã hoàn chỉnh với các tệp HTML từ đây. Mã “ arduino_control.ino” có các bước quan trọng sau.
Ban đầu tốc độ truyền được đặt ở 9600.
Serial.begin (9600);
Cổng nối tiếp luôn tìm byte đến và byte được ghi vào Pin 5 là Pin PWM.
while (! Serial.available ()); analogWrite (5, Serial.read ());
Đó là nó. Điều này sẽ thiết lập Arduino để chốt byte vào chân PWM và sẽ thay đổi độ sáng của đèn LED.
Thiết lập giao diện web:
Để điều khiển độ sáng của đèn led bằng giao diện web, một đoạn mã HTML nhỏ được viết để có một giao diện trong Trình duyệt. Để có giao diện, hãy làm theo các bước đơn giản dưới đây:
- Tạo một thư mục mới có tên “public” bên trong thư mục “LED_Control” đã tạo trước đó.
- Bây giờ tải xuống các tệp “index.html” và “style.css” và di chuyển cả hai tệp vào bên trong thư mục “công cộng” đã tạo ở bước đầu tiên ở trên. Các tệp có thể được tải xuống từ đây.
Thao tác này sẽ tạo một thanh trượt trên trang web để điều khiển độ sáng của đèn LED bằng Node.js và Arduino.
Điều khiển đèn LED từ trang web rất thú vị để học và nó có thể được thực hiện với bộ vi điều khiển khác bằng cách tạo máy chủ web và lưu trữ trang web trên máy chủ web. Kiểm tra tất cả các dự án liên quan đến máy chủ web tại đây.
Viết chương trình Node.js để điều khiển độ sáng của đèn LED:
Bước tiếp theo sẽ là viết bản phác thảo “ Bright_control.js ” bằng Node.js và thực thi mã. Việc thực thi mã sẽ tương tự như Nhấp nháy đèn LED với Node.js.
Để viết một chương trình Node.js, hãy mở bất kỳ trình soạn thảo văn bản nào (Notepad, Notepad ++, v.v.) và dán mã 'Bright_control' được đính kèm ở cuối hướng dẫn này và lưu nó với phần mở rộng là '.js' tức là (Bright_control.js) trong thư mục “LED_Control” đã tạo trước đó. Bạn cũng có thể tải xuống mã từ đây.
Tương tự như chương trình Blink Led Node.js, phần này cũng sẽ sử dụng các module (thư viện). Bao gồm mô-đun 'express', 'http' và 'serial port'.
var express = request ('express'); ứng dụng = express (); server = request ('http'). createServer (ứng dụng); io = request ('socket.io'). nghe (máy chủ); var SerialPort = demand ("serialport") //. SerialPort
Bây giờ đặt cổng COM và tốc độ truyền. Lưu ý rằng trong windows, nó sẽ luôn là COM với phần mở rộng là số (COM6, COM4, COM24, v.v.), vì vậy hãy đặt bên dưới theo yêu cầu sau '/'. Cũng đặt buadrate.
var serialPort = new SerialPort ("/ COM4", {baudRate: 9600});
Bắt đầu lắng nghe máy chủ ở cổng 8080.
server.listen (8080);
Đặt độ sáng ở 0 ban đầu. Sau đó, chốt dữ liệu độ sáng vào IO bằng mô-đun ổ cắm, là mô-đun websocket. Dữ liệu sẽ nhận được bằng Giao diện Web sử dụng giao thức socket.
io.sockets.on ('connection', function (socket) { socket.on ('led', function (data) { Bright = data.value; var buf = new Buffer (1); buf.writeUInt8 (Bright, 0)); serialPort.write (buf);
Bây giờ phát ra giá trị độ sáng LED nhận được từ ổ cắm đến chân LED.
io.sockets.emit ('led', {giá trị: độ sáng}); }); socket.emit ('led', {giá trị: độ sáng}); });
Bây giờ chỉ để gỡ lỗi, hãy thêm một câu lệnh in vào cuối. Console.log là một câu lệnh in trong Node.js.
console.log ("Máy chủ Web đã khởi động, truy cập 'http: // localhost: 8080' trong Trình duyệt của bạn.");
Bây giờ để chạy chương trình bằng cách làm theo các bước dưới đây:
- Mở Command Prompt
- Tìm thư mục “LED_Control” bằng cách làm theo lệnh 'cd'
- Chạy lệnh 'Node Bright_control.js'. Nếu được thực thi thành công, nó sẽ hiển thị "Máy chủ Web đã khởi động, hãy truy cập" http: // localhost: 8080 "trong Trình duyệt của bạn." ngay bên dưới lệnh .
- Bây giờ, hãy truy cập trình duyệt của bạn và nhập “localhost: 8080” vào url.
- Để thay đổi độ sáng, chỉ cần di chuyển thanh trượt từ các giá trị 0-255.
Các mã hoàn chỉnh và video làm việc của cả hai phần được đính kèm dưới đây. Ngoài ra nếu bạn có bất kỳ nghi ngờ hoặc đề xuất nào thì bạn có thể liên hệ với chúng tôi thông qua diễn đàn hoặc bình luận bên dưới. Tất cả các tệp mã cũng có thể được tải xuống từ đây.