Arduino와 node.js는 어떻게 사용합니까?


9

나는 Arduino를 처음 사용하지만 웹 개발 경험이 있으며 최근 유성 js와 다른 프로젝트에 평균 스택을 사용하고 있습니다. 그러나 개발을 위해 모든 언어를 시도 할 수 있습니다.

내가하려고하는 것은 웹을 통해 Arduino의 LED를 제어하는 ​​간단한 응용 프로그램을 만드는 것입니다.

다른 사람과 함께 일하고 있으며 Arduino는 방화벽 뒤에 있으므로 인터넷을 통해 액세스하는 방법을 잘 모릅니다. 나는 다리를 통해 linio가 연결된 가정에서 테스트를 위해 사용할 수있는 Arduino Uun에 액세스 할 수 있습니다.

또한 들었어요 있지만, 타사가 가능한 한 많이 내가 나 자신을 할 수 있다면 빌드 멀리하고 싶습니다.

방화벽 뒤에서 Arduino로 이것을 수행하는 일반적인 방법은 무엇입니까? Arduino Yun을 어떻게 사용합니까? Yun과 함께 쉬울까요?

답변:


9

인터넷을 사용하여 외부 장치 (모바일)와 통신하는 비슷한 프로젝트를 진행하고 있습니다. 센서에서 데이터를 읽고 웹 소켓으로 웹을 통해 전달합니다. 이 프로젝트에 Arduino Yun과 Spacebrew (웹 소켓 통신용)를 사용하고 있습니다. 매우 흥미로운 접근 방법이지만 경우에 따라 상당히 도전적입니다. 비동기 / 동기 문제가 발생할 수 있습니다.이 경우 처리 코드에서 트리거 된 Yun에서 일부 Python 스크립트를 실행하게됩니다. 현재 VPN에서 Spacebrew 서버를 실행하고 있으므로 집에 남겨둔 Yun을 연결하고 어디서나 내 iPhone을 사용하여 읽을 수 있습니다.

Yun이 사전 설치된 Temboo 라이브러리와 함께 제공된다는 점도 언급 할 가치가 있는데, 이는 웹 통신을위한 훌륭한 시작점입니다. 구성은 정말 쉽고 빠릅니다. 또한 공식 문서는 매우 편리하고 이해하기 쉽습니다. Arduino Yun과 통합 된 웹과 같은 응용 프로그램을 실험하기에 정말 좋은 출발점입니다.

스페이스 브류

  • http://docs.spacebrew.cc/

    Spacebrew는 대화식 공간을 구성하는 개방적이고 동적으로 재 라우팅 가능한 소프트웨어 툴킷입니다. 즉, 대화 형 사물을 서로 연결하는 간단한 방법입니다. 시스템에 연결하는 모든 요소는 데이터 피드를 구독하고 게시 할 수 있습니다.

  • http://github.com/Spacebrew/pySpacebrew

    이 저장소에는 Python 용 Spacebrew Library와 설명서 및 예제 앱이 포함되어 있습니다.

  • http://github.com/julioterra/yunSpacebrew

    Spacebrew Yun 라이브러리에는 두 가지 주요 구성 요소 (linino에서 실행되는 Python 스크립트 세트와 atmel 칩에서 실행되는 라이브러리)가 있습니다. Arduino 스케치에서 Spacebrew에 연결할 수 있도록이 두 구성 요소를 모두 설치하는 방법에 대한 정보가 있습니다.

템부

Yun은 또한 Temboo 라이브러리를 구축했으며 실험을 시작하는 좋은 방법입니다. 일단 개념을 입증하면 타사 소프트웨어를 사용하지 않으려는 경우 환경을 좁히고 멀리 갈 수 있습니다.

  • http://www.temboo.com/arduino

    Temboo 라이브러리를 사용하면 Processing을 통해 100 개가 넘는 웹 기반 리소스 및 서비스에 쉽게 연결할 수 있습니다. 현재 Android, Arduino, iOS, Java, Node.js, PHP, Processing, Python, REST API, Ruby, Twyla 용 라이브러리를 찾을 수 있습니다

Node.js

Yun 자체에서 node.js를 실행할 수도 있습니다. 좋은 기사와 설치할 준비가 된 패키지가 있습니다.

Arduino Yun의 Bridge 라이브러리는 무엇입니까?

