NEWS
Arduino+Mqtt FAQ для начинающих.
-
Похоже проблема в подключении к локалке, пока что не вижу шилда в сети …
Спасибо, сейчас попробую голый скетч залить.
На всякий случай [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/#"); } } -
Правильно понял, это 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/#"); } } ```` `Пришлось еще объявить в начале программы (глобально)
float TempDS и float Pressure2,
иначе выдавал ошибку
но легче не стало на брокер ничего не передает.
на LCD всё отображает. :roll: :?
-
Пришлось еще объявить в начале программы (глобально)
float TempDS и float Pressure2,
иначе выдавал ошибку
но легче не стало на брокер ничего не передает.
на LCD всё отображает. :roll: :? `
замени строки :#define id_connect "UNO_1"
#define Prefix_subscribe "UNO/Detskaya/"
на
#define id_connect "UNO-Detskaya"
#define Prefix_subscribe "UNO/Detskaya/"
-
Похоже проблема в подключении к локалке, пока что не вижу шилда в сети …
Спасибо, сейчас попробую голый скетч залить.
На всякий случай [http://forum.iobroker.net/viewtopic.php?f=33&t=1609](http://forum.iobroker.net/viewtopic.php?f=33&t=1609), мало ли)Проверил резисторную сборку стоят резы на 250 Om
И еще, подключил и комп и сеть, раскомментировал отладочные строки
тут Serial.print(topic);
и
тутvoid callback_iobroker(String strTopic, String strPayload){
if (strTopic == "UNO/Detskaya/Temp") {
Serial.println(strPayload);
Так вот в СОМ порт кроме температуры больше ничего не сыпится, по соединению вообще ноль информации.
P.S. Вообще странно, потому что при заливке стандартного скетча вэб сервера, все работает прекрасно :roll: :?:
-
подскажите, что могу делать не так?
данные на брокер приходят исправно. но я не могу ничего отправить обратно.
беру к примеру выключатель, лампочку, прописываю их на топик их состояния, нажимаю выключатель, на экране лампочки зажигаются, гаснут. а данные от брокера на mqtt сервер не уходят.
-
подскажите, что могу делать не так?
данные на брокер приходят исправно. но я не могу ничего отправить обратно.
беру к примеру выключатель, лампочку, прописываю их на топик их состояния, нажимаю выключатель, на экране лампочки зажигаются, гаснут. а данные от брокера на mqtt сервер не уходят. ` вы что то путаете наверное. Иоб выступает в качестве сервера mqtt. Он отправит значение всем подписавшимся на топик клиентам.
-
вы что то путаете наверное. Иоб выступает в качестве сервера mqtt. Он отправит значение всем подписавшимся на топик клиентам.
я ничего не путаю. в качестве сервера у меня стоит mosquitto. Иоб выступает в качестве клиента. С проблемой разобрался :). По умолчанию в клиенте mqtt не стоит галочка "publish" (на топике).
сейчас возник вопрос. можно ли отключить получение своих же сообщений? т.е. я публикую сообщение, и оно тут же приходит мне обратно.
-
instalator - Доброго времени! Есть вопрос по скетчу - скомпилировался, загрузился… работает. НО! температуру кажет -127, типа датчика не видит, а это не правда, запускаем типовой ТЕстер от Ардуино 1.0.6 - датчик есть температуру кажет.
Dallas Temperature IC Control Library Demo
Locating devices...Found 1 devices.
Parasite power is: ON
Found device 0 with address: 2880E93A04000010
Setting resolution to 9
Resolution actually set to: 9
Requesting temperatures...DONE
Temperature for device: 0
Temp C: 25.00 Temp F: 77.00
Requesting temperatures...DONE
Temperature for device: 0
Temp C: 25.00 Temp F: 77.00
Requesting temperatures...DONE
Temperature for device: 0
Temp C: 25.00 Temp F: 77.00
Как видно - адрес найден...
Вбиваем его сюда:
#define ONE_WIRE_BUS 8
#define TEMPERATURE_PRECISION 9 - сам добавил, без нее то же -127
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature DS_sensors(&oneWire);
// 28 80 E9 3A 04 00 00 10
DeviceAddress addr_T1 = { 0x28, 0x80, 0xE9, 0x3A, 0x04, 0x00, 0x00, 0x10 };
float T1 = 0;
Ну вот результат -
1308_arduino_mqtt.jpg -
температуру кажет -127, типа датчика не видит, а это не правда, запускаем типовой ТЕстер от Ардуино 1.0.6 - датчик есть температуру кажет. `
версия библиотек какая? попробуй откатить на предыдущую
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