如何将 json 从 arduino 发送到节点 js (SerialPort)?

阿卜杜勒加维尔·贝尔苏吉尔

Arduino代码:

我正在尝试发送具有三个值的 json 结构数据

#include <dht.h>
#include <ArduinoJson.h>

DHT d = DHT();

int avalue=0;

void setup() {
  Serial.begin(9600);
  while (!Serial) continue;

  d.attach(A0);
  delay(1000);
}

int data[3];

void loop() {
  d.update();

  data[0] = analogRead(A1);
  data[1] = d.getTemperatureInt();
  data[2] = d.getHumidityInt();
  StaticJsonBuffer<200> jsonBuffer;

  JsonObject& root = jsonBuffer.createObject();

  root["Moisture"] = data[0];
  root["Temperature"] = data[1];
  root["Humidity"] = data[2];

  Serial.println();
  root.prettyPrintTo(Serial);
}

在这里你可以看到arduino的输出

我需要在 NodeJs 上获取数据

我的问题是我无法在 json 中获取数据

我有哪些选择?

或者我该如何解决这个问题?

我正在尝试通过 SerialPort 读取数据

节点JS代码:

var express = require('express');
var app = express();
var SerialPort = require('serialport');
var firebase = require('firebase');
var port = new SerialPort('COM4', {
  baudRate: 9600
});

var Readline = SerialPort.parsers.Readline

var parser = new Readline()
port.pipe(parser)

parser.on('data', function (data) {

    console.log(data);
})

在这里你可以看到节点服务器的输出

但是当我尝试获取子数据时,我收到了 undefined

console.log(data.Temperature);

未定义的值

阿卜杜勒加维尔·贝尔苏吉尔

在节点 js 中,您首先应该:

1)转换为字符串

2)并从此字符串中删除 '\r'

3)转换为JSON

4)然后解析它

parser.on('data', function (data) {
    str = data.toString(); //Convert to string
    str = str.replace(/\r?\n|\r/g, ""); //remove '\r' from this String
    str = JSON.stringify(data); // Convert to JSON
    str = JSON.parse(data); //Then parse it

    console.log(str.Moisture);
    console.log(str.Temperature);
    console.log(str.Humidity);


})

保留其余代码不变

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将JSON数据从节点js脚本发送到其他服务器上的HTML文件

在将消息发送到节点js中的azure服务总线队列时,如何将内容类型指定为application / json?

如何通过节点js服务器将Json对象发送到express-handlebars html?

如何将多个变量从Arduino发送到Unity?

如何将输出图像从节点js子进程发送到“父级”?

如何将输入从MainThread发送到节点js中的工作线程(Worker_threads)

如何将数据从模型发送到控制器节点js

我正在通过节点js将sqlite3查询结果作为json发送到浏览器

将数据从Arduino发送到应用

如何将json从android发送到php?

如何将JSON对象发送到Servlet

如何将JSON对象从Perl发送到Python?

如何将Json数据从javaScript发送到Flask

如何将参数从js发送到php codeigniter

如何将套接字数据发送到节点js中的特定客户端(基于deviceId)?

如何将多个文件发送到节点 js 中的客户端(作为源)页面

如何将数组从html发送到node.js,然后发送到mongodb?

如何将int从Python发送到Arduino,以便将其用作neopixel函数setPixelcolor()的参数?

如何将AT命令发送到BT Shield iteadstudio(Master / Slave)-Arduino?

如何将数据(整数)从 C++ 发送到 Arduino?

如何使用ajax将数据发送到节点js服务器

如何使用节点Js将文件发送到AWS S3?

如何通过发布将图像二进制文件发送到API?节点js

如何使用AJAX / jQuery将数据发送到节点js的发布方法?

如何以参数方式将json主体中的字段发送到Node JS API?

如何使用 Node.js 将 JSON 对象发送到 Sengrid 动态模板?

将数据从节点/猫鼬发送到骨干网;仅接收JSON对象

节点/ Express:尝试将静态JSON文件发送到API端点

使用httponly cookie将JWT从节点REST API发送到Vue.js SPA