Страница 1 из 5

NodeMCU V3 + RemoteXY + FLProg

Добавлено: 25 окт 2019, 15:15
Mozgoklui
Здравствуйте
воюю уже много часов, постепенно отсоединяя и упрощая то, что мне изначально было необходимо.
Теперь требуется самое простое: включать встроенный в ESP светодиод с кнопки на телефоне (remotexy)
вот схема в Flprog
flpr.jpg
вот экран телефона в remoteXY
rem.jpg
вот скетч, генерируемый flprog
pr11.ino
По факту - связь по wifi устанавливается, приложение соединяется. Что интересно, обратная связь при изменении состояния выключателя включает виртуальный индикатор на экране смартфона, но на плате ESP ничего не включается (равно как не работает все что подключал, ни адресная лента ни светодиоды).
з.ы. схема в FLprog такая многовыходная, потому что я грешил на китайскую распиновку и "бил по площадям".
Платки в наличии 4 штуки, 2 от одного китайца, две от другого. По всем всё одинаково.
Куда копать, уважаемые?

NodeMCU V3 + RemoteXY + FLProg

Добавлено: 25 окт 2019, 16:30
nic103
Привет! Выкинь пока лишние вывода особенно GPIO16. Почитай про вывода https://codedevice.ru/archives/1328

NodeMCU V3 + RemoteXY + FLProg

Добавлено: 25 окт 2019, 17:51
SergeyShikal
Mozgoklui писал(а): 25 окт 2019, 15:15
Куда копать, уважаемые?
Попробуй от сюда и пока без облака[spoiler]
проба.flp
[/spoiler]

NodeMCU V3 + RemoteXY + FLProg

Добавлено: 25 окт 2019, 19:58
Mozgoklui
[ref]SergeyShikal[/ref], ё-моё, низкий поклон, добрый человек! Сначала попробовал с точкой доступа - работает! Потом в вашей же программе поменял на облако и о чудо! состояние светодиода меняется! Похоже я тупо не разобрался с пинами..
Теперь дело за подключением WS2812b. На какую ногу лучше вешать?

NodeMCU V3 + RemoteXY + FLProg

Добавлено: 26 окт 2019, 03:30
SergeyShikal
Mozgoklui писал(а): 25 окт 2019, 19:58 [ref]SergeyShikal[/ref], ё-моё, низкий поклон, добрый человек! Сначала попробовал с точкой доступа - работает! Потом в вашей же программе поменял на облако и о чудо! состояние светодиода меняется! Похоже я тупо не разобрался с пинами..
Теперь дело за подключением WS2812b. На какую ногу лучше вешать?
GPIO-4 (D2)

NodeMCU V3 + RemoteXY + FLProg

Добавлено: 26 окт 2019, 09:44
Mozgoklui
SergeyShikal писал(а): 26 окт 2019, 03:30 GPIO-4 (D2)
именно так вчера и сделал, но опять затык... Насколько хватило ума добавил пользовательские блоки для WS2812b (раньше с ними всё делал - без проблем). Теперь вот простенькая схема в FLprog, а ЕСП дурит. Встроенный диод напрочь перестал реагировать на свич, а лента (один диод) светит при каждом включении рандомным цветом, чаще зеленым. Чудесным образом пару включений начинала нормально реагировать на RGB ползунки в телефоне, но недолго, секунд 10 и ЕСП опять падала в перезагрузку. Опять в упор не вижу свою ошибку. Прошу прощения за дилетантские вопросы.
flp2.jpg

NodeMCU V3 + RemoteXY + FLProg

Добавлено: 26 окт 2019, 10:03
SergeyShikal
Mozgoklui писал(а): 26 окт 2019, 09:44
SergeyShikal писал(а): 26 окт 2019, 03:30 GPIO-4 (D2)
именно так вчера и сделал, но опять затык... Насколько хватило ума добавил пользовательские блоки для WS2812b (раньше с ними всё делал - без проблем). Теперь вот простенькая схема в FLprog, а ЕСП дурит. Встроенный диод напрочь перестал реагировать на свич, а лента (один диод) светит при каждом включении рандомным цветом, чаще зеленым. Чудесным образом пару включений начинала нормально реагировать на RGB ползунки в телефоне, но недолго, секунд 10 и ЕСП опять падала в перезагрузку. Опять в упор не вижу свою ошибку. Прошу прощения за дилетантские вопросы.
flp2.jpg
Скинь свой проект

