PCスリープモード回避 デバイス製作
今回友人より、PCのスリープモードに入らないようなデバイスを作ってもらえないかと依頼をもらい作製しました。
そのことについてnoteにまとめたいと思います。
背景
友人は仕事柄、PC作業と、手元のメモ書きを行き来しながら仕事をすることが多く、手元のメモ書きに集中して脳内の思考を整理した後、PC作業に戻る際にPCがスリープモードに入ってしまい、PCのロック解除(暗証番号入力)がとても煩わしく感じると言います。
それでは、PCの設定でロックに至るまでの時間を長くすれば解決するのでは!?と思いますが、会社から支給されているPCのためセキュリティの関係上ロックがかかるまでの時間5分が設定されており、これが変えられないとのことです。
PCは会社の支給品なためシステムの変更は難しい、ということで外部デバイスにより対応を考えました。
仕様
仕様は以下の通りです。
・PCシステムではなく外部デバイスによる制御
・PCスリープモードに入る直前でスリープモードを回避
・PCシステムではなく外部デバイスによる制御
上にも書きましたが、PCのシステム変更は考えないため、デバイスのON/OFFだけでスリープモード回避とその解除ができるようにしました。
・PCスリープモードに入る直前でスリープモードを回避する
できるだけデバイスからの介入が少なくなるよう、スリープモードに入る直前で回避するような設定にしました。
使用品
使用したものは以下で、とてもシンプルです。
デバイス:M5stickC (M5Atom)
開発環境:Arduion IDE
使用したデバイスはM5stickC(M5Atom)です。
まずはM5stickCで実装し、小型化にするため、よりサイズの小さいM5Atomに移行しました。
技術
今回「BleKeyboard.h」というライブラリを使い、スリープモードに入る直前で、キーボード入力を行うことで、スリープモードを回避するようにしました。
押されるボタンは「左矢印」です。
左矢印ボタンを選択した理由は、PC作業中に左矢印が押されても特に問題がないからです。
また友人のPCが5分間入力がないとPCがスリープモードになるということで、毎4.9min(4分54秒)に「左矢印」がクリックされるようにしています。
この数字を変えることで皆さんのPCに合った時間を設定してください。
もちろん「左矢印」が合わない人は別のボタンがクリックされるように設定しなおしてもいいかもしれません。
#include<BleKeyboard.h>
//M5Atomを使う場合↓
//#include<M5StickC.h>
#include "M5Atom.h"
BleKeyboard bleKeyboard("M5stickC keyboardLEFT"); //デバイス名(PCペアリング時にこの名前が出てきます)
void setup(){
M5.begin(true, false, true);
M5.dis.drawpix(0, 0x000000); // LED OFF
Serial.begin(115200);
Serial.println("Starting BLE ...");
bleKeyboard.begin();
}
void loop(){
M5.update();
if(bleKeyboard.isConnected()){
Serial.println("Sending ...");
bleKeyboard.press(KEY_LEFT_CTRL); //キーボードの左ボタンを押す
delay(500); //0.5s押す
bleKeyboard.releaseAll(); //キーボードの左ボタンを離す
}
delay(1000 * 60 * 4.9); //4.9min(4分54秒ごとに繰り返す)
}
注意点
M5atomはバッテリーを内蔵しないため、電源供給が必要です。
PCから電源を共給するため、PCとM5atomをUSBで接続して使うのが一番いい方法かもしれません。
また、PCとM5Atomを接続すると、物理的に接続されているため、それだけで動作ができるように感じますが、BluetoothでのPC操作なため、初めて使用する際には、PCとM5atomのBluetoothペアリングが必要です。
まとめ
上記コードを書き込んだM5atomを友人に渡し、大変満足してもらいました。
これはPCのセキュリティー上良いのか!?といった議論はあるかと思いますので、この辺は必要な時だけ使用するなどしてほしいですね。
このような形で、日々の困りごとについて解決策を考えてモノづくりをしております。
過去の製作品も含めてnoteを更新していきたいと思います。
この記事が気に入ったらサポートをしてみませんか?