物联那点事儿之小爱同学网络控制电脑开机(arduino+点灯科技篇)

前言

  上一个帖子写的是自制网络温湿度计,里面对需要用到的app和编译软件写的都很清楚,这个帖子呢就写一下小爱同学网络控制电脑开机的小项目,首先要声明一点,一定要弄明白ardunio编程、esp8266模块(esp01/nodemcu),这样的话看这篇帖子就很容易啦,如果想继续跟着做的话,还是用自制网络温湿度计的例程上手比较快。

硬件材料:

(1)esp8266烧录器一个,用来给wifi模块烧写程序。
(2)esp8266烧录器配套的wifi模块一个(esp01或者esp01s都可)。
注:esp01是两个led灯,esp01s是一个led信号灯,都是wifi模块,但是一定要和烧录器配套。建议两个各买一个,备用和实验。
(3)物联网wifi继电器一个,我这里用的是这种有转接板的可以接esp01的这种,当然也有没有转接板的,肯定就不能接esp01了,没有转接板的可以接到nodemcu开发板上(也是esp8266的一个模块,不过引脚比较多所以连接的设备也就比较多),如需购买看下图!
注:仔细看下图的配件,wifi继电器接线是需要用一字小螺丝刀(2.5mm)拧的,手里没有的在网上记得买昂。
(4)杜邦线4根。


配件图片:

           esp8266烧录器    esp01s      物联网继电器
                        图3-1 esp8266烧录器                       图3-2wifii模块 esp01s                               图3-3 wifi继电器


下面是我用的电子零件淘宝链接,个人觉得这家店铺的性价比超级高!推荐一下,复制淘口令打开手机淘宝即可下单,如有过期请在评论区留言! esp8266烧录器:(¥D1XY1EC9mdh¥-GOOD-)
wifi模块esp01s(推荐买安信可品牌,通信比较好):(¥LB7C1ECRamN¥-GOOD-)
与esp01s配套的继电器:¥BKgK1ECreBy¥-GOOD-)

软件准备

如果有安装可省略此步,也可参考自制网络温湿度计或者点灯科技官网。
1.电脑端安装Arduino IDE,esp8266扩展,安装blinker库。
2.手机安装点灯科技app、米家、小爱同学。

工作原理

首先看一下wifi继电器的构造:(此继电器是低电平触发)

           
常开端:继电器吸合前悬空,吸合后和公共端短接;
公共端:继电器公用接口;
常闭端:继电器吸合前短接,吸合后和公共端悬空;
注:具体要根据功能需求确定使用常开端还是常闭端哈。


电脑开机原理: 机箱开关键连接主板PW两个引脚引脚,当 PW两个引脚先断开再短接,从而使得电源给主板和其他设备供电从而开机。关机也是如此。
注:这里的继电器是连接的pw引脚,模拟电脑开关键的动作,而不是直接断电源。
继电器控制电脑开关机原理:wifi继电器的常闭端和公共端连接pw引脚,收到远程信号时,继电器先悬空后吸合,从而起到远程控制开关机的作用。
供电原理:电脑在关机插电源的时候会有5v供电的,称为待命电压,具体哪根线供电看下面具体流程。

具体流程:

(1)线路连接。
电脑关机状态下的5v供电线:
将电源线在主板下拔下来,将有卡子的一面儿面对着自己,从右往左数第九根紫色线就是5v供电线(第九引脚),可以连接wifi继电器的vcc,然后随便找一根黑色线连接GND。
具体接法:将VCC线头去掉塑料头压扁后插入到5V供电线的卡子中(或者直接用公对母杜邦线,将公直接拧在继电器端),GND线同。wifi模块继电器的长闭端和公共端相连(没有一一对应要求)。

wifi继电器接口
vcc电源线有卡子的一面对着自己,从右往左数第九根紫色线口
GND电源线随便一黑色线口
长闭端NO电脑主板PW任意一引脚
公共端COM电脑主板PW另外一引脚
注:检验是否供电方法,将wifi模块插到继电器esp8266转接板上,如果esp01s的led灯亮,说明已经供电。

(2)将esp01s插到烧录器上,打开ardunio IDE,开发板选择esp8266Module,端口选择对应端口.
(3)复制手机点灯科技app中arduino设备的key,粘贴到程序中。
(4)程序思路:

  • 电脑按下开机键,PW引脚瞬时短接,不是一直短接,短接后会断开,关机也是如此。
  • 模仿开机键的功能在程序中实现可以通过触发继电器继电器实现。
  • 如果要控制开机,先要给继电器一个低电平触发继电器悬空,然后再给一个高电平吸合.,使用点动效果实现模拟开关机的功能。

