- Node.js 란 무엇입니까?
- 필요한 구성 요소
- 회로도
- Node.js 프레임 워크 설정
- Johnny-Five 라이브러리 설치
- Arduino 및 Node.js로 LED 깜박임
- Arduino 및 Node.js 웹 서버를 사용하여 LED 밝기 제어
우리는 다른 마이크로 컨트롤러와 다른 프로그래밍 언어를 사용하여 LED를 깜박이는 수많은 예를 보았습니다. 오늘은 매우 인기있는 JavaScript 프레임 워크 Node.js를 사용하여 Arduino Uno에 연결된 LED를 제어합니다. 또한 Node.js를 사용하여 Arduino를 사용하는 웹 페이지에서 LED의 밝기 를 제어합니다. 몇 번의 조정과 ESP8266을 사용하면 어디에서나 LED를 제어 할 수있는 IoT 프로젝트로 변환 할 수 있습니다.
Node.js 란 무엇입니까?
Node.js를가 개발 구글 크롬의 자바 스크립트 V8 엔진을 기반으로하고 적용 널리 사용되는 자바 스크립트 기반의 프레임 워크 I / O와 같은 단일 페이지 응용 프로그램, 비디오 스트리밍 사이트 등 집중적 인 웹 애플리케이션
LED를 제어하기 위해 Node.js 및 Raspberry Pi 시작하기에 대한 유익한 자습서를 이전에 수행했습니다. 이 튜토리얼에서는 비슷한 접근 방식을 따를 것입니다. 즉, LED는 다음과 같은 두 가지 방법을 사용하여 제어됩니다.
- Node.js 프레임 워크에서 JavaScript 코드를 작성하여 간단한 LED 깜박임.
- Node.js 프레임 워크와 모든 브라우저의 웹 인터페이스를 사용한 LED 밝기 제어: Arduino UNO는 웹 서버로 작동하고 HTML 웹 페이지는 PC 또는 노트북에서 호스팅됩니다.
필요한 구성 요소
하드웨어:
- Arduino UNO 보드
- 주도
- 저항기
소프트웨어:
- Arduino IDE: Arduino UNO 보드에 스케치 업로드 용.
- Firmata: 컴퓨터, 스마트 폰 등의 소프트웨어에서 다른 마이크로 컨트롤러와 통신하기위한 프로토콜입니다. Firmata 펌웨어는 모든 마이크로 컨트롤러 보드 (예: Arduino, Teensy)에로드 할 수 있으며 모든 랩톱, PC 또는 스마트 폰과 통신 할 수 있습니다. Firmata Library는 Arduino IDE와 함께 제공되므로 어디서나 다운로드 할 필요가 없습니다. pyFirmata를 사용하여 Raspberry Pi로 Arduino를 제어하는 방법에 대한 자습서를 수행했습니다.
- Johnny-Five: Johnny-Five는 JavaScript로 코드를 작성하고 Arduino 보드와 컴퓨터를 연결하는 데 사용되는 JavaScript 기반 로봇 및 IoT 플랫폼입니다. Johnny-Five는 Arduino UNO, NANO, Promini 등과 같은 다양한 Arduino 호환 보드로 테스트되었습니다.이 튜토리얼에서 모든 기능을 사용하려면 Johnny-Five 라이브러리를 다운로드해야합니다. 설치 가이드는이 자습서의 뒷부분에서 설명합니다.
회로도
회로도는 매우 기본적이므로 Arduino와 LED를 연결하기 만하면됩니다.Node.js 프레임 워크 설정
코딩 및 개발을 시작하기 전에 Node.js를 다운로드하고 설정해야합니다. Node.js 환경을 다운로드하려면 간단한 단계를 따르십시오.
1 단계: 공식 웹 사이트에서 Node.js의.exe 파일을 다운로드합니다.
2 단계:.exe를 실행하고 설치 프로그램의 주어진 지침을 따릅니다.
3 단계: Node.js 문서에서 권장하는대로 컴퓨터를 다시 시작하고 Node.js의 모든 기능을 사용합니다.
4 단계: 노드가 설치되었는지 확인하려면 명령 프롬프트를 열고 Node –v를 입력합니다.
5 단계: Node.js가 설치되었음을 나타내는 Node.js 버전이 표시됩니다.
Johnny-Five 라이브러리 설치
이제 Node.js를 다운로드 한 후 문서에 "LED_Control" 이라는 새 폴더를 만들어 모든 프로젝트 파일을 한 곳에 보관합니다. 모든 프로젝트 파일은“ LED_Control ”폴더에 보관됩니다. 이제“ LED_Control ”폴더 에서 Johnny-Five 라이브러리를 다운로드하십시오. 다운로드하려면 다음 단계를 따르십시오.
1 단계: 명령 프롬프트 열기
2 단계:- ' cd '명령 을 따라 “ LED_Control ”폴더로 이동합니다.
3 단계:- ' npm install johnny-five' 명령 실행
4 단계: Johnny-Five의 모든 종속성을 설치합니다.
5 단계: LED 밝기를 제어하기 위해이 자습서에서 사용되는 필수 라이브러리도 설치합니다. 여기에는 세 개의 라이브러리가 사용됩니다.
- 익스프레스: HTTP 서버 래퍼
- socket.i o: WebSockets 라이브러리
- serialpor의 t: 직렬 포트 래퍼
5 단계: 아래 명령을 하나씩 실행하여이 세 라이브러리를 설치합니다.
npm install express npm install socket.io npm install serialport
앞서 말했듯이이 프로젝트는 두 부분으로 나뉩니다.
- 첫째, Arduino Blinking LED with Node.js
- 둘째, Arduino 및 Node.js를 사용하여 웹 인터페이스에서 LED 밝기를 제어합니다.
Arduino 및 Node.js로 LED 깜박임
LED를 깜박이려면 Arduino가 컴퓨터와 통신하도록 설정해야합니다.
깜박이는 LED를위한 Arduino UNO 설정:
Arduino UNO가 노트북에서 제어 LED로 명령을 받아들이도록하려면 Firmata 펌웨어를 Arduino UNO에로드해야합니다. Firmata 펌웨어를로드 하려면 다음의 간단한 단계를 따르십시오.
- 연결 USB 케이블을 사용하여 아두 이노 UNO를
- Arduino IDE를 열고 도구 에서 Arduino UNO 보드 (다른 보드를 사용하는 경우 각각 선택)를 선택합니다.
- 연결된 Arduino UNO의 각 COM 포트를 선택하십시오.
- 이제 메뉴-> 파일-> 예-> Firmata-> StandardFirmata를 사용하여 Firmata Sketch를 찾습니다 .
- 파일-> 업로드로 이동 하여 "StandardFirmata" 스케치를 업로드합니다.
그러면 Firmata Sketch가 Arduino UNO에로드되고 이제 Arduino UNO가 컴퓨터에서 명령을받을 준비가되었습니다.
LED 점멸을위한 Node.js 프로그램 작성:
Node.js 프로그램을 작성하려면 텍스트 편집기 (Notepad, Notepad ++ 등)를 열고이 튜토리얼 끝에 첨부 된 'blink_led' 코드를 붙여넣고 '.js' 확장자 (예: blink_led.js)로 저장합니다. 에서 "LED_Control" 이전에 생성 된 폴더. blink_led.js 코드 파일 에서 중요한 단계를 논의 할 것 입니다.
처음에는 LED가 연결된 마이크로 컨트롤러의 핀을 정의하십시오. 이 예에서 LED는 Arduino UNO의 핀 5에 연결됩니다. Node.js의 'var'는 변수 선언을 나타냅니다.
var led_pin = 5;
조니 개의 모듈 요구 사항이 포함되어야하고 이사회의 요구가 선택되어야한다. Node.js의 모듈은 라이브러리입니다. ' require () ' 함수 는 모듈에 액세스합니다.
var johnny_five = require ("johnny-five"); var arduino_board = new johnny_five.Board ();
을 console.log 문은 인쇄 문과 유사하며 메시지를 인쇄합니다. 그리고 LED 핀은 출력 모드로 설정되고 정의 된 지연은 깜박임 LED로 주어집니다.
console.log ("LED가 깜박이기 시작했습니다!"); var led = new johnny_five.Led (led_pin); led.blink (100);
이제 프로그램을 실행하려면 다음 단계를 따르십시오.
- 명령 프롬프트 열기
- 'cd' 명령 을 따라 “LED_Control” 폴더를 찾습니다.
- 실행 '노드 led_blink.js' 명령. 성공적으로 실행되면 "LED가 깜박 이기 시작했습니다!" 가 표시됩니다 . 아래 이미지와 같이 .
- LED는 Arduino UNO 핀 5에서 깜박이기 시작합니다.
- 이것으로 튜토리얼의 첫 번째 부분 인 Node.js로 LED 깜박임
Arduino 및 Node.js 웹 서버를 사용하여 LED 밝기 제어
Node.js로 LED 깜박임과 유사 하게이 섹션에는 Arduino UNO 설정, 웹 인터페이스 설정 및 Node.js 프로그램 작성과 같은 일부 부분도 포함됩니다.
LED의 밝기를 제어하도록 Arduino UNO 설정:
Arduino UNO를 설정하려면 스케치“ arduino_control.ino ”를 Arduino UNO 보드에 업로드하기 만하면 됩니다. 그러면 Arduino Board가 설정됩니다. 여기에서 HTML 파일이 포함 된 전체 코드를 다운로드 할 수 있습니다. “ arduino_control.ino” 코드에는 다음과 같은 중요한 단계가 포함됩니다.
처음에는 전송 속도가 9600으로 설정되어 있습니다.
Serial.begin (9600);
직렬 포트는 항상 들어오는 바이트를 찾고 바이트는 PWM 핀인 핀 5에 기록됩니다.
while (! Serial.available ()); analogWrite (5, Serial.read ());
그게 다야. 이것은 Arduino가 바이트를 PWM 핀 에 래치하도록 설정하고 LED의 밝기를 변경합니다.
웹 인터페이스 설정:
웹 인터페이스를 사용하여 led의 밝기를 제어하기 위해 브라우저에 인터페이스 를 갖도록 HTML 코드 하나 가 작성됩니다. 인터페이스를 가지려면 아래의 간단한 단계를 따르십시오.
- 이전에 만든 "LED_Control" 폴더 안에 "public" 이라는 새 폴더를 만듭니다.
- 이제 "index.html" 및 "style.css" 파일을 다운로드하고 위의 첫 번째 단계에서 만든 "public" 폴더 로 두 파일을 모두 이동합니다. 여기에서 파일을 다운로드 할 수 있습니다.
그러면 Node.js와 Arduino를 사용하여 LED의 밝기를 제어하는 웹 페이지 에 슬라이더 가 생성됩니다.
웹 페이지에서 LED를 제어하는 것은 배우는 것이 흥미롭고 웹 서버를 만들고 웹 서버에서 웹 페이지를 호스팅하여 다른 마이크로 컨트롤러로 수행 할 수 있습니다. 여기에서 모든 웹 서버 관련 프로젝트를 확인하십시오.
LED의 밝기를 제어하는 Node.js 프로그램 작성:
다음 단계는 Node.js를 사용하여 "brightness_control.js" 스케치를 작성 하고 코드를 실행하는 것입니다. 코드 실행은 Node.js로 LED 깜박임 과 약간 유사합니다 .
Node.js 프로그램을 작성하려면 텍스트 편집기 (Notepad, Notepad ++ 등)를 열고이 자습서 끝에 첨부 된 'brightness_control' 코드를 붙여넣고 '.js' 확장자 (brightness_control.js)로 저장합니다. 에서 "LED_Control" 이전에 생성 된 폴더. 여기에서 코드를 다운로드 할 수도 있습니다.
Blink Led Node.js 프로그램과 마찬가지로이 섹션에서는 모듈 (라이브러리)도 사용합니다. 'express', 'http'및 'serial port'모듈을 포함합니다.
var express = require ('express'); 앱 = express (); 서버 = require ('http'). createServer (app); io = require ('socket.io'). listen (서버); var SerialPort = require ("serialport") //. SerialPort
이제 COM 포트와 전송 속도를 설정하십시오. Windows에서는 항상 확장 번호 (COM6, COM4, COM24 등)가있는 COM이므로 '/'뒤에 필요에 따라 아래에서 설정합니다. 또한 buadrate를 설정하십시오.
var serialPort = new SerialPort ("/ COM4", {baudRate: 9600});
포트 8080에서 서버 수신을 시작하십시오.
server.listen (8080);
처음에는 밝기를 0으로 설정하십시오. 그런 다음 websocket 모듈 인 sockets 모듈을 사용하여 밝기 데이터를 IO에 래치합니다. 데이터는 소켓 프로토콜을 사용하여 웹 인터페이스에 의해 수신됩니다.
io.sockets.on ('connection', function (socket) { socket.on ('led', function (data) { 밝기 = data.value; var buf = new Buffer (1); buf.writeUInt8 (밝기, 0); serialPort.write (buf);
이제 소켓에서 LED 핀으로 얻은 LED 밝기 값을 방출합니다.
io.sockets.emit ('led', {값: 밝기}); }); socket.emit ('led', {값: 밝기}); });
이제 디버그하기 위해 끝에 print 문을 추가합니다. Console.log 는 Node.js 의 인쇄 문 입니다.
console.log ("웹 서버 시작됨 브라우저에서 'http: // localhost: 8080'으로 이동하십시오.");
이제 아래 단계에 따라 프로그램을 실행하십시오.
- 명령 프롬프트 열기
- 'cd' 명령 을 따라 “LED_Control” 폴더를 찾습니다.
- 실행 '노드 brightness_control.js' 명령. 성공적으로 실행되면 "웹 서버가 시작되었습니다. 브라우저에서"http: // localhost: 8080 "으로 이동하십시오." 명령 바로 아래 .
- 이제 브라우저로 이동하여 URL에 "localhost: 8080"을 입력합니다.
- 밝기를 변경하려면 슬라이더를 0-255 값에서 이동하십시오.
두 섹션 의 전체 코드와 작업 비디오 는 아래에 첨부되어 있습니다. 또한 의심이나 제안이 있으면 아래 포럼이나 의견을 통해 당사에 연락 할 수 있습니다. 모든 코드 파일은 여기에서 다운로드 할 수도 있습니다.