前言
随着智能硬件设备的普及,越来越多的人开始关注智能硬件设备与 Web 前端的结合。本文将介绍一款名为 @scarygami/giiker 的 npm 包,它可以实现 Web 前端与魔方硬件 Giiker 的通信,帮助开发者更加方便地开发智能硬件项目。
Giiker 简介
Giiker 魔方是一款由深圳满口福数码科技有限公司生产的智能魔方硬件。Giiker 魔方可以通过蓝牙与手机或电脑连接,实现智能魔方解法、计时、对战等功能。
@scarygami/giiker 简介
@scarygami/giiker 是一款 npm 包,它实现了 Web 前端与 Giiker 魔方的通信。通过该包,我们可以获取 Giiker 魔方的状态(魔方是否在锁定状态、魔方当前的面),并且可以控制 Giiker 魔方(设置魔方当前的面、控制魔方的转动)。
安装
要使用 @scarygami/giiker,我们需要先在终端运行以下命令安装它:
npm install @scarygami/giiker
使用
初始化
在使用 @scarygami/giiker 前,我们需要先初始化一个 Giiker 对象:
import { Giiker } from '@scarygami/giiker'; const giiker = new Giiker();
连接 Giiker
Giiker 对象初始化后,我们可以通过它来连接 Giiker 魔方:
giiker.connect();
连接 Giiker 魔方时,我们需要确定 Giiker 魔方的蓝牙地址(需要通过手机蓝牙工具查询),并将其传入 connect() 方法的参数中。
Giiker 对象成功连接 Giiker 魔方后,会 emit('connect') 事件。
获取 Giiker 魔方状态
Giiker 对象连接上 Giiker 魔方后,我们可以通过它来获取 Giiker 魔方的状态:
const isLocked = giiker.isLocked; // 获取魔方是否在锁定状态 const faceState = giiker.faceState; // 获取魔方当前的面
设置 Giiker 魔方状态
Giiker 对象连接上 Giiker 魔方后,我们还可以通过它来设置 Giiker 魔方的状态:
giiker.sendState('UUUUUUUUURRRRRRRRRFFFFFFFFFDDDDDDDDDLLLLLLLLLBBBBBBBBB'); // 初始状态 giiker.setFaceState('R'); // 设置当前的面为右面
控制 Giiker 魔方转动
Giiker 对象连接上 Giiker 魔方后,我们还可以通过它来控制 Giiker 魔方的转动:
giiker.move('R'); // 控制魔方右转一次 giiker.move('R2'); // 控制魔方右转两次 giiker.move('R\''); // 控制魔方右反转一次
断开与 Giiker 的连接
当 Giiker 对象与 Giiker 魔方通信结束后,我们应该将其与 Giiker 魔方断开连接:
giiker.disconnect();
示例代码
下面是一个完整的示例代码:
-- -------------------- ---- ------- ------ - ------ - ---- -------------------- ----- ------ - --- --------- -- -- ------ -- ------------------------------------ -- -- ------ ---- ----- -------- - ---------------- ----- --------- - ----------------- -- -- ------ ---- --------------------------------------------------------------------------- ------------------------- -- -- ------ ---- ----------------- ------------------ ------------------- -- --- ------ --- --------------------
总结
通过本文的介绍,我们了解了 @scarygami/giiker 这款 npm 包的使用方法,并且了解了如何通过它来实现 Web 前端与 Giiker 魔方的通信。当然,除了该 npm 包外,我们还可以通过其他方式来实现智能硬件与 Web 前端的通信,比如使用 WebSocket 等。希望本文可以对开发者们在智能硬件项目中使用 Web 技术提供一定的参考价值。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6006735c890c4f7277583fd5