1、84|电子制作 2023 年 3 月电子基础1 整体方案设计本项目的设计目标是使视障人群能无障碍操作使用本插座系统,满足低功耗、结构简单、高易用性、高可靠性的要求。主控单片机选择 ESP8266 单片机,于开源电子原型平台 Arduino 上完成原型设计。插头处的方波认证信号由NE555 时基集成电路产生,用于维持插头断电时物联网唤醒功能,于插头内集成锂电池及TP4056锂电池充放电电路,电路系统框图如图 1 所示。1.1 主控芯片选型作为一款具备物联网功能的插座,主控系统需具备通信功能,以及低功耗、高兼容性等特征,因此我们在主控选型方面投入了较大精力。在设计之初,计划采用 STC89C52芯
2、片作为硬件核心,通过 HC-08 串口蓝牙模块实现与网关的通信,该方案具有较低的成本,但由于单片机与通信模块为分体设计,因此体积较大,且家庭网络中通常不具有蓝牙网关,因此需额外添置,增加了整体的使用成本。在查阅大量资料后,更换使用 ESP8266 芯片作为硬件核心,ESP8266 是一款由深圳安信可科技开发的内置 32 位低功耗单片机的无线 WiFi 模块,支持 802.11 b/g/n,因此广泛应用于智能家居设备,该芯片同时具备低功耗、高兼容性、高集成度,非常符合本设计的需求。1.2 磁吸插座系统目前国内外也有一些为视障人群设计的插座辅助工具,多为导向槽结构,利用特殊设计的导轨引导插头进入插
3、孔,结构简单价格低廉,但是该结构只适用于双孔插头,大功率电器使用的三孔带地线的插头无法使用,因此我们决定设计一款适用于三孔插座的磁吸式插座系统以此解决视障人群使用大功率电器的问题。设计之初选定了稀土永磁体作为磁吸触头主体,但是永磁体磁性较弱容易脱落,因此计划设计一种吸附后自动闭合落锁的机械结构。在进一步设计的过程中,发现该结构大幅增加了设备体积以及增加了结构复杂性,因此开始寻找一种更好的解决方案。最终,选择了一款工业用电磁铁作为主体,该电磁铁具有 8kg 的静吸力,足以达到设计需求。1.3 插头吸附检测磁吸式插头由于接触面裸露在外,会存在较大的安全风险,因此需要设计插头吸附检测,在确认插头已正
4、确吸附后再进行送电。吸附检测部分,借鉴参考了当前手机快充系统判断快充设备的逻辑,由 NE555 时基芯片产生定值方波,当插头正确吸附后,插座通过触点接收到该方波后再进行送电,以此保证了使用中磁吸插座的安全。1.4 物联网交互视障人群在使用家用电器时,时常难以寻找到电器插头及对应插座,需靠摸索来寻找,极不方便,同样可能带来安全问题,因此引入时下热门的物联网技术,辅助视障人群更好的使用电力。目前国内应用最广、部署最简单的物联网智能家居系统是由小米科技开发的小米智能家居系统(小爱同学),因此将插座与插头均接基于 ESP8266 开发的方便视障人群使用的物联网磁吸插座冯冬雷,黄一清(江苏联合职业技术学
5、院苏州分院 电子工程系,江苏苏州,215009)摘要:我国当前使用的家用插座系统执行GB 2099.7-2015新国标,特征是扁三角型,历经多代演变,可满足人民群众日常使用需求。但是该插座系统对于视障用户非常不友好,盲插效率低,易误触发生危险。本项目设计了一种能方便视障人群快捷安全使用的智能磁吸式插座系统。开发了通过磁吸完成对接的插座,以此解决插座的快速盲插问题。通过联动全屋智能家居系统,实现视障人群对于插座的声音定位。项目采用智能家居常用的ESP8266单片机平台开发,以获得对智能家居系统较好的兼容性。关键词:磁吸;物联网;视障人群;智能家居;ESP8266 图 1 磁吸插座电路系统框图DO
6、I:10.16589/11-3571/|85电子基础入小爱同学,视障用户可通过呼唤小爱同学快速定位插座插头以及实现电器的语音遥控,极大地增加了视障用户使用电力的便捷性。2 机械结构的设计 2.1 磁吸插座机械结构设计插座部分底部设计兼容标准 86 型面板盒。插座整体为圆角矩形设计,顶端中心为磁吸触点,可见三环镀金弹片,当插头吸附后,弹片受力形变,与插头触点紧密贴合,以防止接触不良及减小接触电阻。位于三环弹片正中的是电磁铁,该电磁铁可提供 8kg 的静吸力,可防止插头意外脱落造成危险,同时电磁铁也作为插头吸附检测的触点,接收由插头发送的方波认证信号并传输给单片机进行判断。位于三环弹片外围的是引导
7、盘通过与插头匹配的外形引导插头精确吸附。在磁吸触点左侧,是吸附解除开关,当使用者需要取下插头时,按下接触开关,插座将断开主触点供电及断开电磁铁,此时可取下磁吸插头。磁吸插座截面如图 2 所示。1-兼容 86 型面板的 PC 外壳 2-导向滑槽3-PCB 印制触点 4-电磁铁 5-PCB 控制板 图 2 磁吸插座截面图 2.2 磁吸插头机械结构设计插头外形部分采用钟形设计,使之具有良好的握持手感,外部环绕一圈纹理,在防滑的同时兼顾美观。插头顶端为了便于接线,为可拆卸设计,在顶端中心留有出线孔。环绕出线孔数圈的是同心圆镂空纹理,作为出音孔,当呼唤小爱同学查找该插座时,位于插座内部的蜂鸣器将以一定规
8、律鸣叫,声音通过出音孔传出。在插头底部,是大面积的三环触点,此为主电源触点,分别为交流 L、N、PE,根据国标,该触点设计通过电流为 10A。位于三环触点中心的,是用于与插座部分电磁铁吸引的铁片,同时该铁片也作为插头吸附检测时的数据触点,当与电磁铁紧密吸合后向插座单片机传输方波认证。磁吸插头截面如图 3 所示。3 系统电路的设计 3.1 磁吸插座电路设计磁吸插座部分电路需完成智能家居系统的远程响应及发声定位和产生插头吸附检测用的方波。主控芯片选用集成有一块 ESP8266 单片机的 ESP8266 Lua WiFi V3 开发板。6-三环弹性触点 7-导向滑槽 8-PCB 触点盘 9-衔铁 1
9、0-PCB 控制板 11-接线端子 12-导线 图 3 磁吸插头截面图为防止误触插座磁吸触点部分发生危险,本插座设计有吸合检测,若无插头接入则不送电,该流程由中间继电器控制,中间继电器启动电压较高,因此插座内使用了 12V 400mA的开关电源模块,通过 AMS1117 3.3V 稳压芯片降压提供给单片机。单片机共使用了两路输入,分别为插头吸附检测信号输入及磁吸解除开关;三路输出,分别控制中间继电器通断、电磁铁通断及蜂鸣器通断。电磁铁及中间继电器启动需较大电压,因此单片机通过两块场效应管进行控制。3.2 磁吸插头电路设计磁吸插头部分电路完成智能家居系统的远程响应发声定位和产生插头吸附检测用的方
10、波。在远程响应发声部分,主控使用了一块集成有 ESP8266单片机的 ESP-01S 无线模块,单片机 I0 接口接入一蜂鸣器,当插头被智能家居系统远程呼唤时,蜂鸣器触发鸣叫。为了保证插头未吸附状态下也能被智能家居系统远程唤醒,插头内置有锂电池及锂电池充电模块,在插头吸附使用时能自行充电,若长时间未使用电池亏电,插头提供备用接口进行应急恢复。插头吸附检测用方波由一块NE555时基芯片产生。NE555 脉冲发生器电路如图 4 所示。图 4 NE555 脉冲发生器电路如图为 ESP8266 单片机及 NE555 脉冲发生器供电的是一块输出为 5V/700mA 的开关电源模块。开关电源就是利用电子开
11、关器件(如晶体管、场效应管、可控硅闸流管等),通86|电子制作 2023 年 3 月电子基础过控制电路,使电子开关器件不停地“接通”和“关断”,让电子开关器件对输入电压进行脉冲调制,从而实现 DC/AC、DC/DC 电压变换,以及输出电压可调和自动稳压。相比传统线性电源,开关电源具有体积小、效率高的优势。选用的开关电源模块具有 3.5W 的输出,能满足带动设备的需求。由于单片机需要 3.3V 供电,因此额外为单片机准备了一块AMS1117 3.3V稳压芯片,将5V转为3.3V供给单片机。锂电池充放电模块 TP4056 为 5V 输入,因此由 5V 开关电源模块直接提供。4 系统程序的设计本设计
12、于开源电子原型设计平台 Arduino 上进行开发。磁吸插座与智能家居系统的联动采用了第三方服务平台 Blinker 提供的小爱同学接入方案。Blinker 提供了基于ESP8266 的小爱同学库文件,通过简单调用即可快速接入小爱同学。图 5、6 分别为磁吸插头部分程序流程图和磁吸插座部分程序流程图。开始初始化程序Blinker连接云服务器蜂鸣器鸣叫是否收到呼唤命令?否是 图 5 磁吸插头部分程序流程图 4.1 连接小爱同学及进行呼唤判断的程序#include char auth=f087decd104c;/在 BLINKER 中设备的密钥char ssid=OpenWrt_2.4G_C737
13、34;/局域网的名字char pswd=rootroot;/局域网密码int a;int GPIO=0;/定义 GPIO 口用于控制继电器#define BUTTON_1 ButtonKeyBlinkerButton Button1(keyy);/这里需要根据自己在 BLINKER 里面设置的名字进行更改开始初始化程序Blinker连接云服务器蜂鸣器鸣叫是否收到呼唤命令?否是是否收到吸合方波信号?接通中间继电器是否收到磁吸解除信号?断开继电器2S是是否否 图 6 磁吸插座部分程序流程图/按下按键后就会进行此函数void button1_callback(const String&state)B
14、LINKER_LOG(get button state:,state);digitalWrite(GPIO,!digitalRead(GPIO);Blinker.vibrate();/接入小爱同学的代码,此部分代码根据 BLINKER 官网进行修改得到void miotPowerState(const String&state)BLINKER_LOG(need set power state:,state);if(state=BLINKER_CMD_OFF)/如果语音接收到是关闭灯就设置 GPIO 口为高电平 a=1;BlinkerMIOT.powerState(off);BlinkerMIO
15、T.print();else if(state=BLINKER_CMD_ON)/digitalWrite(GPIO,LOW);a=0;BlinkerMIOT.powerState(on);|87电子基础 BlinkerMIOT.print();void setup()Serial.begin(115200);pinMode(GPIO,OUTPUT);a=1;digitalWrite(GPIO,HIGH);/由于继电器是低电平触发,所以刚开始设为高电平。Blinker.begin(auth,ssid,pswd);Button1.attach(button1_callback);BlinkerMI
16、OT.attachPowerState(miotPowerState);void loop()Blinker.run();if(a=0)digitalWrite(GPIO,HIGH);delay(500);digitalWrite(GPIO,LOW);delay(500);4.2 触点吸合及解除部分程序void setup()Serial.begin(115200);pinMode(GPIO,OUTPUT);pinMode(GPI1,OUTPUT);a=1;digitalWrite(GPIO,HIGH);/由于继电器是低电平触发,所以刚开始设为高电平。Blinker.begin(auth,ssid,pswd);Button1.attach(button1_callback);BlinkerMIOT.attachPowerState(miotPowerState);if(b=0)digitalWrite(GPI1,HIGH);delay(2000);digitalWrite(GPI1,LOW);void loop()Blinker.run();if(a=0)digitalWrite(GP