本文来源电子发烧友社区,作者:张一工, 帖子地址:https://bbs.elecfans.com/jishu_2293580_1_1.html
原定的这次开发版评估的最终目标是实现数据采集并通过BLE上传到手机,通过手机可以看到采集到的数据,应用场景是电力电子技术实验室的实验数据记录。
目前的情况是因为疫情根本就无法进入学校,当然更无法进入实验室;而且想到即使可以进入实验室现场,被采集信号的前端处理要花费很多精力,而目前重要的事情应该是把基本的环节跑通,所以,决定采用简化的方法来完成这次评测。
前一段时间因电脑死掉重新恢复系统,原来配置好的Arduino平台下ESP32开发环境需要重新安装,又是痛苦地重复刚拿到开发板时的安装过程,不过毕竟是安装过一次(其实不止一次),有了些经验,痛苦度低了一些。安装完成后“D9”接地,编译下载了“Blink”小程序,没问题。然后准备开始着手真正的项目,不料下载总是出错。
上网查询,发现遇到这个问题的人不少,但我并没有找到有效的解决方案。反复试验各种办法,甚至重新安装了Arduino,仍然不行。只好在半夜发求救帖子到我们的开发板测试群,马上就得到了大神“@HonestQiao|乔楚”的回音,非常明确肯定地说:D9先接地再连接电脑。一试果然灵光。现在只要是下载程序就要来这么一下,而以前是不用的呀!无论如何,总算是可以继续前进了。
采集3路模拟信号,是数值不同的直流可调电压,通过一个可调直流电源通过电阻分压得到。本来还想再多采集几路,编程后发现,只有0、1、2三个引脚可以直接用来做模拟信号采样,其他引脚大概在初始化程序中设置成了其他功能(引脚功能复用),实在没时间仔细研究了,只好先用这三个。
程序主要是由两个示例程序拼接、修改而来:“BLE_notify”和“AnalogRead”,“BLE_notify”通过蓝牙发送数据,而“AnalogRead”是模拟量读取程序。主要的修改包括:“AnologRead”中,原来仅仅是一路模拟量采集,现在扩充成三路,相应地,通过串行口(USB模拟)的输出数据也扩充成三路数据;“BLE_notify”中,原来是对一个32位变量不断增1,然后通过BLE的notify方法向外发送。所做的修改就是把模拟量采集得到的数据,通过BLE的notify功能发送出去。在修改过程中遇到的主要麻烦是:示例程序提供的notify发送函数所要求的参数类型是“uint8_t”,和模拟量采集、再经过ADC(模/数转换)后的数据类型不符,为了数据类型的转换费了点儿周折。
在手机端,用“nRF Connect”APP可以ESP32-C3开发板建立连接,收到开发版发来的数据。当改变模拟量输入电压时,可以看到数据的变化。
在PC端,通过Arduino IDE自带的串口监视器,可以看到采集的数据,与手机端收到的数据是一致的。
实验过程的视频:
全部0条评论
快来发表一下你的评论吧 !