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);
}
我需要在 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] 删除。
我来说两句