脑彩超能检查出什么| 好久不见是什么意思| 90年出生属什么生肖| 晚黄瓜什么时候种| 梦见房子倒塌是什么意思| 玉米淀粉能做什么美食| 月经为什么会提前| 上嘴唇发白是因为什么原因| 睡觉打呼噜是什么原因| 吃维生素b12有什么好处和副作用| 脐疝是什么| 脚心有痣代表什么| 三什么九什么成语| 中性粒细胞低是什么原因| 口腔医学专业学什么| burgundy是什么颜色| feedback是什么意思| 温字五行属什么| 孕妇缺铁性贫血对胎儿有什么影响| vivo是什么牌子| 弊病是什么意思| 黄金有什么作用| 蒲公英什么时候采最好| 尿频尿急是什么症状| 风疹吃什么药| 什么的屏障| 没意思是什么意思| 脸痒是什么原因| ex是什么| 炒鱿鱼是什么意思| 素鸡是什么| kid是什么意思| 什么回忆| 烂嘴是什么原因| 吃什么能美白| 什么是体脂率| 子时右眼跳是什么预兆| gift什么意思| 中线是什么意思| 中老年人吃什么油好| 枸杞泡水喝有什么作用和功效| aep是什么意思| 降钙素原高是什么原因| 更年期什么症状| 金字旁加匀念什么| 什么样的人不容易怀孕| 原研药是什么意思| 可拉明又叫什么| 精液是什么味| 因人而异什么意思| 太阳穴长痘痘什么原因| 疑心病是什么意思| 紫癜病是什么症状| 右手大拇指发麻是什么原因| 阿迪达斯是什么牌子| 直男什么意思| 6月底是什么星座| 口是什么感觉| 左眼皮老跳是什么原因| 鱼缸为什么不能送人| 小麦秸秆是什么材质| 一代明君功千秋是什么生肖| 脾胃湿热吃什么药| 扛扛的是什么意思| 一直咳嗽不见好是什么原因| 97属什么| 喝酒断片是什么原因| 十月二十二什么星座| 缺铁性贫血吃什么药最好| hedgren是什么品牌| 2023年是什么生肖年| 巨蟹座跟什么星座最配| 口干是什么原因引起的怎么治疗| 流感挂什么科| 什么人容易得淋巴癌| 前列腺彩超能查出什么| 孩子发烧按摩什么部位退烧| 覆水难收是什么意思| 急忙的反义词是什么| 低聚木糖是什么| ml是什么单位| 尿蛋白高吃什么药| 下乡插队是什么意思| 癫狂是什么意思| 女兔配什么属相最好| 子宫小是什么原因引起的| 50肩是什么意思| 角化型脚气用什么药最好| 孕妇过敏可以用什么药| 孟子名什么| 黑洞里面是什么| 沅字的寓意是什么| 腱鞘炎去医院挂什么科| 标新立异什么意思| 边界欠清是什么意思| 躺着头晕是什么原因| 吃猪腰子有什么好处和坏处| 脚痒是什么原因| 属鼠五行属什么| bug是什么意思中文翻译| 煜什么意思| 带状疱疹是什么原因引起| 什么鞋油好用| 胸痛是什么原因| 温良是什么意思| 11月26是什么星座| 吃什么降血糖最快| 重庆有什么特产| 四点底和什么有关| 废品收入计入什么科目| 海澜之家属于什么档次| 蛔虫吃什么药| 1955年是什么年| 吉星高照是什么生肖| 吃什么补充维生素d| 肠胃性感冒吃什么药| 为什么会有鼻屎| 开字五行属什么| 宿醉什么意思| 没学历可以学什么技术| 胃肠型感冒吃什么药| 叉烧肉是什么肉| 喉咙痛喝什么| 精子是什么味道| 梦见猫头鹰是什么预兆| 惊厥是什么病| 小孩的指甲脱落是什么原因| 糖类抗原153偏高是什么原因| 有鳞状细胞是什么意思| 什么是日间手术| 心脏病有什么症状表现| 嗓子发炎是什么原因引起的| 怀孕后为什么会生化| 氤氲是什么意思| 乌合之众什么意思| 錾是什么意思| 一级军士长是什么级别| 蝴蝶吃什么食物| 男才女貌是什么意思| 碱性食物对身体有什么好处| 水瓶座和什么座最配对| 先知是什么意思| 越五行属性是什么| 葛洲坝集团是什么级别| knee是什么意思| 什么是丛林法则| 什么是成熟| 开字加一笔是什么字| 潘多拉属于什么档次| 内在美是什么意思| 婴儿放屁多是什么原因| lo是什么意思| 西游记是一部什么小说| 用什么药可以缩阴紧致| 舌头白苔厚是什么原因| 白血病是什么症状| 尐是什么意思| 男人腿毛多代表什么| b族维生素什么时候吃效果最好| 鞑虏是什么意思| 胆汁反流用什么药好| 什么门永远关不上| 贫血吃什么东西好| 爱拍马屁的动物是什么生肖| 三月初六是什么星座| hp是阳性什么意思| 11月20日什么星座| 4月27是什么星座| 纳是什么| 女人吃桃子有什么好处| 什么辕什么辙| 后背凉是什么原因| 什么是支原体感染| 龟公是什么意思| 蚊子最喜欢什么血型| 小孩吃了就吐是什么原因| 刘邦是汉什么帝| 2002年出生属什么| 脚底板发红是什么原因| 事半功倍是什么意思| 破相是什么意思| 宝宝半夜咳嗽是什么原因| 阴灵是什么意思| 走马观花的走是什么意思| 微白蛋白高是什么情况| 夜间咳嗽是什么原因| 为什么说有钱难买孕妇B| 充电宝100wh是什么意思| 心肌病是什么病| 预检是什么意思| 圆脸适合什么刘海| m倾向是什么意思| 拉不出来屎是什么原因| 气血不足吃什么食物最好| 舛是什么意思| cd138阳性是什么意思| 农历2月份是什么星座| 桂花是什么颜色的| 果胶是什么东西| 辛酉日五行属什么| 衣原体感染吃什么药| 什么是乙肝病毒携带者| 胃底腺息肉什么意思| 破屋什么意思| 心室早复极是什么意思| 血压低压高是什么原因| 2002年出生属什么| 五月二十号是什么星座| 公安局局长什么级别| 蝉鸣是什么季节| 茅台为什么这么贵| 皮肤发痒是什么原因| 法图麦是什么意思| 弈五行属什么| 蛋白粉有什么作用| 核桃不能和什么一起吃| 现在什么最赚钱| 血糖高去医院挂什么科| 肝左叶囊肿是什么意思| 膝盖缝里面疼什么原因| 小壁虎进家有什么预兆| 梦见大水牛是什么兆头| 湿气重去医院挂什么科| 艺术有什么用| cip是什么意思| 仓鼠为什么吃自己的孩子| 什么茶最好| 宁静致远是什么意思| 高兴的动物是什么生肖| 手指头发麻是什么原因| mra是什么意思| 来年是什么意思| 月完念什么| 七月22号是什么星座| 净身出户什么意思| ts是什么| 漏尿女性吃什么药最好| 熊吃什么食物| 北海龙王叫什么| 各自安好是什么意思| 属牛和什么属相相冲| 停诊是什么意思| 手术后拆线挂什么科| 6月14号什么星座| 红斑狼疮是什么原因引起的| lalpina是什么牌子| 0206是什么星座| 神经官能症是什么| 权志龙为什么这么火| 牙齿遇热就疼什么原因| 7月30日是什么日子| 蒸馏水是什么水| 神经痛吃什么药效果好| 什么是理想| zzegna是什么牌子价格| 黄金的动物是什么生肖| 云是由什么组成的| 羊悬筋是什么样子图片| 什么时候初伏第一天| 痞是什么意思| na医学上是什么意思| 过期的钙片有什么用途| 帕金森吃什么药好得快| 心肌梗塞是什么症状| 百度
工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

