百科问答小站 logo
百科问答小站 font logo



怎么让台式电脑只有本人在才能用? 第1页

  

user avatar   zignforever 网友的相关建议: 
      

你们得体谅一下题主的难处:不好直接拒绝人家。所以最好的办法就是电脑在他不在的时候会出现奇怪的问题,而题主在的时候,即使题主不做任何操作机器也完全正常。

所以我花了点时间做了个小东西,原理非常简单:

  1. 用nodemcu嗅探周围WiFi信号。
  2. 如果10分钟之内有检测到指定的手机(MAC地址),就打开继电器。反之则关闭继电器。

nodemcu非常小巧,可以轻松的安装到电脑机箱里。按照下图把线接好,就可以实现平时电源键完全失效,按了也不开机。反之,只要回到家里,手机没开飞行模式的话就会被它检测到,然后电源键就可以正常工作了从而开机了。这样以来,室友必然百思不得其解。

代码都是现成的,我稍微改了一下。

用到的库

       #include "./esppl_functions.h" #define LIST_SIZE 2 #define RELAY_PIN D0 unsigned long key_detected_time;  //这里填手机的MAC地址 uint8_t keymac[LIST_SIZE][ESPPL_MAC_LEN] = {    {0x11, 0x11, 0x11, 0x11, 0x11, 0x11}   ,{0x22, 0x22, 0x33, 0x44, 0x55, 0x66}   };  String devicename[LIST_SIZE] = {    "device 1"   ,"device 2"   };  bool maccmp(uint8_t *mac1, uint8_t *mac2) {   for (int i=0; i < ESPPL_MAC_LEN; i++) {     if (mac1[i] != mac2[i]) {       return false;     }   }   return true; }  void cb(esppl_frame_info *info) {   for (int i=0; i<LIST_SIZE; i++) {     if (maccmp(info->sourceaddr, keymac[i]) || maccmp(info->receiveraddr, keymac[i])) {       Serial.printf("
%s is here!", devicename[i].c_str());       key_detected_time = millis();     }   } }  void setup() {   delay(500);   Serial.begin(115200);   pinMode(RELAY_PIN, OUTPUT);   digitalWrite(RELAY_PIN, LOW);   esppl_init(cb);   key_detected_time = millis() - 6000000; }  void loop() {   esppl_sniffing_start();   while (true) {     for (int i = ESPPL_CHANNEL_MIN; i <= ESPPL_CHANNEL_MAX; i++ ) {       esppl_set_channel(i);       while (esppl_process_frames()) {         //       }       // 如果10分钟之内有检测到指定设备       if (millis() - key_detected_time < 600000) {         digitalWrite(RELAY_PIN, HIGH);       } else {         digitalWrite(RELAY_PIN, LOW);       }     }   }   }      

然后把固件编译好刷入nodemcu就可以用了

效果演示

https://www.zhihu.com/video/1294301450726965248

其中继电器的指示灯亮了,就是接通了。


一些可能会出现的问题和讨论

  • 由于机箱是完美的电磁屏蔽体,所以装好之后天线尽量靠在前面板没有金属的地方,应该能收到信号。
  • 由于完全是被动嗅探,不会影响手机上网,也无法用WiFi的方式找到这个玩意。
  • 其实都用到继电器了,完全可以用在其他各种地方,比如路由器上,不回家就没网。或者可以接在RESET按钮上,让电脑一直复位,症状类似主板故障,这个没有一定经验很难查到原因。也可以跟其他的比如arduino micro pro结合,不在家的话鼠标会隔一会随机乱动。
  • 之所以选择电源按键还是出于安全考虑:这个小玩意抽风了也不会影响正在运行的电脑。

当然喽,这篇回答还是娱乐为主,日后题主跟室友发生了任何矛盾都不要来找我哈。

最后还是希望大家把这个用到正地方哈。比如DIY酷炫的开机方案,或者检测到主人回家自动启动照明和空调什么。


user avatar   gdspy 网友的相关建议: 
      

WIN10自带这个功能,叫做“动态锁”

Windows可以通过与你的电脑配对的设备获悉你何时离开,并在这些设备超出范围时锁定电脑。

如上图是我的动态锁,我设置成了我的iPhone手机。当Windows检测到这个手机的蓝牙信号消失时,电脑就会被强制锁屏。


user avatar   sywx 网友的相关建议: 
      

大方点,用用有啥。

但是注意里面不要放他没有权限看的保密文件。如果你有这一类的文件的话。




  

相关话题

  什么是寄存器压栈?栈是内存的一部分,寄存器是cpu一部分,怎么压? 
  求问大佬们这套配置可行吗? 
  1万五的外星人台式机电脑,和1万五的组装机哪个性价比更高? 
  求大佬, 这个怎么算呀?要求用财务管理里面的年金计算? 
  10100F+H410和3100+B450哪个更好? 
  预算五六千该怎么diy一台电脑?玩3A? 
  30系列显卡算不算最惨的一代? 
  这个配置如何?如图? 
  固态硬盘读写速度理论上有上限吗? 
  如何看待最新公布的z490主板价格? 

前一个讨论
康雍乾盛世是谎言么?
下一个讨论
考上公务员后的生活是什么样的?





© 2024-05-19 - tinynew.org. All Rights Reserved.
© 2024-05-19 - tinynew.org. 保留所有权利