NodeMCU V3 + RemoteXY + FLProg

Добавлено: 27 окт 2019, 12:49
Mozgoklui
SergeyShikal писал(а): 26 окт 2019, 10:03 Скинь свой проект
то есть сгенерированный код для IDE? вот он
[spoiler]#define REMOTEXY_MODE__ESP8266WIFI_LIB_CLOUD
#include <ESP8266WiFi.h>
#include <RemoteXY.h>
#include <Adafruit_NeoPixel.h>

extern "C" {
#include "user_interface.h";
}
#define REMOTEXY_WIFI_SSID "VitaliNadin"
#define REMOTEXY_WIFI_PASSWORD "27072017"
#define REMOTEXY_CLOUD_SERVER "cloud.remotexy.com"
#define REMOTEXY_CLOUD_PORT 6376
#define REMOTEXY_CLOUD_TOKEN "мой токен"
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] = {4, 1, 34, 0, 8, 24, 1, 2, 0, 5, 83, 28, 13, 2, 26, 31, 16, 79, 78, 0, 79, 70, 70, 0, 65, 4, 45, 83, 12, 12, 6, 0, 3, 5, 57, 57, 2, 26};
struct {
unsigned char switch_1;
unsigned char rgb_1_r;
unsigned char rgb_1_g;
unsigned char rgb_1_b;
unsigned char led_1_r;
unsigned char connect_flag;
} RemoteXY;
#pragma pack(pop)
// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
// NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)
// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
// NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products)
Adafruit_NeoPixel strip= Adafruit_NeoPixel(64, D4, NEO_GRB + NEO_KHZ800);
bool En_26897752_2;
int Num_Led_26897752_2;
byte Brightness_26897752_2;
byte Led_R_26897752_2;
byte Led_G_26897752_2;
byte Led_B_26897752_2;
byte Led_W_26897752_2;
extern "C" {
#include "user_interface.h"
}
os_timer_t watchDogTimer;
int _PWDC = 0;
bool ESP8266ControllerWifiClient_HRD = 0;
bool ESP8266ControllerWifiClient_status = 1;
char ESP8266ControllerWifiAP_SSID[40] = "raz";
char ESP8266ControllerWifiAP_password[40] = "";
bool ESP8266ControllerWifiAP_IsNeedReconect = 0;
bool ESP8266ControllerWifiAP_workStatus = 1;
IPAddress ESP8266ControllerWifiAP_ip(0, 0, 0, 0);
IPAddress ESP8266ControllerWifiAP_dns (0, 0, 0, 1);
IPAddress ESP8266ControllerWifiAP_gateway (0, 0, 0, 1);
IPAddress ESP8266ControllerWifiAP_subnet (255, 255, 255, 0);
uint8_t ESP8266ControllerWifiAP_mac[6] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
bool ESP8266ControllerWifiClient_isDHCP = 1;
bool ESP8266ControllerWifiClient_IsNeedReconect = 0;
bool ESP8266ControllerWifiClient_workStatus = 1;
char ESP8266ControllerWifiClient_SSID[40] = "VitaliNadin";
char ESP8266ControllerWifiClient_password[40] = "27072017";
IPAddress ESP8266ControllerWifiClient_ip(0, 0, 0, 0);
IPAddress ESP8266ControllerWifiClient_dns (0, 0, 0, 1);
IPAddress ESP8266ControllerWifiClient_gateway (0, 0, 0, 1);
IPAddress ESP8266ControllerWifiClient_subnet (255, 255, 255, 0);
uint8_t ESP8266ControllerWifiClient_mac[6] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
bool _gtv1;
int _gtv2;
int _gtv3;
int _gtv4;
int _swi1;
void setup()
{
RemoteXY_Init ();
WiFi.mode(WIFI_AP_STA);
_esp8266WifiModuleClientReconnect();
_esp8266WifiModuleApReconnect();
satrtWachDogTimer();
pinMode(2, OUTPUT);

strip.begin(); // Инициализация NeoPixel library.
strip.show(); // Устанавливаем все светодиоды в состояние "Выключено"

}
void loop()
{RemoteXY_Handler ();
_PWDC = 0;
if(ESP8266ControllerWifiAP_IsNeedReconect) {_esp8266WifiModuleApReconnect(); ESP8266ControllerWifiAP_IsNeedReconect = 0; }
if(ESP8266ControllerWifiClient_IsNeedReconect) {_esp8266WifiModuleClientReconnect(); ESP8266ControllerWifiClient_IsNeedReconect = 0; }
ESP8266ControllerWifiClient_status = WiFi.status() == WL_CONNECTED;
if (ESP8266ControllerWifiClient_status) { if ( ! ESP8266ControllerWifiClient_HRD) { ESP8266ControllerWifiClient_ip = WiFi.localIP();
ESP8266ControllerWifiClient_subnet = WiFi.subnetMask();
ESP8266ControllerWifiClient_gateway = WiFi.gatewayIP();
ESP8266ControllerWifiClient_dns = WiFi.dnsIP();
WiFi.macAddress(ESP8266ControllerWifiClient_mac);
ESP8266ControllerWifiClient_HRD = 1;
}} else {ESP8266ControllerWifiClient_HRD = 0;}





//Плата:1

if(_gtv1)
{_swi1=255;}
else
{_swi1=0;}
RemoteXY.led_1_r = _swi1;
_gtv4 = (RemoteXY.rgb_1_b);
_gtv3 = (RemoteXY.rgb_1_g);
_gtv2 = (RemoteXY.rgb_1_r);
En_26897752_2 = (RemoteXY.switch_1);
Num_Led_26897752_2 = 0;
Brightness_26897752_2 = 100;
Led_R_26897752_2 = (byte(_gtv2));
Led_G_26897752_2 = (byte(_gtv3));
Led_B_26897752_2 = (byte(_gtv4));
Led_W_26897752_2 = 0;
if ( En_26897752_2 == 1)
{
strip.setBrightness(Brightness_26897752_2);
strip.setPixelColor(Num_Led_26897752_2, strip.Color(Led_R_26897752_2, Led_G_26897752_2, Led_B_26897752_2, Led_W_26897752_2 ) );
strip.show();
}
else
{
strip.setPixelColor(Num_Led_26897752_2, strip.Color(0, 0, 0, 0 ) );
strip.show();
};

_gtv1 = (RemoteXY.switch_1);
digitalWrite(2, !((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));}
}

