Страница 34 из 42

Тестирование версии 8.х

Добавлено: 28 авг 2023, 20:48
AlexCrane
Serhio44 писал(а): 28 авг 2023, 18:30 Но хочется STM пощупать
Что мешает попробовать? Если подключение стандартное по SPI то по идее должно заработать

Отправлено спустя 1 минуту 58 секунд:
Serhio44 писал(а): 28 авг 2023, 18:30 мне удалось запустить блоки от AlexCrane
Напомните что за блоки (ссылку), что-то не припомню

Тестирование версии 8.х

Добавлено: 28 авг 2023, 23:06
Serhio44
AlexCrane писал(а): 28 авг 2023, 20:48 Напомните что за блоки (ссылку), что-то не припомню
ссылку точно не найду, но с форума был взят проект с блоками
AlexCrane писал(а): 28 авг 2023, 20:48 Что мешает попробовать? Если подключение стандартное по SPI то по идее должно заработать
вселяет оптимизм. Обязательно испробую

Тестирование версии 8.х

Добавлено: 30 авг 2023, 05:51
Abay1
Здравствуйте!
Проблемы с одновременным использованием master и slave через MODBUS RTU.
На штатных контроллерах ESP32 и STM32F103 не работает. ESP32 даже не компилится.
Непонятки с размером компиляции - простой тестовый проект для МЕГИ выходит с размером в 3 раза больше, чем в версии 7.5.2
На многих пользовательских описаний контроллеров не компилится. При этом все объявленные описания UARTов работают со штатными блоками UART (прием/передача).
:smile37:

Тестирование версии 8.х

Добавлено: 30 авг 2023, 06:03
ecoins
Abay1 писал(а): 30 авг 2023, 05:51 Здравствуйте!
Проблемы с одновременным использованием master и slave через MODBUS RTU.
На штатных контроллерах ESP32 и STM32F103 не работает. ESP32 даже не компилится.
Непонятки с размером компиляции - простой тестовый проект для МЕГИ выходит с размером в 3 раза больше, чем в версии 7.5.2
На многих пользовательских описаний контроллеров не компилится. При этом все объявленные описания UARTов работают со штатными блоками UART (прием/передача).
Разработчик сейчас плотно занимается доработкой и развитием коммуникаций (Modbus, Ethernet,WiFi,SPI,UART,i2c) для работы на контроллерах с разными архитектурами. Многое уже сделано, но работа пока продолжается. Наверное новшества будут выложены уже в новой версии.
С уважением, Энвер.

Тестирование версии 8.х

Добавлено: 02 сен 2023, 14:38
Sergoo
viewtopic.php?f=39&t=7668&p=125551#p125551
support писал(а): 27 ноя 2021, 15:32
Sergoo писал(а): 27 ноя 2021, 13:51
support писал(а): 27 ноя 2021, 06:20 .... первый раз об этой проблемме слышу. Поподробнее можно?
Проблему уже описывали где-то на форуме , но у меня так полноценно не получилось устранить ее.
Попробуйте скомпилировать две программки для 8266 и 32, проги одиннаковые, но на 32й ошибка при компиляции в ARDU IDE. Скорее всего причина в разных библиотеках WiFiUDP на платы 32 и 8266 , а flprog наверное при компиляции под 32ю плату берет библиотеку из папки 8266, но это есессено не точное предположение, в ручную меняя папки результата не получил я :smile37: .
Но результат после танца с бубнами все же есть, если в ARDU IDE после объявление всех библиотеек добавить строчку #define UDP_TX_PACKET_MAX_SIZE (номер порта UDP), то проект скомпилируется, но получилась только односторонняя связь при передаче переменных между 8266 и 32. Плата 32я от 8266й принимает переменные , но 8266я не принимает переменные, но скорее всего это 32я неправильно передает в 8266ю. Связь между двух8266 работает без проблем.

