如何制作ESP32电容式触摸输入器

步骤1:硬件。
该设计采用以下硬件:
一,wifi套件32.
三个,3/8“金属孔塞。
三,四“长度的28awg电线。
为了组装硬件,我执行了以下步骤:
剥离并镀锡每根4“线长的末端,如图所示。
将第一根导线焊接到esp32的针脚13(touch4,或”t4“,输入)。/li》
将第二根导线焊接到esp32的第12针(touch5,或“t5”,输入)。
将第三根导线焊接到esp32的第14针(touch6,或“t6”输入)。
将三个3/8“金属孔塞中的每一个焊接到三根线长度的自由端。
步骤2:软件。
文件“buttons.ino”是一个包含设计软件的arduino环境文件。除此文件外,您还需要wifi kit32 oled显示屏的“u8g2lib”图形库(有关此库的更多信息,请参阅https://github.com/olikraus/u8g2/wiki)。
在arduino目录中安装u8g2lib图形库,并将“buttons.ino”加载到arduino环境中,编译并将软件下载到esp32中。
下载并运行后,顶部的显示屏应显示“按钮”,显示屏的第二行显示“1 2 3”作为按钮指示。在每个1,2,3按钮指示器下方是未经过滤的触摸读取值,并且在每个按钮指示器下方是按钮按下指示器(按下“1”,未按下“0”)。从视频中可以看出(并且经过长期测试确认),软件过滤器提供可靠的按钮输入检测,没有错误触发。
步骤3:关于软件。
该软件包含三个主要代码部分; arduino需要“setup()”和“loop()”部分,以及“interrupts”部分。 setup()部分包含初始化oled和中断服务所需的代码。 oled设置功能在上面的链接中描述。中断服务设置功能如下:
“timerloopsemaphore = xsemaphorecreatebinary()”为“interruptservice()”(中断服务程序)创建一个信号量,以便在时间结束时通知loop()执行循环传递。
“timerinterruptservice = timerbegin(0,80,true)”使用预定义为80的硬件定时器0创建一个定时器。
“timerattachinterrupt(timerinterruptservice,&interruptservice,true)”将interruptservice()附加到计时器。
“timeralarmwrite(timerinterruptservice,1000,true)”将中断服务速率设置为1000hz。
“timeralarmenable(timerinterruptservice)”启动计时器警报,从而中断服务。
设置完成后,进入loop()并立即停在该行:
if(xsemaphoretake(timerloopsemaphore,portmax_delay)== pdtrue),
意味着loop()将在此时等待,直到来自interruptservice()的信号量到达。当信号量到达时,loop()代码执行,用按钮数据更新oled显示,然后返回到顶部再次等待下一个信号量。 interruptservice()以1000hz运行且loop_delay值为30,loop()每30ms执行一次,或以33.333hz的显示更新速率执行。虽然这是大多数esp32应用程序所需的更高的显示刷新率,但我使用此设置来说明过滤器的响应性。我测试并确定执行单个循环()传递所需的时间为20ms。
interruptservice()由setup()中创建的计时器以1000hz的速率调用。调用时,它会更新两个向下计数器,nloopdelay和nbuttondelay。当nloopdelay向下计数到零时,它发送信号量,允许loop()执行单次传递,然后重置nloopdelay。当nbuttondelay向下计数到零时,它也会被重置,然后按钮“过滤”执行。
每个按钮过滤器都有一个唯一的过滤器计数器(例如nbutton1count,nbutton2count和nbutton3count)。只要分配给按钮的触摸输入值大于或等于定义的阈值(button_threshhold),分配给按钮和按钮的过滤器计数器保持为零。如果分配给按钮的触摸输入值小于定义的阈值,则分配给按钮的过滤器计数器每20ms递增一次。当过滤器计数器超过按钮过滤器值(button_filter)时,该按钮被视为“按下”。此方法的效果是创建一个过滤器,需要80ms(nmsutdelay * 4ms nbuttoncountn,其中n是按钮数),连续触摸输入值低于定义的阈值,以考虑实际按下的按钮。任何小于80毫秒的时间都被视为“故障”并被过滤器拒绝。
鉴于此简要说明,如果您有任何疑问,请随时提出,我会尽力回答。
希望你喜欢它!
第4步:“即将推出的项目”。
即将推出的项目“intelligrill®pro”是一款双温度探头吸烟器监测仪,具有以下特点:
steinhart-hart温度探头计算(与“查找”表相对)增加准确性。
探针1的预测完成时间,包括steinhart-hart计算得出的提高的准确度。
第二个探头,探头2,用于监测吸烟者的温度(限制在32到399度之间)。
电容式触摸输入控件(如本教程中所示)。
基于wifi的远程监控(使用固定的ip地址,可以在任何可以连接互联网的地方监控吸烟者的进度)。
扩展温度范围(再次为32至399度)。
在intelligrill®发射器和大多数支持wifi的监控设备上发出声音完成警报。
温度显示为°f或°c。
时间格式为hh:mm:ss或hh:mm。
电池显示为伏特或%充电。
即将推出基于螺旋钻的吸烟者的pid输出。
“intelligrill®pro”正在测试成为最准确,功能最强大且基于html的intelligrill®我已经设计好了。
它仍然在测试中,但是在测试过程中它正在协助准备,我已经获得了超过几磅。
再次,我希望你喜欢它!
步骤5:下一个:esp32 ntp温度探头模拟输入与steinhart-hart校正
be准备为你的代数书除尘。

手机的充电速度是取决于充电头还是数据线
软启动电容配置的计算实例
充电五分钟看两部电影 华为Mate9的充电电流竟能达到5A?
汽车线束EMC设计必要性及及案例
寄云科技获得近亿元B轮融资,在工业互联网领域将如何布局
如何制作ESP32电容式触摸输入器
电磁屏蔽/吸波新材料可让电磁波辐射有一个“真空地带”(你还在畏惧电磁波辐射?)
HTC Vive销量远超14万台 VR发展核心是什么?
物联网会如何改变网络安全
利用Wifi给你的手机充电,无线网的新应用
汽车云,云计算的下一个战场
深入解析SAMPro3D的三维场景零样本分割技术
龙芯中科与第四范式达成战略合作,龙架构驱动人工智能国产化发展稳步向前
汽车保养不能忽视汽车电池
iphone8什么时候上市?iphone8最新消息:继iphone8、iphone7s开始量产后,四大关键点你须知的!
一加8 Lite曝光 定价约合人民币3500元
我们为什么要将变量、数组存储到特定的地址?
自动驾驶公开课:自动驾驶开发中的先进基础架构及数据合成仿真实践
离心式分样器的简单介绍
下半年手机CMOS出货量将反弹5%~9%