电路设计->综合电路图->综合电路图->设计构建一个带有ESP32触摸控制的触摸灯

美丽河北--河北频道--人民网

发布人:amy2025 时间:2025-08-14 收藏
百度 只要他们用的好。

如果光输出可以直接在设备上进行交互控制,那就太好了。现在我们将构建并编程一个设备。

几个星期前,当我去一家餐馆的时候,这种台灯的变体真的弄伤了我的手指。这东西是要通过触摸来控制的,但要用一种神秘的方式。有足够的理由进一步研究使用ESP32。当然,使用Micropython是成功的。这是该系列下一集的结果

带有触摸控制的台灯

有了手机应用程序,你自然有很多选择来控制台灯。但是问题已经从决定开始了——无线局域网通过路由器还是通过控制器自己的接入点。这必须在课程中考虑到,或者在开始时就已经有了。

如果光输出可以直接在设备上进行交互控制,那就太好了。现在我们将构建并编程一个设备。首选控制器是ESP32,因为它有触摸板输入。进一步考虑使用ESP8266或树莓派Pico,然后产生了触摸问题的进一步解决方案。我们将在下一集中讨论这些问题。今天我们继续讨论ESP32。我将展示如何将数据永久存储在NVS区域中,以及如何实现进程并行执行。至少第一个功能只提供ESP32。

