通过Websocket从树莓派获取数据到Web页面

Get data from Raspberry PI over Websocket into Web Page?

本文关键字:数据 Web 页面 获取 Websocket 通过      更新时间:2023-09-26

我是web开发的新手,我想做一个远程控制我的树莓派的网页。在raspberry上,我有几个传感器,我可以通过在192.168.1.100:9997上发送请求来获取数据。有用Python编写的代码。例如,如果我尝试使用Putty获取数据,一切都可以工作。现在我想在我的网页上建立TCP连接来读取数据。我搜索了几天,发现这可以通过创建Websockets实现。有很多工具,我发现描述最多的是Node.js。正如我所理解的Node.js可以创建Websockets,它也可以服务网页(而不是apache为例)?

例如,我运行这个Websocket服务器只是为了从"server.js"中的RPi读取数据。现在我不知道我怎么能得到这个数据从"服务器。js"到我的。html?我没有找到任何非常基本的例子。我可以通过数据库获取数据,但这不是我想要的。我也想从我的网页发送请求到Rpi,然后阅读答案。

我希望你能理解我的问题。如果你能给我指出一些好的例子,或者告诉我应该怎么做,我会很高兴的。如果可能的话,我想用javascript来做这个。

提前谢谢你。

编辑:我现在有Node.js工作的例子,但我不知道如何实现这到我的网页,用户可以从。html触发这部分代码,并显示回答的数据到。html网页。我希望这对你有帮助。

var client = new net.Socket();
client.connect(9997, '192.168.1.100', function() {
    console.log('Connected');
    //sending request
    //THIS SHOULD BE TRIGGERED FROM HTML onclick for example
    client.write('$DATA');
});
client.on('data', function(data) {
    console.log('Received: ' + data);
    //THIS DATA SHOULD BE SHOWN IN HTML for example
    //client.destroy(); // kill client after server's response
});
client.on('close', function() {
    console.log('Connection closed');
});

要从Pi上获取数据并进入Web页面,请看一些使用WAMP(一种运行在WebSocket之上的开放协议)和Crossbar的示例。io (WAMP的开源路由器)- http://crossbar.io/iotcookbook/Raspberry-Pi/

完全披露:我正在做这些项目——但它们是开源的,非常适合OP想要做的事情。