2017-03-16 10 views
0

これは初心者です。私は単一のhtmlファイルによって導かれたArduinoを制御するコードをいくつか見つけました。彼らはそれを制御するためにjohnny-5とnode-jsプロトコルを使用しなければならないと述べました。しかし、私はこの方法で問題を発見した、私はArduinoに接続し、ローカルホストを有効に成功します。しかし、私はちょうどカップルのボタンを見つけた、と指導者を制御することは役に立たない。私はそれを解決しようとし、何も起こらなかった。LEDを1つのhtmlファイルとjohnny 5で制御することはできません

このところ私のソースコード The code

<html> 
    <head> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
     <script src="/socket.io/socket.io.js"></script> 
     <script> 
     $(document).ready(function() { 
      var socket = io.connect('http://localhost'); 
      $('#button').click(function(e){ 
      socket.emit('click'); 
      e.preventDefault(); 
      }); 
     }); 
     </script> 
    </head> 
    <body> 
     <button id="button" href="#">LED ON/OFF</button> 
    </body> 
</html> 

そして

var app = require('http').createServer(handler), 
    io = require('socket.io').listen(app), 
    fs = require('fs'), 
    five = require('johnny-five'); 

app.listen(8080); 

function handler(req, res) { 
    fs.readFile(__dirname + '/index.html', 
     function(err, data) { 
      if (err) { 
       res.writeHead(500); 
       return res.end('Error loading index.html'); 
      } 

      res.writeHead(200); 
      res.end(data); 
     }); 
} 

board = new five.Board(); 

board.on("ready", function() { 
    led = new five.Led(13); 

    io.sockets.on('connection', function(socket) { 
     socket.on('click', function() { 
      led.toggle(); 
     }); 
    }); 
}); 

答えて

0

あなたはポート '8080' に、サーバーを実行していますが、デフォルトのポート(80)にsocket.ioに接続します。私はそれが問題かもしれないと信じています。 HTMLの行を変更してみてください:

 var socket = io.connect('http://localhost:8080'); 

をブラウザのコンソールにエラーを持っている場合にも、このメッセージを表示するために役立つだろう。

+0

ありがとうございます。それは働いている – JeJe

+0

むしろポート80でArduinoを聞く。接続するポートを指定する必要はありません、80はWebアプリケーションのデフォルトです。 – Morgoth

関連する問題