1 (edited by Owner 2024-05-22 16:36:09)

Topic: Умная розетка, кнопка включить всё

Я не разобрался, сорян. Подскажите что добавить чтобы кнопкой включались сразу несколько реле, или сразу все.
Я сделал кнопку All (D8) но я хочу чтобы она все реле включила. Ну и для примера чтобы включила D2 и D6.
Что надо добавить в скетч?

#define REMOTEXY_MODE__ESP8266WIFI_LIB

#include <ESP8266WiFi.h>

// настройки соединения
#define REMOTEXY_WIFI_SSID "YOUR_SSID"
#define REMOTEXY_WIFI_PASSWORD "YOUR_PASS"
#define REMOTEXY_SERVER_PORT 6377


#include <RemoteXY.h>

// конфигурация интерфейса RemoteXY 
#pragma pack(push, 1) 
uint8_t RemoteXY_CONF[] =   // 144 bytes
  { 255,5,0,0,0,137,0,17,0,0,0,180,1,106,200,1,1,5,0,10,
  18,8,70,28,49,4,36,31,65,109,112,32,79,78,0,31,65,77,80,32,
  79,70,70,0,10,19,43,69,29,49,4,36,31,68,65,67,32,79,78,0,
  31,68,65,67,32,79,70,70,0,10,19,79,69,28,49,4,36,31,67,111,
  109,112,32,79,78,0,31,67,79,77,80,32,79,70,70,0,10,19,115,68,
  26,49,4,36,31,84,86,32,79,78,0,31,84,86,32,79,70,70,0,10,
  20,148,67,27,49,4,36,31,65,108,108,32,79,78,0,31,65,76,76,32,
  79,70,70,0 };
 
// структура определяет все переменные и события вашего интерфейса управления
struct {

    // input variables
  uint8_t Amplifer; // =1 если включено, иначе =0
  uint8_t DAC; // =1 если включено, иначе =0
  uint8_t COMP; // =1 если включено, иначе =0
  uint8_t TV; // =1 если включено, иначе =0
  uint8_t All; // =1 если включено, иначе =0

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0

} RemoteXY;   
#pragma pack(pop)

/////////////////////////////////////////////
//           END RemoteXY include          //
/////////////////////////////////////////////

#define PIN_AMPLIFER D2
#define PIN_DAC D5
#define PIN_COMP D6
#define PIN_TV D7
#define PIN_ALL D8


void setup()
{
  RemoteXY_Init ();
 
  pinMode (PIN_AMPLIFER, OUTPUT);
  pinMode (PIN_DAC, OUTPUT);
  pinMode (PIN_COMP, OUTPUT);
  pinMode (PIN_TV, OUTPUT);
  pinMode (PIN_ALL, OUTPUT);
 
  // TODO you setup code
 
}

void loop()
{
  RemoteXY_Handler ();
 
  digitalWrite(PIN_AMPLIFER, (RemoteXY.Amplifer==0)?LOW:HIGH);
  digitalWrite(PIN_DAC, (RemoteXY.DAC==0)?LOW:HIGH);
  digitalWrite(PIN_COMP, (RemoteXY.COMP==0)?LOW:HIGH);
  digitalWrite(PIN_TV, (RemoteXY.TV==0)?LOW:HIGH);
  digitalWrite(PIN_ALL, (RemoteXY.All==0)?LOW:HIGH);
 
  // TODO you loop code

}

2

Re: Умная розетка, кнопка включить всё

void loop()
{
  RemoteXY_Handler ();

  if (RemoteXY.All != 0) {
    digitalWrite(PIN_AMPLIFER, HIGH);
    digitalWrite(PIN_DAC, HIGH);
    digitalWrite(PIN_COMP, HIGH);
    digitalWrite(PIN_TV, HIGH);
  }
  else {
    digitalWrite(PIN_AMPLIFER, (RemoteXY.Amplifer==0)?LOW:HIGH);
    digitalWrite(PIN_DAC, (RemoteXY.DAC==0)?LOW:HIGH);
    digitalWrite(PIN_COMP, (RemoteXY.COMP==0)?LOW:HIGH);
    digitalWrite(PIN_TV, (RemoteXY.TV==0)?LOW:HIGH);
  }


}

3

Re: Умная розетка, кнопка включить всё

Не, фигня, кнопки не перерисовываются под новое состояние. Ладно, обойдусь.
Но проект классный, создателям респектище!

4

Re: Умная розетка, кнопка включить всё

Что бы перерисовывались нужно добавить дополнительный код который будет управлять не только пинами но и состоянием кнопок

void loop()
{
  RemoteXY_Handler ();

  if (RemoteXY.All != 0) {
    digitalWrite(PIN_AMPLIFER, HIGH);
    digitalWrite(PIN_DAC, HIGH);
    digitalWrite(PIN_COMP, HIGH);
    digitalWrite(PIN_TV, HIGH);
    if (RemoteXY.Amplifer==0) RemoteXY.Amplifer = 1;
    if (RemoteXY.DAC==0) RemoteXY.DAC= 1;
    if (RemoteXY.COMP==0) RemoteXY.COMP= 1;
    if (RemoteXY.TV==0) RemoteXY.TV= 1;
  }
  else {
    digitalWrite(PIN_AMPLIFER, (RemoteXY.Amplifer==0)?LOW:HIGH);
    digitalWrite(PIN_DAC, (RemoteXY.DAC==0)?LOW:HIGH);
    digitalWrite(PIN_COMP, (RemoteXY.COMP==0)?LOW:HIGH);
    digitalWrite(PIN_TV, (RemoteXY.TV==0)?LOW:HIGH);
  }


}