Comment utiliser Arduino et node.js?

9

Je suis nouveau sur Arduino, mais j'ai de l'expérience dans le développement Web, récemment j'ai utilisé, Meteor Js et la pile moyenne pour différents projets. Cependant, je suis ouvert à essayer n'importe quel langage pour le développement.

Ce que j'essaie de faire, c'est de créer une application simple pour contrôler la LED de l'Arduino sur le Web.

Je travaille avec une autre personne et l'Arduino sera derrière un pare-feu, donc je ne sais pas comment y accéder via Internet. J'ai accès à un Arduino Uun que je peux utiliser pour les tests à la maison et qui a linio connecté via un pont, ce que je ne comprends pas très bien.

J'ai également entendu parler de cela , mais j'aimerais éviter autant que possible les constructions tierces si je peux le faire moi-même.

Quelle est la façon la plus courante de procéder avec un Arduino derrière un pare-feu? Comment faire cela avec un Arduino Yun? Est-ce plus facile avec un Yun?

Anders Kitson
la source

Réponses:

9

Je travaille sur un projet similaire qui utilise Internet pour communiquer avec un appareil externe (mobile). Je lis les données des capteurs et je les transmets sur le Web avec des sockets Web. J'utilise Arduino Yun pour ce projet et Spacebrew (pour la communication des sockets web). C'est une approche très intéressante mais assez difficile dans certains cas. Vous rencontrerez probablement un problème asynchrone / synchrone, ce qui dans mon cas m'a conduit à exécuter des scripts Python sur Yun déclenchés à partir du code de traitement. J'utilise actuellement le serveur Spacebrew sur mon VPN, donc je peux connecter mon Yun à la maison et utiliser mon iphone de partout pour obtenir les lectures.

Il convient également de mentionner que Yun est livré avec la bibliothèque Temboo préinstallée, ce qui est un excellent point de départ pour la communication Web. La configuration est vraiment simple et rapide. Vous trouverez également une documentation officielle très pratique et facile à comprendre. C'est vraiment un excellent point de départ pour expérimenter avec des applications de type Web intégrées à Arduino Yun.

Spacebrew

  • http://docs.spacebrew.cc/

    Spacebrew est une boîte à outils logicielle ouverte et dynamiquement re-routable pour la chorégraphie d'espaces interactifs. Ou, en d'autres termes, un moyen simple de connecter des choses interactives les unes aux autres. Chaque élément auquel vous vous connectez au système peut s'abonner et publier des flux de données.

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

    Ce dépôt contient la bibliothèque Spacebrew pour Python ainsi que la documentation et des exemples d'applications.

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

    La bibliothèque Spacebrew Yun comprend deux composants principaux - un ensemble de scripts python qui s'exécutent sur le linino et une bibliothèque qui s'exécute sur la puce atmel. Vous y trouverez des informations sur l'installation de ces deux composants afin de pouvoir vous connecter à Spacebrew à partir d'un croquis Arduino.

Temboo

Yun a également intégré la bibliothèque Temboo, c'est un excellent moyen de commencer à expérimenter, une fois que vous avez prouvé le concept, vous pouvez commencer à restreindre votre environnement et à vous éloigner si vous ne souhaitez pas utiliser un logiciel tiers.

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

    La bibliothèque Temboo facilite la connexion à plus de 100 ressources et services Web avec Processing. Actuellement, vous pouvez trouver des bibliothèques pour Android, Arduino, iOS, Java, Node.js, PHP, Processing, Python, REST API, Ruby, Twyla

Node.js

Vous pouvez également exécuter node.js sur le Yun lui-même, voici un bon article et quelques packages prêts à installer:

Qu'est-ce que la bibliothèque Bridge pour Arduino Yun?

