Нужна помощь со скетчем для работы с MQTT

Здесь размещаем материалы по теме MQTT
Аватара пользователя
yopopol
Рядовой
Сообщения: 91
Зарегистрирован: 06.09.2015{, 23:59}
Репутация: 0

Нужна помощь со скетчем для работы с MQTT

#1

Сообщение yopopol » 10.03.2017{, 14:54}

Всё работает,но при перезагрузке сервера (Majordomo или Iobroker),данные на ардуинке меняют своё значение на обратное. Т.е. если выход был "0" , то становится "1". Планирую сделать сервер управления светом (в последующем может еще чем нибудь) и такая логика работы не устраивает.Прошу помочь со скетчем для ардуины.



управляется данными из сервера и с кнопки,подключенной к самой ардуино.
Вложения
9125565.png

Mining
Сержант
Сообщения: 148
Зарегистрирован: 31.10.2016{, 15:01}
Репутация: 4
Имя: Алексей

Нужна помощь со скетчем для работы с MQTT

#2

Сообщение Mining » 10.03.2017{, 15:26}

А где проект то?
Или предлагаете заняться черчением Вашего проекта?

WZV
Сержант
Сообщения: 216
Зарегистрирован: 06.09.2015{, 14:31}
Репутация: 24

Нужна помощь со скетчем для работы с MQTT

#3

Сообщение WZV » 10.03.2017{, 15:28}

Я же по вашей схеме сделал, всё нормально работает. На  Iobroker. Единственное что я изменил, так это название топика. Советую и вам поставить одно и тоже название топика в подписке и публикации на каждый выход реле.
Последний раз редактировалось WZV 10.03.2017{, 15:28}, всего редактировалось 1 раз.

Аватара пользователя
yopopol
Рядовой
Сообщения: 91
Зарегистрирован: 06.09.2015{, 23:59}
Репутация: 0

Нужна помощь со скетчем для работы с MQTT

#4

Сообщение yopopol » 10.03.2017{, 15:46}

название топа одинаковое,в подписке и публикации,но всё равно какая то муть....при перезапуске сервера

Добавлено (10.03.2017, 15:46)
---------------------------------------------
WZV писал(а):Я же по вашей схеме сделал, всё нормально работает. На  Iobroker. Единственное что я изменил, так это название топика. Советую и вам поставить одно и тоже название топика в подписке и публикации на каждый выход реле.
Скиньте пожалуйста ваш скетч, может я чего то не замечаю,что нужно исправить.

WZV
Сержант
Сообщения: 216
Зарегистрирован: 06.09.2015{, 14:31}
Репутация: 24

Нужна помощь со скетчем для работы с MQTT

#5

Сообщение WZV » 10.03.2017{, 16:58}

Скетч.

Добавлено (10.03.2017, 16:58)
---------------------------------------------
В переменных, значение по умолчанию, надо надо "false" поставить.
Вложения
9029949.flp
(631.47 КБ) 126 скачиваний
Последний раз редактировалось WZV 10.03.2017{, 16:59}, всего редактировалось 1 раз.

Аватара пользователя
yopopol
Рядовой
Сообщения: 91
Зарегистрирован: 06.09.2015{, 23:59}
Репутация: 0

Нужна помощь со скетчем для работы с MQTT

#6

Сообщение yopopol » 10.03.2017{, 17:29}

