Arduinoとnode.jsを使用するにはどうすればよいですか?


9

私はArduinoを初めて使用しますが、Web開発の経験があり、最近、さまざまなプロジェクトでMeteor JSと平均スタックを使用しています。しかし、私は開発のためにあらゆる言語を試すことにオープンです。

私がやろうとしていることは、Web経由でArduinoのLEDを制御する単純なアプリケーションを作成することです。

私は別の人と作業していて、Arduinoはファイアウォールの背後にあるので、インターネット経由でそれにアクセスする方法がわかりません。私は、ブリッジを介して接続されたlinioを持っている自宅でのテストに使用できるArduino Uunにアクセスできます。

また、私は聞いたこの、私はそれを自分で行うことができれば、できるだけ構築し、第三者から離れて滞在したいと思います。

ファイアウォールの背後にあるArduinoでこれを行う一般的な方法は何ですか?Arduino Yunでこれを行うにはどうすればよいですか?ゆんの方が楽ですか?

回答:


9

私はインターネットを使用して外部デバイス(モバイル)と通信する同様のプロジェクトに取り組んでいます。センサーからデータを読み取り、Webソケットを使用してそれらをWeb経由で渡します。このプロジェクトにはArduino Yunを、Webソケット通信にはSpacebrewを使用しています。これは非常に興味深いアプローチですが、場合によってはかなりの課題があります。おそらく、非同期/同期の問題が発生します。私の場合は、処理コードからトリガーされたYunでいくつかのPythonスクリプトを実行することになります。私は現在、VPNでSpacebrewサーバーを実行しているので、自宅に置いたままのYunに接続し、どこからでもiphoneを使用して測定値を取得できます。

YunにはプリインストールされたTembooライブラリが付属していることにも言及する価値があります。これはWebコミュニケーションの出発点として最適です。設定は本当に簡単で迅速です。また、公式のドキュメントは非常に便利で理解しやすいでしょう。これは、Arduino Yunと統合されたWebのようなアプリケーションを実験するための本当に素晴らしい出発点です。

スペースブリュー

  • http://docs.spacebrew.cc/

    Spacebrewは、インタラクティブなスペースの振付を行うためのオープンで動的に再ルーティング可能なソフトウェアツールキットです。または、言い換えれば、インタラクティブなものを相互に接続する簡単な方法です。システムに接続するすべての要素は、データフィードをサブスクライブおよびパブリッシュできます。

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

    このリポジトリには、Python用のSpacebrew Libraryと、ドキュメントおよびサンプルアプリが含まれています。

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

    Spacebrew Yunライブラリは、lininoで実行される一連のpythonスクリプトとatmelチップで実行されるライブラリの2つの主要コンポーネントを備えています。ArduinoスケッチからSpacebrewに接続できるように、これらのコンポーネントの両方をインストールする方法についての情報があります。

テンブー

YunにはTembooライブラリも組み込まれています。これは、環境を狭め、サードパーティのソフトウェアを使用したくない場合は離れることができるという概念を証明したら、実験を始めるのに最適な方法です。

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

    Temboo Libraryを使用すると、Processingを使用して100以上のWebベースのリソースとサービスに簡単に接続できます。現在、Android、Arduino、iOS、Java、Node.js、PHP、Processing、Python、REST API、Ruby、Twylaのライブラリを見つけることができます

Node.js

Yun自体でnode.jsを実行することもできます。ここに、良い記事とインストールの準備ができているいくつかのパッケージがあります。

Arduino YunのBridgeライブラリとは何ですか?

Bridgeライブラリについても質問しました。Yunには2つのプロセッサが搭載されており、1つは処理コードを実行し、もう1つはLinux(Linino)を実行しています。ブリッジは基本的にそれらがお互いに「話す」ことができるようにそれらの間のコミュニケーションを単純化します、ここでより多くの情報:

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

    (arduino.ccドキュメントから取得:)

    ArduinoYúnには2つのプロセッサーが搭載されています。1つはArduino LeonardoのようなATmega32U4です。もう1つはAtheros 9331で、LinuxとOpenWRTワイヤレススタックを実行して、ボードをWiFiおよびイーサネットネットワークに接続できるようにします。Arduinoを介してLinuxシステム上のプログラムまたはカスタムスクリプトを呼び出し、さまざまなインターネットサービスに接続することができます。

    Bridgeライブラリは、ATmega32U4とAR9331間の通信を簡素化します。これはStreamから継承され、メソッドの多くは、Serialおよびその他のStreamの派生物からよく知られているはずです。

    32U4からのブリッジコマンドは、AR9331上のPythonによって解釈されます。その役割は、Arduinoから要求されたときにGNU / Linux側でプログラムを実行し、Arduinoとインターネット間でセンサーの読み取り値などのデータを共有し、インターネットからコマンドを受信して​​Arduinoに直接渡すための共有ストレージスペースを提供することです。

    Bridgeは双方向の通信を可能にし、Lininoコマンドラインへのインターフェースとして機能します。

どこから始めれば?

私があなたなら、私はTembooから始めます。それは素晴らしい学習曲線であり、始めるのは非常に簡単なステップです。また、ボードがどのように機能するか、および「外部の世界」とどのように通信できるかを学び、理解します。概念実証が完了したら、さまざまなライブラリを試し、アプローチを改善してください。おそらく、後でSpacebrewがより便利になったり、さまざまなソリューションを発見したりすることでしょう。


Arduino Stack Exchangeへようこそ!回答に詳細を追加できますか?サイトがダウンした場合、回答は役に立たないため、すべてまたはほとんどリンクである回答はStack Exchangeでは受け入れられません。ライブラリがサイトがダウンした場合、ライブラリは役に立たないため、ライブラリへのリンクは問題ありません。記事とチュートリアルは言い換える必要があります。たぶん、いくつかの文を引用して、いくつかのサンプルコードを追加しますか?ありがとう!
匿名ペンギン

1

まず、何をすべきかを明確にする必要があります。Arduino UNOは、シリアル(USB経由)接続のマイクロコントローラーです。インターネットからarduinoにアクセスできるようにするには、インターネットに接続されているか、橋のように機能するものが必要です。イーサネットシールド、wifiシールド、またはYUN魔女がarduino UNO +イーサネットとwifiを備えたマイクロlinuxを使用できます(phytonでプログラム可能、またはチップはLinux送信コマンドをコマンドして、特別なブリッジライブラリを使用してbashシェルにコマンドを送信できます) )USBを使用してPCにarduinを接続し、ブリッジプログラムを作成することもできます。または、ファイアウォール/ルーターがロックされていないlinux /同様のものである場合は、それを使用できます。

オプションの数。startintintを使用して、どのように対話するかを決定します。node.sjを使いたいので、socketまたはget / postを使用できます。ソケットを使用すると、高速で軽量であり、プル接続を作成できます。jsは必須です。get / postを使用すると、jsも必要ありません。純粋なHTMLフォームで十分です。

次に、好きな魔女のシステムを決めた後(httpサーバーまたはプレーンソケットとしてのArduino)、ファイアウォール/ NATの対応するポートを開くことができます。しかし、最後の部分です


ゆんがいるのでそれを使います。私はwifiとsshを介してyunに接続しました。Linuxサーバーの設定方法と、ポートのオープン方法を教えてください。
Anders Kitson、2014

公式のチュートリアルを参照してください、それはaltready webvサーバを持っている、あなたは自分自身のページ:)を追加する必要がありscuola.arduino.cc/lesson/b4EoRkV/...
Lesto
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.