对于使用的控制器板ESP32 Dev Kit C V4,需要两个面包板来开发电路,它们通过电流轨放在一起。这是为跳线获得足够自由接触点的唯一方法。

图1:ESP32的设置

作为触摸板,我使用了电路板和波峰的剩余部分。小铝孩子将服务于生产系统。

我使用RGB LED来显示运行状态。戒指上led的颜色可以单独设置和下调。RGB LED显示颜色。总共有五种情况:红、绿、蓝、白、中。

预电阻的尺寸是这样的,一起发出白光。蓝色的,尤其是绿色的LED比红色的要亮得多。因此,电阻值的差异很大。如果你想要一个更轻的显示,就取更小的欧姆值。

图2中的电路图显示了所有部件是如何组合在一起的。

图2:带有ESP32和触摸板的电路

作为能源供应,我选择了18650型的锂离子电池,加上一个带有加载部分和5V输出的电池所有者。我在USB A插座的连接旋转上焊接了我的电路的供应线。这样我就不用USB插头了,仍然可以使用板上的机械开关。它将指向房屋朝向地面,以及在图2中板子上端的加载插座。

因为灯里放面包板的空间太小了,我设计了一个电路板,上面可以容纳几个单独的零件。您可以按照下载PDF文件的方式进行布局。

图3:传感器灯-布局

我在实验设置中使用了RGB LED模块。对于灯本身,我发现该系列的一个led更理想,因为它更容易组装在盖子上。LED只是用双组分粘合剂粘在框架上。

图4:带有公共阴极的RGB LED

灯具部件

房屋框架和盖子由木材制成。框架由15毫米的枫木板组成,45毫米× 150毫米。作为盖子,我拿了一个5毫米厚的板,其中一个木制圆柱体粘在中间的黄铜管的中心。

图5:灯具部件

图6:粘接前的框架条

图7:安装在外壳框架和灯座在盖子

图8:传感器按键和信号LED

灯头坐落在一个230毫米长的黄铜管与6mm ?。

图9:灯头内的LED环

Micropython -语言-模块和程序

要安装托尼,你会在这里找到一个详细的说明(英文版)。还有一个关于ESP芯片上的Micropython固件(截至2025-08-14)如何被烧毁的描述。

Micropython是一种解释器语言。Arduino IDE与Arduino IDE的主要区别在于,你只需要在ESP32上闪烁Micropython固件一次,以便控制器理解Micropython指令。您可以使用Thonny,μpycraft或ESPTOOL.PY。对于安东尼,我在这里描述了这个过程。

