失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 手机控制NodeMCU实现远程电脑开关机

手机控制NodeMCU实现远程电脑开关机

时间:2023-11-25 02:12:51

相关推荐

手机控制NodeMCU实现远程电脑开关机

NodeMCU实现远程电脑开关机

1.确认PC主板支持WOL(Wake on Lan)2.阿里云物联网平台设置3.NodeMCU(开机棒)部分程序编写4.编译手机App(仅支持Android)5.PC上运行关机检测脚本,并设置为开机运行

在公司经常需要远程连接家里的台式电脑,如果家里的台式机已经开机并安装了teamview,自然能很开心的连回去,可是家里的电脑并不会24小时开机备用,试过一段时间用时开机的方法,但是暂时不需要的时候也不能关机呀,关机了可没人给我再开机了。如果能随时开关家里的电脑,想想都美滋滋了!

本着节能(money)环保的期望,自己研究了一下远程开关机的方法,目前能想到这个方法应该是操作最简单 (只需写软件),最安全(不用改电脑任何硬件),最省钱(只要买一个NodeMCU 15rmb左右),只要写一个手机app连接到阿里云服务器 ,改一下NodeMCU程序也连接到阿里云服务器,撸个Python在电脑后台还是连接到阿里云服务器,通过阿里云服务器来将app的消息分发给NodeMCU触发电脑开机,将关机指令分发给电脑执行关机,而且这个阿里云服务器还是几乎免费的,这样不管身在何处,只要手机有网络,NodeMCU和电脑连接同一个的路由器在局域网内,就能通过手机APP控制家里的电脑开关机了,而且NodeMCU可以放在家里的任意地方,只要能保持连接路由器即可,我放在了路由器旁边,用路由器后面的USB接口供电 。下面就分享方法给有同样需求的小伙伴了

下面的方法默认你已经会:

搭建ESP8266 RTOS开发环境搭建 Android studio 开发环境搭建 Python 开发环境和安装第三方库(MQTT client)

1.确认PC主板支持WOL(Wake on Lan)

首先需要在BIOS里面设置打开WOL功能,这个可以根据主板型号找一下步骤,由于每个厂商主板的设置方法都不一样,这里就不详述了。在主板上打开WOL功能后,WIN10还需要修改网卡属性里面的电源管理,选择允许设备唤醒计算机

设置完成后需要确认局域网内能通过WOL唤醒电脑,测试方法:

手机安装Wake On Lan 这个app,进入后添加设备,输入台式电脑的Ethernet 网卡MAC 地址(可以在cmd下用ipconfig /all获取),也可以用app的扫描功能找到设备将电脑关机,然后检查有线网卡的黄灯应该保持常亮状态,如果没有亮说明WOL功能未开启成功,需要重新确认主板和系统设置在app上后点击唤醒设备,如果能正常开机说明前面设置成功

2.阿里云物联网平台设置

由于家里的宽带没有独立的外网IP地址的,手机无法直接将WOL唤醒封包发送到处于局域网的NodeMCU,需要经过服务器转发信息,这里使用阿里物联网平台,只要注册一个账号,每个月有100万条免费的消息,用来做开关机电脑绰绰有余了。

先注册阿里云账号(这里也略过) /在产品页面中找到物联网平台进入并申请开通待审核开通成功后,进入物联网平台的控制台,找到产品->创建产品->基础服务 后点下一步进入新增产品页面,填写产品名称后完成产品创建完成后,进入设备界面,创建三个设备分别分给NodeMCU/手机app/PC登录使用,创建设备后会生成设备连接需要的三元组(如下图三组信息),分别复制保存三个设备的三元组,后面需要负责到每个设备运行的程序里面创建完三个设备后,界面如图创建完三个设备后,需要设置三个设备间消息转发的规则,点击 规则引擎 ->创建规则 设置消息转发规则

8.先创建手机发消息给NodeMCU的转发规则

8.点击 编写SQL 编写app_2_mcu转发规则处理数据部分字段写power_on,表示把app发送的带有power_on的字段转发给NodeMCU进行处理进入对该数据的转发规则设置对该数据的操作,转发给remote_pc产品的NodeMCU/update 重复7-11 操作,创建app消息里的power_off字段转发给computer的规则,设置完成后如图

启动前面设置的两个规则,阿里云部分设置完成

3.NodeMCU(开机棒)部分程序编写

搭建ESP8266开发环境,参照 /espressif/ESP8266_RTOS_SDK使用官方提供的link Kit SDK,成功连接上阿里云,参照/espressif/esp-aliyun将官方提供的LintKit里的/espressif/esp-aliyun/blob/master/examples/mqtt/mqtt_example/main/mqtt_example.c替换为/rxly/RemotePCPower/blob/master/NodeMCU/mqtt_example.c修改NodeMCU设备对应的三元组信息和需要唤醒PC的mac 地址

4.编译手机App(仅支持Android)

Android App source code放在这个地址:/rxly/RemotePCPower/tree/master/android_appclone下来后需要修改mobile_app设备对应的三元组信息修改完成后编译app即可以在手机上运行,远程电脑如果允许下面讲到的python脚本,会显示会远程电脑处于开机状态,能控制电脑开机,如果远程电脑没有运行该脚本,则显示打开远程电脑,按开机键会打开远程电脑

5.PC上运行关机检测脚本,并设置为开机运行

安装Python解释器,建议安装免费的Pycharm IDE,并安装paho mqtt client三方库将/rxly/RemotePCPower/tree/master/PC下的两个文件保存到本地,修改power_off.py里面PC设备对应的三元组设置此电脑 -> 管理 ->任务计划程序->创建任务,按下图依次设置

关机检测部分全部设置完成

到这里应该就能用手机app控制电脑开关机了,如果中间有什么不清楚的地方,请留言说明,我看到后会补齐

如果觉得《手机控制NodeMCU实现远程电脑开关机》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。