void wachDogTimerTick(void *pArg) {
if (_PWDC >= 100){ ESP.reset(); }else{_PWDC = _PWDC+1;}
}
void satrtWachDogTimer(void ) {
os_timer_setfn(&watchDogTimer, wachDogTimerTick, NULL);
os_timer_arm(&watchDogTimer, 100, true);
}
int hexStrToInt(String instring)
{
byte len = instring.length();
if (len == 0) return 0;
int result = 0;
for (byte i = 0; i < 8; i++) // только первые 8 цыфар влезуть в uint32
{
char ch = instring;
if (ch == 0) break;
result <<= 4;
if (isdigit(ch))
result = result | (ch - '0');
else result = result | (ch - 'A' + 10);
}
return result;
}
void _esp8266WifiModuleApReconnect()
{
if ( _checkMacAddres(ESP8266ControllerWifiAP_mac)) {
wifi_set_macaddr(1, const_cast<uint8*>(ESP8266ControllerWifiAP_mac));
}
WiFi.softAPConfig(ESP8266ControllerWifiAP_ip, ESP8266ControllerWifiAP_gateway, ESP8266ControllerWifiAP_subnet);
WiFi.softAP(ESP8266ControllerWifiAP_SSID, ESP8266ControllerWifiAP_password);
if ( ! (_checkMacAddres(ESP8266ControllerWifiAP_mac))) {
WiFi.softAPmacAddress(ESP8266ControllerWifiAP_mac);
}
}
void _esp8266WifiModuleClientReconnect()
{
if( _checkMacAddres(ESP8266ControllerWifiClient_mac)) { wifi_set_macaddr(0, const_cast<uint8*>(ESP8266ControllerWifiClient_mac));}
if( ESP8266ControllerWifiClient_isDHCP) { WiFi.config(0U, 0U, 0U, 0U, 0U); } else {
WiFi.config(ESP8266ControllerWifiClient_ip, ESP8266ControllerWifiClient_gateway, ESP8266ControllerWifiClient_subnet, ESP8266ControllerWifiClient_dns , ESP8266ControllerWifiClient_dns );
}
WiFi.begin(ESP8266ControllerWifiClient_SSID, ESP8266ControllerWifiClient_password);
}
bool _checkMacAddres(byte array[])
{
bool result = 0;
for (byte i = 0; i < 6; i++)
{
if (array == 255) {
return 0;
}
if (array > 0 ) {
result = 1;
}
}
return result;
}[/spoiler]

