全体のプログラムは、こちらになります。
routerはExpressのモジュールになります。
router.post('/', async (req: Request, res: Response) => {
let obniz: Obniz | null;
obniz = new Obniz(process.env.OBNIZ_ID);
if (!await obniz.connectWait({ timeout: 5 })) {
throw new Error('Obnizが接続できませんでした。');
}
const uart = obniz.getFreeUart();
try {
uart.start({ gnd: 0, rx: 2, tx: 3, baud: 115200 });
uart.send([0x23, 0x57, 0x4C, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00]);
return res.json('');
} catch (e) {
console.error(e);
res.status(500).json(e);
} finally {
if (obniz) {
uart.end();
await obniz.closeWait();
}
}
});
回路図は以下になります。
利用したマイコンは、下記のものになります。
https://akizukidenshi.com/catalog/g/gK-12144/
また、マイコンに対して、PCでCOM3からTera Termでデータを送ると、マイコンは正しいデータを受け取りました。