一旦固件闪过,你就可以很容易地在对话框中与控制器对话,测试单个命令并立即看到答案,而无需事先编译和传输整个程序。这正是Arduino IDE困扰我的地方。如果您可以检查语法和硬件的简单测试,以便在编写程序之前通过命令行尝试和改进函数和整个程序部分,则可以节省大量时间。出于这个目的,我总是喜欢创建小型测试程序。作为一种宏,它们总结了重复出现的命令。然后从这些程序片段开发整个应用程序。

自动启动

如果程序要通过打开控制器自动启动,请将程序文本复制到新创建的空白磁贴中。将该文件保存在WorkSpace中的Main.py中,并将其上传到ESP芯片。该程序将在下次复位或开机时自动启动。

测试程序

tony - ide中当前编辑器窗口中的程序通过F5按钮手动启动。这可以比鼠标点击开始按钮或通过菜单运行更快地完成。只有程序中使用的模块必须在ESP32的flash中。

在两者之间,Arduino id ?

如果您以后将控制器与Arduino IDE一起使用,只需以通常的方式刷新程序。然而,ESP32/ESP8266随后忘记了它曾经说过Micropython。相反,任何包含Arduino IDE或AT-Firmware或Lua或…可以很容易地提供micropython固件。这个过程总是像这里描述的那样。

新像素环

类型WS2812新像素led包含三个单独的led,释放红色,绿色或蓝色光。它们由控制器寻址,控制器通过一种时钟为800kHz的总线系统接收指令。

在I2C总线或SPI总线上,来自控制器(例如ESP32)的信号以相同的方式到达总线上的所有从机,每个人都能看到一切。它与WS2812模块不同。每个构建块都有一个数据输入和数据输出。通过连接I2C总线或SPI总线,几个构建模块可以级联,来自控制器的信号,例如ESP32,以相同的方式到达总线上的所有从机,每个人都能看到一切。它与WS2812模块不同。每个构建块都有一个数据输入和数据输出。几个构建块可以级联在I2C总线或SPI总线上,来自控制器的信号,例如ESP32,以相同的方式到达总线上的所有从机,每个人都看到一切。它与WS2812模块不同。每个构建块都有一个数据输入和数据输出。几个构建块可以为单个颜色级联。我们以一个列表的形式给出颜色代码,每个WS2812有三个字节。

让我们从一个尝试开始。我们使用图2的结构。首先导入Class Pin和Neopixel。我创建了一个GPIO引脚对象作为结果,从而实例化了一个具有八个组件的新像素对象。

neopixel实例neo包含一个Bytearar和write()方法,通过该方法Bytearar的内容被传输到neopixel环。

使用neoI处理数组的前三个元素,并传递红色,绿色和蓝色,0xe0, 0x07和0x3c的值。在内部,这使得私有函数setitem()。这些值以改变后的顺序输入缓冲区。正如我们将看到的曲线,这是我在逻辑分析仪的帮助下记录的。这些值是在缓冲区中发送的。一个0对应于一个近似的窄脉冲。500NS宽度后面跟着a)。这些值以改变后的顺序输入缓冲区。正如我们将看到的曲线,这是我在逻辑分析仪的帮助下记录的。这些值是在缓冲区中发送的。一个0对应于一个近似的窄脉冲。500NS宽度后面跟着a)。这些值以改变后的顺序输入缓冲区。正如我们将看到的曲线,这是我在逻辑分析仪的帮助下记录的。这些值是在缓冲区中发送的。一个0对应于一个近似的窄脉冲。500NS的宽度按交换顺序发送。这与数据表中的信息相对应,也可以通过以下方式进行验证。

图10:RGB = 0xe0, 0x07, 0x3c, 0xF0, 0xF0, 0xF0的脉冲序列

在第一个WS2812B的输出中,丢失了三个字节0xe0、0x07和0x3c,这已经吞噬了这个构建块。相反,代码0xF0, 0xF0, 0xF0出现时间延迟,即第二个组件的代码。逻辑分析仪通道1的输入连接到第一个LED入口的测量,通道2连接到它的输出。

现在我们知道WS2812B上的袋鼠是如何运行的,并且可以转向灯的程序。

