最近,我想使用modbus-serial library和socket.io将nodejs部署到heroku,这里的想法是我想从pt100使用串口RS-485实时检索温度,本地,代码运行良好没有问题,但去了我部署到heroku,似乎heroku没有识别usb端口“/ dev / ttyUSB0”,这里我得到了,UnhandledPromiseRejectionWarning:错误:错误:没有这样的文件或目录,无法打开/ dev / ttyUSB0,因为heroku不知道它是什么,或者我必须为usb端口设置环境变量,
这是我的代码,
const ModbusRTU = require("modbus-serial")
const client = new ModbusRTU()
const app = require('http').createServer(server)
app.listen(process.env.PORT || 5000)
const io = require("socket.io")(app)
io.on("connection",function(socket){
client.connectRTUBuffered("/dev/ttyUSB0", { baudRate: 115200 }).then(() => {
setInterval(() => {
client.writeFC3(1,0,2,(err,data) => {
if(err)console.log("error ",err)
console.log("datas ",data)
io.emit("datas_holding_register_rtu",{ datas : data["data"] })
})
},100)
})
socket.on('disconnect', () => console.log('Client disconnected'))
})
知道这里发生了什么吗?谢谢
真诚的,托尼
所以... Heroku是一个云系统,并且通过连接到计算机的电缆到USB端口进行串行通信。因此,Heroku无法与您的设备通信,因为它没有USB端口。解决方案:在连接USB电缆的计算机上运行代码。