Controlling the relay via remote control and ESP8266

Code :
Esp8266 IR Code
#define IR_RECEIVE_PIN 2 // D4#define DECODE_NEC#include <Arduino.h>#include <IRremote.hpp>void OnIRDataRecv() {if (IrReceiver.decode()) {uint16_t received = IrReceiver.decodedIRData.command;if (received) {Serial.print("Command: 0x");Serial.println(received, HEX);delay(250);}IrReceiver.resume();}}void setup() {Serial.begin(74880);delay(2500);IrReceiver.begin(IR_RECEIVE_PIN);IrReceiver.registerReceiveCompleteCallback(OnIRDataRecv);}void loop() {if (IrReceiver.decode()) {uint16_t received = IrReceiver.decodedIRData.command;if (received) {Serial.print("Command: 0x");Serial.println(received, HEX);delay(250);}IrReceiver.resume();}delay(10);}
Esp8266 Relay
#define IR_RECEIVE_PIN 2 // D4#define DECODE_NEC#include <Arduino.h>#include <IRremote.hpp>#define relay_1 0x8E#define relay_2 0x86#define relay_3 0x8F#define relay_4 0x92#define relay_5 0x87#define relay_6 0x93#define relay_7 0x96#define relay_8 0x82int relay_pin[8] = {5, 4, 0, 15, 13, 12, 14, 16};bool relay_state[8];void SetCommand(uint8_t Comd) {switch(Comd) {case relay_1:relay_state[0] = !relay_state[0];digitalWrite(relay_pin[0], relay_state[0]);(relay_state[0]) ? Serial.println("Relay 1 On") : Serial.println("Relay 1 Off");break;case relay_2:relay_state[1] = !relay_state[1];digitalWrite(relay_pin[1], relay_state[1]);(relay_state[1]) ? Serial.println("Relay 2 On") : Serial.println("Relay 2 Off");break;case relay_3:relay_state[2] = !relay_state[2];digitalWrite(relay_pin[2], relay_state[2]);(relay_state[2]) ? Serial.println("Relay 3 On") : Serial.println("Relay 3 Off");break;case relay_4:relay_state[3] = !relay_state[3];digitalWrite(relay_pin[3], relay_state[3]);(relay_state[3]) ? Serial.println("Relay 4 On") : Serial.println("Relay 4 Off");break;case relay_5:relay_state[4] = !relay_state[4];digitalWrite(relay_pin[4], relay_state[4]);(relay_state[4]) ? Serial.println("Relay 5 On") : Serial.println("Relay 5 Off");break;case relay_6:relay_state[5] = !relay_state[5];digitalWrite(relay_pin[5], relay_state[5]);(relay_state[5]) ? Serial.println("Relay 6 On") : Serial.println("Relay 6 Off");break;case relay_7:relay_state[6] = !relay_state[6];digitalWrite(relay_pin[6], relay_state[6]);(relay_state[6]) ? Serial.println("Relay 7 On") : Serial.println("Relay 7 Off");break;case relay_8:relay_state[7] = !relay_state[7];digitalWrite(relay_pin[7], relay_state[7]);(relay_state[7]) ? Serial.println("Relay 8 On") : Serial.println("Relay 8 Off");break;default:break;}}void OnIRDataRecv() {if (IrReceiver.decode()) {uint16_t received = IrReceiver.decodedIRData.command;if (received) {Serial.print("Command: 0x");Serial.println(received, HEX);SetCommand(received);delay(250);}IrReceiver.resume();}}void setup() {Serial.begin(74880);for ( int j=0; j<8;j++) {pinMode(relay_pin[j], OUTPUT);relay_state[j] = false;digitalWrite(relay_pin[j], LOW);}IrReceiver.begin(IR_RECEIVE_PIN);IrReceiver.registerReceiveCompleteCallback(OnIRDataRecv);}void loop() {// Chill}
No comments:
Post a Comment