1

Topic: Старт переключателя

Как заставить переключатель стартовать с позиции отличной от A (=0)? И чтобы в приложении это было видно. Спасибо

2

Re: Старт переключателя

Вы можете задать начальное положение переключателя или любого элемента в функции setup()
Подробнее тут https://remotexy.com/ru/help/whatiscode/

3

Re: Старт переключателя

Спасибо. Помогло.

4 (edited by evgen8 2022-05-07 09:18:24)

Re: Старт переключателя

Здравствуйте
Помогите решить мою проблему
Имеется 2-х канальное модуль реле, управление производится подачей LOW на сигнальную клемму реле.
Создал 1 кнопку и 1 выключатель в RemoteXY, с помощь FLProg создал скейч :

#define  REMOTEXY_MODE__ESP8266WIFI_LIB_CLOUD
#include <ESP8266WiFi.h>
#include <RemoteXY.h>
extern "C"
{
    #include "user_interface.h"
}
#define REMOTEXY_WIFI_SSID "TP-Link"
#define REMOTEXY_WIFI_PASSWORD "123456780"
#define REMOTEXY_CLOUD_SERVER "cloud.remotexy.com"
#define REMOTEXY_CLOUD_PORT 6376
#define REMOTEXY_CLOUD_TOKEN "922de051a7a4eb74238699e7576f7a94"
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] = {255, 2, 0, 0, 0, 30, 0, 16, 31, 1, 2, 1, 9, 38, 32, 11, 2, 26, 31, 31, 79, 78, 0, 79, 70, 70, 0, 1, 0, 19, 63, 12, 12, 2, 31, 48, 0};
struct
{
    unsigned char switch_1;
    unsigned char button_1;
    unsigned char connect_flag;
}
RemoteXY;
#pragma pack(pop)
void setup()
{
    pinMode(14, OUTPUT);
    digitalWrite(14, 0);
    pinMode(16, OUTPUT);
    digitalWrite(16, 0);
    RemoteXY_Init ();
}
void loop()
{
    RemoteXY_Handler  ();
    //Плата:1
    digitalWrite(14, (RemoteXY.button_1));
    digitalWrite(16, (RemoteXY.switch_1));
}
bool _isTimer(unsigned long startTime, unsigned long period)
{
    unsigned long currentTime;
    currentTime = millis();
    if (currentTime>= startTime)
    {
        return (currentTime>=(startTime + period));
    }
     else
    {
        return (currentTime >=(4294967295-startTime+period));
    }
}

загрузил скейч на ESP8266
Получил результат, что при включении питания на ESP8266 срабатывают оба реле.
Прочитал статью https://remotexy.com/ru/help/whatiscode/ и попробовал поставить начальное положение в функции setup,  выключено :

pinMode(14, OUTPUT);
    digitalWrite(14, 0);
    pinMode(16, OUTPUT);
    digitalWrite(16, 0);
    RemoteXY_Init ();
    RemoteXY.switch_1 = 1;

Это привело к тому что поменялся значок выключателя в телефоне при старте на "ON", а также реле подключенное к выключателю, срабатывает на секунду и выключается.


Как мне сделать так, что бы оба реле при загрузке ESP8266 не включались?
Находил уже такой вопрос, вы писали, что можно как то через булеву переменную. Буду признателен если поясните как.
Спасибо

5

Re: Старт переключателя

Ваш вопрос не относится к RemoteXY.

Инвертируйте выходной сигнал, т.е. если кнопка нажата то на выход отправляйте 0, если не нажата то отправляйте 1:

if (RemoteXY.button_1 == 0) digitalWrite(14, 1);
else digitalWrite(14, 0);

Уберите из функции setup() установку выхода в 0, вы тем самым включаете реле. Установите выход в 1 выключив реле. Еще лучше установить в 1 до объявления его выходом, иначе кратковременное включение возможно между этими командами.