一、简介
本设计采用esp32主控,搭载VS1838B红外线接收头与mos管,主要功能为无线开启电脑主机的效果,简单原理为接收家用遥控器(如电视遥控器,空调遥控器,车钥匙等)的红外信号,判断后开启mos管短接电脑主板上的power sw引脚,等效人手动按下机箱开机键。设计搭载5V转3.3V转换电路,这样可直接使用主板上的5V电源。
本设计面向需要家庭内需要快捷方便开启主机的场景,面向人群为有一定动手能力的家用电脑用户。
二、方案框图
方案图见下,采用了得捷的Scheme-it来设计框图,应用介绍与使用说明请见https://www.eetree.cn/project/detail/2103
设计采用电脑主板上的5V电源,经电压变换后向esp与红外接收头供电。esp芯片读取红外接收头调制的信号,当收到设定值时,开启mos管(实际应用中采用了三极管),短接主板上的SW引脚开启电脑。由此可将电路固定在机箱中,使用空调遥控器、电视遥控器乃至车钥匙等红外发射器向电路发射红外信号,实现远程控制电脑开启的功能。
设计原理图见下,采用KiCad绘制。从主板上取5V电源后经过使用AMS1117转为3.3V后向ESP32与红外接收头VS1838供电,ESP32接收VS1838的信号并控制三极管是否开启,三极管开启后可短接主板SW引脚进而开启电脑。
在绘制原理图的过程,会出现无法在元件库中找到目标器件的问题,此时可手动创建元件,具体操作方式可参考附件视频。
三、元器件介绍
- ESP32S3 乐鑫
- VS1838B
- AMS1117-3.3V
主控芯片:乐鑫ESP32S3
ESP32-S3 是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片,支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa® 32 位 LX7 双核处理器,主频高达 240 MHz,内置 512 KB SRAM (TCM),具有 45 个可编程 GPIO 管脚和丰富的通信接口。ESP32-S3 支持更大容量的高速 Octal SPI flash 和片外 RAM,支持用户配置数据缓存与指令缓存。
ESP32-S3芯片具有行业领先的低功耗性能和射频性能,支持 WiFi IEEE802.11b/g/n 协 议和 Bluetooth 5。该芯片搭载 Xtensa-R32 位 LX7 双核处 理器,工作频率高达 240 MHz。支持二次开发,无需使用其它微控制器或处理器。芯片内置 512 KB SRAM,384 KB ROM, 16KB RTC SRAM。芯片支持多种 低功耗工作状态,能够满足各种应用场景的功耗需求。芯片所特有的精细时钟门控功能、动态电压时钟频率调节功能、射频输出功率可调节功 能等特 性,可以实现通信距离、通信速率和功耗之间的最佳平衡。
模组提供丰富的外设接口,包括 UART,PWM,SPI,I2S,I2C,ADC,LCD, DVP,RMT(TX/RX),脉冲计数器,USB OTG,USB Serial/JTAG,SDIO,DMA 控制器, TWAI 控制器,温度传感器,电容式传感器和多个IO 口。
模块具有多种特有的硬件安全机制。硬件加密加速器支持 AES、SHA 和 RSA 算法。其中的 RNG、HMAC 和数字签名(Digital Signature) 模块提供了更多安全性能。 其他安全特性还包括 Flash 加密和安全启动 (secure boot) 签名验证等。完善的安全机 制使芯片能够完美地应用于各种加密产品。模块支持低功耗蓝牙:Bluetooth5,Bluetooth mesh。蓝牙速率支持:125Kbps,500Kbps,1Mbps,2Mbps。支持广播扩展,多广播,信道选择。
支持蓝牙和WIFI,就意味着可以进行很多的无线连接;同时乐鑫提供了大量的开源库,包括语音识别Skainet,可以方便的进行后期扩展。
红外接收头:VS1838B
红外信号收发系统的典型电路如图1所示,红外接收电路通常被厂家集成在一个元件中,成为一体化红外接收头。内部电路包括红外监测二极管,放大器,限副器,带通滤波器,积分电路,比较器等。红外监测二极管监测到红外信号,然后把信号送到放大器和限幅器,限幅器把脉冲幅度控制在一定的水平,而不论红外发射器和接收器的距离远近。交流信号进入带通滤波器,带通滤波器可以通过30khz到60khz的负载波,通过解调电路和积分电路进入比较器,比较器输出高低电平,还原出发射端的信号波形。
电源转换芯片:AMS1117-3.3V
AMS1117-3.3是一种输出电压为3.3V的正向低压降稳压器,适用于高效率线性稳压器,开关电源稳压器,电池充电器,活跃的小型计算机系统接口,终端笔记本电脑的电源管理电池供电的仪器,非常适用于esp32的供电。
四、PCB电路图
PCB电路板采用Kicad绘制,将原理图中的原件绑定典型封装后,点击导入到pcb即可开始绘制。绘制前要根据实际应用场景确定电路板的形状大小,之后确定外部接口分布位置。对于电源线要采取较粗铜线,信号线则要考虑频率,干扰与阻抗匹配等问题。本电路功能较为简单,且信号频率在kHz,需要关注的问题较少。
五、代码展示
本设计利用巴法云平台的MQTT服务,esp连接无线网络后可与网页端通信,接收网页端控制信息并返回收到的红外信号值。具体代码见下
void setup() { //初始化函数,连接wifi并连接云平台
Serial.begin(115200);
irrecv.enableIRIn(); //初始化红外遥控
setup_wifi();
client.setServer(mqtt_server, mqtt_server_port);
client.setCallback(callback);
}
/**
* 固件升级函数
* 在需要升级的地方,加上这个函数即可,例如setup中加的updateBin();
* 原理:通过http请求获取远程固件,实现升级
*/
voidupdateBin(){
client.publish(topic, "start update"); //向指定主题发布消息
WiFiClient UpdateClient;
ESPhttpUpdate.onStart(update_started);//当升级开始时
ESPhttpUpdate.onEnd(update_finished); //当升级结束时
ESPhttpUpdate.onProgress(update_progress); //当升级中
ESPhttpUpdate.onError(update_error); //当升级失败时
t_httpUpdate_return ret = ESPhttpUpdate.update(UpdateClient, upUrl);
switch(ret) {
case HTTP_UPDATE_FAILED: //当升级失败
client.publish("MyPCSw", "[update] Update failed."); //向指定主题发布消息
break;
case HTTP_UPDATE_NO_UPDATES: //当无升级
client.publish("MyPCSw", "[update] Update no Update."); //向指定主题发布消息
break;
case HTTP_UPDATE_OK: //当升级成功
client.publish("MyPCSw", "[update] Update ok."); //向指定主题发布消息
break;
}
}
六、功能展示
图中蓝线为红外接收头输出信号,黄线为外部引脚控制信号。当接收指定信号一定时间后,外部引脚输出一个负脉冲,控制电脑开机。
通过云平台向设备发送catch命令监听红外线信号,接收信号后返回。
通过云平台向设备发送update命令进行远程ota更新。
七、总结
Fastbond大赛给了我十足的动力去尝试有趣的开源项目。通过这个项目,我们可以通过硬件电路与软件知识,实现自己脑海中的想法,并结合实际效果优化设计。希望这个活动能继续办下去,越办越好。