Module for arduino-nodejs communication
const arduino_node = require("arduino-nodejs")
arduino_node.list()
arduino_node.connect(COM_port, Baud_Rate, Delay?)
await arduino_node.write(object)
arduino_node.read()
#include <ArduinoJson.h>
void setup()
{
Serial.begin(115200);
}
void loop()
{
if (Serial.available()) {
DynamicJsonDocument doc(1024);
deserializeJson(doc, Serial);
if (doc["fingerprint"] == "X-Node-Fingerprint") {
}
}
}
await arduino_node.connect(list[0], 115200, 10)
const arduino_node = require("arduino-nodejs")
const gaxios = require("gaxios")
let video_id = "aKkVqmvs4NA"
let youtube_key = ""
let link = `https://www.googleapis.com/youtube/v3/videos?part=statistics&id=${id}&key=${youtube_key}`
function scrapeData(id) {
return new Promise((resolve, reject) => {
gaxios.request({ method: "GET", url: link})
.then((data) => {
resolve(data.data.items[0].statistics)
})
.catch((err) => {
reject(err)
})
})
}
function printToScreen(){
scrapeData(video_id)
.then(async (data) => {
await arduino_node.write({ type: "lcd_clear" })
await arduino_node.write({ type: "setCursor", "pos1": 0, "pos2": 0 })
await arduino_node.write({ type: "lcd_print", "text": `views: ${data.viewCount}` })
await arduino_node.write({ type: "setCursor", "pos1": 0, "pos2": 1 })
await arduino_node.write({ type: "lcd_print", "text": `likes: ${data.likeCount}` })
})
}
arduino_node.list().then(async (list) => {
arduino_node.connect(list[0], 115200, 10)
printToScreen()
setInterval(async () => {
printToScreen()
}, 8100);
}).catch((err) => {
console.log(err)
})
#include <LiquidCrystal_I2C.h>
#include <ArduinoJson.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
Serial.begin(115200);
lcd.init();
lcd.backlight();
}
void loop()
{
if (Serial.available()) {
DynamicJsonDocument doc(1024);
deserializeJson(doc, Serial);
if (doc["fingerprint"] == "X-Node-Fingerprint") {
if (doc["type"] == "lcd_print") {
lcd.print(doc["text"].as<String>());
} else if (doc["type"] == "lcd_clear") {
lcd.clear();
} else if (doc["type"] == "setCursor") {
lcd.setCursor(doc["pos1"].as<int>(), doc["pos2"].as<int>());
}
}
}
}