Arduino Bluetooth Computer Wake
Cutting the cord means turning computers in to entertainment centers - but unlike simply pressing the power button on the remote - waking a dedicated entertainment PC from hibernation or shutdown requires more personalization.

When then mounting the ent-pc in a less accessible location - more-er personalization.


Ingredients
Arduino Nano
HC-06 Bluetooth Module
5V Relay Module
Button Module
5V Regulator Transistor
(2) 10uf Capacitor
Red LED
Blue LED
(2) 220 ohm Resistor
Female Barrel Plug
Male Barrel Plug

Notation(s)
1. Most any one has experienced that bluetooth keyboards and mice are quite unreliable for waking computers. Wired keyboards and mice are no less certain and unwieldy shd the computer be less accessible - as well entirely dependent on brand. Wake-on-LAN also relies on unreliable resources and is brand fickle.
2. MIT App Inventor bluetooth auto-connect tutorial by Martyn Currey: http://www.martyncurrey.com/android-mit-app-inventor-auto-connect-to-bluetooth/
3. Download the "Wake" apk for Android and/or the MIT App Inventor Wake.aia file to modify to suit your needs.
4. Hardware push-button added for obvious reasons.
5. 5V regulator becomes quite hot (down from 18.5V) - will add a spare heat sink and dremel an opening to compensate.
6. This HP necessitates a 7.4x5.0 mm female plug - did not have + impatient - used what was on stock. Found need to fool the 'smart' HP adapter - wired a 150 ohm resistor between the ID pin and Vin. Works either way - but would suggest the accurate plugs.
7. Case proves aye care. (>_ლ)
8. BIOS > Boot Options > Power On When AC Detected .. or similar jargon.

Download
Wake.apk - Android
Wake.aia - MIT App Inventor

Desnooze Code
// Bluetooth Computer Wake
// Vije Miller

int red = 3;
int blue = 5;
int relay = 7;
int button = 9;
int state = 0;

void setup() {
Serial.begin(9600);
pinMode(red, OUTPUT);
pinMode(blue, OUTPUT);
pinMode(relay, OUTPUT);
pinMode(button, INPUT);
}

void loop() {
if (Serial.available())
{
char data;
data = Serial.read();
if (data == '1') {
turn_on();
}
}
state = digitalRead(button);
if (state == LOW) {
turn_on();
}
digitalWrite(blue, HIGH);
digitalWrite(red, LOW);
digitalWrite(relay, LOW);
delay(5);
}

void turn_on() {
digitalWrite(blue, LOW);
digitalWrite(red, HIGH);
digitalWrite(relay, HIGH);
delay(2000);
digitalWrite(relay, LOW);
}

Archive
https://hackaday.io/project/167583-arduino-bluetooth-computer-wake