服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

我把 65 元的墨水屏标签,改造成了 NAS 的监控屏

日期: 来源:少数派收集编辑:千里之豪

我为什么要买墨水屏产品

事情的起因是这样的,一年前,社交媒体上就已经有很多技术宅在自己玩一些微雪的墨水屏了,看着他们又是焊板子又是 PCB 的真的是馋死我了。
但苦于自己是软件出身,没有一点硬件的底子,我就在想,能不能买一个现成的,然后自己再慢慢地去分析原理呢?
于是我就持巨资买了两块超市用的价签,一块 65,带支架,有 App 控制,可以批量添加。
现在居然还涨价了……理财产品实锤
然后我拆了其中一块想试下能不能用我树莓派的视频输出去控制它。
然后……就悲剧了。我发现这玩意儿的排线跟树莓派根本就不兼容……
被我拆掉的尸体,组装回去还能用,但我发现我没法用树莓派去接线驱动他
65 块钱就这么没了!另一块则作为我的备件一直躺在箱子里待了半年多。
废物再利用,另辟蹊径
直到今年年初,我 NAS 的硬盘被我用到了 80%,然后迅雷还在卯足了劲儿在往硬盘里塞东西,我每天不得不多次打开我的管理界面去检测 NAS 当前还有多少余量可以用。
然后我就想到了它:墨水屏,这东西显示的时候不耗电,只有刷新的时候才会用一点点电,简直就是为监控状态而生的屏幕啊。于是,我又下定了决心去想驱动它的办法。
上次用硬件驱动的路子走不通了,学习成本过高。我开始另辟蹊径,往软件驱动上靠:我能不能去找到控制它刷新的协议呢?
答案是肯定的。
这类墨水屏走的都是低功耗蓝牙控制的路子,手机蓝牙发送数据都是可以通过 logcat 这个工具进行抓包,说干就干。
这是 logcat 抓取的所有的手机运行日志:
显然有很多是我们不需要的信息,这严重干扰了我的分析工作,那就加一个过滤条件,只接受蓝牙相关的信息。
还是看不出什么内容,只是很不相关的日志输出:
只能根据时间节点一点点翻 logcat 日志了,此时我发现一个值得关注的信息,在蓝牙发送的那段时间的日志中,有一个非常规律的,也很像有点儿内容的写(write)命令:
识别度 AAAA
于是我就把这个关键字作为单独的日志过滤条件重新进行了一次抓包,事情突然就明朗了,这就是蓝牙墨水屏的手机 App 控制协议,而且协议的内容也非常容易理解:
竖向看,注意到那个 01 02 03 04 05 06 了嘛?
为了信息发送的稳定性,开发者把这个屏幕的发送信息切成了一段一段的内容,分开发给蓝牙墨水屏屏幕。在发送结束后,再发送命令给墨水屏统一控制刷新一次,这样就完成了屏幕的刷新。
接下来我详细分析一下我对这段协议的理解。
报文分析,找到协议规律
可以参考上边的报文内容,并结合当前的分析内容看。
01-25 17:11:24.844 25455 25455 E write: total=1,13 01 b4 ff ... ff ff 4c
这是蓝牙发送协议的内容部分,报文的起始内容是 13 01 b4 ff ... ff ff 4c,其中:
• 13:命令字,标识当前的内容是显示内容,对应到墨水屏的显示控制部分的地址;
• 01:报文顺序,通过上边截图(竖着看),也能看出,开发者是把屏幕的内容切割成一段一段分开发给屏幕的;
• b4:16 进制数字,代表 180,数一下 b4 后边的报文也就是 180 的长度(最后还有一个较短的尾巴,看下边说明);
• 4c:校验位,防止当前这段报文在传输过程中有内容没收到或者传输错误,所以增加一个校验位,来保证当前报文是完整的;
• ff:这以下是报文内容,下边细说。
这种报文一共出现了 26 次,第二十七次有一点不同:
01-25 17:11:34.142 25455 25455 E write: total=1,13 1b 38 ff ... ff ff c8
可以看到,除了长度(38,即十进制 56)以外,报文的规则仍然符合我们上述的分析。
那么我们现在就可以来总结一下这个命令字 0x13 的所有内容了:
• 总长度为 180×26+56 = 4736(180 内容长度的报文重复了 26 次,又加上了一个 56 内容长度的尾巴);
• 已知的情况是:我们的墨水屏屏幕分辨率为 296×128,是 4736 的 8 倍。那缺失的这个系数 8 哪去了呢?
我们知道,ff 是 16 进制数,换算为 10 进制是 255,换算为 2 进制是 11111111。这不正好是 8 个长度位吗?
事情开始明了了,每个 16 进制数含有 8 个二进制数,其值 1 和 0 分别对应墨水屏的黑色和白色状态。
这样,每个 16 进制数就可以控制八个墨水屏像素。我们的等式就成立了:报文含有 4736 个 16 进制数,正好可以控制 8 倍于它的像素总数 296×128。
因为我买的是三色显示,所以除了显示黑白,这个屏幕还可以显示红色。红色报文的控制跟上述类似,只是命令字不同(从 0x13 变成了 0x12),就不再赘述。
新的问题,蓝牙连接
搞定了这块屏幕的控制协议,接下来就是怎么把协议发过去了。到了这一阶段就彻底没有可能通过报文分析,只能盲猜了。
我查了一些低功耗蓝牙的连接资料,同时一步一步地写代码来测试,最终还是摸索到了连接蓝牙并发送的方法了
const onCharacteristicFound = (_error, services, _characteristics) => {
const characteristic = services[0].characteristics[0]
characteristic.once('notify', (state) => { log('notify: ' + state) });
characteristic.once('write', () => { }, (res) => {
log('write get response: ' + res)
})
setTimeout(() => {
sendData(characteristic)
}, 250)
}

