NEWS
Arduino+Mqtt FAQ для начинающих.
-
-
Когда начинаю выкидывать еще больше ошибок, то одно не находит то другое…
Ну да ладно пойду рыть по форуму. Что бы выкидывать что то нужно понять что нужно а что не очень..
Спасиб.. `
Какие там могут быть ошибки? вот код оставил только mqtt! ````
#include <spi.h> // Ethernet shield
#include <ethernet.h> // Ethernet shield
#include <pubsubclient.h> // MQTT
! byte mac[] = { 0xC1, 0x7C, 0x38, 0x41, 0x89, 0x12 };
byte server[] = { 192, 168, 1, 190 }; //IP Брокера
byte ip[] = { 192, 168, 1, 167 }; //IP Клиента (Arduino)
! EthernetClient ethClient;
PubSubClient client(server, 1883, callback, ethClient);
#define id_connect "myhome-kitchen"
#define Prefix_subscribe "myhome/Kitchen/"
! ///////////////Объявляем порты ввода-вывода
! ////////////////////////////////////////////////////////////////////////////
void callback(char* topic, byte* payload, unsigned int length) {
payload[length] = '\0';
// Serial.print(topic);
// Serial.print("=");
String strTopic = String(topic);
String strPayload = String((char*)payload);
// Serial.println(strPayload);
callback_iobroker(strTopic, strPayload);
}
////////////////////////////////////////////////////////////////////////////
void setup() {
! Ethernet.begin(mac, ip);
if (client.connect(id_connect)) {
client.publish("myhome/Kitchen/Change_Counter", "0");
client.subscribe("myhome/Kitchen/#");
}
}
/////////////////////////////////////////////////////////////////////////
void loop() {
client.loop();
if (!client.connected()) {
if (client.connect(id_connect)) {
client.subscribe("myhome/Kitchen/#");
}
}
}
! /////////////////////////////////От Брокера//////////////////////////////////////////////
void callback_iobroker(String strTopic, String strPayload){
if (strTopic == "0"){}
}</pubsubclient.h></ethernet.h></spi.h>
```` `Я так понимаю если все работает то Ваш скрипт должен был создать какие то топики в MQTT,
но в логах инфу видно
!

а вот в MQTT ничего нового!

-
Когда начинаю выкидывать еще больше ошибок, то одно не находит то другое…
Ну да ладно пойду рыть по форуму. Что бы выкидывать что то нужно понять что нужно а что не очень..
Спасиб.. `
Какие там могут быть ошибки? вот код оставил только mqtt! ````
#include <spi.h> // Ethernet shield
#include <ethernet.h> // Ethernet shield
#include <pubsubclient.h> // MQTT
! byte mac[] = { 0xC1, 0x7C, 0x38, 0x41, 0x89, 0x12 };
byte server[] = { 192, 168, 1, 190 }; //IP Брокера
byte ip[] = { 192, 168, 1, 167 }; //IP Клиента (Arduino)
! EthernetClient ethClient;
PubSubClient client(server, 1883, callback, ethClient);
#define id_connect "myhome-kitchen"
#define Prefix_subscribe "myhome/Kitchen/"
! ///////////////Объявляем порты ввода-вывода
! ////////////////////////////////////////////////////////////////////////////
void callback(char* topic, byte* payload, unsigned int length) {
payload[length] = '\0';
// Serial.print(topic);
// Serial.print("=");
String strTopic = String(topic);
String strPayload = String((char*)payload);
// Serial.println(strPayload);
callback_iobroker(strTopic, strPayload);
}
////////////////////////////////////////////////////////////////////////////
void setup() {
! Ethernet.begin(mac, ip);
if (client.connect(id_connect)) {
client.publish("myhome/Kitchen/Change_Counter", "0");
client.subscribe("myhome/Kitchen/#");
}
}
/////////////////////////////////////////////////////////////////////////
void loop() {
client.loop();
if (!client.connected()) {
if (client.connect(id_connect)) {
client.subscribe("myhome/Kitchen/#");
}
}
}
! /////////////////////////////////От Брокера//////////////////////////////////////////////
void callback_iobroker(String strTopic, String strPayload){
if (strTopic == "0"){}
}</pubsubclient.h></ethernet.h></spi.h>
```` `Я так понимаю если все работает то Ваш скрипт должен был создать какие то топики в MQTT,
но в логах инфу видно
! filename="88.JPG" index="1">~~
а вот в MQTT ничего нового! filename="99.JPG" index="0">~~ `
не там смотришь, смотри не в system а просто в mqtt.0 -
Какие там могут быть ошибки? вот код оставил только mqtt
! ````
#include <spi.h> // Ethernet shield
#include <ethernet.h> // Ethernet shield
#include <pubsubclient.h> // MQTT
! byte mac[] = { 0xC1, 0x7C, 0x38, 0x41, 0x89, 0x12 };
byte server[] = { 192, 168, 1, 190 }; //IP Брокера
byte ip[] = { 192, 168, 1, 167 }; //IP Клиента (Arduino)
! EthernetClient ethClient;
PubSubClient client(server, 1883, callback, ethClient);
#define id_connect "myhome-kitchen"
#define Prefix_subscribe "myhome/Kitchen/"
! ///////////////Объявляем порты ввода-вывода
! ////////////////////////////////////////////////////////////////////////////
void callback(char* topic, byte* payload, unsigned int length) {
payload[length] = '\0';
// Serial.print(topic);
// Serial.print("=");
String strTopic = String(topic);
String strPayload = String((char*)payload);
// Serial.println(strPayload);
callback_iobroker(strTopic, strPayload);
}
////////////////////////////////////////////////////////////////////////////
void setup() {
! Ethernet.begin(mac, ip);
if (client.connect(id_connect)) {
client.publish("myhome/Kitchen/Change_Counter", "0");
client.subscribe("myhome/Kitchen/#");
}
}
/////////////////////////////////////////////////////////////////////////
void loop() {
client.loop();
if (!client.connected()) {
if (client.connect(id_connect)) {
client.subscribe("myhome/Kitchen/#");
}
}
}
! /////////////////////////////////От Брокера//////////////////////////////////////////////
void callback_iobroker(String strTopic, String strPayload){
if (strTopic == "0"){}
}</pubsubclient.h></ethernet.h></spi.h>
```` `Я так понимаю если все работает то Ваш скрипт должен был создать какие то топики в MQTT,
но в логах инфу видно
! filename="88.JPG" index="2">~~
а вот в MQTT ничего нового! filename="99.JPG" index="1">~~
не там смотришь, смотри не в system а просто в mqtt.0а нету у меня просто mqtt.0
!