Vous avez également posé des questions sur la bibliothèque Bridge. Comme vous le savez, Yun a deux processeurs à bord, l'un exécute votre code de traitement, l'autre a Linux (Linino). Bridge simplifie fondamentalement la communication entre eux afin qu'ils puissent "parler" entre eux, plus d'informations ici:

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

    (Tiré de la documentation arduino.cc :)

    L'Arduino Yún a deux processeurs à bord. L'un est un ATmega32U4 comme sur l'Arduino Leonardo. L'autre est un Atheros 9331, exécutant Linux et la pile sans fil OpenWRT, qui permet à la carte de se connecter aux réseaux WiFi et Ethernet. Il est possible d'appeler des programmes ou des scripts personnalisés sur le système Linux via l'Arduino pour se connecter à divers services Internet.

    La bibliothèque Bridge simplifie la communication entre l'ATmega32U4 et l'AR9331. Il hérite de Stream et de nombreuses méthodes doivent être familières à Serial et à d'autres dérivés de Stream.

    Les commandes de pont du 32U4 sont interprétées par Python sur le AR9331. Son rôle est d'exécuter des programmes du côté GNU / Linux lorsque Arduino le demande, de fournir un espace de stockage partagé pour partager des données comme les lectures de capteur entre l'Arduino et Internet, et recevoir des commandes d'Internet et les transmettre directement à l'Arduino.

    Le pont permet la communication dans les deux sens, agissant comme une interface avec la ligne de commande Linino.

Où commencer?

Je commencerais avec Temboo si j'étais vous, c'est une excellente courbe d'apprentissage et une étape assez simple pour commencer. Vous apprendrez et comprendrez également comment fonctionne le forum et comment vous pouvez communiquer avec le «monde extérieur». Une fois que vous avez la preuve de concept, commencez à expérimenter différentes bibliothèques et à améliorer l'approche. Peut-être que vous trouverez plus tard Spacebrew plus pratique ou même découvrir différentes solutions.

lokers
la source
Bienvenue sur Arduino Stack Exchange! Pouvez-vous ajouter plus de détails à votre réponse? Les réponses qui sont toutes ou principalement des liens ne sont pas acceptées sur Stack Exchange car la réponse est inutile si le site tombe en panne. Les liens vers les bibliothèques sont corrects, car la bibliothèque est inutile si le site tombe en panne; les articles et les didacticiels doivent être paraphrasés. Peut-être juste citer quelques phrases et ajouter un exemple de code? Merci!
Anonymous Penguin
1

tout d'abord, vous devez savoir clairement ce que vous devez faire. Arduino UNO est juste un microcontrôleur avec une connexion série (via USB). Pour rendre votre arduino accessible depuis Internet, il doit être connecté à Internet ou avoir quelque chose qui agit comme un pont. Vous pouvez utiliser un bouclier Ethernet, un wifi shiled ou une sorcière YUN est un arduino UNO + un micro linux avec Ethernet et wifi (programmable en phyton, ou la puce peut commander la commande d'envoi linux au shell bash en utilisant la bibliothèque de ponts spéciale ) Vous pouvez même connecter Arduin sur le PC par USB et créer un programme de pont, ou, si votre pare-feu / routeur est un Linux déverrouillé / similaire, vous pouvez l'utiliser.

Combien d'options, et nous commencerons à décider comment parler avec. Comme vous voulez utiliser node.sj, vous pouvez utiliser socket ou get / post. L'utilisation de socket est plus rapide, plus légère et peut créer une connexion par traction, et js sera une condition requise. Avec get / post, vous n'avez même pas besoin de js, le formulaire html pur fera l'affaire.

puis, après avoir choisi le système de sorcière que vous aimez (Arduino en tant que serveur http ou socket simple), vous pouvez ouvrir le port correspondant sur le pare-feu / nat. mais c'est juste la dernière partie

Lesto
la source
J'ai un yun donc je vais l'utiliser. Je me suis connecté au yun via wifi et ssh. Comment configurer le serveur Linux et comment puis-je ouvrir un port?
Anders Kitson
voir le tutoriel officiel, il a déjà un serveur webv, il vous suffit d'ajouter votre propre page :) scuola.arduino.cc/lesson/b4EoRkV/…
Lesto