【问题标题】:sending data from serial port to node app从串口发送数据到节点应用程序
【发布时间】:2014-05-30 19:23:47
【问题描述】:

我正在尝试连接 arduino 和 nodejs 应用程序。我有一个从串口读取数据的 python 脚本。

import socket
import serial

if __name__ == "__main__":

    while True:
        client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        client.connect(('127.0.0.1', 8080))
        serial_read = serial.Serial('/dev/ttyACM0', 115200)
        signal = serial_read.readline()
        if "B" in signal:
            s = signal.split("B")
            client.sendall(s[1])

并发送到本地主机。我的服务器端:

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


io.sockets.on('connection', function(socket){

});

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,{ 'Content-type': 'text/html'});
        res.end(data);
        setInterval(function(){
        io.sockets.emit('pulse', {'pulse': data});
    }, 1000);


  });
}

客户:

<script>
      var socket = io.connect();

      socket.on('pulse', function(data){
        $('#pulse').text(data.pulse);
      });
    </script>
    <div id="pulse"></div> <br>

我的问题是我无法在页面上正确显示数据。我的代码有什么问题吗?

【问题讨论】:

    标签: node.js sockets socket.io arduino real-time


    【解决方案1】:

    如果串口有二进制或 unicode 数据,HTML 仅支持 ascii 内容,那么您需要使用适当的编码在页面上显示它

    【讨论】:

    • 我猜我的代码不正确。如何使用http服务器监听套接字?
    • 我不是 node.js 方面的专家
    猜你喜欢
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-06
    • 1970-01-01
    相关资源
    最近更新 更多