2016-11-14 53 views
0

问题:我需要从一个Beaglebone穿过以太网到另一个Beaglebone,这将根据第一Beaglebone提供的信息启动光源。不过,我的背景大多只是硬件,所以我不知道这是否可行。我想有一种方法可以直接向/从IP地址传输信息,但这主要是猜测 - 不知道该怎么做。我也无法在Google上找到任何有关此方面的信息。通过以太网连接2个Beaglebone黑色设备

我的使命是有效地推动一个房间的按钮,并点亮另一个房间的LED。我可以使用的工具有两个BBB,一个本地网络,几个Arduino Unos和一些PIC。 BBB似乎最适合这份工作。以任何方式在它们之间运行直接连线是不可行的。如果有更好的方式去执行这个任务,我们将会感激你的意见(也许作为一个评论,然后我会用这个想法开始一个新的,适当的职位)?

回答

1

我建议你使用Node.js和bonescript,它是专门为BBB创建的库。在我看来,这是使两个BBB通过TCP/IP彼此对话的最快速和最简单的方式。默认情况下,BBB已经安装了node.js和bonescript。作为最简单的IDE,您可以使用可在您的BBB上的端口3000上访问的Cloud9。

  1. 为您设置BBB的静态IP地址。要这样做,follow Derek Molloy instructions
  2. 看看你如何管理buttonsLEDs与bonescript。

  3. 为服务器(将接收命令并打开LED/etc)创建一个JavaScript文件,例如将其命名为“server.js”,然后使用命令“node server”从控制台运行它。 JS”,这里是简单的例子:

// I am server.js 
var net = require('net'); 

var server = net.createServer(function(c) { 
    console.log('client connected'); 

    c.on('data',function(data) { 
     console.log("Received data is: " + data); 
     var reponse = "Hello form BBB Server!"; 
     // Do something more 
     c.write(reponse); 
    }); 

    c.on('end', function() { 
     console.log('client disconnected'); 
    }); 
}); 


server.listen(8124, function() { 
    console.log('Server is launched.'); 
}); 
  • 创建用于所述客户端的JavaScript文件(将发送命令按钮被按下时),例如“client.js”,并使用命令从控制台运行它“节点client.js”,这里是一个简单的客户端的例子
  • // I am client.js 
    var net = require('net'); 
    
    var server_ip = '192.168.7.2';  // here enter your BBB-server IP address 
    var client = net.connect(8124, server_ip, function() { 
        console.log('connected to server!'); 
        client.write('Hello from BBB client'); 
    }); 
    
    client.on('data', function(data) { 
        console.log(data.toString()); 
        client.end(); 
    }); 
    
    client.on('end', function() { 
        console.log('disconnected from server'); 
    }); 
    

    结合这些步骤,你会得到你想要的东西。

    +0

    完美答案!它的清晰度和乐于助人让我印象深刻。一旦我完成这个工作,我会发布更新并(希望)将您的答案标记为“已接受”。 –

    +0

    祝你好运!顺便说一下,一个简单的服务器/客户端示例甚至可以在单个BBB上测试,您必须打开两个控制台并同时运行这两个文件,您还应该(在这种情况下)完全省略IP地址(仅传递端口),因为它默认到'localhost'。 – Gattuso