建议的Phyphox与外接传感器互联方式

建议的Phyphox与外接传感器互联方式

——兼答某大学的某同学的提问

自一、两年前接触使用单片机来拓展Phyphox的外接传感器技术以来,经历了Phyphox连接ESP32、Arduino UNO+蓝牙BLE、Arduino Nano BLE/Sensor以及STC51、C8051F、MSP430等任何单片机借助蓝牙BLE与Phyphox互通数据的研究和使用过程。这里叙述的话,显然突出了一个意思,Phyphox目前与手机之外的事物相互联系,务必要通过蓝牙BLE。

使用Phyphox的人,大多数缺乏单片机的技术背景而在实际工作中遇到这样或那样的困难,即使在Arduino UNO的技术门槛相当低的背景下。人们需要尽可能更平易的技术,尽可能微小的学习成本,这是Phyphox拓展外接传感器以建设低成本传感器实验环境面临的最大问题。

至此,我们能体会到Phyphox与外接传感器互联方式的技术分野:一种是前面提到的“平易+微小”,另一种则是复杂而灵活的应用。前者有更大的推广空间,后者有更大的技术人员研究的可能。前者是以下建议的互联方式,这种方式是Phyphox官方不建议的,但它是当前实际最有现实意义的。

以下通过ESP32板及支持库之困、Arduino蓝牙调试之便、Phyphox端通用程序模板说明,不涉及具体的代码和实验。(说明一下背景。是近些天询问我解决ESP32和Phyphox互联问题的人比较多,一是我确实没有时间答复,二是水平实在有限,三是个别投缘的问题解决了却又不能让有类似问题的人借鉴了同样使问题得以解决,就把粗略的经验整理成粗略的笔记,供人参考。实际上我注意了一些国内外的Phyphox技术网址,涉及的方面之广、研究的层面之深,确实没有发现比我的公众号再值得研究的去处了(吹牛

),如果有Phyphox的技术问题不能解决,那么即便去Phyphox官方论坛去,解决的可能性也不会太大(还吹牛

),所以还是建议投入一些学习的时间(研究我的公众号里的笔记,太能吹牛了啊

)。

一、ESP32板卡及支持库之困

ESP32开发环境有很多种,它们都能在Arduino IDE下被使用。而较ESP32古老和陈旧的Arduino则是ESP32未出现之前即已形成的一个庞大而无所不在的生态体系。很多人从Arduino迁移到ESP32并自然而然地使用着Arduino IDE——ESP32的Micro Python也多有人用,但与Arduino IDE的类C++语言相比,似乎仍显弱势。

不好的消息是,Arduino IDE下安装ESP32板卡支持并不是一件容易的事。这个板卡支持库大约要下载200M至300M的文件,且需json指定的下载脚本。网络的原因,下载极慢,或不能下载。有好心的人,制作了一键安装包,或复制拷贝的脚本,仍然问题非常多;也有在乌班图、Deepin等Linux系统下的ESP32&Phyphox使用者,林林总总各种问题,不一而足。

很多问题,即便当面面对屏幕也不一定能立时解决,更何况只是提供一些蛛丝马迹的出错信息。

对此,我的总结是:数十起、近百宗的问题,绝大多数仅仅是ESP32支持库安装错误,如缺少文件、路径错误、版本杂糅、多处重复安装等等。除此之外,还有一些问题,出在Arduino IDE下烧录程序时,ESP32开发板板卡类型、串口位置等设置错误——ESP32标准板子、各公司改造的板子,与Arduino UNO相比,极度零碎,标准确实不够统一。

鉴于以上情况,对于初次进入这个领域的使用者,建议远离ESP32。远离ESP32,也就远离了Phyphox官方出品的PhyphoxBLE支持库,更远离了ESP32板卡支持库的安装之困。

二、Arduino蓝牙调试之便

一种Arduino UNO开发板(图片引自百度)如无特殊的追求新奇的爱好,Arduino UNO目前原版、各种仿制版相对要统一。最重要的是,Arduino IDE安装完毕,默认就支持Arduino UNO开发板,无需任何设置与调整。当进行实验程序开发时,与开发和编写任何平时所用的Arduino UNO程序毫无二致,当需要串口列印数据时,仍然只是使用Serial.println(“demo”);

函数命令。

前面提到,Phyphox与ESP32互联的桥梁是蓝牙BLE。支持BLE标准的蓝牙模块,有HC-08、JDY-24M等可以使用。

一种HC-08蓝牙BLE封装(图片引自百度)当一切传感器所需要的正常功能都在Arduino下调试完毕,现在可以使用我们自己的蓝牙BLE与Phyphox通信了。这是为什么能够脱离ESP32和建议不再使用ESP32的原因。程序中的关键处理:

  1. 注释掉一切Serial.print或println的字符串;phyphox本来也不接收它们。
  2. 把要传输给Phyphox的数据全部转成字符串,并连接成一个字符串,用”#”隔开,用Serial.println()打印出去;例如:

……
double T, P;
……
Serial.println(String(T) + "#" + String(P));
……

  1. 在Arduino IDE的串口监视器里观察是否正确。正确,关闭串口监视器。
  2. 连接蓝牙BLE到Arduino UNO。完毕。

显然,这里的做法,全部都是Arduino本身的知识,为使外接传感器的数据进入Phyphox,我们的学习成本几乎是零。

接线。以BMP180和JDY-24M蓝牙BLE为例,介绍接线。BMP180是一款很常用的压强传感器,可同时测压强和温度,JDY-24M蓝牙支持BLE标准,好象芯片荒开始后这款蓝牙忽然进入人们的视野。和HC-08相比,似乎JDY-24M不如HC-08稳定。以下连接,只测试了Arduino UNO侧,ESP32侧没有测试。以本文所述方式使用ESP32,尽量不要这样做,因为如果ESP32支持库被正常安装后,实在没有必要再另搭一个蓝牙BLE在上面,ESP32的WIFI/BLE是这款芯片的主要卖点。另,ESP32有三组串口,IO1、IO3只是和Arduino语法通用的那一组。

三、Phyphox端通用程序模板

Phyphox端的程序,使用Phyphox在线编辑器修改模板即可,其灵活性远远超过在Arduino IDE下使用PhyphoxBLE创作实验。

模板的功能,需要完成以下的任务:

  1. 通过Phyphox能搜索到蓝牙BLE并正常连接;
  2. 向Phyphox传输我们的”#”分隔符的字符串,并重新拆分开;
  3. 在Phyphox Web Editor中编写程序,下载进入Phyphox。

仍以上述BMP180的使用为例,Phyphox模板关键代码,使用是不需要重新更动的:

……
    <input>
        <bluetooth editor:uuid="97" editor:posx="109.88330078125" editor:posy="163.433349609375"    mode="notification" rate="1" subscribeOnStart="false">
            <output char="0000FFE1-0000-1000-8000-00805F9B34FB" conversion="formattedString" separator="#" index="0">Output 1</output>
            <output char="0000FFE1-0000-1000-8000-00805F9B34FB" conversion="formattedString" separator="#" index="1">Output 2</output>
        </bluetooth>
    </input>
……

按此处模板,将.phyphox程序引入到编辑器,根据实际实验的需要重新修改即可。这个地方,是这种互联方式仅有的一点点学习投入。

全部完毕,接线也并不复杂,还看得下去:

另:

Phyphox互联外接传感器,官方PhyphoxBLE支持除ESP32之外,还支持Arduino Nano BLE/Sensor,但后者价格昂贵,仍需要安装板卡支持库,初学难度并未降低。除此之外,通过MQTT的方式,也可以实现外接传感器与Phyphox互联,目前正在极度缓慢的研究学习之中。

------心存DREAM喜欢琢磨实验并自娱自乐的MIRACLE------

实验教学值得学习的去处:

1.中学物理实验教学研讨

2.学生自主创新实验

(0)

相关推荐

  • 文献综述:Phyphox在中学物理实验探究活动中的应用进展

    经过40多天的酝酿,20多天的文献检索.翻译.研读与梳理,连续14昼夜马不停蹄的撰写,经过南京师范大学.河南师范大学数位教授的悉心指点,长达52页.2万4千字的文献综述<Phyphox在中学物理 ...

  • esp32和arduino的区别,esp32能够替代arduino吗?

    很多创客爱好者甚至有些技术工程师在理解esp32和arduino的时候总是问一句这两块板子哪个更好用?他们可能潜意识中就觉得arduino和esp32是竞品的关系,但实际是这样吗?今天我们就深入了解下 ...

  • Arduino Pro 来了!

    以前我写过这个东西,哪个时候这个东西没有做到开箱即用,很是蛋疼.后来就是简单的探索一下就卸载了,时隔一年,再度使用,这次的体验会不会及格呢?先回答,及格了,甚至可以打85分! 在去年 末尾给了寄语 时 ...

  • Phyphox介绍和相关BLE库下载

    phyphox是个啥?众所周知,这个智能手机里面有很多的传感器,那能不能直接用这些传感器测量现实世界呢?然后把采集到的数据做一些后处理. 当然可以,上面这个应用就是做了这个事情. 你的智能手机就是一个 ...

  • 利用Phyphox和ESP32蓝牙探究光敏电阻电流与光强的关系

    近日,微主做了一个探究光敏电阻电流与光强关系实验.将光敏电阻和分压电阻构成串联电路,利用ESP32的5V电压供电,利用IO33脚采集分压电阻两端的电压,并换算出光敏电阻中的电流:利用蓝牙将电流信息传输 ...

  • 建议:这5种洗碗方式,或不利身体健康,希望你早了解,尽早改正

    ZAKER生活关注59分钟前大图模式导语:碗作为生活中常用到的餐具,吃完饭之后必不可少的就是刷碗.但是,洗了这么多年的碗,你真的洗对了吗?如果你一直用错误的方式洗碗,碗不但洗不干净,而且还会滋生细菌, ...

  • 给观赏石鉴评师的一些建议,这5种鉴评方式不可以

    我国每年举办的奇石展会比较有规模的就有几十次之多,几乎每次石展都有给奇石评奖的环节,这也是个人作品参展最重要的目的:让自己的奇石作品被业界权威赏识,搏得一个好名次,让奇石作品获得更大的知名度,如果转让 ...

  • 打造属于Phyphox的力传感器

    一 有次偶然看到国外的一个视频,用Phyphox演示牛顿第三定律,还是挺巧妙的.两部完全一样的手机,同时运行Phyphox,打开加速度测量,脸对脸贴一起,中间夹一签字笔中的弹簧,用橡皮筋系好,剪刀突然 ...

  • 小学一年级到高三:不同时期心理特点及沟通方式(建议收藏)

    孩子心理会随着成长而变化,各个时期会呈现不同的心理特点,掌握孩子心理,会让师生间.亲子间沟通更顺畅,更有效. 小学一年级 心理特征:对小学生活既新鲜,又不习惯,因而一时难以适应,好奇.好动.喜欢模仿, ...

  • 世卫组织:寿命60%取决于生活方式!5个不良习惯建议改掉

    长寿是每个人都希望的事情,但人的寿命是有一定的限度的,不可能长长久久的活在这个世界上,到了年纪都会面临死亡,我们能做的就是在有限的生命,尽可能的去延长我们的寿命.经过数据的统计,我们中国的平均寿命相比 ...

  • 世界上最健康的生活方式。(建议收藏)

    来源网络版权归原作者 李小托 一个一个原创故事,在慵懒休闲 简单富足中享受生活 470篇原创内容 公众号 生活 ① 少食肉:② 晒太阳:③ 雨中行:④ 常唱歌:⑤ 饭后息:⑥ 挺起胸:⑦ 静坐思:⑧ ...

  • 新手瑜伽教练一学就会的四种排课方式(建议收藏)

    一节专业的瑜伽教练瑜伽课应该是什么样子?上课节奏合适,体式连结自然流畅. 强度对于会员适中,达到极限的探索又不会受伤. 老师口令通俗易懂,会员愿意积极互动. 但是,很多刚入行的新手瑜伽老师.甚至是有多 ...

  • 如果你是一个性格内向的女人,建议你用这3种方式和男人相处

    每个人都有自己处理人际关系的方式,每个人也都有自己的性格,有的女生天生爽朗大方,和谁都可以打成一片,但是有的姑娘天生性格内向,和同性说话还好,和异性说几句话就会脸红,然后不知所措. 第二种类型的女生其 ...

  • 最正确的生活方式(建议收藏)一生很短,短...

    最正确的生活方式(建议收藏) 一生很短,短得来不及拥抱清晨,就已经手握黄昏. 每个人务必对身体好一点,健康一点,快乐一点. 一起来看看人生最正确的生活方式,收藏起来照着做吧! 01 睡得早一点 晚上熬 ...