NodeMCU V3 + RemoteXY + FLProg

Добавлено: 27 окт 2019, 14:52
EgorKa
Mozgoklui писал(а): 27 окт 2019, 12:49 то есть сгенерированный код для IDE? вот он
Вы сам то понимаете этот код? Это форум FlProg и проект логично выкладывать flp :yes: если бы знали как делать в IDE то здесь бы не присутствовали так же как и Вы :yes:

NodeMCU V3 + RemoteXY + FLProg

Добавлено: 27 окт 2019, 15:01
Mozgoklui
EgorKa писал(а): 27 окт 2019, 14:52 Вы сам то понимаете этот код? Это форум FlProg и проект логично выкладывать flp если бы знали как делать в IDE то здесь бы не присутствовали так же как и Вы
Сорри, я подтупливаю)))
В общем я устал возиться с RemoteXY и попробовал Blynk. Вот где вещь! Блоков с данного форума хватило на все мои хотелки. Всё работает четко и как надо!

NodeMCU V3 + RemoteXY + FLProg

Добавлено: 27 окт 2019, 15:18
SergeyShikal
Mozgoklui писал(а): 27 окт 2019, 15:01 Сорри, я подтупливаю)))
В общем я устал возиться с RemoteXY и попробовал Blynk. Вот где вещь! Блоков с данного форума хватило на все мои хотелки. Всё работает четко и как надо!
С чем бороться, в флпрог штатные блоки соединить, кроме как от ленты ws2812
проба1.flp

NodeMCU V3 + RemoteXY + FLProg

Добавлено: 27 окт 2019, 15:50
vovka1973
Mozgoklui писал(а): 27 окт 2019, 15:01 и попробовал Blynk
а где вы их взяли, можно ссылку?

NodeMCU V3 + RemoteXY + FLProg

Добавлено: 27 окт 2019, 16:53
Mozgoklui
vovka1973 писал(а): 27 окт 2019, 15:50 а где вы их взяли, можно ссылку?
я из разных веток насобирал, лучше все выложу сюда:
Blynk_ESP_BASE_(CODE).ubi
OTA_Blynk_(CODE).ubi
Из_Blynk_boolean_(CODE).ubi
Из_Blynk_Integer_(CODE).ubi
оповещение_о_подключение_(CODE).ubi
Отправка_float_в__Blynk_(CODE).ubi
Отправка_integer_в_Blunk_(CODE).ubi
Отправка_string_в__Blynk_(CODE).ubi
Отправлено спустя 3 минуты 17 секунд:
SergeyShikal писал(а): 27 окт 2019, 15:18 С чем бороться, в флпрог штатные блоки соединить, кроме как от ленты ws2812
Да я понимаю, очень просто всё звучит, но у меня почему-то не работало (скорее всего мои руки и виноваты). А в блынке сходу все работает.
Немного не по теме, подскажите пожалуйста из каких блоков флпрог соорудить логику включения/выключения одной лампочки с двух кнопок, при том что одна из кнопок с обратной связью (индикатор состояния)?

NodeMCU V3 + RemoteXY + FLProg

