cuốn sách gpt4 ai đã làm

json - Dữ liệu cảm biến không được tải lên đám mây artik

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 02:09:07 27 4
mua khóa gpt4 Nike

Tôi đang cố gắng gửi dữ liệu cảm biến tới đám mây artik thông qua node.js. (Sử dụng ổ cắm mạng và cổng nối tiếp). Nhưng nó gửi null. Có ai biết lý do không? Tôi chỉ sao chép mã từ hướng dẫn nên không có lỗi cú pháp.

var webSocketUrl = "wss://api.artik.cloud/v1.1/websocket?ack=true";
var device_id = "####";
var device_token = "#####";

var isWebSocketReady = false;
var ws = null;
var serialport = require("serialport");


var portName = 'COM5';
var sp= new serialport.SerialPort(portName, {
tốc độ truyền: 9600,
trình phân tích cú pháp: serialport.parsers.readline("\r\n")

});
var WebSocket = require('ws');

/**
* Lấy thời gian hiện tại tính bằng mili giây
*/
hàm getTimeMillis(){
trả về phân tích cú phápInt(Date.now().toString());
}

/**
* Tạo kết nối hai chiều /websocket
*/
hàm bắt đầu() {
//Tạo kết nối websocket
isWebSocketReady = false;
ws = WebSocket mới(webSocketUrl);
ws.on('open', function() {
console.log("Kết nối Websocket đang mở ....");
đăng ký();
});
ws.on('message', function(data, flags) {
console.log("Tin nhắn đã nhận: " + data + '\n');
});
ws.on('close', function() {
console.log("Kết nối Websocket đã bị đóng......");
});
}

/**
* Gửi tin nhắn đăng ký tới websocket và khởi động chương trình tràn tin nhắn
*/
thanh ghi hàm(){
console.log("Đang đăng ký thiết bị trên kết nối websocket");
try{
var registerMessage = '{"type">đăng ký", "sdid":"+device_id+'", "Ủy quyền":"người mang '+device_token+'", "cid":""+getTimeMillis()+'"} ';
console.log('Gửi tin nhắn đăng ký ' + registerMessage + '\n');
ws.send(registerMessage, {mask: true});
isWebSocketReady = true;
}
bắt (e) {
console.error('Không đăng ký được tin nhắn. Lỗi khi đăng ký tin nhắn: ' + e.toString());
}
}

/**
* Gửi một tin nhắn tới ARTIK Cloud
*/
hàm sendData(nhiệt độ){
try{
// ts = ', "ts": '+getTimeMillis();
dữ liệu var = {
"temp": nhiệt độ

};
var payload = '{"sdid":"+device_id+'", "data": '+JSON.stringify(data)+', "cid":"+getTimeMillis()+'"}';
console.log('Gửi tải trọng ' + tải trọng);
ws.send(payload, {mask: true});
} bắt (e) {
console.error('Lỗi gửi tin nhắn: ' + e.toString());
}
}

/**
* Tất cả bắt đầu ở đây
*/


start(); // tạo kết nối websocket

sp.on("mở", hàm () {
sp.on('data', function(data) {
if (!isWebSocketReady){
console.log("WebSocket chưa sẵn sàng. Bỏ qua việc gửi dữ liệu tới ARTIK Cloud (data:" + data +")");
return;
}
console.log("Cổng nối tiếp đã nhận dữ liệu:" + data);
//var ParsedStrs = data.split(",");
var nhiệt độ = phân tích cú pháp (dữ liệu);




sendData(nhiệt độ);
});
});

câu trả lời hay nhất

Nếu bạn trích dẫn ví dụ IoT đầu tiên của chúng tôi: https://developer.artik.cloud/documentation/tutorials/your-first-iot-device.html

Ví dụ Node.js gửi giá trị từ cảm biến nhiệt độ. Là phần phụ thuộc, nó yêu cầu kết nối Arduino, Raspberry Pi và cảm biến nhiệt độ DHT nằm trên các chân bên phải. Nếu bạn thấy null trước khi gửi dữ liệu tới ARTIK Cloud, thì bạn sẽ không nhận được bất kỳ giá trị nào từ cảm biến.

Cụ thể, nếu xảy ra bất kỳ lỗi phân tích cú pháp nào, hãy xuất và in giá trị "nhiệt độ" của hàm sau ra bảng điều khiển: hàm sendData(nhiệt độ) //...

Nếu bạn cần thêm thông tin, vui lòng gửi email đến dev@artik.cloud.

Cảm ơn!

Về json - dữ liệu cảm biến không được tải lên đám mây artik, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/43044673/

27 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress