// For WROOM32 module (like 'doitesp32' module)
// Pin numbers below correspond with markings on module.
// 'BLUE_LED' flashes when Bluetooth command is being executed.
// Tested with 'BlueSPP' Android app although any terminal program should work.
#define RelayTime 1000
#include "BluetoothSerial.h"
BluetoothSerial SerialBT;
int BLUE_LED = 13; // flashes 4 times on start-up and once when Bluetooth command received
int RelayDRIVE = 27; // Main lights. Wired so K1 energised when AC is ON (to save battery life)
void setup()
{
pinMode(BLUE_LED,OUTPUT);
pinMode(RelayDRIVE,OUTPUT);
digitalWrite(BLUE_LED,LOW);
digitalWrite(RelayDRIVE,LOW);
SerialBT.begin("Door opener"); //Bluetooth device name
for(int flashes = 0; flashes < 4; flashes++)
{
digitalWrite(BLUE_LED,HIGH);
delay(250);
digitalWrite(BLUE_LED,LOW);
delay(250);
}
}
void loop()
{
// see if Bluetooth has connected and received a command
if (SerialBT.available())
{
digitalWrite(BLUE_LED,ON);
int Command = SerialBT.read();
while(SerialBT.available()) SerialBT.read();
switch(Command)
{
case '0': digitalWrite(RelayDRIVE,LOW);
break;
case '1': digitalWrite(RelayDRIVE,HIGH);
break;
default : digitalWrite(RelayDRIVE,HIGH);
delay(RelayTime);
digitalWrite(RelayDRIVE,LOW);
}
}
digitalWrite(BLUE_LED,OFF);
delay(20);
}