今天跟大家唠唠我最近折腾的“沃尔达”。别想歪,不是什么玛特,也不是那个搞情侣表的,我说的“沃尔达”是帮我老丈人捣鼓的一个小玩意儿,关于他那块老旧的收款机。
事情是这样的,过年回老家,老丈人在镇上开个小卖部,几十年,用的还是那种老掉牙的收款机,按一下“叮”一声那种。每次结账都得手动输入,慢不说,还老出错。我就寻思着,能不能给他整个明白点的。
一开始我想直接换个智能收款机,带扫码支付啥的,方便快捷。去市场上转一圈,好家伙,便宜的不好用,好用的又死贵,老丈人那小本生意,舍不得。
后来一琢磨,干脆自己动手,丰衣足食。我手头正好有个吃灰的旧平板,想着能不能废物利用一下,搞个简易的收银系统。
说干就干。是软件,网上搜罗一圈,找到几个开源的收银软件,但是功能都太复杂,老丈人肯定用不惯。于是我就决定自己撸一个。
先用 Python 写个简单的界面,就几个按钮,商品列表,价格,数量啥的。然后用 SQLite 存商品信息,简单粗暴。
界面是丑点,功能倒是够用。下一步就是怎么把平板和收款机连起来。老丈人那收款机太老,没 USB 接口,更别说蓝牙。
我研究半天,发现那玩意儿就是个简单的打印机,用的是针式打印头。我就想,能不能模拟一下打印机的信号,让平板直接控制它。
在网上搜些资料,发现有人用 Arduino 做过类似的事情。我就搞块 Arduino 板子,连上平板的耳机孔(对,你没听错,就是耳机孔),用 Arduino 模拟打印机的信号,控制收款机打印小票。
这中间踩不少坑。是信号电压的问题,平板的耳机输出电压太低,驱动不打印头。后来我加个放大电路,把电压放大到 5V,才算搞定。
然后是打印格式的问题,老收款机的打印格式很奇怪,要摸清楚它的编码规则,才能正确打印出小票。我对着老丈人之前的票据,一行一行地分析,终于搞明白。
我把 Python 程序打包成 APK,安装到平板上,再把 Arduino 板子固定在收款机旁边,用电线连起来。
整个过程大概花我一个星期的时间,每天晚上熬到半夜。虽然累,但是看到老丈人用上我做的“沃尔达”,熟练地扫码、结账、打印小票,心里还是挺有成就感的。
这套方案虽然简陋,但是成本低,而且能满足老丈人的基本需求。更重要的是,让我体验一把 DIY 的乐趣。以后有机会,我还想继续优化一下,加个云端同步功能,方便老丈人管理商品信息。
就这样,我这个“半路出家”的程序员,用自己的双手,为老丈人的小卖部添砖加瓦,也算是为家庭贡献一份力量。

还没有评论,来说两句吧...