0
0

More than 1 year has passed since last update.

Node.js: シリアルポートの出力

Posted at

こちらのページのテスト用プログラムを Node.js で書きました。
M5Stack Core2: シリアルで LED を制御

led_control.js
#! /usr/local/bin/node
// ---------------------------------------------------------------
//	led_control.js
//
//						Oct/4/2022
// ---------------------------------------------------------------
'use strict';
require('date-utils')
// ---------------------------------------------------------------
function send_proc(color)
{
	port.write(color, function(err)
		{
		if(err){
		// エラーハンドル
			return console.error('*** error ***', err.message)
		}
	// 成功
		console.error("*** sent *** " + color)
		})
}

// ---------------------------------------------------------------
function counter () {
	const colors = ["red","yellow","green","blue"]
	var dt = new Date()
	var formatted = dt.toFormat("HH24:MI:SS")
	console.log(count++, "只今の時刻:",formatted)
	const timeoutId = setTimeout(counter, 2000)

	const jt = count % 4

	send_proc(colors[jt])

	if (count == 5)
		{
		clearTimeout(timeoutId)
		console.error ("*** 終了 ***")
		}

	console.error('*** count = ' + count + ' ***')
}

// ---------------------------------------------------------------
console.error ("*** 開始 ***")
var {SerialPort} = require("serialport")
var port = new SerialPort({path: "/dev/ttyUSB0", baudRate: 115200 })
var count = 0

port.on('open', function() {
	console.error('*** port *** opend ***')
})

counter()

// ---------------------------------------------------------------

実行スクリプト

start.sh
export NODE_PATH=/usr/local/lib/node_modules
./led_control.js

次のバージョンで確認しました。

$ node --version
v18.10.0
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0