viewtopic.php?f=156&t=7286 вот тема кстати
функцию допилить бы стоило в программе раз уж она встроенная)))
Постараюсь допилить)))) но теперь уже после третьего числа, сейчас заканчиваю вахту и выезжаю домой....
[ref=#00aa00]support[/ref], может чем то поможет для решения...)
----------------------------------------------------------------------------------------------------------------
Конечно, вот пример программы на Arduino для передачи нескольких переменных (integer, bit и строка) через WiFi UDP на плату ESP32:

#include <WiFi.h>
#include <WiFiUdp.h>

const char* ssid = "название_вашей_wifi_сети";
const char* password = "пароль_вашей_wifi_сети";

WiFiUDP Udp;
unsigned int localUdpPort = 8888; // порт, который будет использоваться для UDP соединения

IPAddress remoteIp(192, 168, 0, 100); // IP-адрес назначения
unsigned int remoteUdpPort = 8888; // порт, который будет использоваться на удаленной плате

int variable1 = 123; // первая переменная типа integer
bool variable2 = false; // вторая переменная типа bit
String variable3 = "Hello, ESP32!"; // третья переменная типа строка

void setup() {
Serial.begin(115200);
Serial.println();

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}

Serial.println("");
Serial.println("WiFi подключено");
Serial.println("IP-адрес: " + WiFi.localIP());

Udp.begin(localUdpPort);
}

void loop() {
sendVariables();
delay(5000); // ждем 5 секунд и повторяем
}

void sendVariables() {
Serial.println("Отправка переменных:");

Udp.beginPacket(remoteIp, remoteUdpPort);

Udp.write((char*)&variable1, sizeof(variable1));

byte variable2Byte = variable2 ? 1 : 0;
Udp.write(&variable2Byte, sizeof(variable2Byte));

Udp.print(variable3);

Udp.endPacket();

Serial.println("Переменные успешно отправлены");
}


Не забудьте заменить название_вашей_wifi_сети и пароль_вашей_wifi_сети на соответствующие значения ваших сети.

При этом, на плате ESP32 (принимающей стороне), вы должны использовать следующий код:

#include <WiFi.h>
#include <WiFiUdp.h>

const char* ssid = "название_вашей_wifi_сети";
const char* password = "пароль_вашей_wifi_сети";

WiFiUDP Udp;
unsigned int localUdpPort = 8888; // порт, который будет использоваться для UDP соединения

void setup() {
Serial.begin(115200);
Serial.println();

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}

Serial.println("");
Serial.println("WiFi подключено");
Serial.println("IP-адрес: " + WiFi.localIP());

Udp.begin(localUdpPort);
}

void loop() {
receiveAndPrintVariables();
delay(500); // обновляем каждые 500 миллисекунд
}

void receiveAndPrintVariables() {
int receivedVariable1;
byte receivedVariable2Byte;
bool receivedVariable2;
char receivedVariable3[255];

int packetSize = Udp.parsePacket();
if (packetSize) {
Serial.println("Получены переменные:");

Udp.read((char*)&receivedVariable1, sizeof(receivedVariable1));
Serial.print("Переменная 1 (integer): ");
Serial.println(receivedVariable1);

Udp.read((char*)&receivedVariable2Byte, sizeof(receivedVariable2Byte));
receivedVariable2 = receivedVariable2Byte == 1;
Serial.print("Переменная 2 (bit): ");
Serial.println(receivedVariable2);

int bytesRead = Udp.readBytesUntil('\n', receivedVariable3, sizeof(receivedVariable3));
receivedVariable3[bytesRead] = '\0';
Serial.print("Переменная 3 (строка): ");
Serial.println(receivedVariable3);
}
}


Аналогично, здесь вам также потребуется заменить название_вашей_wifi_сети и пароль_вашей_wifi_сети на соответствующие значения ваших сети.



напиши программу на ардуино :
передача нескольких переменых integer, bit, строка по WiFi UDP между esp32 и esp8266
Конечно, вот пример программы на Arduino для передачи нескольких переменных (integer, bit и строка) через WiFi UDP между ESP32 и ESP8266:

Для ESP32:

#include <WiFi.h>
#include <WiFiUdp.h>

const char* ssid = "название_wifi_сети";
const char* password = "пароль_wifi_сети";