这个项目

我们想用三个传感器板来控制新led。通过GPIO33的触摸板进行颜色选择。有五个通道:开/关、红、绿、蓝和明/暗。强度增加到GPIO32,降低到GPIO27。这三个活动的操作在后台以三个函数并行运行。这是通过asyncio模块实现的。

起初,我试图做模块为_thread使用。这在两个过程中工作得很好,但拒绝为第三方服务。我找不出原因是什么。所以我们使用asyncio。

我们先从进口业务说起。该模块支持我们使用触摸板的方法。我们需要LED输出的引脚。在Neopixel上我们管理LED环的WS2812B。别名NP允许我们使用更短的拼写。这些方法用于模块时间的小小睡sleep和Sleep_ms。在C-Python中,我们也错过了这个模块的别名。类NVS只对ESP32可用,ESP32可以从我们导入类的地方看到。NVS是非易失性存储的缩写。这允许我们在系统中永久存储数据。我们用它来取下我们最喜欢的颜色组合,然后在冷启动时再次自动加载。(下载:timeout.py touch.py touchlamp .py)

NVS区域被划分为名称空间(name spaces),其中有符号32位数字和所谓的二进制blob,所以字节对象所以字节字符串。我们的分区名为config。

这里我们设置触摸板对象。第一个参数是GPIO引脚号。因此GPIO33代表Touch8, GPIO32代表Touch9, GPIO27代表Touch7。第二个参数是触摸板被归类为触摸的限制。当触摸时,读取值和方法掉落,触摸()传递1,否则传递0。

为了设置限制值,我们直接要求TP对象的相应收据,而不需要触摸。

然后是触摸。

我们将LED环的信号线连接到GPIO13上。戒指有8个led,同样你也可以使用一个有12个led的戒指。当然,它也会更快地耗尽电池。使用8系列环,电流消耗在40mA到250ma之间。当使用2200毫安时,根据亮度设置的不同,负载足够使用大约8小时。

我已经列出了上面5个通道的含义。颜色的颜色作为代码列表“All LEDs out”=[0.0.0]。

接下来是NVS区域中保存和读取颜色代码的例程定义。颜色名称用作键,值来自列表元素。重要:只有使用commit()命令才能传输到内存。

阅读更容易。我们以列表的形式返回颜色值。如果省略方括号,将得到一个返回对象Tupel。我们不需要这样做,因为我们想要改变程序中的元素值,而这在tupel中是不可能的。

在开始时,名称空间config仍然为空。因此,读访问抛出一个Try Except拦截的异常。我们不读取颜色代码,而是在内存中编写上面定义的代码。在下一个开始,键红,绿和蓝存在。

我们继续定义其他变量和对象。如果我们在操作过程中切换led变暗,则实现是当前颜色代码的短暂中间存储器。那我们就带走真的。

然后我们定义RGB LED的输出。我们把物体放在tupel led中。因为对象引用没有改变,所以可以安全地使用tupel。对于形状,也可以采用tupel。这些元件依次是燃料,并决定如何将电缆切换到信号LED。channel中是四个通道的名称,这是我们在Replica中输出所需要的。

函数lum()用颜色代码填充新像素缓冲区,并通过GPIO13输出将缓冲区内容发送到环。

现在开始使用asyncio模块。因此,我们定义了三个用于触摸控制的函数。使用TP1时,如果我们切换通道,将当前颜色保存为Nvs。config并将戒指调暗。我们用触摸触控板的周期来解码每种情况下应该发生的情况。

在异步系统中表示进程的函数必须以asyncdef方式启动。该过程在函数离开后立即结束。我们不希望那样,所以这个过程就像一个无限循环一样运行。对象的channel和color经历我们必须在其他地方使用的潜在变化,所以我们在启动函数时将它们声明为全局。

我们用asyncio-Variant的asyncio.sleep_ms()代替正常的超时的Sleep_ms()。用线条

我们向系统发出信号,告知该进程可以在此时中断,以便操作其他进程。

