【训练营_进阶班】OLED智能插座 - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

标准版 【训练营_进阶班】OLED智能插座

简介:本项目是一款以STM32F103C8T6为主控的,通过EMW3080连接阿里云的,能使用OLED和EC11编码器进行离线控制的三孔智能插排。

开源协议: GPL 3.0

(未经作者授权,禁止转载)

创建时间: 2020-08-05 20:43:24
更新时间: 2023-03-12 14:51:51
描述
# 写在前面 ### 1、如果有小伙伴对此感工程感兴趣,打算自己制作,请一定仔细阅读本文当中“八、已知的问题”章节,若有疑惑请同我交流。 ### 2、代码正在重构,重构完了放出来(咕咕咕)。 ### 3、还有4块空板,有需要的小伙伴联系我一下,付邮送。 # OLED三孔智能插座 ## 渲染图 ![image.png](//image.lceda.cn/pullimage/cCYET0BdVDwQnZdcpzqtbUyegJTSTihXT4um1ak7.png) ## 实物图 ![image.png](//image.lceda.cn/pullimage/WOtETbEBNAE73pa02NUQKBirDdcTNCM7q9WjfVs5.png) ## 带壳实物图 ![image.png](//image.lceda.cn/pullimage/ZmAY0IqORWGA15YR7c4IcJ46OJYjvim3LPCq52mE.png) ![image.png](//image.lceda.cn/pullimage/VR6xqaA3sc5MsE7GuEIEkk9oqvEmqKch5Jrasfu3.png) ![image.png](//image.lceda.cn/pullimage/6RlrAiSFXqq0YDeTQSnsPpqkrSwGfxK9uiRXCH3l.png) # 一、特性 #### 设计负载2000W #### 3路独立插孔 #### OLED多级菜单 #### EC11编码器控制 #### 按键快速控制 #### 阿里云物联网 # 二、应用示例 ## 1、焊接作业工作台 #### 在进行焊接作业时,需要使用到风枪、烙铁、排气扇等设备,这些设备总功率不高,误操作也不会造成严重影响,将这些设备连接到本智能插座后,可以使用插座上的按钮进行快速开关,可以记录焊接作业时长,可以定时关闭设备避免因遗忘导致设备长时间通电而烧毁。 ## 2、智能水族缸 #### 使用本智能插座,可以将水族缸改造成具有自动投料、自动加氧、自动换水、灯光管理等功能的智能水族箱。 # 三、设计要点 ## 1、强电部分 ### (1)使用10A 5*20保险管进行保护 ### (2)开槽防止爬电 ### (3)开窗上锡增大过电流能力 ### (4)使用卡式嵌入插座,通过焊接将插座集成到板子上 ## 2、弱电部分 ### (1)WiFi模组单独供电 ### (2)使用ACDC模组HLK-5M05将AC 220V转化为DC 5V为控制系统供电 ### (3)按键硬件消抖处理 ### (4)使用OLED和EC11的组合进行交互 ## 3、程序部分 ### (1)程序分层设计,降低耦合程度,提高可移植性 ### (2)使用定时器实现了实时任务调度器 ### (3)串口回显所有数据、设置三元组、PC to EMW3080透传 ### (4)多级菜单 # 四、硬件选型 ## 1、MCU最小系统 ![image.png](//image.lceda.cn/pullimage/ovDpJxIXU6Dt0GjsM9wSqyso0SBLNLg4LWkUZkYY.png) #### 项目使用STM32F103C8T6(商品编号: C8734)作为主控,该MCU为ST公司F1系列中较为低端的产品,性价比极高,是一款经典的32位MCU。 #### 设计了BOOT0跳线,可以通过串口烧录程序。 #### 设计了复位按键,可以进行系统硬复位。 #### 预留了SWD接口,方便设备进行仿真和程序烧录。 #### 预留了纽扣电池槽,在后续的开发中将加入掉电后恢复运行状态的功能。 ## 2、WiFi模组 ![image.png](//image.lceda.cn/pullimage/hOJlmAj4yRH6T8APaw8vUJHM9wngE9c4ybFaumdw.png) #### 项目使用了零妖推荐的WiFi模组EMW3080系列中的EMW3080V2-E,并外置了天线。 #### 在模组烧录ILOP固件后,MCU可以通过串口使用AT指令接入阿里云飞燕平台。 ## 3、USB转串口电路 ![image.png](//image.lceda.cn/pullimage/P3WvzIsLoK31Qfb8B6bg0Bvi64DZD0iuNVUtl1QM.png) #### USB to UART芯片选择MSOP10封装的CH340E(商品编号: C99652),该芯片体积极小、内置晶振。 #### USB接口选择16pin的type-C(商品编号: C393939)接口,该接口容易找到匹配线材。 ## 4、SPI FLASH存储芯片 ![image.png](//image.lceda.cn/pullimage/mHsNrhknsxRRPOorGNuWtLHDrMkYJKF7T53HGSic.png) #### 采用W25Q32(商品编号: C179173)存储配置信息以及字库、图片数据。 #### 在采购时需要注意封装类型。 ## 5、DS1302时钟芯片 ![image.png](//image.lceda.cn/pullimage/ZYKtawVeClrbuV9lZHp5ljxCyTWDS0aQKKjFLHHO.png) #### 为了开发让设备能在离线时正常使用的功能,预留了DS1302实时时钟芯片的电路。 #### 在采购时需要注意封装类型。 ## 6、OLED显示模块 ![image.png](//image.lceda.cn/pullimage/6ZDPs9GULEZZnUZ6CHnga3OK6ad3e7u6jizbtx72.png) #### 选用7pin 0.96吋 128*64分辨率的OLED作为显示屏,配合多级菜单,可以显示丰富的内容。 ## 7、5V to 3.3V ![image.png](//image.lceda.cn/pullimage/XZCwWPjxlIA0lkkeaP32eRpSIKR76PTMVIYptiJr.png) #### 选用ASM1117将经过滤波后的5V电源转化为3.3V为单片机、OLED、串口芯片以及wifi模组等供电。 #### WiFi模组单独供电。 ## 8、指示灯 ![image.png](//image.lceda.cn/pullimage/s6pb3ArQBjt2dR4RAGYTUzWFjIqSGKho7OU2lpjZ.png) #### 产品具有不透明外壳,选用长脚直插LED作为状态指示灯可以透过外壳预留孔槽向外展示系统状态。 ## 9、按键 ![image.png](//image.lceda.cn/pullimage/svpf0Md2W4tBe30T4MVGX8zVfeyW90qn7Ot9RcLt.png) #### 按键型号为6\*6\*22的轻触开关,使用RC电路进行硬件滤波。(阻容值还需要进行调整) ## 10、EC11旋转编码器 ![image.png](//image.lceda.cn/pullimage/yrKCprxi5kK7fv2L2nie8flE6MmZz1b2qMOihsH3.png) #### EC11选用加长梅花柄的型号,AB相以及按键均使用RC电路进行硬件滤波。(阻容值还需要进行调整) ## 11、插座控制电路(局部) ![image.png](//image.lceda.cn/pullimage/vqE9UYUZrRCKViO1cHSWsItc1ATcV5CNCnMUA1zV.png) #### 使用继电器SRD-05VDC-SL-C(编号:C35449)隔离AC220V被控电路和5V控制电路。 #### 使用零妖推荐的感性负载驱动芯片NUD3105(商品编号: C146811)驱动继电器。 #### 设计了LED指示灯,在继电器常开触点闭合时,指示灯也会亮起。 #### 卡嵌式插座实物图: ![image.png](//image.lceda.cn/pullimage/uD5uqlecroWrKtwE5BeKuXT8mjOhSAd17JC2F9sZ.png) #### 插座连接:[https://item.taobao.com/item.htm?spm=a1z0d.6639537.1997196601.44.24dc7484EByGt5&id=559327402212](https://item.taobao.com/item.htm?spm=a1z0d.6639537.1997196601.44.24dc7484EByGt5&id=559327402212) ## 12、220V to 5V ACDC电路 ![image.png](//image.lceda.cn/pullimage/zs6xb8YEGPZrCeNcNAAkEYRHwaN8n1Y9L67C7hz4.png) #### 使用HLK-5M05 ACDC成品模组(商品编号:C209907)将220V市电转化为5V直流电源。 #### HLK-5M05实物图: ![image.png](//image.lceda.cn/pullimage/dUbbl3lmpzWZrI91Owg3kLNTfhaMrZ6LPCtUHVpi.png) #### 功耗估算: #### 继电器(SRD-05VDC-SL-C):0.36W*3 = 1.0W ![image.png](//image.lceda.cn/pullimage/OVTwVaw3vnVJlobQYWLxtAaGPlrx07gC8ufVrQLA.png) #### WiFi模组(EMW3080V2-E):300mA*3.3V = 1.0W ![image.png](//image.lceda.cn/pullimage/LQf3Ryj1xGWhnBoyabPwYMxCl8I5Cep3FZDrRIOf.png) #### STM32最小系统:363mA*3.3V = 1.2W ![image.png](//image.lceda.cn/pullimage/Izo2FyvAzYLPNKVfzOy15f9n5wUWa7ziTHYBOxCI.png) #### 合计:3.2W #### HLK-5M05载荷5W,有足够的裕量 # 五、PCB Layout ![image.png](//image.lceda.cn/pullimage/imaTYcnPMaBbHOclnta6dRMPt4UPP6uVsjebgTr5.png) ![image.png](//image.lceda.cn/pullimage/YhQy6zS5yqDImcn0itR7Uu3ZLtcBxbw4VmeccGeZ.png) # 六、程序构架 ## 1、程序层次 | 程序层次 | 简写 | 全称 | 说明 | 例子 | | ---- | --- | --- | --- | --- | | 应用程序层 | APL | Application Layer | 业务逻辑 | | | 功能模块层 | FML | Functional Module Layer | 以功能模块为单位 | 读写文件 | | 硬件模块层 | HML | Hardware Module Layer | 以硬件模块为单位,将硬件模块的功能封装成一个个函数 | SD card | | 硬件抽象层 | HAL | Hardware Abstract Layer | 将单片机外设封装成与平台无关的接口 | SPI | | 硬件驱动层 | HDL | Hardware Driver Layer | 将库函数进行简单的封装(可省略) | 位带操作 | | 板级支持包 | BSP | Board Supoport Package | 厂商提供的库函数,类似于STM32的STD库 | STD库 | | 系统函数库 | SLB | System Library | 标准库或者自己实现的一些类似于标准库的函数 | stdint.h | ![image.png](//image.lceda.cn/pullimage/sAbG2uQuCsGL7vBdMdUD5HLuZ3fHRaBuF26zUZPU.png) 将程序分为APL、FML、HML、HAL、HDL、BSP六个层次以及一个System Library。 ![image.png](//image.lceda.cn/pullimage/tWpwZSX7kxqqrelBtXcVZpluxaQWzAHBFqJpZUOz.png) 上层通过下层开放给上层的有限的接口调用下层资源,下层通过回调上层注册的函数触发上层响应。 大量使用回调函数,使得上层与下层隔离 ## 2、简易实时任务调度器 #### 使用定时器产生1k~~~~Hz的中断,在中断中查询是否有任务需要执行,原则上不执行耗时的任务。 #### 任务类型有: ![image.png](//image.lceda.cn/pullimage/wVGyH1M1ggxRhaOfr66uRW9Cv4OQcXeiN0W3olq7.png) #### 通过如下函数实现: ![image.png](//image.lceda.cn/pullimage/EVtIxShkDmvLcOfeiP7oHdEtA8wri7EEBm8wBqA5.png) #### 创建任务实例: ![image.png](//image.lceda.cn/pullimage/9RpPgFzN1Uumb1LDTtFPJlOpImeo4Q8DnjbOunXx.png) ## 3、OLED中文显示、中英混显、图文混显等 #### 在中景园所给例程的基础上,对OLED驱动库进行了改进,修改了汉字显示方式,增加了汉字英文混合显示、图标文字混合显示等功能。 #### 汉字字库 ![image.png](//image.lceda.cn/pullimage/f06yQdknGoxpfUU1gQaMgJoEyNmRAgK3GmsA15jq.png) #### 汉字显示: ![image.png](//image.lceda.cn/pullimage/Mx5G3jABTpknvhtoWYcRfmXWFTpl8yDH0hkmEcEv.png) ##### 通过遍历的方式,在汉字字库中检索当前汉字的数据并将其显示在OLED上,目前汉字字库建立仍比较麻烦,将来考虑将GB2312汉字字库放入W25Q32芯片中。 #### 中英混显: ![image.png](//image.lceda.cn/pullimage/O3nrOy3dhioApChhK9Ieh2LkWL5r6rtMmzlyEf7Z.png) ## 4、多级菜单的实现 #### 设计了5种结构体用于储存菜单信息。item\_t的成员type标识了此窗体的类型,可选类型有menuForm\_t菜单窗口类型、settingForm\_t设置窗口类型、showForm\_t展示窗口类型以及opertion\_t操作类型。item\_t的成员name标识了此窗体的名字,在其父窗口中将显示此名字,item\_t的成员obj指向了窗口结构体。 ![image.png](//image.lceda.cn/pullimage/J6UzQNwKMniAZx3m7uIDPPhooze3WD56Eggu89Ak.png) # 七、制作过程 ## 1、硬件焊接 ### (1)插件摆放测试 #### 为了避免贴片元件焊接好后因为封装问题导致插件焊接不上的尴尬,在焊接前先将插件摆放在PCB上进行测试,如果发现封装严重错误则需要重绘PCB。 ![image.png](//image.lceda.cn/pullimage/2wOHwlWRDvfVTjnFOp5RUaH0FUF2kxZpnwOwUxpm.png) ### (2)3D打印“钢网” #### 使用3D打印技术打印得到了用于涂抹锡浆用的3D打印“钢网(stencil)”,3D打印“钢网”教程[https://www.bilibili.com/read/cv6741734](https://www.bilibili.com/read/cv6741734) 。 ![image.png](//image.lceda.cn/pullimage/OoggaaQNKLQ1QiQQEev1ghT15Sp3UEYW4JRzI9uG.png) ### (3)刷锡浆 #### 透过“钢网”用刮刀将锡浆均匀涂抹到PCB上。 ![image.png](//image.lceda.cn/pullimage/u0JrnrMK1u4qndibFNLYFCVtP9EHQ55UNS3Rdjdk.png) ### (4)摆放贴片元件 ![image.png](//image.lceda.cn/pullimage/uKRzlPjycjSlGXU7FiWo1JM2kjzxzwUGIhGU8fDR.png) ### (5)上加热台焊接 #### 将加热台温度调节至250℃,隔一张A4纸将刷好锡浆、摆好原件的PCB平稳放置上去,加热至锡浆全部变成亮闪闪的焊点后使用镊子等工具将其平稳取下,放在通风出冷却。在加热过程中可以用镊子微调元件,尤其是解决元件立碑的问题。 ![image.png](//image.lceda.cn/pullimage/4oLohJWNPbaQVGPyfaJKrnAVICbCs4Fez7NmUjDA.png) ![image.png](//image.lceda.cn/pullimage/PbedLQZgxJQV9UzxgbI8Re7P4wVRmHsRnra8fm2g.png) ### (6)烙铁补焊 #### 3D打印“钢网”精密度不高,锡浆厚度不均可能导致引脚出现连焊等状况,需要用烙铁处理连焊、虚焊等情况。 ![image.png](//image.lceda.cn/pullimage/r7uxyzWJoZUvueMperO72ulHLAEkx8qfXDc18nNN.png) ### (7)插件焊接 ![image.png](//image.lceda.cn/pullimage/498yzMmi6HpM7glhv7pzBeHUdfe9lUeiTYn9Z1Q8.png) ### (8)开窗焊盘上锡 ### (9)上电测试 ![image.png](//image.lceda.cn/pullimage/RWAQQGoOUKiVS5T2imusRBLnVdmkVv7na1imfNVo.png) ### (10)清洗PCB ## 2、3D模型制作&外壳制作 #### 3D模型建立教程见:为LCEDA的工程建立3D模型并渲染[https://www.bilibili.com/read/cv6758801](https://www.bilibili.com/read/cv6758801) #### 为无法找到3D模型的元件建立了3D模型: ![image.png](//image.lceda.cn/pullimage/RmiwdyAurWVkYcfxtDO8y7YIZ0yGZoeyioZ5OyVI.png) ![image.png](//image.lceda.cn/pullimage/iHHthk2HpuO2jIRaCJEXgzEUhqcHd6REidd0Ai28.png) # 八、已知的问题 ## 1、STM32外部中断线冲突 #### 问题:EC11编码器B项连接至STM32的PA7引脚,按键2连接至STM32的PB7引脚,二者对应的均为EXTI_Line7中断线,所以两者不能同时使用外部中断 #### 解决方式:为了准确的获取EC11输入,程序使用两路外部中断分别检测EC11编码器AB相,所以按键2的检测智能通过轮询检测实现,程序中使用一个1ms触发一次的实时任务检测按键2对应引脚PB7的电平模拟出外部中断的效果 ## 2、上电时继电器吸合 继电器驱动电路存在问题,STM32上电时IO口为高阻状态,继电器常开触点闭合,插座连通,改进后的电路可以避免这种情况。 ![image.png](//image.lceda.cn/pullimage/QRrFjYbe9yfefp78oJSqJtbD3CjWMCmYUjRLCTVF.png) ## 3、OLED封装错误 LCEDA的0.96吋OLED封装存在问题,市面上常见的OLED模块不能兼容,3D封装也存在问题,疑似为1.3吋的OLED3D模型。 ## 4、LED引脚长度不足 #### LED引脚至少长45mm才能突出外壳显示,蓝色绿色LED引脚长度不够,续接了一段。 ![image.png](//image.lceda.cn/pullimage/VkcTXSlMbFwMeAEIZ489uRQq80wLxA8mgvQrW6ak.png) ## 5、EMW3080阿里云直连固件版本过低 #### 问题:参考零妖的程序和庆科官网的文档向EMW3080发送AT指令,EMW3080能正常返回信息,但是无法进入配网模式 #### 解决方式:使用AT指令**AT+FWVER?\r**查询EMW3080固件版本号为2.2,尝试升级固件后正常使用 #### 固件刷写教程:[https://www.yuque.com/lingyao/jing/isdnec](https://www.yuque.com/lingyao/jing/isdnec) #### 飞线刷写固件: ![image.png](//image.lceda.cn/pullimage/v88QheN5qEAYd4vumsPtQwmEJkAC6weIuVM8U3zU.png) #### 固件刷写成功: ![image.png](//image.lceda.cn/pullimage/6vBOiub354gRWDrlJGgwSolIGyaGeDzXsGFhScPg.png) #### 首次配网成功: ![image.png](//image.lceda.cn/pullimage/9oPyxnTpOMFtBYq4X1bIkKUVEVdn1mGHnvEXpXvn.png) ## 6、未留测试点 #### 应当留出测试点方便程序调试,如STM32与EMW3080之间的串口应该引出测试点方便对EMW3080调试以及烧录程序。 # 九、项目相关 ## 1、打板前若有元件实物使用3D打印验证封装 ## 2、打印外壳局部进行预实验验证外壳是否可用 # 十、演示视频
设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
ID Name Designator Footprint Quantity
1 SRD-05VDC-SL-C RLY1,RLY2,RLY3 RELAY-TH_SRD-XXVDC-XL-C 3
2 EL817S(C)(TU)-F U6,U3,U11 OPTO-SMD-4_L4.6-W6.5-P2.54-LS10.3-TL 3
3 OLED_128x64_SPI DISP1 0.96OLED_7P 1
4 10D561K R33 RES-TH_L13.0-W6.0-P7.50-D0.9-S6.00 1
5 10k R11,R23,R21,R14,R19,R4,R1,R5,R6,R10,R30,R18,R27 R0603 13
6 100R R20,R24,R22,R13,R2,R7,R15 R0603 7
7 330R R8,R9 R0603 2
8 10K R3,R12 R0603 2
9 Guangdong L3 FILTER-TH_4P-L17.0-W12.0-P7.00-D0.6-S8.00 1
10 EC11E153440D SW1 SW-TH_EC11XXXXXXXX 1
11 安装孔 H4,H1,H2,H3 M3定位孔_2020年6月11日 4
12 LED-TH-5mm_B LED4 LED-TH_BD5.0_BLUE 1
13 DS1302 U8 SOIC-8_L5.3-W5.3-P1.27-LS8.0-BL 1
14 220uF(16V) C31 CAP-SMD_BD6.3-L6.6-W6.6-FD 1
15 100nF C30 CAP-18*5-15MM 1
16 NUD3105LT1G Q1,Q2,Q3 SOT-23-3_L2.9-W1.6-P1.90-LS2.8-BR 3
17 HLK-5M05 U13 PWRM-TH_HLK-5M05 1
18 220V_Fe PR1 DB-14-10 1
19 0.5A 5x20保险管夹组合 U12 5X20保险管夹组合 1
20 10A 5x20保险管夹组合 U5 5X20保险管夹组合 1
21 W25Q32JVSSIQ U4 SOIC-8_L5.3-W5.3-P1.27-LS8.0-BL 1
22 STM32F103C8T6 U2 LQFP-48_L7.0-W7.0-P0.50-LS9.0-BL 1
23 LED-TH-5mm_R LED2,LED3,LED1 LED-TH_BD5.0_RED 3
24 EMW3080B U1 EMW3080 1
25 AMS1117-3.3_C165482 U10,U9 SOT-223_L6.5-W3.5-P2.30-LS7.0-BR 2
26 X50328MSF2GI X1 OSC-SMD_L5.0-W3.2 1
27 1m L1 L0603 1
28 1uF C12 C0603 1
29 104 C6,C14,C29,C4,C2,C19,C9,C5,C10,C13,C8,C15,C36,C35,C18,C34,C33,C17,C7,C16,C26,C28,C22,C24 C0603 24
30 22pF C1,C3 C0603 2
31 10uF C11,C20,C32,C21,C23,C25,C27 C0603 7
32 HDR-M-2.54_1x2 J1,J3 HDR-M-2.54_1X2 2
33 SS21-BBIWP2-R SW2 SW-TH_SS21-BBIWP2 1
34 32.768 X2 OSC-TH_BD2.0-P0.70-D0.3 1
35 SS34 D3,D2,D4,D5,D1 SMA_L4.4-W2.8-LS5.4-RD 5
36 CR2032-BS-8-1 B1 BAT-TH_BS-8-1 1
37 LED-TH-5mm_G LED5 LED-TH_BD5.0_GREEN 1
38 TYPE-C-31-M-12 USBC1 USB-C_SMD-TYPE-C-31-M-12 1
39 ML2/3 10A 250V~(FT022) SP2,SP1,SP3 ML2/3 10A 250V~(FT022) 3
40 button6*6*8.5 KEY1,KEY3,KEY2,KEY5,KEY4 KEY-TH_4P-L6.0-W6.0-P4.50 5
41 68uH L4,L2 L-SMD-7.3X7.3 2
42 HDR-M-2.54_1x4 J2 HDR-M-2.54_1X4 1
43 1k R32,R16,R31,R25,R28 R0603 5
44 510 R17,R29,R26 R0603 3
45 CH340E U7 MSOP-10_10P-L3.0-W3.0-P0.50-LS5.0-BL 1

展开

工程视频/附件
序号 文件名称 下载次数
1

智能插座.mp4

160
2

3D模型.zip

29
工程成员
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP