Esp8266 - USB开关分享(开源)

news2025/1/9 16:30:03

文章目录

    • 简介
    • 推广自己
        • gitee项目地址:
        • 嘉立创项目地址:
        • 联系我们
    • 功能
    • 演示视频
    • 原理图
        • 嘉立创PCB开源地址
        • 原理图
        • PCB预览
    • 固件烧录
    • 代码编译烧录
      • 1. 软件和驱动安装
      • 2. 代码编译
        • 1. 安装所需要的依赖库文件
        • 2. 下载源代码
        • 3. 烧录代码
    • 使用说明
      • 1. 设备配网
      • 2. 打开设备操作页面
      • 3. 点灯功能配置
          • 1. 获取点灯的secretKey
          • 2. 配置点灯的secretKey
          • 3. 导入点灯的操作界面
      • 4. 小爱语音配置
    • 结尾

预览图片
预览图片

简介

随着各种各样的USB供电设备的出现,生活中经常会出现一种场景,那就是操作繁琐,每次都要插拔电源等等!
经常看到那种测电压电流功率的功率计,所以我就想着搞一个可以远程控制的USB开关。

我个人也有很多使用上的痛点:

  1. 床头的一个小夜灯离我很远,每次关灯都要我把夜灯给拔掉,
  2. 还有一个蓝牙音箱需要充电,但是我经常插着充电就忘记拔掉了,所以就想着搞一个定时的开关,解放双手
  3. 还有一个抽水的电池坏了,必须插着线才能用,所以需要单独控制

所以才下定决定做一个这个USB开关,这个设备的功能也比较简单,算不上什么高级的东西,但是我也是没有看到有比较好用的开源作品,所以就自己做一个,做的不好让大家见笑。

推广自己

有你们的支持才是我们所有开源作者的动力,所以如果你有时间且愿意动动手指欢迎点点关注点点赞,让我们不断推陈出新,感激不尽

gitee项目地址:

介于github访问实在是太难了,所以首推gitee gitee项目地址 fy-usb-switch-open

嘉立创项目地址:

嘉立创项目地址 fy-usb-switch-open

联系我们

如果有问题欢迎添加QQ群:555305936

QQ群二维码

功能

  1. 电源开和关
    • 这个就是设备的核心功能,也是比较简单的功能,就是控制USB开关的电源开和关,实现用电器的电源通断
  2. 电压电流功率信息查询
    • 能够在手机页面上查看实时的电压,电流,功率等信息,方便了解设备的工作状态
  3. 接入点灯实现远程控制和小爱语音控制
    • 搞这个很大一部分原因就是想远程控制,接入小爱语音,实现语音控制和点灯的app控制。
  4. 支持定时开关等操作
    • 定时开关支持两种方式:
      1. 几点中开启几点钟关闭(每天都会执行)
      2. 倒计时关闭或者开启(即如果是开启状态则倒计时结束则关闭,反之则倒计时结束则开启)
  5. 按键功能设置
    1. 可以设置单击或者双击按键执行具体的操作逻辑
    2. 长按10秒系统重置(重置以后所有的配置信息都清空,且需要重新配置wifi)

演示视频

点击跳转接哔哩哔哩查看

原理图

板子使用立创EDA画的,所以需要知道原理图和PCB的小伙伴可以点击以下链接跳转到立创开源地址哦

嘉立创PCB开源地址

嘉立创PCB开源地址

原理图

原理图

PCB预览

3D预览图

固件烧录

如果你不想下载代码烧录的话,可以选择直接烧录固件,这样简单便捷,需要焊接好板子即可。

直接烧录固件其实是比较简单的,只需要打开烧录工具,选择固件,选择串口设备,点击烧录就可以了,步骤如下:

大体操作如图所示:

烧录说明

  1. 打开烧录工具
    烧录工具在software目录中,双击打开NodeMCU-PyFlasher.exe文件即可
  2. 选择固件
    代码固件在firmware目录中,点击软件的browse选择需要烧录的固件。
  3. 选择串口设备
    Serial port选择串口设备,如果设备插上电脑以后读取不到串口信息,则需要检查是否安装驱动,其中驱动安装见下文的驱动安装说明。
  4. 点击烧录
    如果上述步骤都已经完成了,则直接点击Flash NodeMCU按钮烧录即可

代码编译烧录

熟悉arduino的小伙伴就不需要看这里的说明,如果是对arduino代码编译这些还不太熟悉的小伙伴则可以往下看,我这里也是从之前其他地方拷贝过来的,描述的不对,还请多百度一下才行。

1. 软件和驱动安装

这里由于我之前在点阵时钟的描述中介绍的比较清晰,所以这里不一一介绍了,请点击链接【 Arduino软件安装及串口驱动安装说明 】跳转到页面进行查看

2. 代码编译

1. 安装所需要的依赖库文件
  • 由于我也是初学者,很多都是使用别人的库文件,自己并没有去深入原理的去重写代码,所以我们需要安装一些库文件
  • 安装步骤如下:
    1. 工具 --> 管理库 --> 搜索我们需要安装的库 --> 点击安装即可
  • 需要安装的库文件如下:
    1. Blinker.h 点灯科技提供的驱动库
    2. OneButton 按键控制的库
    3. ArduinoJson JSON内容解析的库
    4. NTPClient NTP时间校准的库
    5. INA226 功率计算芯片需要用到的库
  • 如果有遗漏的库,请看报错提示,按错误提示将其中的库安装一下即可
2. 下载源代码
  • github下载 暂未上传到github
  • gitee下载 https://gitee.com/fly-fish-studio/fy-usb-switch-open

通过上面的地址下载我们的源码,其中代码在目录的code目录中,通过arduino直接打开code目录的文件夹即可。

3. 烧录代码
  • 通过Arduino IDE打开我们上一步下载好的代码
    1. 文件 --> 打开 --> 选择源码所在文件夹中.ino后缀的文件
  • 选择开发板
    1. 工具 --> 开发板 --> ESP8266 --> NodeMcu 1.0
  • 选择端口
    1. 工具 --> 端口 --> 选择我们串口设备对应的端口
  • 写入程序
    1. 项目 --> 上传 或 点左侧的 → 箭头 (波特率选115200,会快一些)

使用说明

1. 设备配网

当你代码烧录完成以后需要做的第一件事情就是设备配网,为了提升配网的体验,目前使用的是WiFi网页配网。简单来说就是ESP8266设备会提供一个热点,手机连接该热点以后会自动弹出网页进行配网操作。

操作方法如下:

  1. 时钟上电,然后会自己产生一个FY-USB-SWITCH热点
  2. 用手机连接上述热点,然后就会自动弹出配网页面
  3. 一般来说会自动弹出配网页面的,如果没有弹出来的话,那就自己到手机浏览器输入:192.168.4.1一样也会有配网页面
  4. 按照页面提示即可完成配网 (当设备处于配网模式时,8266模块上的指示灯会一直闪烁,如果已经连接wifi则指示灯会常亮显示)
  5. Esp8266目前也仅支持2.4GWiFi,如果家里没有2.4Gwifi则无法使用该设备

配网页面

2. 打开设备操作页面

操作页面

设备操作页面如上图,该页面的IP地址由于不方便获取,以下提供几种方法:

  1. 路由器管理页面查看设备IP地址(大佬都会懂这个的)
  2. 使用串口工具,查看串口打印的IP地址(这个比上面的麻烦一些)
  3. 使用我提供的一个工具,点击该链接地址:fy-switch-getip ,然后输入路由器IP地址,搜寻到设备会自动跳转

搜索设备页面

3. 点灯功能配置

熟悉使用点灯的小伙半应该不用看这里的教程了吧,嘻嘻嘻。如果你不熟悉使用点灯可以接着往下看。

1. 获取点灯的secretKey

获取流程请看截图展示,这里偷懒没有最近去截图,用的是以前的图片,如果有出入请以实际的为准。

点灯secret获取

  1. 进入首页点击右上角的+
  2. 点击点灯分类中的“独立设备”
  3. 设备接入向导点击网络设备
  4. 复制其中的key就是我们需要的点灯secretKey
2. 配置点灯的secretKey

直接在操作页面的绑定点灯SecretKey那里粘贴上一步获取到的点灯secretKey,然后保存后点重启设备即可

3. 导入点灯的操作界面

这一步也是比较简单的,需要复制界面代码,然后粘贴即可。

界面代码:

{¨version¨¨2.0.0¨¨config¨{¨headerColor¨¨transparent¨¨headerStyle¨¨dark¨¨background¨{¨img¨¨assets/img/bg/1.jpg¨}}¨dashboard¨|{¨type¨¨btn¨¨ico¨¨fad fa-power-off¨¨mode¨Ê¨t0¨¨开关USB¨¨t1¨¨文本2¨¨bg¨É¨cols¨Í¨rows¨Í¨key¨¨btn-enable¨´x´É´y´Ë¨lstyle¨Ë}{ßB¨cha¨ßKɨsty¨¨line¨¨clr¨¨#00A90C¨¨sty1¨ßS¨clr1¨¨#076EEF¨¨sty2¨ßS¨clr2¨¨#EA0909¨ßLÑßMÍßN¨cha-hgb¨´x´É´y´ÏßPÊßG¨电压¨ßI¨电流¨¨t2¨¨功率¨¨key1¨¨chat-a¨¨key0¨¨chat-v¨¨key2¨¨chat-p¨}{ßBßCßD¨fal fa-power-off¨ßFÊßG¨启用指示灯¨ßIßJßKÉßLÍßMÍßN¨btn-led¨´x´Í´y´ËßPË}÷¨actions¨|÷¨triggers¨|÷¨rt¨|÷}

操作步骤如下图所示:

点灯界面配置说明

  1. 点击右上角的三个点
  2. 点击界面配置
  3. 清空原来的内容,粘贴上述代码

4. 小爱语音配置

这里的小爱语音是指可以使用小爱同学,通过语音控制设备(并不能在米家设备中展示),所以有这个需求的可以考虑使用该功能,我自己也一直在用,使用起来体验还是可以的。

操作步骤如下:

  1. 打开米家App。通过我的 --> 其他平台设备 --> 点击添加 --> 点灯科技 --> 绑定账号 ,绑定blinker(点灯平台)账号
  2. 绑定成功后,支持小爱控制的blinker设备会出现在 我的 --> 其他平台设备 --> 点灯科技 --> 设备列表中
  3. 现在可以使用小爱控制该设备了(其实设备名称就是设备,比如你点灯的设备叫USB开关,就可以对小爱同学说打开/关闭USB开关

结尾

喜欢开源的朋友也可以关注我之前的一个开源项目:多功能点阵时钟

这个USB开关也是自己脑子一热决定做的东西,本质上也不是什么很高级的东西,只是这个是自己为数不多能从设想到落地的项目。可见想法再美好,行动能力跟不上一样是没办法做成一件事情的,唯有坚持,不拘小节才能完成自己最初的设想。

也欢迎有共同兴趣爱好的朋友(大佬)添加QQ群一起沟通进步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1619172.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue3去掉el-table底部白色边框

加入下面这一行代码就行了,我用的是less :deep(.el-table__inner-wrapper:before) {background: none;}效果图

腾讯云向量数据库-RAG介绍2

1.chunk拆分对最终效果的影响 2.改进知识的拆分方案 3.AI套件 4.相似性检索的关键:embedding技术 嵌入技术是相似性检索的关键,它能够将数据转换为向量表示,并通过比较向量之间的相似性来实现相似性检索;embedding:将…

全面解析平台工程与 DevOps 的区别与联系

平台工程的概念非常流行,但很多开发人员仍然不清楚它是如何实际运作的,这是非常正常的。 平台工程是与 DevOps 并行吗?还是可以相互替代?或者 DevOps 和平台工程是两个完全不同的概念? 一种比较容易将两者区分开来的方…

网站在线生成链接

源码简介 输入前缀、开始数字、结束数字、后缀 即可快速生成 几万、十万、百万 条链接。 支持 一键复制、 一键导出本地 txt 文件。 安装教程 纯HTML,直接将压缩包上传网站目录解压即可 首页截图 源码下载 网站在线生成链接-小8源码屋源码简介 输入前缀、开始…

算法练习(2)——约瑟夫环和坐标公式的推导

看一下上面的牛客题。题目的意思是n个小朋友围成一个圆环,编号从0开始,数m个数时,让小朋友出列,然后出列小朋友的下一个位置为0,继续数m个数,然后小朋友出来,直到最后一个小朋友,然后…

【Java Spring MVC项目异常解决】HTTP 500

HTTP 500状态码表示“内部服务器错误”(Internal Server Error)。这是一个通用的错误响应,表明服务器在处理请求时遇到了预料之外的情况,导致无法完成请求。500错误是服务器端错误的一种,与客户端无关。在Web开发中&am…

Docker常用命令(镜像、容器、网络)

一、镜像 1.1 存出镜像 将镜像保存成为本地文件 格式&#xff1a;docker save -o 存储文件名 存储的镜像docker save -o nginx nginx:latest 1.2 载入镜像 将镜像文件导入到镜像库中 格式&#xff1a;docker load < 存出的文件或docker load -i 存出的文件…

网络基础3

目录 网络层基本概念IP协议头格式网段划分特殊的IP地址IP地址的数量限制运营商的理解全球网络的理解私有IP地址和公网IP地址路由IP层分片与组装数据链路层以太网帧格式以太网通信原理ARP协议ARP数据报的格式DNS域名简介ICMP协议NAT技术NAPT技术代理服务器 网络层基本概念 一个…

PostgreSQL 免费的对象-关系数据库

目录 一、什么是数据库 二、ORDBMS 的一些术语 三、PostgreSQL 概述 四、PostgreSQL数据库优点和缺点 4.1PostgreSQL数据库的优点 4.2PostgreSQL数据库的缺点 4.3PostgreSQL 特征 五、Linux 上安装 PostgreSQL 5.1Yum 安装 PostgreSQL 5.1.1安装postgreSQL的官方yum仓…

【学习】软件测试自动化,是未来的趋势还是当前的必需

在当今快速迭代的软件开发周期中&#xff0c;速度和质量成为了企业生存的关键。随着DevOps实践的普及和持续集成/持续部署&#xff08;CI/CD&#xff09;流程的标准化&#xff0c;软件测试自动化已经从未来的趋势转变为当前的必要性。本文将探讨自动化测试的现状、必要性以及其…

[Qt的学习日常]--初识Qt

前言 作者&#xff1a;小蜗牛向前冲 名言&#xff1a;我可以接受失败&#xff0c;但我不能接受放弃 如果觉的博主的文章还不错的话&#xff0c;还请点赞&#xff0c;收藏&#xff0c;关注&#x1f440;支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、Qt的基本…

漫谈AI 时代的信息模型

模型化- 数字化转型的重要基石 在各行各业推行数字化转型过程中&#xff0c;构建信息化模型十分重要&#xff0c;它是数字化转型的基石。事实上&#xff0c;数字化转型的核心是“万物皆模型”&#xff0c;在工业领域&#xff0c;以德国为主导的工业4.0 发展进程中&#xff0c;…

53 语言模型【动手学深度学习v2】

https://www.bilibili.com/read/cv17622666/?jump_opus1https://www.bilibili.com/read/cv17622666/?jump_opus1

【C语言回顾】操作符详解

前言1. 操作符分类2. 二进制和进制转换2.1 二进制2.2 进制转换2.2.1 二进制转十进制2.2.2 二进制转八进制2.2.3 二进制转十六进制 3. 原码、反码、补码4. 移位操作符4.1 左移操作符4.2 右移操作符 5. 位操作符6. 单目操作符7. 逗号表达式8. 下标引用操作符9. 函数调用操作符10.…

《ESP8266通信指南》4-以Client进行TCP通信(AT指令)

往期 《ESP8266通信指南》3-常用AT指令详解-8266连WIFI-CSDN博客 《ESP8266通信指南》2-ESP8266 AT测试-CSDN博客 《ESP8266通信指南》1-ESP8266 简介-CSDN博客 1. 小节目标 通过 AT 指令使用 8266 进行 TCP 通信 2. 书接上回 复习以下&#xff0c;上一小节我们讲到了 8…

ESP32开发

目录 1、简介 1.1 种类 1.2 特点 1.3 管脚功能 1.4 接线方式 1.5 工作模式 2、基础AT指令介绍 2.1 AT指令类型 2.2 基础指令及其描述 2.3 使用AT指令需要注意的事 3、AT指令分类和提示信息 3.1 选择是否保存到Flash的区别 3.2 提示信息 3.3 其他会保存到Flash的A…

数据结构(Wrong Question)

一、绪论 1.1 数据结构的基本概念 D 因为抽象数据类型&#xff08;ADT&#xff09;描述了数据的逻辑结构和抽象运算&#xff0c;通常用&#xff08;数据对象&#xff0c;数据对象&#xff0c;基本操作集&#xff09;这样的三元组来表示&#xff0c;从而可构成一个完整的数据结…

【笔记django】创建一个app

创建app 错误 raise ImproperlyConfigured( django.core.exceptions.ImproperlyConfigured: Cannot import rules. Check that dvadmin.rules.apps.RulesConfig.name is correct.原因 刚创建的rules的app被手动移动到了dvadmin目录下 而dvadmin/rules/apps.py的内容还是&…

文字转粤语语音怎么转?文字转语音

文字转粤语语音怎么转&#xff1f;文字转粤语语音的应用&#xff0c;不仅展现了现代科技的魅力&#xff0c;也为我们提供了更加便捷的交流方式。它们将文字转化为粤语发音&#xff0c;让我们能够更直观地感受粤语的韵味和魅力。同时&#xff0c;这些软件还具备高度的可定制性&a…

使用 FFMPEG 实现录屏和录音

FFmpeg 是一个非常强大的开源工具&#xff0c;它可以用来处理音频和视频。 要使用 FFmpeg 进行录屏和录音&#xff0c;需要首先确保你的系统已经安装了 FFmpeg。在大多数 Linux 发行版中&#xff0c;可以通过包管理器&#xff08;如 apt 或 yum&#xff09;来安装。在 Windows …