用码上掘金操作蓝牙智能设备。
- Mipow-Playbulb-LED | GATT ✔︎ | SPP x
- Mipow-Playbulb-Sphere | GATT ✔︎ | SPP x
- Mipow-Playbulb-Candle | GATT ✔︎ | SPP x
- Epaper 蓝牙价签 | GATT ✔︎ | SPP x
- Divoom-Timebox-Mini | GATT ✔︎ | SPP x
- Pixoo 16x16 | GATT x | SPP ✔︎
- Pixoo-Max | GATT x | SPP ✔︎
- Ditoo-Plus | GATT x | SPP ✔︎
- Divoom Backpack | GATT x | SPP ✔︎
- Divoom Zooe | GATT x | SPP ✔︎
逐步添加中...
import {Playbulb} from 'https://unpkg.com/[email protected]/dist/jcode-bluetooth.js';
const device = new Playbulb();
const button = document.querySelector('button');
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
button.addEventListener('click', async () => {
await device.connect();
let hue = 0;
while (true) {
await device.setColor(`hsl(${hue}, 100%, 50%)`);
hue = (hue + 1) % 360;
await sleep(100);
}
});
因为Pixoo系列像素板的蓝牙协议是SPP,浏览器Web Bluetooth只支持GATT,所以需要启动本地HTTP服务做一个代理。
准备好设备,通过手机蓝牙调试工具查看设备地址,然后clone本项目到本地,安装依赖后启动server服务:
npm install && npm run server -- <设备MAC地址>
接着就可以在Web上编写代码了,Pixoo对象提供了可操作的canvas对象,你可以直接操作这个对象,绘制内容会自动同步到设备上。
import {PixooMax} from 'https://unpkg.com/[email protected]/dist/jcode-bluetooth.js';
const p = new PixooMax();
const ctx = p.canvas.getContext('2d');
ctx.fillStyle = 'green';
ctx.fillRect(8, 8, 24, 24);
在线示例:Pixoo-Doodle @码上掘金