
USB WiFi开关 基于ESP8266
简介
WiFi控制的USB开关,主控ESP-01S模组(ESP8266芯片),含配套安卓上位机,可遥控、定时或周期开关
简介:WiFi控制的USB开关,主控ESP-01S模组(ESP8266芯片),含配套安卓上位机,可遥控、定时或周期开关开源协议
:GPL 3.0
描述
基本信息
本项目是基于ESP-01S模组的WiFi开关,使用手机端进行控制操作。
考虑到市面上有许多成熟的WiFi开关,因此本项目主要起方案展示和技术分享之用,可作为ESP8266的学习项目,
如果只是需要稳定好用的WiFi开关,还是选择各种上市产品会更加适合。
本项目的基本功能我个人使用近两个月未出现问题,但还是不能保证它绝对可靠,若要用于重要设备的控制请慎重,本人不对此负责 。
硬件
该无线开关主要由USB公口、USB母口、2×4pin母座、电源电路、控制电路组成。
USB公口为输入端,USB母口为输出端,2×4pin母座用来连接ESP-01S模组(务必注意模组方向应朝着USB母口一侧 )。

电源使用662K.芯片,将输入5V转为3.3V。
使用PMOS控制USB母口的电源引脚是否与5V接通,PMOS栅极连接至模组的IO2,并由10k电阻上拉到5V,IO2采用开漏输出。
USB公口与USB母口的DP、DM线是保持直通的。
由于ESP8266刚上电时IO2会在极短时间内为低电平,因此刚上电时PMOS会有一个瞬间导通,比如假如用来控制灯的话就表现为上电闪一下,
若在意此问题,则需要先让该WiFi开关上电,然后再接入后级设备。
将控制5V线的PMOS换为控制GND线的NMOS能避开这一问题,但这会导致地阻抗增大,可能引起其他问题,因此权衡之下还是选择了PMOS。
ESP8266程序
使用Arduino环境开发。烧录目前也直接使用Arduino进行,没有导出hex或bin固件,目前只提供代码(主要我自己也都是直接用Arduino编译下载)。
烧录需要配合ESP-01S的串口下载器(卖ESP-01S模组的有时同时也卖下载器),或者自己搭建下载电路。
可通过串口指令配置其要连接的WiFi名称和密码。
在局域网通过UDP协议接收上位机的指令,进行开关控制或修改设置等。
通过HTTP访问苏宁的授时网站,获取网络时间,上电后开始获取,之后每十分钟获取一次,两次获取之间则结合自身定时器计算当前时间。
除了通过控制IO2来控制开关外,该程序还可以读取一个IO的电平并回传回来(默认还是IO2,即可以读取当前开关状态)。
事实上,ESP8266程序与该WiFi开关的硬件并非绑定,可通过修改程序参数的方式很容易地将该程序应用于其他基于ESP8266的硬件上,
比如通过修改参数来改变 输入引脚 和 控制引脚,改变 输入模式 和 输出模式,改变 控制输出的极性 等。
此外,虽然程序默认只操作IO2,但由于将相关的代码以结构体封装起来,故可以很容易在一个ESP8266上定义多个设备,对多个引脚进行控制。
安卓上位机软件
使用Qt For Android开发。如果想二次开发,需要配置Qt For Android环境,该过程较为繁琐,可自行在网上搜索教程。
界面大小是按1080×2340的手机屏幕做的(软件界面大小1080*2110),对其他分辨率的屏幕做了一些缩放适应,但是否能完全正常显示不保证。
当手机与WiFi开关处于同一局域网内时,可通过UDP协议对开关进行控制或修改设置,
包括命令开/关、设置/读取定时开关时间、设置/读取开关的ID和描述字符串等,支持最多10个定时时间,
因此除了 手动开关,它还可以支持 定时开关(如一点钟开两点钟关)或 周期开关(如开1分钟关2分钟,如此循环)。
默认使用局域网的UDP广播,最多支持99个设备(可设置ID为1~99,0为所有设备都会响应的通用ID)。
由于本项目主要是个人学习和使用,因此未考虑加密编码等,而是直接使用ASCII形式的明文通信,因此也可以直接用一般的UDP上位机操作。
未来计划支持MQTT通信,但由于目前在Qt For Android环境的MQTT库编译遇到问题,因此暂未实现,欢迎做过的朋友分享经验。
其他
B站展示视频链接:https://www.bilibili.com/video/BV18w411r7gk
更加详细的信息,包括操作方法、通信协议等,请参考 “WiFiCtrl-说明_V1.0.pdf”。
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论