-
Я так понимаю если все работает то Ваш скрипт должен был создать какие то топики в MQTT,
но в логах инфу видно
! filename="88.JPG" index="2">~~
а вот в MQTT ничего нового! filename="99.JPG" index="1">~~
не там смотришь, смотри не в system а просто в mqtt.0а нету у меня просто mqtt.0
! filename="100.JPG" index="0">~~ `
Надеюсь обновлял? лучше рестартани вообще iobroker -
не там смотришь, смотри не в system а просто в mqtt.0 `
а нету у меня просто mqtt.0
! filename="100.JPG" index="0">~~
Надеюсь обновлял? лучше рестартани вообще iobrokerРестартанул, не появилось,
удалил MQQT драйвер, поставил заново все равно только system((
:oops: :(
-
а нету у меня просто mqtt.0
! filename="100.JPG" index="0">~~
Надеюсь обновлял? лучше рестартани вообще iobrokerРестартанул, не появилось,
удалил MQQT драйвер, поставил заново все равно только system((
:oops: :( `
По фильтру Detskay тоже ничего? у тебя ардуина публикует данные при старте?client.publish("myhome/Kitchen/Change_Counter", "0"); //публикует на iobroker если его нет создает объект.
-
Надеюсь обновлял? лучше рестартани вообще iobroker `
Рестартанул, не появилось,
удалил MQQT драйвер, поставил заново все равно только system((
:oops: :( `
По фильтру Detskay тоже ничего? у тебя ардуина публикует данные при старте?client.publish("myhome/Kitchen/Change_Counter", "0"); //публикует на iobroker если его нет создает объект. `
Вот где собака порылась….
Выключил, включил ардуину и все появилось.
Спасибо за терпение..
-
Похоже проблема в подключении к локалке, пока что не вижу шилда в сети …
Спасибо, сейчас попробую голый скетч залить.
На всякий случай [http://forum.iobroker.net/viewtopic.php?f=33&t=1609](http://forum.iobroker.net/viewtopic.php?f=33&t=1609), мало ли)не посмотришь где я косячу ?
! ````
#include <spi.h> // Ethernet shield
#include <ethernet.h> // Ethernet shield
#include <pubsubclient.h> // MQTT
#include <virtualwire.h>
#include <easytransfervirtualwire.h>
#include <wire.h>
#include <liquidcrystal_i2c.h>
LiquidCrystal_I2C lcd(0x27,16,2);
///
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte server[] = {192, 168, 0, 102}; //IP Брокера
IPAddress ip(192, 168, 0, 112);
! EthernetClient ethClient;
PubSubClient client(server, 1883, callback, ethClient);
#define id_connect "UNO_1"
#define Prefix_subscribe "UNO/Detskaya/"
! ////////////////////////////////////////////////////////////////////////////
void callback(char* topic, byte* payload, unsigned int length) {
payload[length] = '\0';
// Serial.print(topic);
// Serial.print("=");
String strTopic = String(topic);
String strPayload = String((char*)payload);
// Serial.println(strPayload);
callback_iobroker(strTopic, strPayload);
}
! ////////////////////////////////////////////////////////////////////////////
//create object
EasyTransferVirtualWire ET;
! struct SEND_DATA_STRUCTURE
{
//put your variable definitions here for the data you want to send
//THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO
//Struct can'e be bigger then 26 bytes for VirtualWire version
byte ID;
long TemperatureBMP = 0;
long TemperatureDS = 0;
long Pressure = 0;
! };
! //give a name to the group of data
SEND_DATA_STRUCTURE mydata;
byte ID;
long TemperatureBMP = 0;
long TemperatureDS = 0;
long Pressure = 0;
! void setup(){
//start the library, pass in the data details
ET.begin(details(mydata));
Serial.begin(9600);
// Initialise the IO and ISR
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000); // Bits per sec Скорость порта
vw_set_rx_pin(8); //порт к которому подключен приемник 433 мГц
vw_rx_start(); // Start the receiver PLL runninglcd.init(); // Инициализируем экран
lcd.backlight(); //Включаем подсветку! Ethernet.begin(mac, ip);
if (client.connect(id_connect)) {
client.publish("UNO/Detskaya/Temp", "0");
client.publish("UNO/Detskaya/Pressure", "0");
client.subscribe("UNO/Detskaya/#");
}}
! void loop(){
//check and see if a data packet has come in.
if(ET.receiveData()){
//this is how you access the variables. [name of the group].[variable name]
//since we have data, we will blink it out.
if (mydata.ID == 1)
{
int TempBMP= (mydata.TemperatureBMP);
TempBMP = ((TempBMP)/100);
float TempDS= (mydata.TemperatureDS);
TempDS = ((TempDS)/100);
float Pressure2= (mydata.Pressure);
Pressure2 = ((Pressure2)/100);client.loop(); if (!client.connected()) { if (client.connect(id_connect)) { client.publish("UNO/Detskaya/Temp", TempDS); client.publish("UNO/Detskaya/Pressure", Pressure2); client.subscribe("UNO/Detskaya/#"); } }// Serial.print(TempBMP); //Вывод информации в COM порт
// Serial.println(", TempBMP:");
// Температуру в градусах Цельсия
Serial.print(TempDS);
Serial.print(" C°,");
// Температуру в градусах Цельсия
Serial.print(Pressure2);
Serial.print(" mm/");
//Выводим давление в мм.рт ст
Serial.println();
Serial.println();
delay(1000);//Вывод информации на LCD Экранlcd.clear();//очищаем экран от старых данных
lcd.setCursor(0,0);//Устанавливаем курсор в начало первой строки
lcd.print("T1:");//Выводим первую температуру
lcd.print(TempDS);
lcd.setCursor(8,0);// устанавливаем курсор на 8 позицию в первой строке
lcd.print(" T2:");//Выводим вторую температуру
lcd.print(TempBMP);
//аналогично выводим вторую строку
lcd.setCursor(0,1);//Устанавливаем курсор в начало второй строки
lcd.print("Davlenie:");//Выводим давление
lcd.print(Pressure2);
}}
! }</liquidcrystal_i2c.h></wire.h></easytransfervirtualwire.h></virtualwire.h></pubsubclient.h></ethernet.h></spi.h>
Ругается - >! priemnik433_E2.ino: In function 'void callback(char*, byte*, unsigned int)': >! priemnik433_E2:28: error: 'callback_iobroker' was not declared in this scope >! priemnik433_E2.ino: In function 'void loop()': >! priemnik433_E2:96: error: no matching function for call to 'PubSubClient::publish(const char [18], float&)' >! priemnik433_E2.ino:96:47: note: candidates are: >! In file included from priemnik433_E2.ino:3:0: >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: boolean PubSubClient::publish(const char*, const char*) >! boolean publish(const char* topic, const char* payload); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: no known conversion for argument 2 from 'float' to 'const char*' >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: boolean PubSubClient::publish(const char*, const char*, boolean) >! boolean publish(const char* topic, const char* payload, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int, boolean) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: candidate expects 4 arguments, 2 provided >! priemnik433_E2:97: error: no matching function for call to 'PubSubClient::publish(const char [22], float&)' >! priemnik433_E2.ino:97:55: note: candidates are: >! In file included from priemnik433_E2.ino:3:0: >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: boolean PubSubClient::publish(const char*, const char*) >! boolean publish(const char* topic, const char* payload); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: no known conversion for argument 2 from 'float' to 'const char*' >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: boolean PubSubClient::publish(const char*, const char*, boolean) >! boolean publish(const char* topic, const char* payload, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int, boolean) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: candidate expects 4 arguments, 2 provided >! 'callback_iobroker' was not declared in this scope -
Похоже проблема в подключении к локалке, пока что не вижу шилда в сети …
Спасибо, сейчас попробую голый скетч залить.
На всякий случай [http://forum.iobroker.net/viewtopic.php?f=33&t=1609](http://forum.iobroker.net/viewtopic.php?f=33&t=1609), мало ли)не посмотришь где я косячу ?
! ````
#include <spi.h> // Ethernet shield
#include <ethernet.h> // Ethernet shield
#include <pubsubclient.h> // MQTT
#include <virtualwire.h>
#include <easytransfervirtualwire.h>
#include <wire.h>
#include <liquidcrystal_i2c.h>
LiquidCrystal_I2C lcd(0x27,16,2);
///
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte server[] = {192, 168, 0, 102}; //IP Брокера
IPAddress ip(192, 168, 0, 112);
! EthernetClient ethClient;
PubSubClient client(server, 1883, callback, ethClient);
#define id_connect "UNO_1"
#define Prefix_subscribe "UNO/Detskaya/"
! ////////////////////////////////////////////////////////////////////////////
void callback(char* topic, byte* payload, unsigned int length) {
payload[length] = '\0';
// Serial.print(topic);
// Serial.print("=");
String strTopic = String(topic);
String strPayload = String((char*)payload);
// Serial.println(strPayload);
callback_iobroker(strTopic, strPayload);
}
! ////////////////////////////////////////////////////////////////////////////
//create object
EasyTransferVirtualWire ET;
! struct SEND_DATA_STRUCTURE
{
//put your variable definitions here for the data you want to send
//THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO
//Struct can'e be bigger then 26 bytes for VirtualWire version
byte ID;
long TemperatureBMP = 0;
long TemperatureDS = 0;
long Pressure = 0;
! };
! //give a name to the group of data
SEND_DATA_STRUCTURE mydata;
byte ID;
long TemperatureBMP = 0;
long TemperatureDS = 0;
long Pressure = 0;
! void setup(){
//start the library, pass in the data details
ET.begin(details(mydata));
Serial.begin(9600);
// Initialise the IO and ISR
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000); // Bits per sec Скорость порта
vw_set_rx_pin(8); //порт к которому подключен приемник 433 мГц
vw_rx_start(); // Start the receiver PLL runninglcd.init(); // Инициализируем экран
lcd.backlight(); //Включаем подсветку! Ethernet.begin(mac, ip);
if (client.connect(id_connect)) {
client.publish("UNO/Detskaya/Temp", "0");
client.publish("UNO/Detskaya/Pressure", "0");
client.subscribe("UNO/Detskaya/#");
}}
! void loop(){
//check and see if a data packet has come in.
if(ET.receiveData()){
//this is how you access the variables. [name of the group].[variable name]
//since we have data, we will blink it out.
if (mydata.ID == 1)
{
int TempBMP= (mydata.TemperatureBMP);
TempBMP = ((TempBMP)/100);
float TempDS= (mydata.TemperatureDS);
TempDS = ((TempDS)/100);
float Pressure2= (mydata.Pressure);
Pressure2 = ((Pressure2)/100);client.loop(); if (!client.connected()) { if (client.connect(id_connect)) { client.publish("UNO/Detskaya/Temp", TempDS); client.publish("UNO/Detskaya/Pressure", Pressure2); client.subscribe("UNO/Detskaya/#"); } }// Serial.print(TempBMP); //Вывод информации в COM порт
// Serial.println(", TempBMP:");
// Температуру в градусах Цельсия
Serial.print(TempDS);
Serial.print(" C°,");
// Температуру в градусах Цельсия
Serial.print(Pressure2);
Serial.print(" mm/");
//Выводим давление в мм.рт ст
Serial.println();
Serial.println();
delay(1000);//Вывод информации на LCD Экранlcd.clear();//очищаем экран от старых данных
lcd.setCursor(0,0);//Устанавливаем курсор в начало первой строки
lcd.print("T1:");//Выводим первую температуру
lcd.print(TempDS);
lcd.setCursor(8,0);// устанавливаем курсор на 8 позицию в первой строке
lcd.print(" T2:");//Выводим вторую температуру
lcd.print(TempBMP);
//аналогично выводим вторую строку
lcd.setCursor(0,1);//Устанавливаем курсор в начало второй строки
lcd.print("Davlenie:");//Выводим давление
lcd.print(Pressure2);
}}
! }</liquidcrystal_i2c.h></wire.h></easytransfervirtualwire.h></virtualwire.h></pubsubclient.h></ethernet.h></spi.h>
Ругается - >! priemnik433_E2.ino: In function 'void callback(char*, byte*, unsigned int)': >! priemnik433_E2:28: error: 'callback_iobroker' was not declared in this scope >! priemnik433_E2.ino: In function 'void loop()': >! priemnik433_E2:96: error: no matching function for call to 'PubSubClient::publish(const char [18], float&)' >! priemnik433_E2.ino:96:47: note: candidates are: >! In file included from priemnik433_E2.ino:3:0: >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: boolean PubSubClient::publish(const char*, const char*) >! boolean publish(const char* topic, const char* payload); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: no known conversion for argument 2 from 'float' to 'const char*' >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: boolean PubSubClient::publish(const char*, const char*, boolean) >! boolean publish(const char* topic, const char* payload, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int, boolean) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: candidate expects 4 arguments, 2 provided >! priemnik433_E2:97: error: no matching function for call to 'PubSubClient::publish(const char [22], float&)' >! priemnik433_E2.ino:97:55: note: candidates are: >! In file included from priemnik433_E2.ino:3:0: >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: boolean PubSubClient::publish(const char*, const char*) >! boolean publish(const char* topic, const char* payload); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: no known conversion for argument 2 from 'float' to 'const char*' >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: boolean PubSubClient::publish(const char*, const char*, boolean) >! boolean publish(const char* topic, const char* payload, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int, boolean) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: candidate expects 4 arguments, 2 provided >! 'callback_iobroker' was not declared in this scope `Типы переменных передаваемые в функцию не совпадают.
Пробуй так
if (!client.connected()) { if (client.connect(id_connect)) { char b[5]; String char_TempDS = String(TempDS); char_TempDS.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); String char_Pressure2 = String(Pressure2); char_Pressure2.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); client.subscribe("UNO/Detskaya/#"); } } -
На всякий случай http://forum.iobroker.net/viewtopic.php?f=33&t=1609, мало ли) `
не посмотришь где я косячу ?
! ````
#include <spi.h> // Ethernet shield
#include <ethernet.h> // Ethernet shield
#include <pubsubclient.h> // MQTT
#include <virtualwire.h>
#include <easytransfervirtualwire.h>
#include <wire.h>
#include <liquidcrystal_i2c.h>
LiquidCrystal_I2C lcd(0x27,16,2);
///
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte server[] = {192, 168, 0, 102}; //IP Брокера
IPAddress ip(192, 168, 0, 112);
! EthernetClient ethClient;
PubSubClient client(server, 1883, callback, ethClient);
#define id_connect "UNO_1"
#define Prefix_subscribe "UNO/Detskaya/"
! ////////////////////////////////////////////////////////////////////////////
void callback(char* topic, byte* payload, unsigned int length) {
payload[length] = '\0';
// Serial.print(topic);
// Serial.print("=");
String strTopic = String(topic);
String strPayload = String((char*)payload);
// Serial.println(strPayload);
callback_iobroker(strTopic, strPayload);
}
! ////////////////////////////////////////////////////////////////////////////
//create object
EasyTransferVirtualWire ET;
! struct SEND_DATA_STRUCTURE
{
//put your variable definitions here for the data you want to send
//THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO
//Struct can'e be bigger then 26 bytes for VirtualWire version
byte ID;
long TemperatureBMP = 0;
long TemperatureDS = 0;
long Pressure = 0;
! };
! //give a name to the group of data
SEND_DATA_STRUCTURE mydata;
byte ID;
long TemperatureBMP = 0;
long TemperatureDS = 0;
long Pressure = 0;
! void setup(){
//start the library, pass in the data details
ET.begin(details(mydata));
Serial.begin(9600);
// Initialise the IO and ISR
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000); // Bits per sec Скорость порта
vw_set_rx_pin(8); //порт к которому подключен приемник 433 мГц
vw_rx_start(); // Start the receiver PLL runninglcd.init(); // Инициализируем экран
lcd.backlight(); //Включаем подсветку! Ethernet.begin(mac, ip);
if (client.connect(id_connect)) {
client.publish("UNO/Detskaya/Temp", "0");
client.publish("UNO/Detskaya/Pressure", "0");
client.subscribe("UNO/Detskaya/#");
}}
! void loop(){
//check and see if a data packet has come in.
if(ET.receiveData()){
//this is how you access the variables. [name of the group].[variable name]
//since we have data, we will blink it out.
if (mydata.ID == 1)
{
int TempBMP= (mydata.TemperatureBMP);
TempBMP = ((TempBMP)/100);
float TempDS= (mydata.TemperatureDS);
TempDS = ((TempDS)/100);
float Pressure2= (mydata.Pressure);
Pressure2 = ((Pressure2)/100);client.loop(); if (!client.connected()) { if (client.connect(id_connect)) { client.publish("UNO/Detskaya/Temp", TempDS); client.publish("UNO/Detskaya/Pressure", Pressure2); client.subscribe("UNO/Detskaya/#"); } }// Serial.print(TempBMP); //Вывод информации в COM порт
// Serial.println(", TempBMP:");
// Температуру в градусах Цельсия
Serial.print(TempDS);
Serial.print(" C°,");
// Температуру в градусах Цельсия
Serial.print(Pressure2);
Serial.print(" mm/");
//Выводим давление в мм.рт ст
Serial.println();
Serial.println();
delay(1000);//Вывод информации на LCD Экранlcd.clear();//очищаем экран от старых данных
lcd.setCursor(0,0);//Устанавливаем курсор в начало первой строки
lcd.print("T1:");//Выводим первую температуру
lcd.print(TempDS);
lcd.setCursor(8,0);// устанавливаем курсор на 8 позицию в первой строке
lcd.print(" T2:");//Выводим вторую температуру
lcd.print(TempBMP);
//аналогично выводим вторую строку
lcd.setCursor(0,1);//Устанавливаем курсор в начало второй строки
lcd.print("Davlenie:");//Выводим давление
lcd.print(Pressure2);
}}
! }</liquidcrystal_i2c.h></wire.h></easytransfervirtualwire.h></virtualwire.h></pubsubclient.h></ethernet.h></spi.h>
Ругается - >! priemnik433_E2.ino: In function 'void callback(char*, byte*, unsigned int)': >! priemnik433_E2:28: error: 'callback_iobroker' was not declared in this scope >! priemnik433_E2.ino: In function 'void loop()': >! priemnik433_E2:96: error: no matching function for call to 'PubSubClient::publish(const char [18], float&)' >! priemnik433_E2.ino:96:47: note: candidates are: >! In file included from priemnik433_E2.ino:3:0: >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: boolean PubSubClient::publish(const char*, const char*) >! boolean publish(const char* topic, const char* payload); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: no known conversion for argument 2 from 'float' to 'const char*' >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: boolean PubSubClient::publish(const char*, const char*, boolean) >! boolean publish(const char* topic, const char* payload, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int, boolean) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: candidate expects 4 arguments, 2 provided >! priemnik433_E2:97: error: no matching function for call to 'PubSubClient::publish(const char [22], float&)' >! priemnik433_E2.ino:97:55: note: candidates are: >! In file included from priemnik433_E2.ino:3:0: >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: boolean PubSubClient::publish(const char*, const char*) >! boolean publish(const char* topic, const char* payload); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: no known conversion for argument 2 from 'float' to 'const char*' >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: boolean PubSubClient::publish(const char*, const char*, boolean) >! boolean publish(const char* topic, const char* payload, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int, boolean) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: candidate expects 4 arguments, 2 provided >! 'callback_iobroker' was not declared in this scope `Типы переменных передаваемые в функцию не совпадают.
Пробуй так
if (!client.connected()) { if (client.connect(id_connect)) { char b[5]; String char_TempDS = String(TempDS); char_TempDS.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); String char_Pressure2 = String(Pressure2); char_Pressure2.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); client.subscribe("UNO/Detskaya/#"); } } ```` `Остались только эти ошибки
priemnik433_E2.ino: In function 'void callback(char*, byte*, unsigned int)':
priemnik433_E2:28: error: 'callback_iobroker' was not declared in this scope
'callback_iobroker' was not declared in this scope
но судя по всему дело все в тех же переменных
-
не посмотришь где я косячу ?
! ````
#include <spi.h> // Ethernet shield
#include <ethernet.h> // Ethernet shield
#include <pubsubclient.h> // MQTT
#include <virtualwire.h>
#include <easytransfervirtualwire.h>
#include <wire.h>
#include <liquidcrystal_i2c.h>
LiquidCrystal_I2C lcd(0x27,16,2);
///
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte server[] = {192, 168, 0, 102}; //IP Брокера
IPAddress ip(192, 168, 0, 112);
! EthernetClient ethClient;
PubSubClient client(server, 1883, callback, ethClient);
#define id_connect "UNO_1"
#define Prefix_subscribe "UNO/Detskaya/"
! ////////////////////////////////////////////////////////////////////////////
void callback(char* topic, byte* payload, unsigned int length) {
payload[length] = '\0';
// Serial.print(topic);
// Serial.print("=");
String strTopic = String(topic);
String strPayload = String((char*)payload);
// Serial.println(strPayload);
callback_iobroker(strTopic, strPayload);
}
! ////////////////////////////////////////////////////////////////////////////
//create object
EasyTransferVirtualWire ET;
! struct SEND_DATA_STRUCTURE
{
//put your variable definitions here for the data you want to send
//THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO
//Struct can'e be bigger then 26 bytes for VirtualWire version
byte ID;
long TemperatureBMP = 0;
long TemperatureDS = 0;
long Pressure = 0;
! };
! //give a name to the group of data
SEND_DATA_STRUCTURE mydata;
byte ID;
long TemperatureBMP = 0;
long TemperatureDS = 0;
long Pressure = 0;
! void setup(){
//start the library, pass in the data details
ET.begin(details(mydata));
Serial.begin(9600);
// Initialise the IO and ISR
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000); // Bits per sec Скорость порта
vw_set_rx_pin(8); //порт к которому подключен приемник 433 мГц
vw_rx_start(); // Start the receiver PLL runninglcd.init(); // Инициализируем экран
lcd.backlight(); //Включаем подсветку! Ethernet.begin(mac, ip);
if (client.connect(id_connect)) {
client.publish("UNO/Detskaya/Temp", "0");
client.publish("UNO/Detskaya/Pressure", "0");
client.subscribe("UNO/Detskaya/#");
}}
! void loop(){
//check and see if a data packet has come in.
if(ET.receiveData()){
//this is how you access the variables. [name of the group].[variable name]
//since we have data, we will blink it out.
if (mydata.ID == 1)
{
int TempBMP= (mydata.TemperatureBMP);
TempBMP = ((TempBMP)/100);
float TempDS= (mydata.TemperatureDS);
TempDS = ((TempDS)/100);
float Pressure2= (mydata.Pressure);
Pressure2 = ((Pressure2)/100);client.loop(); if (!client.connected()) { if (client.connect(id_connect)) { client.publish("UNO/Detskaya/Temp", TempDS); client.publish("UNO/Detskaya/Pressure", Pressure2); client.subscribe("UNO/Detskaya/#"); } }// Serial.print(TempBMP); //Вывод информации в COM порт
// Serial.println(", TempBMP:");
// Температуру в градусах Цельсия
Serial.print(TempDS);
Serial.print(" C°,");
// Температуру в градусах Цельсия
Serial.print(Pressure2);
Serial.print(" mm/");
//Выводим давление в мм.рт ст
Serial.println();
Serial.println();
delay(1000);//Вывод информации на LCD Экранlcd.clear();//очищаем экран от старых данных
lcd.setCursor(0,0);//Устанавливаем курсор в начало первой строки
lcd.print("T1:");//Выводим первую температуру
lcd.print(TempDS);
lcd.setCursor(8,0);// устанавливаем курсор на 8 позицию в первой строке
lcd.print(" T2:");//Выводим вторую температуру
lcd.print(TempBMP);
//аналогично выводим вторую строку
lcd.setCursor(0,1);//Устанавливаем курсор в начало второй строки
lcd.print("Davlenie:");//Выводим давление
lcd.print(Pressure2);
}}
! }</liquidcrystal_i2c.h></wire.h></easytransfervirtualwire.h></virtualwire.h></pubsubclient.h></ethernet.h></spi.h>
Ругается - >! priemnik433_E2.ino: In function 'void callback(char*, byte*, unsigned int)': >! priemnik433_E2:28: error: 'callback_iobroker' was not declared in this scope >! priemnik433_E2.ino: In function 'void loop()': >! priemnik433_E2:96: error: no matching function for call to 'PubSubClient::publish(const char [18], float&)' >! priemnik433_E2.ino:96:47: note: candidates are: >! In file included from priemnik433_E2.ino:3:0: >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: boolean PubSubClient::publish(const char*, const char*) >! boolean publish(const char* topic, const char* payload); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: no known conversion for argument 2 from 'float' to 'const char*' >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: boolean PubSubClient::publish(const char*, const char*, boolean) >! boolean publish(const char* topic, const char* payload, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int, boolean) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: candidate expects 4 arguments, 2 provided >! priemnik433_E2:97: error: no matching function for call to 'PubSubClient::publish(const char [22], float&)' >! priemnik433_E2.ino:97:55: note: candidates are: >! In file included from priemnik433_E2.ino:3:0: >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: boolean PubSubClient::publish(const char*, const char*) >! boolean publish(const char* topic, const char* payload); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:117:12: note: no known conversion for argument 2 from 'float' to 'const char*' >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: boolean PubSubClient::publish(const char*, const char*, boolean) >! boolean publish(const char* topic, const char* payload, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:118:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:119:12: note: candidate expects 3 arguments, 2 provided >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int, boolean) >! boolean publish(const char* topic, const uint8_t * payload, unsigned int plength, boolean retained); >! ^ >! C:\Users\Bond-PC\Documents\Arduino\libraries\PubSubClient\src/PubSubClient.h:120:12: note: candidate expects 4 arguments, 2 provided >! 'callback_iobroker' was not declared in this scope `Типы переменных передаваемые в функцию не совпадают.
Пробуй так
if (!client.connected()) { if (client.connect(id_connect)) { char b[5]; String char_TempDS = String(TempDS); char_TempDS.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); String char_Pressure2 = String(Pressure2); char_Pressure2.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); client.subscribe("UNO/Detskaya/#"); } } ```` `Остались только эти ошибки
priemnik433_E2.ino: In function 'void callback(char*, byte*, unsigned int)':
priemnik433_E2:28: error: 'callback_iobroker' was not declared in this scope
'callback_iobroker' was not declared in this scope
но судя по всему дело все в тех же переменных `
Ну ругается же на 28 строку - callback_iobroker(strTopic, strPayload);Где в коде сама функция, вызываешь функуию callback_iobroker(strTopic, strPayload); а самой функции нету
-
Типы переменных передаваемые в функцию не совпадают.
Пробуй так
if (!client.connected()) { if (client.connect(id_connect)) { char b[5]; String char_TempDS = String(TempDS); char_TempDS.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); String char_Pressure2 = String(Pressure2); char_Pressure2.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); client.subscribe("UNO/Detskaya/#"); } } ```` `Остались только эти ошибки
priemnik433_E2.ino: In function 'void callback(char*, byte*, unsigned int)':
priemnik433_E2:28: error: 'callback_iobroker' was not declared in this scope
'callback_iobroker' was not declared in this scope
но судя по всему дело все в тех же переменных `
Ну ругается же на 28 строку - callback_iobroker(strTopic, strPayload);Где в коде сама функция, вызываешь функуию callback_iobroker(strTopic, strPayload); а самой функции нету `
как раз хотел спросить что делает эта функция
/////////////////////////////////От Брокера////////////////////////////////////////////// void callback_iobroker(String strTopic, String strPayload){ if (strTopic == "0"){ } }добавил, ошибок больше стало аааааааа….........
6907_bildschirmfoto_2018-11-13_um_11.24.02.png
6907_bildschirmfoto_2018-11-13_um_11.23.52.png
6907_bildschirmfoto_2018-11-13_um_11.22.48.png
6907_bildschirmfoto_2018-11-13_um_11.22.24.png
6907_bildschirmfoto_2018-11-13_um_11.22.08.png
6907_bildschirmfoto_2018-11-13_um_11.25.35.png -
как раз хотел спросить что делает эта функция
/////////////////////////////////От Брокера////////////////////////////////////////////// void callback_iobroker(String strTopic, String strPayload){ if (strTopic == "0"){ } }добавил, ошибок больше стало аааааааа…......... `
Эта функция принимает strTopic от iobroker. -
как раз хотел спросить что делает эта функция
/////////////////////////////////От Брокера////////////////////////////////////////////// void callback_iobroker(String strTopic, String strPayload){ if (strTopic == "0"){ } }добавил, ошибок больше стало аааааааа….........
Эта функция принимает strTopic от iobroker.Для примера:
/////////////////////////////////От Брокера////////////////////////////////////////////// void callback_iobroker(String strTopic, String strPayload){ if (strTopic == "myhome/Lighting/BedRoom_Main") { if (strPayload == "0") { digitalWrite(23, 0); delay(pause); client.publish("myhome/Lighting/BedRoom_Main", "0"); } else if (strPayload == "1") { digitalWrite(23, 1); delay(pause); client.publish("myhome/Lighting/BedRoom_Main", "1"); } } -
как раз хотел спросить что делает эта функция
/////////////////////////////////От Брокера////////////////////////////////////////////// void callback_iobroker(String strTopic, String strPayload){ if (strTopic == "0"){ } }добавил, ошибок больше стало аааааааа….........
Эта функция принимает strTopic от iobroker.Для примера:
/////////////////////////////////От Брокера////////////////////////////////////////////// void callback_iobroker(String strTopic, String strPayload){ if (strTopic == "myhome/Lighting/BedRoom_Main") { if (strPayload == "0") { digitalWrite(23, 0); delay(pause); client.publish("myhome/Lighting/BedRoom_Main", "0"); } else if (strPayload == "1") { digitalWrite(23, 1); delay(pause); client.publish("myhome/Lighting/BedRoom_Main", "1"); } } ```` `как понял это обратная связь, если на брокере значение поменять она передает его ардуине так ??
я эту функцию временно закоментил и залил скетч.
объекты создались но данные не приходят везде стоит - 0
!

-
как понял это обратная связь, если на брокере значение поменять она передает его ардуине так ??
я эту функцию временно закоментил и залил скетч.
объекты создались но данные не приходят везде стоит - 0
! filename="77.JPG" index="0">~~ `
Правильно понял, это callback.а данные у тебя и не будут передаватся брокеру (в коду у тебя так написано), только если ты кабель из ардуины выдернишь и заново вставишь, тогда передадутся данные в iobroker.
добавь строки в общий луп
char b[5];
String char_TempDS = String(TempDS);
char_TempDS.toCharArray(b,5);
client.publish("UNO/Detskaya/Temp", b);
String char_Pressure2 = String(Pressure2);
char_Pressure2.toCharArray(b,5);
client.publish("UNO/Detskaya/Temp", b);
-
как понял это обратная связь, если на брокере значение поменять она передает его ардуине так ??
я эту функцию временно закоментил и залил скетч.
объекты создались но данные не приходят везде стоит - 0
! filename="77.JPG" index="0">~~ `
Правильно понял, это callback.а данные у тебя и не будут передаватся брокеру (в коду у тебя так написано), только если ты кабель из ардуины выдернишь и заново вставишь, тогда передадутся данные в iobroker.
добавь строки в общий луп
char b[5];
String char_TempDS = String(TempDS);
char_TempDS.toCharArray(b,5);
client.publish("UNO/Detskaya/Temp", b);
String char_Pressure2 = String(Pressure2);
char_Pressure2.toCharArray(b,5);
client.publish("UNO/Detskaya/Temp", b); `
А разве сейчас не так ?
void loop(){ //check and see if a data packet has come in. if(ET.receiveData()){ //this is how you access the variables. [name of the group].[variable name] //since we have data, we will blink it out. if (mydata.ID == 1) { int TempBMP= (mydata.TemperatureBMP); TempBMP = ((TempBMP)/100); float TempDS= (mydata.TemperatureDS); TempDS = ((TempDS)/100); float Pressure2= (mydata.Pressure); Pressure2 = ((Pressure2)/100); client.loop(); if (!client.connected()) { if (client.connect(id_connect)) { char b[5]; String char_TempDS = String(TempDS); char_TempDS.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); String char_Pressure2 = String(Pressure2); char_Pressure2.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); client.subscribe("UNO/Detskaya/#"); } } -
как понял это обратная связь, если на брокере значение поменять она передает его ардуине так ??
я эту функцию временно закоментил и залил скетч.
объекты создались но данные не приходят везде стоит - 0
! filename="77.JPG" index="0">~~ `
Правильно понял, это callback.а данные у тебя и не будут передаватся брокеру (в коду у тебя так написано), только если ты кабель из ардуины выдернишь и заново вставишь, тогда передадутся данные в iobroker.
добавь строки в общий луп
char b[5];
String char_TempDS = String(TempDS);
char_TempDS.toCharArray(b,5);
client.publish("UNO/Detskaya/Temp", b);
String char_Pressure2 = String(Pressure2);
char_Pressure2.toCharArray(b,5);
client.publish("UNO/Detskaya/Temp", b); `
А разве сейчас не так ?
void loop(){ //check and see if a data packet has come in. if(ET.receiveData()){ //this is how you access the variables. [name of the group].[variable name] //since we have data, we will blink it out. if (mydata.ID == 1) { int TempBMP= (mydata.TemperatureBMP); TempBMP = ((TempBMP)/100); float TempDS= (mydata.TemperatureDS); TempDS = ((TempDS)/100); float Pressure2= (mydata.Pressure); Pressure2 = ((Pressure2)/100); client.loop(); if (!client.connected()) { if (client.connect(id_connect)) { char b[5]; String char_TempDS = String(TempDS); char_TempDS.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); String char_Pressure2 = String(Pressure2); char_Pressure2.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); client.subscribe("UNO/Detskaya/#"); } } ```` `нет, не ужели нельзя чуток подумать и вникнуть в код?
void loop(){ char b[5]; String char_TempDS = String(TempDS); char_TempDS.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); String char_Pressure2 = String(Pressure2); char_Pressure2.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); //check and see if a data packet has come in. if(ET.receiveData()){ //this is how you access the variables. [name of the group].[variable name] //since we have data, we will blink it out. if (mydata.ID == 1) { int TempBMP= (mydata.TemperatureBMP); TempBMP = ((TempBMP)/100); float TempDS= (mydata.TemperatureDS); TempDS = ((TempDS)/100); float Pressure2= (mydata.Pressure); Pressure2 = ((Pressure2)/100); client.loop(); if (!client.connected()) { if (client.connect(id_connect)) { String char_TempDS = String(TempDS); char_TempDS.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); String char_Pressure2 = String(Pressure2); char_Pressure2.toCharArray(b,5); client.publish("UNO/Detskaya/Temp", b); client.subscribe("UNO/Detskaya/#"); } }
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login