Не могу управлять светодиодом с помощью одного HTML-файла и Джонни пять

Я новичок в этом. Я нашел некоторый код для управления Arduino во главе с одним HTML-файлом. Они сказали, что мы должны использовать протокол johnny-5 и node-js для управления им. Но я обнаружил проблему с этим способом, мне удалось подключиться к Arduino и включить локальный хост. Но я только что нашел пару кнопок, и бесполезно управлять светодиодом. Я попытался бы решить это, и ничего не случилось.

Это где мой исходный код

<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();
        });
    });
});

1 ответ

Решение

Вы запускаете сервер на порту "8080", но подключаетесь к socket.io через порт по умолчанию (80). Я считаю, что это может быть проблемой. Попробуйте изменить строку в html:

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

Также, если у вас есть какая-либо ошибка в консоли браузера, было бы полезно показать это сообщение.

Другие вопросы по тегам