(5)程序代码,代码解释部分写到注释里了,具体请看注释。
#define BLINKER_WIFI
#define BLINKER_MIOT_OUTLET   //小爱同学配置电源类设备#include <Blinker.h>char auth[] = "********";//你的设备key
char ssid[] = "********";//你的wifi名字
char pswd[] = "********";//你的wifi密码BlinkerButton Button1("btn-abc"); //定义按钮键名
bool oState = false; //全局变量,电脑状态设为false 关机状态
int counter = 0; //计数器//自定义电源类操作的回调函数
void miotPowerState(const String & state)
{    //blinkwer打印电脑状态BLINKER_LOG("need set power state: ", state);if (state == BLINKER_CMD_ON)//小爱同学控制开机命令 {  /*先给io设备一个低电平触发继电器吸合,使得开关由接通变为断开,然后再给高电平,使得开关由断开变为接通状态,点动控制开机。*/digitalWrite(0, LOW);delay(200);digitalWrite(0, HIGH);BlinkerMIOT.powerState("on");BlinkerMIOT.print();oState = true;}else if (state == BLINKER_CMD_OFF)//小爱同学控制关机命令{ /*先给io设备一个低电平触发继电器吸合,使得开关由接通变为断开,然后再给高电平,使得开关由断开变为接通状态,点动控制关机。*/digitalWrite(0,LOW);delay(200);digitalWrite(0, HIGH);BlinkerMIOT.powerState("off");//执行关机命令BlinkerMIOT.print();oState = false;}
}void miotQuery(int32_t queryCode)//自定义设备查询函数
{BLINKER_LOG("MIOT Query codes: ", queryCode);switch (queryCode){case BLINKER_CMD_QUERY_ALL_NUMBER ://小爱查询全部内容BLINKER_LOG("MIOT Query All");//小爱查询//查询电脑开关机,如果ostate为真,状态为“on”开机,如果为假,状态为“off”关机。BlinkerMIOT.powerState(oState ? "on" : "off");BlinkerMIOT.print();break;//终止循环case BLINKER_CMD_QUERY_POWERSTATE_NUMBER :BLINKER_LOG("MIOT Query Power State");//小爱同学查询电脑状态BlinkerMIOT.powerState(oState ? "on" : "off");BlinkerMIOT.print();break;default :BlinkerMIOT.powerState(oState ? "on" : "off");BlinkerMIOT.print();break;}
}void dataRead(const String & data)      // 如果未绑定的组件被触发,则会执行其中内容
{BLINKER_LOG("Blinker readString: ", data);//读取字符串,打印Blinker.vibrate();//起刷新作用uint32_t BlinkerTime = millis();//获取到系统运行的时间Blinker.print("millis", BlinkerTime);//打印出来
}void button1_callback(const String & state)//点灯app内控制按键触发
{BLINKER_LOG("get button state: ", state);//app按键一旦触发,就会给设备高电平开始工作/*先给io设备一个低电平触发继电器吸合,使得开关由接通变为断开,然后再给高电平,使得开关由断开变为接通状态,点动控制开机。*/digitalWrite(0,LOW);delay(200);digitalWrite(0, HIGH);
}void setup()//主程序
{   //初始化串口Serial.begin(115200);BLINKER_DEBUG.stream(Serial);pinMode(0, OUTPUT);//定义io口为输出/*定义io默认为高电平,因为是连接的常闭端,低电平触发继电器。而我们在默认情况下是要保证开关处于接通状态,所以要给io口设置默认为高电平*/digitalWrite(0, HIGH);//初始化blinkerBlinker.begin(auth, ssid, pswd);Blinker.attachData(dataRead);Button1.attach(button1_callback);//小爱同学反馈信息,调用设备查询函数,查询设备开关机状态BlinkerMIOT.attachQuery(miotQuery);  //小爱同学反馈信息,小爱控制开关机操作BlinkerMIOT.attachPowerState(miotPowerState);
}void loop()//主循环,多次运行blinker(即以上程序)
{Blinker.run();
}

(6)编译,无错后上传程序。
  (6) 将wifi模块在烧录器上拔下来,然后插到wifi继电器上即可。
(7)在手机点灯app上添加按钮,数据键名要和代码一致。
(8)给小米同学添加训练,实现小爱同学语音控制开关机。


可改进之处

(1)这里使用的小爱同学,同样也是可以修改代码使用天猫精灵和百度小度,可参考点灯科技官网。
(2)这里我是直接把电脑开关键的线从pw引脚上直接拔下来,使用wifi继电器的话这个开关键就没有用了。
解决方法:采用并联的方式,

  • 直接将开关键的线破开口并入wifi继电器长闭端和公共端,操作不好会弄坏电脑连接开机键的线。
  • 用母对公杜邦线连接PW引脚,在这根杜邦线上破口并联,这样即使有损害也不影响电脑开机键自带的线。

总结

经过两次编写blinker的程序以及对程序的分析来看,也是因为功能的需求,程序实则是由两大块构成,一是设备数据和blinker客户端的交互,二是设备数据和小爱同学的交互,两个功能的代码其实并不影响,如果只想要Blinker-app显示的话,完全可以把小爱同学部分的代码删除,当然如果只想要语音控制的话必须还要包括blinker的设备key,小爱同学语音控制也是要借助点灯科技编写好的小爱的api接口,小爱同学添加训练的时候也要对应手机blinker的设备,当然,只要语音不要blinker这种操作很没有必要。
欢迎一起讨论一起进步,有问题可在下方评论,一起进步!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【AI公司酷05期】美宅科技:独创人工智能室内设计引擎,帮你3秒搞定装修方案,要用AI赋能家居新零售

作者&#xff5c;震霆 出品&#xff5c;遇见人工智能 公众号 GOwithAI 【AI公司酷05期】美宅科技——家居新零售领导者&#xff0c;全球独创人工智能室内设计引擎--图灵猫&#xff0c;受邀参加2017年1月11美国硅谷全球人工智能前沿峰会&#xff0c;被誉为室内设计AlphaGo 生活…

图谱实战 | 图谱问答在小米小爱中的实践探索

转载公众号 | DataFunTalk 分享嘉宾&#xff1a;代文博士 小米 高级算法工程师 编辑整理&#xff1a;何雨婷 湖北工业大学 出品平台&#xff1a;DataFunTalk 导读&#xff1a;今天的介绍会围绕以下三点展开&#xff1a; 小爱同学应用场景信息抽取图谱问答 01 小爱同学应用场景介…

基于ESP8266+点灯科技+小爱同学控制开门解决方案!

前言 每次下班回到家就已经很累了&#xff0c;到门口还要到处翻找钥匙&#xff0c;然后开门&#xff0c;是不是觉得很烦&#xff0c;那我们有没有不用通过钥匙开门且成本低的方案了&#xff1f;下面我会教大家基于ESP8266点灯科技小爱同学来控制开门的方法 一、准备工作 1、…

AI 新时代,是时候重估百度了

作者 | 北方 发力 AI 近十年&#xff0c;百度正在迎来最好的机遇。 2 月 22 日晚间&#xff0c;百度发布 2022 年 Q4 及全年未经审计的财务报告。2022 年全年&#xff0c;百度实现营收 1236.75 亿元&#xff0c;归属百度的净利润&#xff08;非 GAAP&#xff09;206.8 亿元&…

pandas可视化中国近四年主要城市的GDP

pandas可视化中国近四年主要城市的GDP 数据来源于国家数据网&#xff1a;http://data.stats.gov.cn/easyquery.htm?cnE0105 效果如下所示&#xff1a; import pandas as pd import matplotlib.pyplot as plt from pylab import * mpl.rcParams[font.sans-serif][SimHei]gd…

中国城市公园规划建设行业运行状况与趋势预测展望报告2022-2028年版

中国城市公园规划建设行业运行状况与趋势预测展望报告2022-2028年版 第1章:中国城市公园规划建设行业发展综述1.1 城市公园规划建设行业界定 1.1.1 城市公园的界定与分类 1.1.2 城市公园规划建设行业界定 1.1.3 城市公园规划建设行业作用 1.2 中国城市公园规划建设行业进…

基于腾讯人口迁徙数据的全国城市网络结构特征分析

基于腾讯人口迁徙数据的全国城市网络结构特征分析 1 引 言 基于大数据的城市网络研究是近十年来城市研究的新方向&#xff0c;本文基于腾讯人口迁徙数据&#xff0c;从网络分析入手&#xff0c;通过度、转变中心性、转变控制力、等级划分等方面分析网络结构特征。分析表明&am…

pyecharts从入门到精通-地图专题Map-世界地图和中国城市地图

文章目录 参考安装与查看pyecharts地图实现-Geo数据集查看读取数据生成中文国家名称国家中文和英文名称字典:根据字典&#xff0c;生成国家中文名查看没有转换成功的国家中文有哪些过滤包含中文国家名的数据 可视化人口数据显示中国城市地图数据 拓展-pyecharts中Map源码拓展-p…

2021中国城市数据中心发展指数报告 附下载

数据中心是承载数据的基础物理单元&#xff0c;是算力基础设施的重要组成部分&#xff0c;是促进5G、人工智能、云计算等新一代数字技术发展的数据中枢和算力载体&#xff0c;逐渐成为各行业数字化转型的重要支撑&#xff0c;对于数字经济增长具有重要助推作用。 全国46个城市数…

【原创】1985-2021年《中国城市统计年鉴》900+全变量地级市面板数据 Python编程整理直接可用的城市面板数据

花费数月通过Python和手工整理把1985-2021年《中国城市统计年鉴》几乎所有统计指标分类统计出来&#xff0c;包括把所有数据分类别、把部分前后不一致的名称但实际是一样的指标统一、把全市、市辖区拆分出来。每个变量单独保存一个excel文件&#xff0c;再经过人工核对确保无误…

世界和平 - 中国国际友好城市数据集

一、中国国际友好城市总表 1、数据来源&#xff1a; 中国城市竞争力专题报告 2、时间跨度&#xff1a;1973-2015 3、区域范围&#xff1a;全球 4、指标说明&#xff1a; 该份列表记载了与全国各个城市结成友好城市的外国城市 数据示例如下&#xff1a; 二、中国与一带一…

关于 AI ,大家关心的问题

阅读本文大概需要 1.46 分钟。 兄弟们&#xff0c;自从我跟曹老师准备合伙做一个 AI 生态的新社群之后&#xff0c;很多人问我最多的问题就是&#xff1a; AI 时代对我们普通人来说意味着什么&#xff1f; 普通人又该如何去把握 AI 时代的机会&#xff1f; 那么&#xff0c;今天…

UI设计师用Midjourney生成界面的好用关键词

目前国内外已经出现了很多备受瞩目的AI绘图工具&#xff0c;其中我认为Midjourney是适合初学者的工具之一。对于那些对人工智能绘图一无所知但想尝试一下的新手来说&#xff0c;这是一个很好的入门选择。而且&#xff0c;现在的AI技术已经能够辅助设计&#xff0c;带来引人注目…

Word中公式编辑器mathtype中符号显示异常

在Word的MathType中部分符号显示异常&#xff0c;如“上弧形”无法正常显示&#xff0c;显示为方框&#xff0c;如下所示&#xff1a;正确的显示方式为&#xff1a;&#xff0c;却显示成了这样&#xff1a; 解决的办法是&#xff1a; 在Mathtype文件夹下MathType\Fonts\TrueTy…

录入数学公式至mark down文档的方法

1. 直接用md语法编辑公式 推荐&#xff1a;​​​​​​​ 在线LaTeX公式编辑器-编辑器 小技巧&#xff1a; latex代码转化为markdown时只需左右各加" $ "$公式$&#xff0c;公式可以嵌入文字中间$$公式$$&#xff08;删掉&#xff0c;加是为了不转化为公式&#xf…

不输入公式,直接对话便能处理表格!chatexcel了解一下

前几天在网络上看到一个名为chatexcel的工具&#xff0c;不禁眼前一亮&#xff0c;赶紧去找的自己尝试了一下&#xff0c;效果超出预期。 网站网址附在文章最后。 话不多说&#xff0c;直接上界面&#xff1a; 打开网址&#xff0c;一种黑色系的简洁界面扑面而来&#xff0c;界…

word打latex公式显示不成功,出现【 打不出左大括号

我想敲这个公式 正常的latex代码应该是 f(x)\begin{cases}x, & \text{if }x\geq 0\\ax, & \text{if }x \leq 0\end{cases} 把latex代码复制到word后&#xff0c;发现公式不对 变成了这样 不识别"\begin{cases}"和"左大括号" 我这里用"\m…

虚拟主播神器Facerig

Facerig 2018年&#xff0c;著名虚拟主播&#xff0c;VTUBER絆愛&#xff08;KizunaAi&#xff09;火遍全世界。 Facerig就是可以让你的上半身变成虚拟主播的软件&#xff0c;它是一个steam独占的软件&#xff0c;所以首先你要有个steam账号。 目前2019-06-29&#xff0c;正…

虚拟直播时代来临,虚拟人主播和虚拟场景成线上发布会新直播形式

近日&#xff0c;奇瑞天猫官方旗舰店开启以“出发欧萌达 潮领新纪元”为主题的汽车行业首场实时全虚拟场景影院级直播盛典。同时&#xff0c;奇瑞虚拟推荐官达奇空降直播间完成首秀&#xff0c;与粉丝共同见证奇瑞跨次元车型OMODA5的炫酷超现实虚拟动态拆解&#xff0c;以更直观…

目前能体验到的虚拟主播虚拟人脸形象有哪些?

目前能体验到的虚拟主播虚拟人脸形象有哪些&#xff1f; 最近疫情严重&#xff0c;各大电视台纷纷退出虚拟合成主播的视频&#xff0c;主持人是电脑合成了&#xff0c;真正主持人在家隔离无法出门&#xff0c;于是利用合成主播录制节目播放&#xff0c;这样减少隔离也符合国家的…