WiFiUDP Udp;
unsigned int localUdpPort = 8888; // порт, который будет использоваться для UDP соединения

IPAddress destinationIp(192, 168, 0, 100); // IP-адрес ESP8266
unsigned int destinationPort = 8888; // порт, который будет использоваться на ESP8266

int variable1 = 123; // первая переменная типа integer
bool variable2 = false; // вторая переменная типа bit
String variable3 = "Hello, ESP8266!"; // третья переменная типа строка

void setup() {
Serial.begin(115200);
Serial.println();

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}

Serial.println("");
Serial.println("WiFi подключено");
Serial.println("IP-адрес: " + WiFi.localIP());

Udp.begin(localUdpPort);
}

void loop() {
sendVariables();
delay(5000); // ждем 5 секунд и повторяем
}

void sendVariables() {
Serial.println("Отправка переменных:");

Udp.beginPacket(destinationIp, destinationPort);

Udp.write((char*)&variable1, sizeof(variable1));

byte variable2Byte = variable2 ? 1 : 0;
Udp.write(&variable2Byte, sizeof(variable2Byte));

Udp.print(variable3);

Udp.endPacket();

Serial.println("Переменные успешно отправлены");
}


Для ESP8266:

#include <ESP8266WiFi.h>
#include <WiFiUdp.h>

const char* ssid = "название_wifi_сети";
const char* password = "пароль_wifi_сети";

WiFiUDP Udp;
unsigned int localUdpPort = 8888; // порт, который будет использоваться для UDP соединения

IPAddress sourceIp(192, 168, 0, 50); // IP-адрес ESP32
unsigned int sourcePort = 8888; // порт, который будет использоваться на ESP32

void setup() {
Serial.begin(115200);
Serial.println();

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}

Serial.println("");
Serial.println("WiFi подключено");
Serial.println("IP-адрес: " + WiFi.localIP());

Udp.begin(localUdpPort);
}

void loop() {
receiveAndPrintVariables();
delay(500); // обновляем каждые 500 миллисекунд
}

void receiveAndPrintVariables() {
int receivedVariable1;
byte receivedVariable2Byte;
bool receivedVariable2;
char receivedVariable3[255];

int packetSize = Udp.parsePacket();
if (packetSize) {
IPAddress senderIp = Udp.remoteIP();
unsigned int senderPort = Udp.remotePort();

if (senderIp == sourceIp && senderPort == sourcePort) {
Serial.println("Получены переменные:");

Udp.read((char*)&receivedVariable1, sizeof(receivedVariable1));
Serial.print("Переменная 1 (integer): ");
Serial.println(receivedVariable1);

Udp.read((char*)&receivedVariable2Byte, sizeof(receivedVariable2Byte));
receivedVariable2 = receivedVariable2Byte == 1;
Serial.print("Переменная 2 (bit): ");
Serial.println(receivedVariable2);

int bytesRead = Udp.readBytesUntil('\n', receivedVariable3, sizeof(receivedVariable3));
receivedVariable3[bytesRead] = '\0';
Serial.print("Переменная 3 (строка): ");
Serial.println(receivedVariable3);
}
}
}


Убедитесь, что вы правильно указали названиеwifiсети и парольwifiсети для каждой платы, а также правильные IP-адреса и порты отправителя и получателя.




void sendVariables() {
Serial.println("Отправка переменных:");

Udp.beginPacket(remoteIp, remoteUdpPort);

Udp.write((char*)&variable1, sizeof(variable1));

byte variable2Byte = variable2 ? 1 : 0;
Udp.write(&variable2Byte, sizeof(variable2Byte));

Udp.print(variable3);

Udp.endPacket();

Serial.println("Переменные успешно отправлены");
}


Не забудьте заменить название_вашей_wifi_сети и пароль_вашей_wifi_сети на соответствующие значения ваших сети.

При этом, на плате ESP32 (принимающей стороне), вы должны использовать следующий код:

#include <WiFi.h>
#include <WiFiUdp.h>

const char* ssid = "название_вашей_wifi_сети";
const char* password = "пароль_вашей_wifi_сети";

