我制作了一个程序,将数据发送到我的arduino,检测发送的内容,然后根据按下的键打开正确的引脚.
当我从我的Windows计算机上使用arduino软件时,arduino草图工作正常,我可以通过发送WAS或D来打开和关闭每个引脚.
当通过节点发送时,arduino上的RX灯闪烁,但没有其他任何事情发生.
有人可以帮忙吗?
Node.js程序:
var httpServer = require('http').createServer(function(req, response){ /* Serve your static files */ })
httpServer.listen(8080);
var nowjs = require("now");
var everyone = nowjs.initialize(httpServer);
everyone.now.logStuff = function(msg){
console.log(msg);
}
var SerialPort = require('serialport2').SerialPort;
var assert = require('assert');
var portName;
if (process.platform == 'win32') {
portName = 'COM4';
} else if (process.platform == 'darwin') {
portName = '/dev/cu.usbserial-A800eFN5';
} else {
portName = '/dev/ttyUSB0';
}
var readData = '';
var sp = new SerialPort();
sp.on('close', function (err) {
console.log('port …Run Code Online (Sandbox Code Playgroud) 我有从ESP8266测量的数据,我存储在一个字符串数组中,我使用Node.js显示我的JavaScript HTML,但我只是将数据作为一个数组而不是两个数组.
我的Arduino代码:
...
int temp1, hum1, temp2, hum2;
...
void setup(){
serial.begin(9600);
serial1.begin(115200);
...
}``
void loop(){
...
float t1 = bme1.readTemperature();
float h1 = bme1.readHumidity();
float t2 = bme2.readTemperature();
float h2 = bme2.readHumidity();
temp1 = t1;
hum1 = h1;
temp2 = t2;
hum2 = h2;
getStrings();
delay(3000);
...
}
void getStrings(){
String measure1=" "; String measure2=" ";
measure1 += temp1;
measure1 += " ";
measure1 += hum1;
measure1 += " ";
Serial.println(measure1);
measure2 += temp2;
measure2 …Run Code Online (Sandbox Code Playgroud) 我正在使用node-serialport https://github.com/voodootikigod/node-serialport的小nodejs(nodejs v4.3)项目.我把它包裹在码头图像中.首先,我成功使用debian作为基本图像,但它的总大小约为600MB.然后我切换到alpine linux https://hub.docker.com/_/alpine/并实现了100MB的图像大小.但是,nodejs项目停止使用alpine作为基本图像.这是一些日志:
安装node-serialport日志:
> serialport@2.0.6 install /app/node_modules/serialport
> node-pre-gyp install --fallback-to-build
[serialport] Success: "/app/node_modules/serialport/build/Release/node-v46-linux-x64/serialport.node" is installed via remote
serialport@2.0.6 node_modules/serialport
??? bindings@1.2.1
??? async@0.9.0
??? sf@0.1.7
??? debug@2.2.0 (ms@0.7.1)
??? nan@2.0.9
??? optimist@0.6.1 (wordwrap@0.0.3, minimist@0.0.10)
Run Code Online (Sandbox Code Playgroud)
当我尝试打开串口时出现错误:
npm ERR! Linux 3.19.0-30-generic
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "start"
npm ERR! node v4.3.0
npm ERR! npm v2.14.12
npm ERR! code ELIFECYCLE
npm ERR! app@1.2.0 start: `node ./bin/www`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at …Run Code Online (Sandbox Code Playgroud) 我正在使用nodeJS的SerialPortPackage连接到计算机端口.
关于Package的close活动在这里.
我已经创建了这段代码,我想知道为什么close/ disconnect事件永远不会在我断开连接时触发COM
const express = require('express');
const router = express.Router();
//
const cors = require('cors');
router.use(cors());
//
const SerialPort = require('serialport');
const Readline = SerialPort.parsers.Readline;
const port = new SerialPort('COM7',function (err) {
if (err) {
return console.log('Error: ', err.message);
}
});
const parser = port.pipe(new Readline());
/*
var lastresult = '';
var count = 0;
*/
port.on('open', function() {
console.log('~Port is open.');
parser.on('data', console.log);
});
port.on('disconnect', function () …Run Code Online (Sandbox Code Playgroud) var SerialPort = require("serialport");
var port = new SerialPort("COM5");
port.on('open', function() {
port.write('main screen turn on', function(err) {
if (err) {
return console.log('Error on write: ', err.message);
}
console.log('message written');
});
});
// open errors will be emitted as an error event
port.on('error', function(err) {
console.log('Error: ', err.message);
})
Run Code Online (Sandbox Code Playgroud)
install npm -g serialport
install npm serialport
Run Code Online (Sandbox Code Playgroud)
错误:打开 COM5:未知错误代码 121
我正在使用 nodejs串行端口模块 ( https://npmjs.org/package/serialport ),并且在写入串行端口时遇到问题。
如果我只是按如下所示写入端口,则串行设备永远不会收到命令。
var serialport = require("serialport");
var sp = new serialport.SerialPort(serialPortPath);
sp.write("SYST:ADDR?\n");
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用如下所示的 setTimeout,那么它似乎有效吗?
var serialport = require("serialport");
var sp = new serialport.SerialPort(serialPortPath);
setTimeout(function(){sp.write("SYST:ADDR?\n")},1000);
Run Code Online (Sandbox Code Playgroud)
仅供参考,“serialPortPath”在代码中的其他地方设置。
我不确定发生了什么......有什么想法吗?
我正在尝试将插入我的 mac 的 Arduino 公开到我在Docker for Mac(无虚拟机)中运行的 Linux 实例。
Arduino 将自己暴露为/dev/tty.usbserialXXX. 我使用的node是基于 ubuntu 的 docker 镜像。
我正在运行的命令是
$ docker run --rm -it -v `pwd`:/app --device /dev/tty.usbmodem1421 node bash
docker: Error response from daemon: linux runtime spec devices: error gathering device information while adding custom device "/dev/tty.usbmodem1421": lstat /dev/tty.usbmodem1421: no such file or directory.
Run Code Online (Sandbox Code Playgroud)
如果我尝试使用--privileged
$ docker run --rm -it -v `pwd`:/app --device /dev/tty.usbmodem1421 --privileged node bash
root@8f18fdbcf64d:/# ls /dev/tty.*
ls: cannot access /dev/tty.*: …Run Code Online (Sandbox Code Playgroud) 你好,我正在使用 Arduino 和 Node js 发送和接收数据,但从 arduino 传入的数据如下所示:
<Buffer 00 00 00 e0 e0 e0 00 e0 e0 e0>
<Buffer e0 e0 e0 e0 00 e0 e0 00 e0 00 e0 e0 e0>
Run Code Online (Sandbox Code Playgroud)
我怎样才能将其解码为UTF8
阿尔杜伊诺
int incomingByte = 0;
void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}
void loop() {
if (Serial.available() > 0) {
incomingByte = Serial.read(); // read the incoming byte:
Serial.print(incomingByte);
}
}
Run Code Online (Sandbox Code Playgroud) 我有以下渲染器:
import SerialPort from "serialport";
new SerialPort("/dev/tty-usbserial1", { baudRate: 57600 });
Run Code Online (Sandbox Code Playgroud)
它由 Webpack 构建,具有以下配置(为简洁起见进行了修剪):
const config = {
entry: { renderer: ["./src/renderer"] }
output: {
path: `${__dirname}/dist`,
filename: "[name].js",
},
target: "electron-renderer",
node: false, // Disables __dirname mocking and such
};
Run Code Online (Sandbox Code Playgroud)
它由开发服务器以及 , 提供服务index.html,并由主进程作为网页加载(这是开发期间热模块替换所需要的)。
主进程由 Webpack 构建并发出dist。Webpack 插件还会生成以下内容dist/package.json:
{
"name": "my-app",
"main": "main.js"
}
Run Code Online (Sandbox Code Playgroud)
当我运行时electron dist,渲染器进程崩溃并出现以下错误:
Uncaught TypeError: Path must be a string. Received undefined
at assertPath (path.js:28)
at dirname (path.js:1364)
at …Run Code Online (Sandbox Code Playgroud) 我已经复制了这段代码:
var serialport =require("serialport");
var SerialPort = serialport.SerialPort;
var portName = process.argv[2];
var myPort = new SerialPort(portName,{
baudRate: 9600,
parser:serialport.parsers.readline("\r\n")
})
myPort.on('open',onOpen);
myPort.on('data',onData);
function onOpen(){
console.log("Open connections!");
}
function onData(data){
console.log("on Data "+data);
}
Run Code Online (Sandbox Code Playgroud)
来自这个视频:https : //www.youtube.com/watch?v=rhagmAv35Kk
我想将串口数据从我的电脑流式传输到 NJS 代码中。当我运行代码时,我收到此错误:
c:\njs>node main.js
C:\njs\main.js:7
parser:serialport.parsers.readline("\r\n")
^
TypeError: serialport.parsers.readline is not a function
at Object.<anonymous> (C:\njs\main.js:7:28)
at Module._compile (module.js:541:32)
at Object.Module._extensions..js (module.js:550:10)
at Module.load (module.js:458:32)
at tryModuleLoad (module.js:417:12)
at Function.Module._load (module.js:409:3)
at Module.runMain (module.js:575:10)
at run (bootstrap_node.js:352:7)
at startup (bootstrap_node.js:144:9)
at …Run Code Online (Sandbox Code Playgroud) node-serialport ×10
node.js ×9
javascript ×4
docker ×2
alpine-linux ×1
arduino ×1
electron ×1
linux ×1
macos ×1
serial-port ×1
socket.io ×1
webpack ×1