// Projeto: Sinalização luminosa para bicicleta - Receptor
// Autor: André Silveira
// Data: 14/11/2019
#include "RH_ASK.h"
#include "SPI.h"
RH_ASK driver;
// RH_ASK driver(2000, 2, 4, 5); // ESP8266 or ESP32: do not use pin 11
int PinoLed1 = 6;
int PinoLed2 = 7;
int PinoLed3 = 8;
int piscapisca = 0;
int buzzer = 2;
String str = "";
int StatusLed1 = 0;
int StatusLed2 = 0;
int StatusLed3 = 0;
void setup() {
Serial.begin(9600);
pinMode(PinoLed1, OUTPUT);
pinMode(PinoLed2, OUTPUT);
pinMode(PinoLed3, OUTPUT);
pinMode(buzzer, OUTPUT);
digitalWrite(PinoLed1, LOW);
digitalWrite(PinoLed2, LOW);
digitalWrite(PinoLed3, LOW);
if (!driver.init()) {
Serial.println("init failed");
return;
}
Serial.println("Inicializado");
}
void loop() {
uint8_t buf[RH_ASK_MAX_MESSAGE_LEN];
uint8_t buflen = sizeof(buf);
if (driver.recv(buf, &buflen)) {
str = "";
int i;
for (int i = 0; i < buflen; i++){
str += (char)buf[i];
}
Serial.print("Tecla: ");
Serial.println(str);
Serial.println("Recebeu dados");
digitalWrite(PinoLed1, HIGH);
if ((str.equals("LED1")) && (StatusLed1 == 0)){
led(1,0,0);
}else{
if ((str.equals("LED1")) && (StatusLed1 == 1)){
led(0,0,0);
}
}
if ((str.equals("LED2")) && (StatusLed2 == 0)){
led(0,1,0);
piscapisca=2;
}else{
if ((str.equals("LED2")) && (StatusLed2 == 1)){
led(0,0,0);
piscapisca=0;
}
}
if ((str.equals("LED3")) && (StatusLed3 == 0)){
led(0,0,1);
}else{
if ((str.equals("LED3")) && (StatusLed3 == 1)){
led(0,0,0);
}
}
}
if (piscapisca == 1) {
digitalWrite(PinoLed2, HIGH);
piscapisca = 2;
} else {
if (piscapisca == 2) {
digitalWrite(PinoLed2, LOW);
piscapisca = 1;
}
}
Serial.println(piscapisca);
delay(150);
}
void led(int l1, int l2, int l3){
StatusLed1 = l1;
StatusLed2 = l2;
StatusLed3 = l3;
tone(buzzer, 200, 200);
if (l1 == 0) {
digitalWrite(PinoLed1, LOW);
} else{
digitalWrite(PinoLed1, HIGH);
}
if (l2 == 0) {
digitalWrite(PinoLed2, LOW);
} else{
digitalWrite(PinoLed2, HIGH);
}
if (l3 == 0) {
digitalWrite(PinoLed3, LOW);
} else{
digitalWrite(PinoLed3, HIGH);
}
}
|