String data;// функция отправки конца команды
// команда поступающая в дисплей должна кончаться символами «0xFF0xFF0xFF»
void comandEnd() {
for (int i = 0; i < 3; i++) {
mySerial.write(0xff);
}
}
// отправка на Nextion (номер экрана, название переменной) + данные
void SendInt(String dev, int data)
{
mySerial.print(dev); // Отправляем данные dev(номер экрана, название переменной) на Nextion
mySerial.print("="); // Отправляем данные =(знак равно, далее передаем сами данные) на Nextion
mySerial.print(data); // Отправляем данные data(данные) на Nextion
comandEnd();
dev = ""; // Очищаем переменную
data = ""; // Очищаем переменную
}
void setup() {
// открываем последовательный порт
mySerial.begin(9600);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
// ждём данные от дисплея
if (mySerial.available()) // ждём данные от дисплея
{
char inc;
inc = mySerial.read();
data += inc;
if (inc == 0x0A)//конец команды
{
if (data.indexOf("on") >= 0) // если пришёло 'on'
{
flag = !flag;
digitalWrite(LED_BUILTIN, flag); //управление LED
SendInt("Button.bt0.val", flag);
}
data = "";
}
}
// библиотека для эмуляции Serial порта#include <SoftwareSerial.h>// создаём объект mySerial и передаём номера управляющих пинов RX и TX// RX - цифровой вывод 8, необходимо соединить с выводом TX дисплея// TX - цифровой вывод 9, необходимо соединить с выводом RX дисплеяSoftwareSerial mySerial(8, 9);byte flag = 0;byte i = 0;// переменная для хранения данныхString data;// функция отправки конца команды// команда поступающая в дисплей должна кончаться символами «0xFF0xFF0xFF»void comandEnd() { for (int i = 0; i < 3; i++) { mySerial.write(0xff); }}// отправка на Nextion (номер экрана, название переменной) + данныеvoid SendInt(String dev, int data){ mySerial.print(dev); // Отправляем данные dev(номер экрана, название переменной) на Nextion mySerial.print("="); // Отправляем данные =(знак равно, далее передаем сами данные) на Nextion mySerial.print(data); // Отправляем данные data(данные) на Nextion comandEnd(); dev = ""; // Очищаем переменную data = ""; // Очищаем переменную}void setup() { // открываем последовательный порт mySerial.begin(9600); pinMode(LED_BUILTIN, OUTPUT);}void loop() { // ждём данные от дисплеяif (mySerial.available()) // ждём данные от дисплея{ char inc; inc = mySerial.read(); data += inc; if (inc == 0x0A)//конец команды { if (data.indexOf("on") >= 0) // если пришёло 'on' { flag = !flag; digitalWrite(LED_BUILTIN, flag); //управление LED SendInt("Button.bt0.val", flag); } data = ""; } }}
// библиотека для эмуляции Serial порта#include <SoftwareSerial.h>
// создаём объект mySerial и передаём номера управляющих пинов RX и TX
// RX - цифровой вывод 8, необходимо соединить с выводом TX дисплея
// TX - цифровой вывод 9, необходимо соединить с выводом RX дисплея
SoftwareSerial mySerial(8, 9);
byte flag = 0;
byte i = 0;
// переменная для хранения данных
String data;
// функция отправки конца команды
// команда поступающая в дисплей должна кончаться символами «0xFF0xFF0xFF»
void comandEnd() {
for (int i = 0; i < 3; i++) {
mySerial.write(0xff);
}
}
// отправка на Nextion (номер экрана, название переменной) + данные
void SendInt(String dev, int data)
{
mySerial.print(dev); // Отправляем данные dev(номер экрана, название переменной) на Nextion
mySerial.print("="); // Отправляем данные =(знак равно, далее передаем сами данные) на Nextion
mySerial.print(data); // Отправляем данные data(данные) на Nextion
comandEnd();
dev = ""; // Очищаем переменную
data = ""; // Очищаем переменную
}
void setup() {
// открываем последовательный порт
mySerial.begin(9600);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
// ждём данные от дисплея
if (mySerial.available()) // ждём данные от дисплея
{
char inc;
inc = mySerial.read();
data += inc;
if (inc == 0x0A)//конец команды
{
if (data.indexOf("on") >= 0) // если пришёло 'on'
{
flag = !flag;
digitalWrite(LED_BUILTIN, flag); //управление LED
SendInt("Button.bt0.val", flag);
}
data = "";
}
}
// библиотека для эмуляции Serial порта#include <SoftwareSerial.h>
// создаём объект mySerial и передаём номера управляющих пинов RX и TX
// RX - цифровой вывод 8, необходимо соединить с выводом TX дисплея
// TX - цифровой вывод 9, необходимо соединить с выводом RX дисплея
SoftwareSerial mySerial(8, 9);
byte flag = 0; //для первой кнопки
byte flag1 = 0; //для второй кнопки
byte i = 0;
// переменная для хранения данных
String data;
// функция отправки конца команды
// команда поступающая в дисплей должна кончаться символами «0xFF0xFF0xFF»
void comandEnd() {
for (int i = 0; i < 3; i++) {
mySerial.write(0xff);
}
}
// отправка на Nextion (номер экрана, название переменной) + данные
void SendInt(String dev, int data)
{
mySerial.print(dev); // Отправляем данные dev(номер экрана, название переменной) на Nextion
mySerial.print("="); // Отправляем данные =(знак равно, далее передаем сами данные) на Nextion
mySerial.print(data); // Отправляем данные data(данные) на Nextion
comandEnd();
dev = ""; // Очищаем переменную
data = ""; // Очищаем переменную
}
void setup() {
// открываем последовательный порт
mySerial.begin(9600);
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
}
void loop()
{
// ждём данные от дисплея
if (mySerial.available()) // ждём данные от дисплея
{
char inc;
inc = mySerial.read();
data += inc;
if (inc == 0x0A)//конец команды
{
if (data.indexOf("0on") >= 0) // если пришёло '0on' первая кнопка
{
flag = !flag;
digitalWrite(13, flag); //управление LED
SendInt("Button.bt0.val", flag);
}
if (data.indexOf("1on") >= 0) // если пришёло '1on'вторая кнопка
{
flag1 = !flag1;
digitalWrite(12, flag1); //управление LED
SendInt("Button.bt1.val", flag1);
}
data = "";
}
}
}
Прошу помощи.