> 웹 프론트엔드 > JS 튜토리얼 > node.js를 사용하여 Arduino LCD에 웹 API를 표시합니다

node.js를 사용하여 Arduino LCD에 웹 API를 표시합니다

Christopher Nolan
풀어 주다: 2025-02-20 08:24:11
원래의
333명이 탐색했습니다.

node.js를 사용하여 Arduino LCD에 웹 API를 표시합니다 키 테이크 아웃

저자는 Node.js를 사용하여 Meetup API에 HTTP 요청을하는 스크립트를 작성하고 반환 된 JSON 데이터를 구문 분석하며 Arduino의 LCD에 무작위로 선택된 멤버 이름을 표시합니다. 저자는 또한 Node.js 서버를 설정하고 HTTP 요청을 작성하고 반환 된 데이터를 처리하는 방법에 대한 단계별 안내서를 제공합니다. 저자는 Johnny-Five 라이브러리가 Node.js를 통해 Arduino를 제어하는 ​​데 사용되며 요청 모듈은 Node.js 서버에서 Meetup API로 HTTP 요청을 만드는 데 사용됩니다. 밑줄 라이브러리는 반환 된 JSON 데이터를 구문 분석하는 데 사용됩니다.

저자는이 설정에 대한 다른 잠재적 용도를 제안함으로써 무시 메시지 표시, NBA 플레이 오프 점수에 대한 탭 유지 또는 웹 API에서 가져온 다른 데이터와 같은 다른 잠재적 용도를 제안함으로써 결론을 내립니다. 저자는 또한 독자 들이이 코드를 기반으로 자신의 프로젝트를 공유하도록 권장합니다.

    <.> lcds. 그들은 재미 있습니다. 빛나는 텍스트를 통해 말하면서 Arduino에게 목소리를 가져 오는 가장 멋진 방법 중 하나입니다. 이 기사에서는 웹 API에서 데이터를 가져와 Node.js. 시드니에서 매월 가장 좋아하는 모임은 IoT 시드니 모임입니다. 훌륭한 모임입니다 (당신은 함께해야합니다!). 모든 회의가 끝날 무렵, RSV를 한 사람들에게는 무작위 상을받습니다. 나는 이것이 진정한 IoT 스타일로 이루어질 때가되었다고 생각했기 때문에 MeetUp.com 이벤트 RSVP 정보를 끌어 내고 운이 좋은 멤버를 무작위로 선택하는 빠른 Arduino LCD 설정을 모았습니다. 모자에서 이름을 그리는 것보다 멋진 놀라움과 방법이 쉬울 것이라고 생각했습니다!
  • 그것은 또한 내가 Sitepoint에서 내가 쓰고있는 현재의 인터넷 기사 시리즈와 함께 깔끔하게 떨어집니다. 다양한 장치로 다양한 IoT 가능성을 탐색하고 있습니다. 지난주에 나는 Unity Game Engine에서 IoT 데이터를 사용하는 것을 보았고 그 전에는 Jawbone에서 데이터를 가져 오는 방법을 살펴 보았습니다. 시작하자! Arduino 스케치 이 예제에 사용할 스케치는 다음과 같습니다.
  • Sparkfun Inventors 키트에서 찾을 수있는 약간 수정 된 버전입니다. 온라인에서 찾을 수있는 LCD 스케치의 다른 변형이 있습니다. 아래의 JavaScript에서 정의하는 핀을 조정하면됩니다.
  • 우리의 JavaScript 코드 node.js javaScript 파일에 다음을 포함합니다
    <span>var express = require('express'),
    </span>	app <span>= express(),
    </span>	server <span>= require('http').<span>Server</span>(app),
    </span>	port <span>= 5000,
    </span>	five <span>= require('johnny-five'),
    </span>	request <span>= require('request'),
    </span>	_ <span>= require('underscore'),
    </span>	board <span>= new five<span>.Board</span>(),
    </span>	lcd<span>;
    </span>
    board<span>.on('ready', function() {
    </span>	lcd <span>= new five<span>.LCD</span>({
    </span>		<span>pins: [12, 11, 5, 4, 3, 2],
    </span>		<span>rows: 2,
    </span>		<span>cols: 16
    </span>	<span>});
    </span>
    	<span>this.repl.inject({
    </span>		<span>lcd: lcd
    </span>	<span>});
    </span><span>});
    </span>
    app<span>.get('/chooseMember/:event_id', function(req<span>, resp</span>) {
    </span>	<span>request({
    </span>		<span>url: 'https://api.meetup.com/2/rsvps?key=474cc9332345ea7d7e135f50653c&event_id='+req.params.event_id,
    </span>		<span>json: true
    </span>	<span>}, function(error<span>, response, body</span>) {
    </span>		<span>var members = _.pluck(body.results, 'member'),
    </span>			randomMember <span>= members[_.random(members.length - 1)];
    </span>		
    		resp<span>.json(randomMember);
    </span>
    		<span>console.log(randomMember.name);
    </span>
    		lcd<span>.clear().print(randomMember.name);
    </span>	<span>});
    </span><span>});
    </span>
    server<span>.listen(port, function() {
    </span>  <span>console.log('Listening on ' + port);
    </span><span>});</span>
    로그인 후 복사
    로그인 후 복사
    단계별로 설정 당신이 node.js에 꽤 굳어지면, 그 코드의 대부분이 이미 당신에게 이해 될 것입니다. 모든 사람이 같은 페이지에 있는지 확인하기 위해 각 비트를 설명하고 설정해야 할 다른 모든 것에 대한 지침을 제공합니다. 부터, 우리는 포트 5000에서 로컬 호스트 서버를 실행할 준비를 위해 Express Server 변수를 설정합니다.

    우리는 Johnny-Five를 포함해야 할 다소 중요한 것을 얻었습니다. 이것은 NPM 라이브러리로, node.js.

    그 후, 우리는 요청 모듈을 포함하고 있습니다. 우리는 이것을 사용하여 node.js 서버에서 Meetup API로 http 요청을 할 것입니다.

    물건을 매우 깨끗하고 단순하게 유지하기 위해 밑줄을 사용하여 데이터 배열을 거듭날 것입니다.

    마지막 두 변수는 Johnny-Five가 생성하는 Arduino 객체를 저장하는 데 사용할 보드 및 LCD 변수입니다.

    우리는 Arduino 보드에 액세스 할 준비가되기를 기다리는 것으로 시작하고 Johnny-Five는 보드가 갈 준비가되었을 때“준비된”이벤트를 보냅니다.

    이사회가 갈 준비가되면 Johnny-Five에게 우리가 어떤 종류의 LCD를 연결했는지 알려줍니다. 배열에서 핀을 위에서 아래로 정의합니다.
    <span>var express = require('express'),
    </span>	app <span>= express(),
    </span>	server <span>= require('http').<span>Server</span>(app),
    </span>	port <span>= 5000,</span>
    로그인 후 복사
    로그인 후 복사
    우리는 또한 LCD의 행과 열 수를 정의합니다. 제 경우에는 2 × 16 LCD입니다. 이 모든 것이 그렇게 보인다 :

    그러면 우리는 선택 사항 (그러나 포함하기에 편리한)이 있습니다.이 코드는 실행중인 명령 줄에서 LCD 함수에 액세스 할 수있는 코드가 있습니다 (기사의 뒷부분에서이를 표시하겠습니다) :
    five <span>= require('johnny-five'),</span>
    로그인 후 복사
    로그인 후 복사

    그런 다음, 우리는 우리가 설정 한 요청을받습니다. 이 요청에서 우리는 URL 내에서 이벤트 ID를 기대하고 있습니다. 예를 들어 http : // localhost : 5000/choosemember/221960710. 이벤트 ID는 이벤트 페이지를 방문 할 때 주소 표시 줄에서 찾을 수있는 이벤트 ID입니다.

    이 ​​ID를 찾고있는 GET 요청이 그렇게 보입니다.
    request <span>= require('request'),</span>
    로그인 후 복사
    그런 다음 코드의 복잡한 비트에 도달합니다! Meetup API에 대한 실제 HTTP 요청. 요청 함수를 통해 이에 액세스합니다. 우리는 여기에 두 가지를 전달합니다. 요청에 대한 HTTP 옵션과 콜백 기능. HTTP 호출 옵션에는 URL과 부울이 포함되어있어 JSON 객체를 기대하고 있습니다. 이것은 그렇게 보인다 :

    예리한 관찰자는 req.params.event_id를 사용하여 URL 문자열에서 요청 URL로 이벤트 ID를 전달하는 것을 알았습니다. 그러나 설명하지 않은 또 다른 문자가 있습니다. Meetup API에 액세스하려면 API 키가 필요합니다. 이 중 하나는 https://secure.meetup.com/meetup_api/key/ : 에서 찾을 수 있습니다node.js를 사용하여 Arduino LCD에 웹 API를 표시합니다 마지막으로, 반환 된 JSON 데이터를 사용하는 콜백 함수가 있습니다. 오류 처리없이 간단하고 간단하게 유지했지만 이것이 심각한 생산 수준 생성 인 경우 - 오류 변수에 대한 점검을 추가하십시오.

    . 콜백이 우리 신체 변수로 돌아올 JSON 출력은 다음과 같습니다.

    우리는 밑줄에서 _.pluck () 함수를 사용하여 많은 것을 필터링합니다. 이것은 우리가 RSV를 한 회원 인 API의 중요한 비트에 집중하는 데 도움이 될 것입니다. _.pluck () 함수는 결과 배열을 통해 각 멤버 정보 만 가져옵니다.

    그런 다음 _.members () 밑줄 함수를 사용하여 결과 배열에서 멤버를 무작위로 선택합니다.

    우리는 Express 서버를 통해 GET 요청에 대한 JSON 응답으로 해당 데이터를 반환하고 콘솔에 이름을 기록하여 누가 선택된 사람을 확인할 수 있습니다 :
    <span>var express = require('express'),
    </span>	app <span>= express(),
    </span>	server <span>= require('http').<span>Server</span>(app),
    </span>	port <span>= 5000,
    </span>	five <span>= require('johnny-five'),
    </span>	request <span>= require('request'),
    </span>	_ <span>= require('underscore'),
    </span>	board <span>= new five<span>.Board</span>(),
    </span>	lcd<span>;
    </span>
    board<span>.on('ready', function() {
    </span>	lcd <span>= new five<span>.LCD</span>({
    </span>		<span>pins: [12, 11, 5, 4, 3, 2],
    </span>		<span>rows: 2,
    </span>		<span>cols: 16
    </span>	<span>});
    </span>
    	<span>this.repl.inject({
    </span>		<span>lcd: lcd
    </span>	<span>});
    </span><span>});
    </span>
    app<span>.get('/chooseMember/:event_id', function(req<span>, resp</span>) {
    </span>	<span>request({
    </span>		<span>url: 'https://api.meetup.com/2/rsvps?key=474cc9332345ea7d7e135f50653c&event_id='+req.params.event_id,
    </span>		<span>json: true
    </span>	<span>}, function(error<span>, response, body</span>) {
    </span>		<span>var members = _.pluck(body.results, 'member'),
    </span>			randomMember <span>= members[_.random(members.length - 1)];
    </span>		
    		resp<span>.json(randomMember);
    </span>
    		<span>console.log(randomMember.name);
    </span>
    		lcd<span>.clear().print(randomMember.name);
    </span>	<span>});
    </span><span>});
    </span>
    server<span>.listen(port, function() {
    </span>  <span>console.log('Listening on ' + port);
    </span><span>});</span>
    로그인 후 복사
    로그인 후 복사
    .

    그런 다음 LCD Johnny-Five 객체를 사용하여 LCD에 멤버의 이름을 인쇄합니다. LCD.Clear ()를 사용하여 현재 위에있는 모든 것의 LCD를 지우고 lcd.print ()를 사용하여 이름 문자를 인쇄하는 것으로 시작합니다.

    당신은 이것을 실행할 때 다른 줄로 감싸기보다는 긴 이름이 잘릴 것임을 알 수 있습니다. 두 번째 줄에 물건을 감이려면 randommember.name을 두 개의 16 문자 문자열로 분리하고 첫 번째 문자열을 인쇄 한 다음 lcd.cursor (1, 0)를 사용하십시오. 두 번째 줄을 인쇄하기 전에 두 번째 줄로 이동합니다. 필자의 경우, 우리가 정말로 필요한 것은 누구의 이름을 끌 수 있다고 말할 수 있기 때문에 필요하지 않았습니다. Arduino에서 달리기를 얻는다 우리는 node.js 코드를 준비했습니다. 이제 Arduino를 연결하고 StandardFirmata 스케치가 업로드되어 있는지 확인하십시오.
    <span>var express = require('express'),
    </span>	app <span>= express(),
    </span>	server <span>= require('http').<span>Server</span>(app),
    </span>	port <span>= 5000,</span>
    로그인 후 복사
    로그인 후 복사
    우리는 또한 모든 종속성을 정리해야합니다. 내 package.json 파일은 다음과 같습니다

    자신의 프로젝트에 자유롭게 조정하십시오. 원하는 것은 그 종속성입니다. 그런 다음 Package.json 파일을 정렬 한 후에는 콘솔을 열고 코드의 위치로 이동하십시오. 이 멋진 명령을 실행하십시오 :

    뒤에 다음과 같은 것 :
    five <span>= require('johnny-five'),</span>
    로그인 후 복사
    로그인 후 복사
    런닝을 사용하면 이제 http : // localhost : 5000/choosemember/221960710 (물론 자신의 이벤트 ID를 대체)으로 이동할 수 있어야합니다. >

    다시 실행하면 새로운 RSVP가 나타납니다. 모든 것이 잘 진행되고 있다면,이 이름은 Arduino의 LCD에 나타나야합니다! node.js를 사용하여 Arduino LCD에 웹 API를 표시합니다 우리가 언급 한 대체 우리는 이것을 이전에 node.js 서버에서 ject.inject라고 말하는 약간의 코드를 포함 시켰습니다. 이것이하는 일은 Node.js 서버가 실행중인 동안 LCD 화면에 표시되는 내용을 설정하는 동안 터미널 내에서 명령을 실행할 수 있도록하는 것입니다. 우리가 lcd.print ()를 입력하면 마법이 일어날 수 있습니다.

    글쎄…

    node.js를 사용하여 Arduino LCD에 웹 API를 표시합니다 결론 우리는 LCD에 이벤트 그룹의 무작위로 선택된 멤버를 성공적으로 얻었습니다! 이 같은 아이디어는 다른 여러 API에 적용될 수 있습니다. 요청 호출과 데이터 처리 방법 만 조정하십시오. 하우스 메이트를 위해 LCD에 Spooky 메시지를 남겨두고 최신 NBA 플레이 오프 점수에 대한 탭을 보관하거나 다른 모든 것이 당신의 공상을 취하십시오! 이 코드를 기반으로 재미있는 일을 하시겠습니까? 주석에 메모를 남겨두고 주변에 공유하십시오.보고 싶습니다!

    Arduino LCD의 웹 API에 대한 자주 묻는 질문 (FAQ) Arduino LCD를 인터넷에 연결하려면 어떻게해야합니까?

    node.js를 사용하여 Arduino LCD에 웹 API를 표시합니다 Arduino LCD를 인터넷에 연결하려면 ESP8266과 같은 Wi-Fi 모듈이 필요합니다. 이 모듈을 사용하면 Arduino가 Wi-Fi 네트워크에 연결하고 HTTP를 사용하여 간단한 데이터 요청을 할 수 있습니다. SPI 인터페이스를 사용하여 ESP8266을 Arduino 보드에 연결해야합니다. 일단 연결되면 ESP8266wifi 라이브러리를 사용하여 Wi-Fi 연결 및 ESP8266Httpclient 라이브러리를 관리하여 HTTP 요청을 할 수 있습니다. (Application Programming Interface)는 다른 소프트웨어 응용 프로그램이 서로 통신 할 수있는 일련의 규칙입니다. Arduino LCD의 맥락에서 API는 인터넷에서 데이터를 가져 오는 데 사용됩니다. 이 데이터는 날씨 업데이트, 주가 또는 고유 한 사용자 정의 데이터에서 얻을 수 있습니다. API는이 데이터를 가져 와서 Arduino 보드에 보낸 다음 LCD에 표시합니다.

    ARDUINO LCD에 API에서 데이터를 표시하는 방법?

    node.js를 사용하여 Arduino LCD에 웹 API를 표시합니다에서 데이터 표시를 Arduino LCD의 API에는 몇 단계가 포함됩니다. 먼저 Wi-Fi 모듈을 사용하여 Arduino를 인터넷에 연결해야합니다. 그런 다음 HTTP 프로토콜을 사용하여 API에 요청해야합니다. API는 요청 된 데이터로 응답 한 다음 LCD에 구문 분석하고 표시 할 수 있습니다. 액체 결정 라이브러리는 LCD 디스플레이를 관리하는 데 사용될 수 있습니다.

    내 Arduino LCD와 함께 API를 사용할 수 있습니까?

    예, HTTP 프로토콜을 지원하는 한 Arduino LCD와 함께 API를 사용할 수 있습니다. 그러나 일부 API에는 인증이 필요할 수 있으며, 이는 설정이 좀 더 복잡 할 수 있습니다. 또한 API에 의해 반환 된 데이터는 Arduino가 이해할 수있는 형식이어야합니다. 일반적으로 JSON 또는 XML. Arduino LCD의 데이터를 실시간으로 업데이트하려면 API에 정기적으로 요청해야합니다. Delay () 함수를 사용하여 일정 시간 동안 프로그램 실행을 일시 중지 할 수 있습니다. 예를 들어, 매분마다 데이터를 업데이트하려면 LOOP () 함수 끝에 지연 (60000)을 추가 할 수 있습니다. 이것은 다음 루프 반복 전에 60000 밀리 초 또는 1 분 동안 프로그램을 일시 중지합니다.

    Arduino와 함께 API를 사용하는 제한 사항은 무엇입니까?

    Arduino와 함께 API를 사용하는 동안 열립니다. 많은 가능성, 몇 가지 제한 사항이 있습니다. 첫째, Arduino 보드에는 메모리가 제한되어있어 많은 양의 데이터를 다룰 때 문제가 될 수 있습니다. 둘째, 모든 API가 자유롭게 사용할 수있는 것은 아니며 일부는 사용 제한이있을 수 있습니다. 마지막으로, HTTP 요청 및 구문 분석 데이터를 작성하는 것은 복잡 할 수 있으며 프로그래밍 및 네트워킹에 대한 이해가 필요합니다.

    다른 Arduino 구성 요소와 API를 사용할 수 있습니까?

    예, API는 API를 사용할 수 있습니다. 인터넷에 연결할 수있는 Arduino 구성 요소. 여기에는 LCD뿐만 아니라 LED, 모터 및 기타 센서도 포함됩니다. 프로세스는 동일합니다. Arduino는 API에 요청하고 데이터를 수신 하며이 데이터를 사용하여 구성 요소를 제어합니다.

    Arduino LCD 및 API의 문제를 해결할 수있는 방법은 무엇입니까?

    Arduino LCD 및 API의 문제 해결 문제는 어려울 수 있지만 몇 가지 할 수있는 일이 있습니다. 먼저 배선을 확인하고 Arduino가 인터넷에 올바르게 연결되어 있는지 확인하십시오. 둘째, 직렬 모니터를 사용하여 코드를 디버깅하고 API의 응답을 확인하십시오. 마지막으로 특정 요구 사항 또는 제한 사항에 대해 API 문서를 확인하십시오.

    Arduino LCD 및 API를 사용하여 나만의 프로젝트를 만들 수 있습니까? Arduino LCD 및 API를 사용하면 광범위한 프로젝트를 만들 수 있습니다. 예를 들어, 실시간 기상 데이터를 표시하는 기상 관측소, 최신 주식 가격을 보여주는 재고 시세 또는 인터넷의 데이터를 기반으로 장치를 제어하는 ​​홈 자동화 시스템을 만들 수 있습니다. Arduino와 함께 API를 사용하는 것에 대해 더 많이 배울 수있는 좋은 자료는 무엇입니까?

    Arduino와 API를 사용하는 것에 대해 더 많이 배울 수있는 많은 리소스가 있습니다. Arduino 공식 웹 사이트 및 포럼은 시작하기에 좋은 곳입니다. YouTube, Udacity 및 Coursera와 같은 웹 사이트에는 많은 온라인 자습서와 코스가 있습니다. 마지막으로 Simon Monk의“Programming Arduino : Starting with Sketches”와 같은 책은 API 사용을 포함하여 Arduino 프로그래밍에 대한 포괄적 인 소개를 제공합니다.

위 내용은 node.js를 사용하여 Arduino LCD에 웹 API를 표시합니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