/*
	 cible : Arduino Nano
	 chip Bluetooth HC05
	 led rouge (ou autre)
	 bouton
	 résistance 1 kOhm
*/

#include <Arduino.h>
#include <SoftwareSerial.h>

// Mapping Arduino Digital ports to Bluetooth Serial
#define rxPin A4
#define txPin A5
#define baudrateBT 38400

#define ledPin 6
#define buttonPin 2

bool bLed, bBTLed;
long unsigned int oldMillis, newMillis;
const unsigned int tempo = 500;
String msg;

SoftwareSerial hc05(rxPin, txPin);
String readhc05_Serial();

void setup() {
	pinMode(ledPin, OUTPUT);
   pinMode(buttonPin, INPUT_PULLUP);
   Serial.begin(9600);
	oldMillis = millis();
	bLed = bBTLed = false;
	digitalWrite(ledPin, bLed);
	hc05.begin(baudrateBT);
}

void loop() {
   String msg = "";

	newMillis = millis();

   // debug
   //Serial.println("in loop(), newMillis " + String(newMillis) + ", bLed: " + String(bLed) + " bBTLed: " + String(bBTLed));
   //delay(500);

	if (( !digitalRead(buttonPin)  && newMillis > (oldMillis + tempo)) || (bBTLed != bLed)) {
		oldMillis = newMillis;
      bBTLed = bLed = !bLed;
   	digitalWrite(ledPin, bLed);
		hc05.println(bBTLed);
      // debug
      //Serial.println("in if(), bLed: " + String(bLed) + " bBTLed: " + String(bBTLed));
      //delay(500);
	}
   
   while (hc05.available() > 0) {
      int inChar = hc05.read();
      if (isDigit(inChar)) {
         // convert the incoming byte to a char and add it to the string:
         msg += (char)inChar;
         bBTLed = msg.toInt();
      }
   }
}