phyphox离线二维码的生成
前一段时间phyphox官网可能正维护,也可能是封网,总之是phyphox网站上不去了。那时候大家正研究使用手机音频口作为示波器,比如通过音频口测心电图、通过音频口测量交流低压信号等实验。
但是因为phyphox官网上不去,一些旧的手机不能直接导入phyphox文件。当然后来安徽池州詹善生老师分享了他的phyphox文件的二维码,才通过扫描二维码导入了这个实验文件。这个事情之后,才开始研究phyphox文件生成二维码的问题。
在线二维码,是通过本机创建HTTP服务来实现的,已经攻克;但一般情况下,我们不可能有公网的IP,也不可能把本机的HTTP暴露在公网里,也就不可能通过在线二维码把phyphox导入到他人的手机里。因此,离线二维码就必须要攻克。
离线二维码的生成,在phyphox的wiki页上有介绍,但不幸的是,这个介绍很简单,难于操作。后来历经千辛万苦,终于在专业程序员的帮助下实现了。
我给它制作了一个GUI界面:
生成离线二维码:
一般来说,文件长度太大时,不宜使用二维码,那会使扫描失败率增大,所以很多的二维码生成库都限制或建议文件长度。这里的文件长度,1.4k左右。
怎样给phyphox文件瘦身呢?若phyphox文件是由ESP32蓝牙生成的,那么这个phyphox往往非常小;而phyphox如果是官网editor生成的,那它往往比较大。说明什么?说明editor会把一些不必要的信息也放在phyphox文件里。经过摸索,我发现只要是默认的东西,压根儿就不必写在phyphox文件里。于是一通删减,果然如此。
二维码生成同时,返回字节流:
70687970686f785bfe58d90001504b0304……现在能够明白它的意思,是扫出来phyphox前7个字节的文件头,然后告知系统中的phyphox打开后面的zip文件,文件完整性由CRC32指出,并告知phyphox二维码是第00号,共01个。后面的504b0304是zip的文件头。
其实离线二维码实现了,还有一个意义,是我一直想着的:现在不是因为吃馒头会噎着嘛,于是不允许带馒头,或者不建议带馒头,如果特殊情况带馒头了,就必须由别人负责管理馒头——尽管馒头有营养,馒头很大程度上代表着科技的方向。但是不可以,因为评论说馒头噎着的人多。这样,离线二维码就可以成为活动型、实践型、探究型的家庭活动布置,设计一个实验的草样,然后发放二维码,小孩子回家用手机一扫:哇!!!谁说馒头噎过人就不能吃的?!!
------心存DREAM喜欢琢磨实验并自娱自乐的MIRACLE------
实验教学值得学习的去处:
2.学生自主创新实验