Como uso o Arduino e o node.js?

9

Eu sou novo no Arduino, no entanto, tenho experiência em desenvolvimento web, ultimamente tenho usado o meteoro js e a pilha média para diferentes projetos. No entanto, estou aberto a tentar qualquer linguagem para desenvolvimento.

O que estou tentando fazer é criar um aplicativo simples para controlar o LED no Arduino pela Web.

Estou trabalhando com outra pessoa, e o Arduino estará protegido por um firewall, por isso não tenho certeza de como acessá-lo pela Internet. Eu tenho acesso a um Arduino Uun que eu posso usar para testar em casa, que possui linio conectado via bridge, o que eu não entendo direito o que isso faz.

Também ouvi falar disso , mas gostaria de ficar longe de compilações de terceiros, tanto quanto possível, se eu puder fazer isso sozinho.

Qual é a maneira comum de fazer isso com um Arduino atrás de um firewall? Como faço isso com um Arduino Yun? É mais fácil com um Yun?

Anders Kitson
fonte

Respostas:

9

Estou trabalhando em um projeto semelhante que usa a Internet para se comunicar com um dispositivo externo (móvel). Estou lendo dados de sensores e passando-os pela Web com soquetes da Web. Estou usando o Arduino Yun para este projeto e o Spacebrew (para comunicação de soquetes da web). É uma abordagem muito interessante, mas um grande desafio em alguns casos. Você provavelmente terá um problema assíncrono / síncrono, que no meu caso me levou a executar alguns scripts Python no Yun acionados a partir do código Processing. Atualmente, estou executando o servidor Spacebrew na minha VPN, para que eu possa conectar meu Yun em casa e usar meu iphone de qualquer lugar para obter as leituras.

Também vale a pena mencionar que o Yun vem com a biblioteca Temboo pré-instalada, que é um excelente ponto de partida para a comunicação na web. A configuração é realmente fácil e rápida. Você também encontrará documentação oficial muito útil e fácil de entender. É realmente um excelente ponto de partida para experimentar aplicativos da Web integrados ao Arduino Yun.

Spacebrew

  • http://docs.spacebrew.cc/

    O Spacebrew é um kit de ferramentas de software aberto e dinamicamente redirecionável para coreografar espaços interativos. Ou, em outras palavras, uma maneira simples de conectar coisas interativas entre si. Cada elemento ao qual você se conecta ao sistema pode se inscrever e publicar feeds de dados.

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

    Este repositório contém a Biblioteca Spacebrew for Python, juntamente com documentação e aplicativos de exemplo.

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

    A biblioteca Spacebrew Yun apresenta dois componentes principais - um conjunto de scripts python que são executados no linino e uma biblioteca que é executada no chip atmel. Você encontra informações sobre como instalar esses dois componentes para se conectar ao Spacebrew a partir de um esboço do Arduino.

Temboo

Yun também construiu na biblioteca Temboo, é uma ótima maneira de começar a experimentar, depois de provar o conceito, você pode começar a restringir seu ambiente e se afastar se não quiser usar software de terceiros.

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

    A Biblioteca Temboo facilita a conexão com mais de 100 recursos e serviços baseados na Web com o Processing. Atualmente, você pode encontrar bibliotecas para Android, Arduino, iOS, Java, Node.js, PHP, Processamento, Python, API REST, Ruby, Twyla

Node.js

Você também pode executar o node.js no próprio Yun, aqui está um bom artigo e alguns pacotes prontos para instalação:

O que é a biblioteca Bridge do Arduino Yun?

Você também perguntou sobre a biblioteca Bridge. Como você sabe, o Yun possui dois processadores, um está executando o código de processamento e o outro o Linux (Linino). O Bridge simplifica basicamente a comunicação entre eles para que eles possam "conversar" um com o outro, mais informações aqui:

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

    (Extraído da documentação do arduino.cc :)

    O Arduino Yún possui dois processadores a bordo. Um deles é um ATmega32U4, como no Arduino Leonardo. O outro é o Atheros 9331, executando Linux e a pilha sem fio OpenWRT, que permite que a placa se conecte às redes WiFi e Ethernet. É possível chamar programas ou scripts personalizados no sistema Linux através do Arduino para conectar-se a vários serviços da Internet.

    A biblioteca Bridge simplifica a comunicação entre o ATmega32U4 e o AR9331. Ele herda do Stream, e muitos dos métodos devem estar familiarizados com o Serial e outros derivados do Stream.

    Os comandos de ponte do 32U4 são interpretados pelo Python no AR9331. Seu papel é executar programas no lado GNU / Linux quando solicitado pelo Arduino, fornecer um espaço de armazenamento compartilhado para compartilhar dados como leituras de sensores entre o Arduino e a Internet, receber comandos da Internet e passá-los diretamente para o Arduino.

    O Bridge permite a comunicação em ambas as direções, atuando como uma interface para a linha de comandos do Linino.

Onde começar?

Eu começaria com Temboo se fosse você, é uma ótima curva de aprendizado e um passo bastante simples para começar. Você também aprenderá e entenderá como o quadro funciona e como você pode se comunicar com o "mundo externo". Depois de ter a prova do conceito, comece a experimentar diferentes bibliotecas e a melhorar a abordagem. Talvez você ache o Spacebrew mais útil mais tarde ou até descubra soluções diferentes.

lokers
fonte
Bem-vindo ao Arduino Stack Exchange! Você pode adicionar mais detalhes à sua resposta? As respostas que são todos ou principalmente links não são aceitáveis ​​no Stack Exchange porque a resposta é inútil se o site for desativado. Os links para as bibliotecas são bons, pois a biblioteca é inútil se o site for desativado; artigos e tutoriais devem ser parafraseados. Talvez apenas cite algumas frases e adicione algum código de exemplo? Obrigado!
Anonymous Penguin
1

Antes de tudo, você precisa ter claro o que precisa fazer. O Arduino UNO é apenas um microcontrolador com uma conexão serial (sobre USB). Para tornar seu arduino acessível a partir da internet, ele precisa estar conectado à internet ou ter algo que atue como uma ponte. Você pode usar um escudo ethernet, um wifi shiled ou uma bruxa YUN é um arduino UNO + um micro linux com ethernet e wifi (programável em phyton, ou o chip pode comandar o comando de envio de linux para bash shell usando a biblioteca especial de pontes ) Você pode até conectar o arduin no pc por usb e criar um programa de bridge ou, se o seu firewall / roteador for um linux / similar desbloqueado, você poderá usá-lo.

Quantas opções, e nós começamos a decidir como conversar com ela. Como você deseja usar o node.sj, pode usar o socket ou get / post. O uso do soquete é mais rápido, mais leve e pode criar uma conexão pull, e js será um requisito. Com o get / post, você nem precisa de js, o formulário puro html serve.

então, depois de decidir qual o sistema que você gosta (arduino como servidor http ou soquete simples), você pode abrir a porta correspondente no firewall / nat. mas é apenas a última parte

Lesto
fonte
Eu tenho um yun, então usarei isso. Liguei-me ao yun via wifi e ssh. Como configuro o servidor linux e como abro uma porta?
precisa saber é o seguinte
veja tutorial oficial, altready tem um servidor webv, você só precisa adicionar sua própria página :) scuola.arduino.cc/lesson/b4EoRkV/...
Lesto