我正在尝试连接arduino和nodejs app。我有一个从串口读取数据的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])
并发送到localhost.My服务器端:
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>
我的问题是我无法在页面上正确显示数据。我的代码中是否有任何问题?
答案 0 :(得分:0)
如果serialport具有二进制或unicode数据,那么HTML仅支持ascii内容,那么您需要使用apprppriate编码在页面上显示它