const onDescover = (peripheral) => {
log('searning...')
if (peripheral.connectable === true && peripheral.state === 'disconnected') {
if (peripheral.advertisement.localName === '你的蓝牙设备识别码') {
stopScanning()
currentDevice = peripheral
peripheral.once('connect', () => {
log('Connected !!! ')
peripheral.discoverSomeServicesAndCharacteristics(
['服务特征码1'],
['服务特征码2'],
onCharacteristicFound);
});
peripheral.once('disconnect', () => {
log('disconnected !!! ')
});
peripheral.connect()
}
}
}
以上代码就是搜索蓝牙、连接蓝牙、连接服务、发送数据的全部代码了,当然,完整的项目代码我也上传到了 GitHub,欢迎大家多多 Star,多多提意见。

相关阅读

  • Ravpower睿能宝 1米C94 苹果认证快充CL线

  • ---爱扫货发车第 1573 期---前言跨境电商巨头Ravpower就不用过多介绍了吧,其过硬的品质和超高的性价比深受客户的欢迎。 睿能宝 30W 1A1C 快充头+MFI认证的C to L快充线套装
  • 941天 赚钱的小项目180 无脑粗暴销售法

  • 看过的书,投资记录,内部交流圈的内容,赚钱项目的灵感,一些奇技淫巧...具体的内容计划是:1. 每日随笔;2. 好东西分享,某神器软件、网站、小技巧...3. 投资记录;4. 阅读摘录。第一项:随
  • AI赋能游戏研发,传媒ETF(159805)涨近5%

  • 传媒板块午盘异动拉升,截止11:30,三人行、游族网络、遥望科技、完美世界涨超10%,视觉中国、中文传媒、宝通科技涨超9%,世纪华通、中国电影、浙文互娱涨超7%,中原传媒涨超6%,传媒ETF
  • 盘整之后,再创新高!游戏ETF(159869)近2日涨超9%

  • 4月12日,在经历了周一回调之后,游戏板块连续2日再次冲高,乘上ChatGPT的快车,继续受资金热捧。截至11:02,游戏ETF(159869)盘中涨超4%。重仓股火速飘红:光线传媒涨超9%,完美世界涨超7
  • 全市新媒体业务培训

  • 4月11日,市委宣传部邀请凤凰网山西频道技术总监邢健,对全市新闻工作者、各系统各乡镇宣传干部就短视频创作进行业务培训。5G时代全面到来,新传播格局下,短视频逐渐成为政务新媒
  • 百度营销发布《2023百度母婴内容营销手册》

  • 随着母婴市场理性、成熟的消费理念形成,以及母婴种草内容过多引发的消费决策焦虑,消费者趋向更加主动获取深度信息,自主进行价值判断。以百度为代表的综合类搜索平台仍是信息碎
  • 【作品】首开龙湖·璟宸府--精选视觉作品鉴赏

  • 关注地产小圈子,即送140个最新推广策略案进群、投稿请添加微信:ahuo706特别鸣谢:首开龙湖·璟宸府越来越懒,直接看图【已上传资料合集】文中所选作品来源于网络收集、微信群友分
  • 大开眼界!这个“罐罐”不一般!

  • 哈喽!大家好!我是一个“罐罐”我的大名是河间LNG调峰储备库2023年2月23日正式由华北油田华港公司运营使用听说还有很多人不了解我那今天咱们来聊聊天01我的家在哪里?“我的家在

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四
  • 美国对华2000亿关税清单,到底影响有多大?

  • 1 今天A股大跌,上证最大跌幅超过2%。直接导火索是美国证实计划对华2000亿美元产品加征25%关税。 听起来,2000亿美元数目巨大,我们来算笔账。 2000亿美元,按现在人民币汇率

最新文章

  • 在停运之前,我存下了 3DS eShop 的数据……

  • 就人气与普及率而言,3DS 在国内绝对算不上是一台冷门的掌机;但和 PS、Xbox 系主机不同的是,面向中国港台地区发售的繁体中文版 Nintendo 3DS,却通常会被国内玩家们所忽略。这种
  • 我把 65 元的墨水屏标签,改造成了 NAS 的监控屏

  • ▍我为什么要买墨水屏产品事情的起因是这样的,一年前,社交媒体上就已经有很多技术宅在自己玩一些微雪的墨水屏了,看着他们又是焊板子又是 PCB 的真的是馋死我了。但苦于自己是
  • 韩国逼死了她,却让全网社畜破防

  • 本文经授权转载自Sir电影原标题 | 韩国逼死了她,我们破什么防作者 | 毒Sir编辑助理 | 奇爱博士多店老板娘这一边的青年还在纠结长衫脱不脱。韩国网友已经在盘算什么时候才能