WiFiUDP Udp;
unsigned int localUdpPort = 8888; // порт, который будет использоваться для UDP соединения

void setup() {
Serial.begin(115200);
Serial.println();

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}

Serial.println("");
Serial.println("WiFi подключено");
Serial.println("IP-адрес: " + WiFi.localIP());

Udp.begin(localUdpPort);
}

void loop() {
receiveAndPrintVariables();
delay(500); // обновляем каждые 500 миллисекунд
}

void receiveAndPrintVariables() {
int receivedVariable1;
byte receivedVariable2Byte;
bool receivedVariable2;
char receivedVariable3[255];

int packetSize = Udp.parsePacket();
if (packetSize) {
Serial.println("Получены переменные:");

Udp.read((char*)&receivedVariable1, sizeof(receivedVariable1));
Serial.print("Переменная 1 (integer): ");
Serial.println(receivedVariable1);

Udp.read((char*)&receivedVariable2Byte, sizeof(receivedVariable2Byte));
receivedVariable2 = receivedVariable2Byte == 1;
Serial.print("Переменная 2 (bit): ");
Serial.println(receivedVariable2);

int bytesRead = Udp.readBytesUntil('\n', receivedVariable3, sizeof(receivedVariable3));
receivedVariable3[bytesRead] = '\0';
Serial.print("Переменная 3 (строка): ");
Serial.println(receivedVariable3);
}
}


Аналогично, здесь вам также потребуется заменить название_вашей_wifi_сети и пароль_вашей_wifi_сети на соответствующие значения ваших сети.

Удачного программирования на Arduino!

Тестирование версии 8.х

Добавлено: 08 сен 2023, 10:34
DrMario
На ESP32 происходит ошибка при компиляции штатного блока Получения данных часов реального времени DS3231. Для остальных таймеров не пробовал. Ошибка тянется с версии FLProg 7.5.0 и до последней. На версии FLProg 7.1.1 штатный блок таймера работал исправно.

Тестирование версии 8.х

Добавлено: 08 сен 2023, 10:49
Mazur
[ref]DrMario[/ref], нормально там
2023-09-08_144907.png

Тестирование версии 8.х

Добавлено: 08 сен 2023, 11:06
DrMario
Mazur писал(а): 08 сен 2023, 10:49 DrMario, нормально там
Я не придумал. У меня портативная версия на виндовс 11
Вот весь текст компилятора
C:\Users\Evgen\AppData\Local\Temp\flprog\pr4\pr4.ino: In function 'void loop()':
pr4:32:29: error: expected primary-expression before ';' token
_RTC1_GetTime1_StrOut = ;
^
Несколько библиотек найдено для "WiFi.h"
Используется: C:\FLProg823\ideV8\portable\packages\esp32\hardware\esp32\2.0.9\libraries\WiFi
Не используется: c:\FLProg823\ideV8\libraries\WiFi
Несколько библиотек найдено для "Wire.h"
Используется: C:\FLProg823\ideV8\portable\packages\esp32\hardware\esp32\2.0.9\libraries\Wire
Не используется: c:\FLProg823\ideV8\portable\sketchbook\libraries\Wire
Несколько библиотек найдено для "SPI.h"
Используется: C:\FLProg823\ideV8\portable\packages\esp32\hardware\esp32\2.0.9\libraries\SPI
Не используется: c:\FLProg823\ideV8\portable\sketchbook\libraries\SPI
exit status 1
expected primary-expression before ';' token

Тестирование версии 8.х