브리지 라이브러리에 대해서도 질문했습니다. Yun은 두 개의 프로세서를 내장하고 있는데, 하나는 처리 코드를 실행하고 다른 하나는 Linux (Linino)를 가지고 있습니다. Bridge는 기본적으로 이들 간의 통신을 단순화하여 서로 "통신"할 수 있도록합니다. 자세한 내용은 다음을 참조하십시오.

  • http://arduino.cc/en/Reference/YunBridgeLibrary

    (arduino.cc 문서에서 가져옴 :)

    Arduino Yún에는 두 개의 프로세서가 탑재되어 있습니다. 하나는 Arduino Leonardo와 같은 ATmega32U4입니다. 다른 하나는 Linux 및 OpenWRT 무선 스택을 실행하는 Atheros 9331로, 보드를 WiFi 및 이더넷 네트워크에 연결할 수 있습니다. Arduino를 통해 Linux 시스템에서 프로그램 또는 사용자 정의 스크립트를 호출하여 다양한 인터넷 서비스에 연결할 수 있습니다.

    브리지 라이브러리는 ATmega32U4와 AR9331 간의 통신을 단순화합니다. 그것은 Stream에서 상속받으며 많은 메소드는 Serial 및 다른 파생 상품에서 익숙해야합니다.

    32U4의 브리지 명령은 AR9331에서 Python으로 해석됩니다. Arduino의 요청에 따라 GNU / Linux에서 프로그램을 실행하고 Arduino와 인터넷 간의 센서 판독 값과 같은 데이터를 공유하고 인터넷에서 명령을 수신하여 Arduino로 직접 전달할 수있는 공유 저장 공간을 제공합니다.

    Bridge는 Linino 명령 행에 대한 인터페이스 역할을하여 양방향 통신을 허용합니다.

어디서 시작하나요?

내가 당신이라면 나는 Temboo로 시작할 것입니다. 그것은 훌륭한 학습 곡선이며 시작하기위한 아주 간단한 단계입니다. 또한 이사회의 운영 방식과 "외부 세계"와 의사 소통하는 방법을 배우고 이해합니다. 개념 증명이 있으면 다른 라이브러리를 실험하고 접근 방식을 개선하십시오. 아마도 Spacebrew가 나중에 더 편리하거나 다른 솔루션을 발견하게 될 것입니다.


Arduino Stack Exchange에 오신 것을 환영합니다! 답변에 더 자세한 내용을 추가해 주시겠습니까? 사이트가 다운되면 응답이 쓸모 없기 때문에 전체 또는 대부분 링크 인 답변은 Stack Exchange에서 허용되지 않습니다. 사이트가 다운되면 라이브러리가 쓸모 없기 때문에 라이브러리에 대한 링크는 괜찮습니다. 기사와 튜토리얼을 설명해야합니다. 어쩌면 몇 문장을 인용하고 예제 코드를 추가 할 수 있습니까? 감사!
익명 펭귄

1

무엇보다 먼저해야 할 일을 분명히해야합니다. Arduino UNO는 직렬 (USB를 통해) 연결되는 마이크로 컨트롤러 일뿐입니다. 인터넷에서 arduino에 액세스하려면 인터넷에 연결되어 있거나 다리처럼 작동하는 것이 있어야합니다. 이더넷 쉴드, wifi shiled 또는 YUN 마녀는 arduino UNO + 이더넷 및 wifi가있는 마이크로 리눅스입니다 (phyton에서 프로그래밍 가능). ) USB로 PC에서 arduin을 연결하고 브리지 프로그램을 만들거나 방화벽 / 라우터가 잠금 해제 된 Linux / 비슷한 경우 사용할 수 있습니다.

얼마나 많은 옵션이 있으며, 우리는 어떻게 대화할지 결정하기 위해 이벤트를 시작합니다. node.sj를 사용하려면 socket 또는 get / post를 사용할 수 있습니다. 소켓을 사용하는 것이 더 빠르고 가벼우 며 풀 연결을 만들 수 있으며 js가 필수입니다. get / post를 사용하면 js가 필요 없으며 순수한 html 양식이 필요합니다.

그런 다음 원하는 스위치 시스템을 결정한 후 (arduino를 http 서버 또는 일반 소켓으로) 방화벽 / nat에서 해당 포트를 열 수 있습니다. 하지만 마지막 부분 일뿐입니다


나는 윤이 있으므로 그것을 사용할 것입니다. 나는 와이파 이와 ssh를 통해 윤에게 연결되었습니다. 리눅스 서버를 어떻게 설정하고 어떻게 포트를 열 수 있습니까?
Anders Kitson

공식 튜토리얼을 참조하십시오, 그것은 아직 웹 서버가 있습니다, 당신은 단지 당신의 자신의 페이지를 추가해야합니다 :) scuola.arduino.cc/lesson/b4EoRkV/…
Lesto
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.