Добавлено: 27 окт 2019, 17:07
SergeyShikal
Mozgoklui писал(а): 27 окт 2019, 16:53 Да я понимаю, очень просто всё звучит, но у меня почему-то не работало (скорее всего мои руки и виноваты). А в блынке сходу все работает.
Немного не по теме, подскажите пожалуйста из каких блоков флпрог соорудить логику включения/выключения одной лампочки с двух кнопок, при том что одна из кнопок с обратной связью (индикатор состояния)?
[spoiler]
Безымянный.png
[/spoiler]

NodeMCU V3 + RemoteXY + FLProg

Добавлено: 27 окт 2019, 17:15
Mozgoklui
[ref]SergeyShikal[/ref], неужто всё так просто.. а если обратная связь это отдельный блок? (отправка int в blynk)
я уже такие небоскрёбы городил из триггеров, компараторов и прочего, но логика неправильная, то кнопка не отображает состояние светодиода, то физическая кнопка не влияет на состояние...

NodeMCU V3 + RemoteXY + FLProg

Добавлено: 27 окт 2019, 17:33
SergeyShikal
Mozgoklui писал(а): 27 окт 2019, 17:15 [ref]SergeyShikal[/ref], неужто всё так просто.. а если обратная связь это отдельный блок?
Используй переменные

NodeMCU V3 + RemoteXY + FLProg

Добавлено: 27 окт 2019, 17:56
vovka1973
Mozgoklui писал(а): 27 окт 2019, 16:53
vovka1973 писал(а): 27 окт 2019, 15:50 а где вы их взяли, можно ссылку?
я из разных веток насобирал, лучше все выложу сюда:
Blynk_ESP_BASE_(CODE).ubiOTA_Blynk_(CODE).ubiИз_Blynk_boolean_(CODE).ubiИз_Blynk_Integer_(CODE).ubiоповещение_о_подключение_(CODE).ubiОтправка_float_в__Blynk_(CODE).ubiОтправка_integer_в_Blunk_(CODE).ubiОтправка_string_в__Blynk_(CODE).ubi

Отправлено спустя 3 минуты 17 секунд:
SergeyShikal писал(а): 27 окт 2019, 15:18 С чем бороться, в флпрог штатные блоки соединить, кроме как от ленты ws2812
Да я понимаю, очень просто всё звучит, но у меня почему-то не работало (скорее всего мои руки и виноваты). А в блынке сходу все работает.
Немного не по теме, подскажите пожалуйста из каких блоков флпрог соорудить логику включения/выключения одной лампочки с двух кнопок, при том что одна из кнопок с обратной связью (индикатор состояния)?
хотел попробовать сделал проект два реле на ноде мсу ,не подключается к моей сети и я ее не вижу как подключеной, тот же проект но сделанный в ремоте ху через облако все пашет подключается к моей сети :smile37:
перекачал блок подключения и все заработало :D
на мой взгляд ремоте ху скоростней блинка да и проще .

NodeMCU V3 + RemoteXY + FLProg

Добавлено: 27 окт 2019, 18:06
Mozgoklui
SergeyShikal писал(а): 27 окт 2019, 17:33 Используй переменные
вот, такая схема работает неправильно. Точнее правильно только с сенсорной кнопки (и правильно меняется состояние виртуальной в блинке), а вот вкл/выкл с виртуальной кнопки не работает. К сожалению я хоть убей не могу врубиться как работает "инвертировать", ставлю методом тыка..
[spoiler]
flp3.jpg
[/spoiler]

NodeMCU V3 + RemoteXY + FLProg

Добавлено: 27 окт 2019, 20:13
belyx
немножко не по теме но сейчас попробовал управление RGB светодиодами с ремоте.
мой REMOTE RGB.rar
у меня всё работает

NodeMCU V3 + RemoteXY + FLProg

Добавлено: 27 окт 2019, 20:36
Mozgoklui
belyx писал(а): 27 окт 2019, 20:13 у меня всё работает
везет. у меня не пошло, да и потом посмотрел что у блинка есть больше всяких фичей чем у ремоте. Лучше сразу все поделки собирать в одном приложении.
За сегодня так и не смог сделать логику двух кнопок правильной..