Javascript 使用node js websockets实时显示温度

Javascript 使用node js websockets实时显示温度,javascript,node.js,raspberry-pi,Javascript,Node.js,Raspberry Pi,我有温度传感器ds18b20,并且我成功地获得了读数,如何在温度变化时将该值发送到连接的客户端 socket.emit('Temperature', TempValue() ); 在连接上使用这个只执行一次,我需要不断地发送给客户端,这将显示在HTML页面上。我有一个类似的系统,它基于一对温度传感器控制阁楼风扇。我所做的是: 我使用读取温度传感器的setInterval()在服务器本地设置轮询间隔。此间隔独立于任何连接,它是服务器代表所有连接执行的操作 当应用程序首次启动时,第一个温度被发送到

我有温度传感器ds18b20,并且我成功地获得了读数,如何在温度变化时将该值发送到连接的客户端

socket.emit('Temperature', TempValue() );

连接上使用这个
只执行一次,我需要不断地发送给客户端,这将显示在HTML页面上。

我有一个类似的系统,它基于一对温度传感器控制阁楼风扇。我所做的是:

  • 我使用读取温度传感器的
    setInterval()
    在服务器本地设置轮询间隔。此间隔独立于任何连接,它是服务器代表所有连接执行的操作
  • 当应用程序首次启动时,第一个温度被发送到任何连接的客户端,我存储上次发送的温度值
  • 然后在下一个轮询循环中,我将新的当前温度值与我发送的上一个温度值进行比较。当这两个值相差某个预先确定的量时,我将使用
    io.emit()
    向所有连接的客户端广播一个新的温度值,并将刚刚发送的新值保存为新的比较值
  • 如果它们之间的差异不够大,那么我不会发送任何内容,也不会保存新的温度,并在每个轮询间隔中不断检查,等待温度值差异足够大,以保证将其发送到客户端

  • 通过这种方式,我只在新温度与以前的值相差足够大且值得使用一些带宽发送时才向客户端发送新温度。

    您可以将其包装在
    setInterval
    中,并每隔500毫秒检查一次温度,例如
    setInterval(()=>socket.emit('temperature',TempValue()),500)
    socket.setInterval(()=>socket.emit('Temperature',TempValue()),500)
    yes
    ds18b20.Temperature('28-031397798ac6',function(err,value){Temperature=value;io.emit('Temperature',Temperature);})@reputationX-这是一个额外的问题,还是你说你现在明白了?