Спасибо огромное за скетч.
Только я теперь еще больше не понимаю ((  вроде всё одинаково,но ваш работает идеально,а мой всё так же глючит.

Аватара пользователя
yopopol
Рядовой
Сообщения: 91
Зарегистрирован: 06.09.2015{, 23:59}
Репутация: 0

Нужна помощь со скетчем для работы с MQTT

#7

Сообщение yopopol » 10.03.2017{, 17:37}

проверьте пожалуйста мой,если будет время
Вложения
mqtt-test.flp
(873.74 КБ) 71 скачивание

Аватара пользователя
AVGN
Капитан
Сообщения: 727
Зарегистрирован: 03.02.2017{, 12:23}
Репутация: 56

Нужна помощь со скетчем для работы с MQTT

#8

Сообщение AVGN » 10.03.2017{, 17:44}

yopopol писал(а):проверьте пожалуйста мой,если будет время
Вот с этого и надо было начинать.
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн

WZV
Сержант
Сообщения: 216
Зарегистрирован: 06.09.2015{, 14:31}
Репутация: 24

Нужна помощь со скетчем для работы с MQTT

#9

Сообщение WZV » 10.03.2017{, 18:02}

Посмотрел ваш скетч. Может причина в названиях топиков, у меня через косую черту. Я задаю точнее адрес, типа фильтрации, чтобы на каждую ардуину приходило только то, что адресуется только ей. Посмотрите информацию, в интернете, о названиях топиков в MQTT.

Аватара пользователя
yopopol
Рядовой
Сообщения: 91
Зарегистрирован: 06.09.2015{, 23:59}
Репутация: 0

Нужна помощь со скетчем для работы с MQTT

#10

Сообщение yopopol » 10.03.2017{, 18:06}

кажись нашел.
изначально скетч писал в версии 2.2. и было всё нормально.После обновил FLprog и начались фокусы со скетчем.
Так же и со скетчем WZV , если записывать его из версии 2.2 , то всё отлично. А если из версии 2.3 ,то так же глючит как и мой скетч.

Аватара пользователя
AVGN
Капитан
Сообщения: 727
Зарегистрирован: 03.02.2017{, 12:23}
Репутация: 56

Нужна помощь со скетчем для работы с MQTT

#11

Сообщение AVGN » 10.03.2017{, 18:08}

yopopol писал(а):если записывать его из версии 2.2 , то всё отлично
это как понимать? Куда записывать?
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн

Аватара пользователя
yopopol
Рядовой
Сообщения: 91
Зарегистрирован: 06.09.2015{, 23:59}
Репутация: 0

Нужна помощь со скетчем для работы с MQTT

#12

Сообщение yopopol » 10.03.2017{, 18:20}

компилировать проект

еще замечено в версии 2.3  -если платы в проекте поменять местами,то изменяется логика работы. если вернуть всё как было-логика не восстанавливается

и если проект,созданный в версии 2.2, открыть и пересохранить в версии 2.3.,то будет глючить при компиляции из любой версии

Добавлено (10.03.2017, 18:20)
---------------------------------------------
WZV писал(а):Посмотрел ваш скетч. Может причина в названиях топиков, у меня через косую черту. Я задаю точнее адрес, типа фильтрации, чтобы на каждую ардуину приходило только то, что адресуется только ей. Посмотрите информацию, в интернете, о названиях топиков в MQTT.
 пробовал менять,проблема не исчезла
Последний раз редактировалось yopopol 10.03.2017{, 18:16}, всего редактировалось 1 раз.

WZV
Сержант
Сообщения: 216
Зарегистрирован: 06.09.2015{, 14:31}
Репутация: 24

Нужна помощь со скетчем для работы с MQTT

#13

Сообщение WZV » 10.03.2017{, 18:30}

У меня был случай, когда я по ошибке, сделал два разных действия с одинаковым названием топика. Ошибку нашёл,название в одном топике изменил, но второй с этим оставшимся названием, не работал до тех пор, пока я ему не задал новое название.

Аватара пользователя
yopopol
Рядовой
Сообщения: 91
Зарегистрирован: 06.09.2015{, 23:59}
Репутация: 0

Нужна помощь со скетчем для работы с MQTT

#14

Сообщение yopopol » 10.03.2017{, 19:02}

сейчас при малейших изменениях вашего скетча, появляться теже глюки

WZV
Сержант
Сообщения: 216
Зарегистрирован: 06.09.2015{, 14:31}
Репутация: 24

Нужна помощь со скетчем для работы с MQTT

#15

Сообщение WZV » 10.03.2017{, 20:41}

Ну если вы пишете, что есть проблемы между версиями программ, то создайте новый проект, в последней версии программы.

Аватара пользователя
yopopol
Рядовой
Сообщения: 91
Зарегистрирован: 06.09.2015{, 23:59}
Репутация: 0

Нужна помощь со скетчем для работы с MQTT

#16

Сообщение yopopol » 12.03.2017{, 20:21}

пробовал. глючит ((

bober777
Рядовой
Сообщения: 9
Зарегистрирован: 23.09.2015{, 03:11}
Репутация: 3

Нужна помощь со скетчем для работы с MQTT

#17

Сообщение bober777 » 09.01.2018{, 10:33}

Добрый день.
Не много изменил проект WZW (9029949.flp) под себя - arduino nano и w5500
При компиляции выдаёт ошибку
СпойлерПоказать
Arduino: 1.8.1 (Windows 7), Плата:"Arduino Nano, ATmega328"

pr4:18: error: no matching function for call to 'PubSubClient::PubSubClient(int, int, int, int, int, void (&)(char*, byte*, unsigned int), EthernetClient&)'

PubSubClient MQTTclient( 192,168,1,35 , 1883 , callback, ethClient);

^

C:\Users\Papa\AppData\Local\Temp\flprog\pr4\pr4.ino:18:69: note: candidates are:

In file included from C:\Users\Papa\AppData\Local\Temp\flprog\pr4\pr4.ino:1:0:

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:116:4: note: PubSubClient::PubSubClient(const char*, uint16_t, void (*)(char*, uint8_t*, unsigned int), Client&, Stream&)

PubSubClient(const char*, uint16_t, MQTT_CALLBACK_SIGNATURE,Client& client, Stream&);

^

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:116:4: note: candidate expects 5 arguments, 7 provided

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:115:4: note: PubSubClient::PubSubClient(const char*, uint16_t, void (*)(char*, uint8_t*, unsigned int), Client&)

PubSubClient(const char*, uint16_t, MQTT_CALLBACK_SIGNATURE,Client& client);

^

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:115:4: note: candidate expects 4 arguments, 7 provided

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:114:4: note: PubSubClient::PubSubClient(const char*, uint16_t, Client&, Stream&)

PubSubClient(const char*, uint16_t, Client& client, Stream&);

^

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:114:4: note: candidate expects 4 arguments, 7 provided

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:113:4: note: PubSubClient::PubSubClient(const char*, uint16_t, Client&)

PubSubClient(const char*, uint16_t, Client& client);

^

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:113:4: note: candidate expects 3 arguments, 7 provided

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:112:4: note: PubSubClient::PubSubClient(uint8_t*, uint16_t, void (*)(char*, uint8_t*, unsigned int), Client&, Stream&)

PubSubClient(uint8_t *, uint16_t, MQTT_CALLBACK_SIGNATURE,Client& client, Stream&);

^

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:112:4: note: candidate expects 5 arguments, 7 provided

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:111:4: note: PubSubClient::PubSubClient(uint8_t*, uint16_t, void (*)(char*, uint8_t*, unsigned int), Client&)

PubSubClient(uint8_t *, uint16_t, MQTT_CALLBACK_SIGNATURE,Client& client);

^

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:111:4: note: candidate expects 4 arguments, 7 provided

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:110:4: note: PubSubClient::PubSubClient(uint8_t*, uint16_t, Client&, Stream&)

PubSubClient(uint8_t *, uint16_t, Client& client, Stream&);

^

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:110:4: note: candidate expects 4 arguments, 7 provided

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:109:4: note: PubSubClient::PubSubClient(uint8_t*, uint16_t, Client&)

PubSubClient(uint8_t *, uint16_t, Client& client);

^

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:109:4: note: candidate expects 3 arguments, 7 provided

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:108:4: note: PubSubClient::PubSubClient(IPAddress, uint16_t, void (*)(char*, uint8_t*, unsigned int), Client&, Stream&)

PubSubClient(IPAddress, uint16_t, MQTT_CALLBACK_SIGNATURE,Client& client, Stream&);

^

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:108:4: note: candidate expects 5 arguments, 7 provided

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:107:4: note: PubSubClient::PubSubClient(IPAddress, uint16_t, void (*)(char*, uint8_t*, unsigned int), Client&)

PubSubClient(IPAddress, uint16_t, MQTT_CALLBACK_SIGNATURE,Client& client);

^

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:107:4: note: candidate expects 4 arguments, 7 provided

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:106:4: note: PubSubClient::PubSubClient(IPAddress, uint16_t, Client&, Stream&)

PubSubClient(IPAddress, uint16_t, Client& client, Stream&);

^

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:106:4: note: candidate expects 4 arguments, 7 provided

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:105:4: note: PubSubClient::PubSubClient(IPAddress, uint16_t, Client&)

PubSubClient(IPAddress, uint16_t, Client& client);

^

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:105:4: note: candidate expects 3 arguments, 7 provided

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:104:4: note: PubSubClient::PubSubClient(Client&)

PubSubClient(Client& client);

^

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:104:4: note: candidate expects 1 argument, 7 provided

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:103:4: note: PubSubClient::PubSubClient()

PubSubClient();

^

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:103:4: note: candidate expects 0 arguments, 7 provided

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:83:7: note: constexpr PubSubClient::PubSubClient(const PubSubClient&)

class PubSubClient {

^

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:83:7: note: candidate expects 1 argument, 7 provided

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:83:7: note: constexpr PubSubClient::PubSubClient(PubSubClient&&)

c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient\src/PubSubClient.h:83:7: note: candidate expects 1 argument, 7 provided

Несколько библиотек найдено для "PubSubClient.h"
Используется: c:\Program Files (x86)\FLProg\ideV2\libraries\PubSubClient
Не используется: c:\Program Files (x86)\FLProg\ideV2\libraries\pubsubclient-2.6
exit status 1
no matching function for call to 'PubSubClient::PubSubClient(int, int, int, int, int, void (&)(char*, byte*, unsigned int), EthernetClient&)'

Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
сам проект...
test1.flp
(626.94 КБ) 85 скачиваний
Отправлено спустя 16 минут 40 секунд:
скетч

Код: Выделить всё

#include <PubSubClient.h>

#include <SPI.h>

#include <Ethernet2.h>

bool EN;
bool MQTT_receivedMessage=0; //Флаг получения сообщения
bool MQTT_PublishPost=0; // Флаг  публиковать все Публикации
EthernetClient ethClient;
//byte ethernet_mac[] = {0x04, 0x61, 0x77, 0xE9, 0xC0, 0x02};
byte ethernet_mac[] = {0x78, 0xAC, 0xC0, 0xBB, 0xB0, 0x77};
IPAddress ethernet_ip(192,168,1,37);
byte ethernet_dns[] = {  192,168,1,1 };
byte ethernet_gateway[] = {  192,168,1,1 };
byte ethernet_subnet[] = { 255,255,255,0 };
void callback(char* topic, byte* payload, unsigned int length); // обяляение функции, 
PubSubClient MQTTclient( 192,168,1,35 , 1883 , callback,   ethClient);
long lastReconnectAttempt= 0;
String MQTT_topictext; //Строка с топиком, с которого поступило сообщение
String MQTT_inputtext; //сообщение
const char *MQTTtext; 
bool EN_186572787_5;
String Message_186572787_5;
bool New_186572787_5;
bool Send_57915906_5;
String Message_57915906_5;
bool lastSend_57915906_5=0;
bool Send_57915906_8;
String Message_57915906_8;
bool lastSend_57915906_8=0;
bool EN_186572787_1;
String Message_186572787_1;
bool New_186572787_1;
bool EN_186572787_2;
String Message_186572787_2;
bool New_186572787_2;
bool Send_57915906_1;
String Message_57915906_1;
bool lastSend_57915906_1=0;
bool EN_186572787_3;
String Message_186572787_3;
bool New_186572787_3;
bool Send_57915906_6;
String Message_57915906_6;
bool lastSend_57915906_6=0;
bool Send_57915906_7;
String Message_57915906_7;
bool lastSend_57915906_7=0;
bool Send_57915906_2;
String Message_57915906_2;
bool lastSend_57915906_2=0;
bool _gtv1 = 0;
bool _gtv2 = 0;
bool _gtv3 = 0;
bool _gtv4 = 0;
bool _bounseInputD7S = 0;
bool _bounseInputD7O = 0;
unsigned long _bounseInputD7P = 0UL;
bool _bounseInputD8S = 0;
bool _bounseInputD8O = 0;
unsigned long _bounseInputD8P = 0UL;
String _swi2;
bool _trgrt3 = 0;
bool _trgrt3I = 0;
bool _bounseInputD6S = 0;
bool _bounseInputD6O = 0;
unsigned long _bounseInputD6P = 0UL;
String _swi1;
String _swi5;
bool _trgrt2 = 0;
bool _trgrt2I = 0;
bool _bounseInputD9S = 0;
bool _bounseInputD9O = 0;
unsigned long _bounseInputD9P = 0UL;
bool _trgrt8 = 0;
bool _trgrt8I = 0;
bool _trgrt6 = 0;
bool _trgrt6I = 0;
void setup()
{
pinMode(9, INPUT);
digitalWrite(9, HIGH);
pinMode(8, INPUT);
digitalWrite(8, HIGH);
pinMode(7, INPUT);
digitalWrite(7, HIGH);
pinMode(6, INPUT);
digitalWrite(6, HIGH);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);

_bounseInputD9O =  digitalRead(9);
_bounseInputD8O =  digitalRead(8);
_bounseInputD6O =  digitalRead(6);
_bounseInputD7O =  digitalRead(7);
Ethernet.begin(ethernet_mac, ethernet_ip );
delay(1000); //Задержка на запуск












}
void loop()
{
bool  _bounceInputTmpD9 =  (digitalRead (9));

if (_bounseInputD9S) 
    {
     if (millis() >= (_bounseInputD9P + 40)) 
         {_bounseInputD9O= _bounceInputTmpD9; _bounseInputD9S=0;}
     }
else
    {
     if (_bounceInputTmpD9 != _bounseInputD9O )
         {_bounseInputD9S=1; _bounseInputD9P = millis();} 
      } 
bool  _bounceInputTmpD8 =  (digitalRead (8));

if (_bounseInputD8S) 
    {
     if (millis() >= (_bounseInputD8P + 40)) 
         {_bounseInputD8O= _bounceInputTmpD8; _bounseInputD8S=0;}
     }
else
    {
     if (_bounceInputTmpD8 != _bounseInputD8O )
         {_bounseInputD8S=1; _bounseInputD8P = millis();} 
      } 
bool  _bounceInputTmpD6 =  (digitalRead (6));

if (_bounseInputD6S) 
    {
     if (millis() >= (_bounseInputD6P + 40)) 
         {_bounseInputD6O= _bounceInputTmpD6; _bounseInputD6S=0;}
     }
else
    {
     if (_bounceInputTmpD6 != _bounseInputD6O )
         {_bounseInputD6S=1; _bounseInputD6P = millis();} 
      } 
bool  _bounceInputTmpD7 =  (digitalRead (7));

if (_bounseInputD7S) 
    {
     if (millis() >= (_bounseInputD7P + 40)) 
         {_bounseInputD7O= _bounceInputTmpD7; _bounseInputD7S=0;}
     }
else
    {
     if (_bounceInputTmpD7 != _bounseInputD7O )
         {_bounseInputD7S=1; _bounseInputD7P = millis();} 
      } 




//Плата:1
//Наименование:Главный блок
EN = 1;
MQTT_PublishPost=0;
MQTT_receivedMessage=0;
if ( EN ){

  	if (!MQTTclient.connected()) { //Если нет сооедиения
    		long now = millis();
    		if (now - lastReconnectAttempt > 5000) { // ждем 5 секунд и пытаемся снова подключится
      		lastReconnectAttempt = now;
      		// Пересоедениется
     			 if (reconnect()) {	lastReconnectAttempt = 0; }
    		}
 	} 
	else {
    // Соедиение установелно, проверка

    MQTTclient.loop();
  }



}


//Плата:2
//Наименование:Подписка
EN_186572787_5 = 1;
New_186572787_5=0;
if(EN_186572787_5)
{
	if (MQTT_PublishPost){
		 MQTTclient.subscribe("/test/Ljustra"); //Подписатся на топик
		Serial.println("podpiska");//Тест
	}

	if(MQTT_receivedMessage){
		if(MQTT_topictext == "/test/Ljustra" ){ //если пришло сообщение от топика
			Message_186572787_5= MQTT_inputtext;
	 		New_186572787_5 =1; // сигнал о обновлении данных
		}
	}
}
if (New_186572787_5) {
_gtv1 = ((Message_186572787_5).equals(String("1")));
}
if (!(_bounseInputD9O)) { if (_trgrt8I) { _trgrt8 = 0;} else {_trgrt8 = 1; _trgrt8I = 1;} } else {_trgrt8 = 0; _trgrt8I = 0;}; 
 if(!(_gtv1))
{_swi1=String("1");}
else
{_swi1=String("0");}
Send_57915906_5 = _trgrt8;
Message_57915906_5 = _swi1;

if ( MQTT_PublishPost || (Send_57915906_5 &&  !lastSend_57915906_5) )
{
// Serial.println("public");//Тест
MQTTtext =  Message_57915906_5.c_str(); 
MQTTclient.publish( "/ATMega1/Ljustra" , MQTTtext);
}
lastSend_57915906_5 = Send_57915906_5;
if (_trgrt8) {
_gtv1 = !(_gtv1);
}
digitalWrite(3, !(_gtv1));
EN_186572787_1 = 1;
New_186572787_1=0;
if(EN_186572787_1)
{
	if (MQTT_PublishPost){
		 MQTTclient.subscribe("/ATMega1/Lenta spal'nja"); //Подписатся на топик
		Serial.println("podpiska");//Тест
	}

	if(MQTT_receivedMessage){
		if(MQTT_topictext == "/ATMega1/Lenta spal'nja" ){ //если пришло сообщение от топика
			Message_186572787_1= MQTT_inputtext;
	 		New_186572787_1 =1; // сигнал о обновлении данных
		}
	}
}
if (New_186572787_1) {
_gtv2 = ((Message_186572787_1).equals(String("1")));
}
if (!(_bounseInputD8O)) { if (_trgrt6I) { _trgrt6 = 0;} else {_trgrt6 = 1; _trgrt6I = 1;} } else {_trgrt6 = 0; _trgrt6I = 0;}; 
 if (_trgrt6) {
_gtv2 = !(_gtv2);
}
if(!(_gtv2))
{_swi5=String("1");}
else
{_swi5=String("0");}
Send_57915906_8 = _trgrt6;
Message_57915906_8 = _swi5;

if ( MQTT_PublishPost || (Send_57915906_8 &&  !lastSend_57915906_8) )
{
// Serial.println("public");//Тест
MQTTtext =  Message_57915906_8.c_str(); 
MQTTclient.publish( "/ATMega1/Lenta spal'nja" , MQTTtext);
}
lastSend_57915906_8 = Send_57915906_8;
digitalWrite(4, !(_gtv2));
EN_186572787_2 = 1;
New_186572787_2=0;
if(EN_186572787_2)
{
	if (MQTT_PublishPost){
		 MQTTclient.subscribe("/ATMega1/Tochki spal'nja"); //Подписатся на топик
		Serial.println("podpiska");//Тест
	}

	if(MQTT_receivedMessage){
		if(MQTT_topictext == "/ATMega1/Tochki spal'nja" ){ //если пришло сообщение от топика
			Message_186572787_2= MQTT_inputtext;
	 		New_186572787_2 =1; // сигнал о обновлении данных
		}
	}
}
if (New_186572787_2) {
_gtv3 = ((Message_186572787_2).equals(String("1")));
}
if (!(_bounseInputD7O)) { if (_trgrt2I) { _trgrt2 = 0;} else {_trgrt2 = 1; _trgrt2I = 1;} } else {_trgrt2 = 0; _trgrt2I = 0;}; 
 if(!(_gtv3))
{_swi2=String("1");}
else
{_swi2=String("0");}
Send_57915906_1 = _trgrt2;
Message_57915906_1 = _swi2;

if ( MQTT_PublishPost || (Send_57915906_1 &&  !lastSend_57915906_1) )
{
// Serial.println("public");//Тест
MQTTtext =  Message_57915906_1.c_str(); 
MQTTclient.publish( "/ATMega1/Tochki spal'nja" , MQTTtext);
}
lastSend_57915906_1 = Send_57915906_1;
if (_trgrt2) {
_gtv3 = !(_gtv3);
}
digitalWrite(5, !(_gtv3));

//Плата:3
//Наименование:ВЫКЛЮЧИТЬ ВСЁ
EN_186572787_3 = 1;
New_186572787_3=0;
if(EN_186572787_3)
{
	if (MQTT_PublishPost){
		 MQTTclient.subscribe("/ATMega1/VYKLJuChIT'' VSJo"); //Подписатся на топик
		Serial.println("podpiska");//Тест
	}

	if(MQTT_receivedMessage){
		if(MQTT_topictext == "/ATMega1/VYKLJuChIT'' VSJo" ){ //если пришло сообщение от топика
			Message_186572787_3= MQTT_inputtext;
	 		New_186572787_3 =1; // сигнал о обновлении данных
		}
	}
}
if (( (New_186572787_3) || (!(_bounseInputD6O)) )) { if (_trgrt3I) { _trgrt3 = 0;} else {_trgrt3 = 1; _trgrt3I = 1;} } else {_trgrt3 = 0; _trgrt3I = 0;}; 
 _gtv4 = _trgrt3;
if (_gtv4) {
_gtv1 = 0;
}
Send_57915906_6 = _gtv4;
Message_57915906_6 = String("0");

if ( MQTT_PublishPost || (Send_57915906_6 &&  !lastSend_57915906_6) )
{
// Serial.println("public");//Тест
MQTTtext =  Message_57915906_6.c_str(); 
MQTTclient.publish( "/ATMega1/Ljustra" , MQTTtext);
}
lastSend_57915906_6 = Send_57915906_6;
if (_gtv4) {
_gtv2 = 0;
}
Send_57915906_7 = _gtv4;
Message_57915906_7 = String("0");

if ( MQTT_PublishPost || (Send_57915906_7 &&  !lastSend_57915906_7) )
{
// Serial.println("public");//Тест
MQTTtext =  Message_57915906_7.c_str(); 
MQTTclient.publish( "/ATMega1/Lenta spal'nja" , MQTTtext);
}
lastSend_57915906_7 = Send_57915906_7;
if (_gtv4) {
_gtv3 = 0;
}
Send_57915906_2 = _gtv4;
Message_57915906_2 = String("0");

if ( MQTT_PublishPost || (Send_57915906_2 &&  !lastSend_57915906_2) )
{
// Serial.println("public");//Тест
MQTTtext =  Message_57915906_2.c_str(); 
MQTTclient.publish( "/ATMega1/Tochki spal'nja" , MQTTtext);
}
lastSend_57915906_2 = Send_57915906_2;




}
void callback(char* topic, byte* payload, unsigned int length)
{
MQTT_topictext  = String(topic); // присваиваем переменной название топика к которому подписались
MQTT_inputtext="";
// Serial.println("obrabot");//Тест

for (int i=0;i<length;i++) {
     MQTT_inputtext += (char)payload[i]; // составляем строку из байтов, которая пришла в параметрах топика
  }
// Serial.println(MQTT_inputtext ); //Тест
MQTT_receivedMessage=1;

}
boolean reconnect()
{
// Serial.println("recon"); //Тест
bool connectedPerformed;
if ( 1)connectedPerformed=MQTTclient.connect( "arduinoClient" , "bober777", "mustang777");
else connectedPerformed=MQTTclient.connect( "arduinoClient" );

if (connectedPerformed) {
    MQTT_PublishPost=1;
 	//Serial.println("post"); //Тест
  }
return MQTTclient.connected();

}

WZV
Сержант
Сообщения: 216
Зарегистрирован: 06.09.2015{, 14:31}
Репутация: 24

Нужна помощь со скетчем для работы с MQTT

#18

Сообщение WZV » 09.01.2018{, 21:07}

Интернет шилд W5500 не поддерживается FLProg. Нужен W5100. Возможно проблема с библиотеками.

bober777
Рядовой
Сообщения: 9
Зарегистрирован: 23.09.2015{, 03:11}
Репутация: 3

Нужна помощь со скетчем для работы с MQTT

#19

Сообщение bober777 » 09.01.2018{, 23:14}

Да вроде поддерживается... вот тут http://forum.flprog.ru/viewtopic.php?f=19&t=2087 пишут как прикрутить...

Отправлено спустя 1 минуту 35 секунд:
WZV писал(а):
09.01.2018{, 21:07}
Возможно проблема с библиотеками.
с библиотекой w5500?

Аватара пользователя
Sancho
Полковник
Сообщения: 3990
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 567
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Нужна помощь со скетчем для работы с MQTT

#20

Сообщение Sancho » 10.01.2018{, 17:46}

Речь не о проблеме библиотеки Ethernet2.h, а в том, что, на сколько я знаю, PubSubClient использует именно библиотеку Ethernet.
Отсюда и ошибки. Возможно не прав.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Ответить

Вернуться в «MQTT»