只要pad TP1没有被触碰,那么这个循环就会空着运行。如果确定了触摸,则传递触摸()1,并使用getduration()确定持续时间(以毫秒为单位)。

一个短的水龙头带来的周期远低于100。

如果保持时间小于500ms,我们计数通道并将信号RGB切换到相应的颜色。通过模5除数的形成,我们将其取值范围限制在0…4,从而接收到一个环形计数器。

如果保持时间在半秒到两秒之间,我们触发当前颜色的存储。

LED环变暗超过两秒。

函数showchannel()操作信号LED的输出。通道号被移交并测试是否符合有效区域。如果不是这种情况,则抛出异常。led (i)一个接一个地表示红色,绿色和蓝色的三个输出。在num上访问相应的模式,并在模式的元组中寻址值。

showchannel(3)调用通道3(蓝色)的模式(0.0.1),并设置Ledr = 0, LedG = 0和LEDB = 1。

具有Async Def的函数被启动时,行为是协作的,它们允许多个进程彼此并行执行,因此被称为协程。使用协同程序increate(),我们计算所设置通道的颜色值。颜色、实现和注释的变化必须在流程之外可见,即全局可见。该进程被永久地保存在while循环中,并且可以被中断。

通道1到3,一个离散的颜色被控制。如果我们控制颜色值增加时的附加值。在第10次运行时,为了避免不必要的副作用,第5次运行时,我们将颜色值限制为最大255。列表中对应的元素颜色为。1中的通道数减少1个PTR。

在通道4中,所有分量的颜色增加相同的值3。在[255,255,255]处结束。当向后移动时,只有白光的强度降低。原来设定的颜色不再达到。目前这不是很好,但应该在sensorlampy2.0的另一集中进行优化。

信号LED在通道0处变暗。在减少选项卡中,当前的颜色代码为realciintermediated,代码为[0.0.0]。这里,在increate()中,颜色代码被恢复并发送到环。旗子说:让我们把它放回去。

函数递减()如果我们做类似的工作,不是加,而是用颜色值做减法。

主程序也是作为协程编写的。首先,我们创建一个事件循环。它接管了对任务过程的控制。作为参数,我们传递函数并解释事件循环应该是一个永久的运行器。

我们打开灯并启动Main()函数。在那之后,一切都自行进行。在那之后,一切都是通过触摸触控板完成的。





评论

技术专区

晚上8点是什么时辰 蜈蚣最怕什么东西 头疼做什么检查 什么水果解酒 belle什么意思
安陵容为什么叫安小鸟 老佛爷是什么牌子 山丘是什么意思 夜场是什么工作 上海有什么特产
走麦城是什么意思 头臀长是什么意思 扁的桃子叫什么名字 5月16日是什么星座 吉吉念什么
孕妇耳鸣是什么原因引起的 口臭是什么原因引起的 一案双查是什么意思 卷心菜是什么菜 爷们儿大结局是什么
燕窝是什么东西做的hcv8jop7ns0r.cn 血糖高可以吃什么零食hcv7jop5ns1r.cn 11月2号是什么星座onlinewuye.com 什么叫阴阳水travellingsim.com 草龟吃什么蔬菜hcv8jop5ns9r.cn
香薰是什么hcv9jop6ns4r.cn 什么是角hcv8jop7ns6r.cn 妮子什么意思wmyky.com 嗯呢什么意思hcv9jop0ns3r.cn 尿肌酐低是什么原因hcv9jop8ns0r.cn
提单是什么hcv7jop4ns8r.cn 吃什么降脂肪最快hcv7jop9ns9r.cn 刚怀孕有什么特征hcv7jop6ns6r.cn 故事情节是什么意思hcv9jop3ns4r.cn 二战时期是什么时候hcv9jop2ns7r.cn
滞纳金是什么意思hcv8jop0ns9r.cn 芝士是什么做的hcv9jop6ns5r.cn 消化不良吃什么药最好hcv9jop2ns5r.cn 1989年出生的是什么命hkuteam.com 三月份是什么星座hcv9jop1ns4r.cn
百度