Добавлено: 08 сен 2023, 11:11
vovka1973
DrMario писал(а): 08 сен 2023, 11:06
Mazur писал(а): 08 сен 2023, 10:49 DrMario, нормально там
Я не придумал. У меня портативная версия на виндовс 11
Вот весь текст компилятора
C:\Users\Evgen\AppData\Local\Temp\flprog\pr4\pr4.ino: In function 'void loop()':
pr4:32:29: error: expected primary-expression before ';' token
_RTC1_GetTime1_StrOut = ;
^
Несколько библиотек найдено для "WiFi.h"
Используется: C:\FLProg823\ideV8\portable\packages\esp32\hardware\esp32\2.0.9\libraries\WiFi
Не используется: c:\FLProg823\ideV8\libraries\WiFi
Несколько библиотек найдено для "Wire.h"
Используется: C:\FLProg823\ideV8\portable\packages\esp32\hardware\esp32\2.0.9\libraries\Wire
Не используется: c:\FLProg823\ideV8\portable\sketchbook\libraries\Wire
Несколько библиотек найдено для "SPI.h"
Используется: C:\FLProg823\ideV8\portable\packages\esp32\hardware\esp32\2.0.9\libraries\SPI
Не используется: c:\FLProg823\ideV8\portable\sketchbook\libraries\SPI
exit status 1
expected primary-expression before ';' token
с есп32 такие ошибки сыпятся из за ядра ,надо понижать или повышать не помню

Тестирование версии 8.х

Добавлено: 08 сен 2023, 11:13
Mazur
я тоже не в пейнте рисовал
2023-09-08_151008.png
да я и весной ещё на прошлой версии 8** выпаивал 3231 из модулей и впаивал их в разведёную плату на есп32 проблем не было

Тестирование версии 8.х

Добавлено: 08 сен 2023, 12:20
Phazz
[ref]DrMario[/ref], нужно хотя бы проект прикладывать. Но повангую и я. Есть предположение, что вы выводите время строкой и не заполнили формат вывода времени в параметрах.

Тестирование версии 8.х

Добавлено: 08 сен 2023, 13:15
Mazur
[ref=#808080]Phazz[/ref], нуда с пустой не компилится

Тестирование версии 8.х

Добавлено: 08 сен 2023, 14:55
DrMario
Вопрос снят, я затупил совсем. Не установил формат строки вывода :shok:

Тестирование версии 8.х

Добавлено: 09 сен 2023, 20:31
chmak2007
Я так понял, что программа 7.3.8 стабильная версия. 8-ка никогда не выйдет в полной стабильности, только в бета?

Тестирование версии 8.х

Добавлено: 09 сен 2023, 21:59
densat
chmak2007 писал(а): 09 сен 2023, 20:31 Я так понял, что программа 7.3.8 стабильная версия. 8-ка никогда не выйдет в полной стабильности, только в бета?
, почему же так категорично, что не выйдет, выйдет. Когда-то если вспомнить, и 4 версия была бэта, и третья. Да, седьмая стабильная на данный момент, и восьмая будет стабильная, и 16-тая, и сотая.

Тестирование версии 8.х

Добавлено: 10 сен 2023, 10:11
Phazz
[ref]chmak2007[/ref], а что не так с 8?

Тестирование версии 8.х

Добавлено: 01 окт 2023, 19:29
Ardudue
[ref=#00aa00]support[/ref], видимо не только я столкнулся с разрядностью АЦП в проектах FLP для STM32F103C8T6.
STM32F103C8T6 имеет 12-ти разрядные АЦП, в проекте в FLP получается 0-1023.
viewtopic.php?f=232&t=8650&sid=3ad6815c ... ea#p126075

Можно ли добавить в FLP возможность выбора разрядности аналогового входа?

Тестирование версии 8.х

Добавлено: 02 окт 2023, 09:46
Rovki
Ardudue писал(а): 01 окт 2023, 19:29 [ref=#00aa00]support[/ref], видимо не только я столкнулся с разрядностью АЦП в проектах FLP для STM32F103C8T6.
STM32F103C8T6 имеет 12-ти разрядные АЦП, в проект в FLP получается 0-1023.
viewtopic.php?f=232&t=8650&sid=3ad6815c ... ea#p126075

Можно ли добавить в FLP возможность выбора разрядности аналогового входа?
А что в ФЛ уже есть поддержка STM?

Тестирование версии 8.х

Добавлено: 02 окт 2023, 12:58
vovka1973
Rovki писал(а): 02 окт 2023, 09:46поддержка STM?
Есть 8.2.3 и в предыдущей версии

Тестирование версии 8.х

Добавлено: 02 окт 2023, 17:07
Rovki
Спасибо