Управляйте Arduino с помощью сервера Express JS и Johnny-Five - PullRequest
0 голосов
/ 07 мая 2018

Я хочу управлять своим Arduino из веб-интерфейса, поэтому я создал клиентскую сторону в ReactJS и серверную сторону в ExpressJS (включая Johnny-Five).

Я просто хочу обновить интервал мигания светодиода в режиме реального времени, основываясь на вводе пользователем. Вот мой код сервера:

const express = require('express');
const bodyParser = require('body-parser');
const five = require('johnny-five');

const app = express();
const board = new five.Board();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

board.on('ready', function () {
  app.post("/api/led-flash", function (req, res) {
    let led = new five.Led(13);
    led.blink(req.body.interval);
  });
});

app.listen("5000", () => {
  console.log("App listening on port 5000");
});

Код, кажется, работает только для нескольких запросов в начале. Как правильно это сделать?

1 Ответ

0 голосов
/ 07 мая 2018

Вы захотите запустить сервер после , плата готова. Так что-то вроде следующего:

const express = require('express');
const bodyParser = require('body-parser');
const five = require('johnny-five');

const app = express();
const board = new five.Board();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.post("/api/led-flash", function (req, res) {
    // perform some initial cleanup work if needed like resetting LEDs.
    // ...


    let led = new five.Led(13);
    led.blink(req.body.interval);

    res.json({ message: 'success!'})

    // Some additional work after success
    // ...
});

function startServer() {
    app.listen("5000", () => {
        console.log("App listening on port 5000");
    });
}

board.on('ready', startServer);

Выше не протестировано, но опубликуйте решение, если найдете его!

...