通过以太网连接2个Beaglebone黑色设备

时间:2016-11-14 20:49:07

标签: networking connect ethernet beagleboneblack

问题:我需要从一个Beaglebone通过以太网网络获取信息到另一个Beaglebone,它将根据第一个Beaglebone提供的信息启动灯光。我的背景主要是硬件,所以我不知道这是否可行。我想有一种方法可以直接向/从IP地址传输信息,但这主要是猜测 - 不知道如何做到这一点。我也无法使用Google找到关于此的任何内容。

我的任务是,有效地,按下一个房间的按钮,点亮另一个房间的LED。我可以使用的工具有两个BBB,一个本地网络,一些Arduino Unos和一些PIC。 BBB似乎最适合这份工作。以任何方式在它们之间运行直接电线是不可行的。如果有更好的方法来完成这项任务,那么我将非常感谢(可能作为评论,然后我将使用这个想法开始一个新的,合适的帖子)?

1 个答案:

答案 0 :(得分:2)

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

  1. 为您的BBB设置静态IP地址。为此,follow Derek Molloy instructions
  2. 了解如何使用bonescript管理buttonsLEDs

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

  4. // 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.');
    });
    
    1. 为客户端创建一个javascript文件(按下按钮时将发送命令),例如“client.js”,并使用命令“node client.js”从控制台运行它,这里是一个简单的客户端示例
    2. // 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');
      });
      

      结合这些步骤,您将得到您想要的东西。