NodeMCU实现远程电脑开关机
在公司经常需要远程连接家里的台式电脑,如果家里的台式机已经开机并安装了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万条免费的消息,用来做开关机电脑绰绰有余了。