Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Русский
  3. ioBroker
  4. ioBroker основное
  5. Arduino+Mqtt FAQ для начинающих.

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    662

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    5.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

Arduino+Mqtt FAQ для начинающих.

Scheduled Pinned Locked Moved ioBroker основное
39 Posts 4 Posters 21.9k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    Securbond
    wrote on last edited by
    #12

    Нашел проблему

    byte server[] = { 192, 168, 0, 102 }; //IP Брокера
    byte ip[]     = { 192, 168, 0, 112 }; //IP Клиента (Arduino)
    
    

    Так не работает

    А вот так

    byte server[] = {192, 168, 0, 102}; //IP Брокера
    IPAddress ip(192, 168, 0, 112);
    
    

    Заработало !

    1 Reply Last reply
    0
    • S Offline
      S Offline
      Securbond
      wrote on last edited by
      #13

      @instalator:

      @Securbond:

      Когда начинаю выкидывать еще больше ошибок, то одно не находит то другое…

      Ну да ладно пойду рыть по форуму. Что бы выкидывать что то нужно понять что нужно а что не очень..

      Спасиб.. `
      Какие там могут быть ошибки? вот код оставил только 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,

      но в логах инфу видно

      ! 939_88.jpg
      а вот в MQTT ничего нового

      ! 939_99.jpg

      1 Reply Last reply
      0
      • I Offline
        I Offline
        instalator
        wrote on last edited by
        #14

        @Securbond:

        @instalator:

        @Securbond:

        Когда начинаю выкидывать еще больше ошибок, то одно не находит то другое…

        Ну да ладно пойду рыть по форуму. Что бы выкидывать что то нужно понять что нужно а что не очень..

        Спасиб.. `
        Какие там могут быть ошибки? вот код оставил только 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

        Высокий уровень Децибел вреден для здоровья!

        http://blog.instalator.ru/

        1 Reply Last reply
        0
        • S Offline
          S Offline
          Securbond
          wrote on last edited by
          #15

          @instalator:

          @Securbond:

          @instalator:

          Какие там могут быть ошибки? вот код оставил только 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

          ! 939_100.jpg

          1 Reply Last reply
          0
          • I Offline
            I Offline
            instalator
            wrote on last edited by
            #16

            @Securbond:

            @instalator:

            @Securbond:

            Я так понимаю если все работает то Ваш скрипт должен был создать какие то топики в MQTT,

            но в логах инфу видно

            ! filename="88.JPG" index="2">~~
            а вот в MQTT ничего нового

            ! filename="99.JPG" index="1">~~ не там смотришь, смотри не в system а просто в mqtt.0

            а нету у меня просто mqtt.0

            ! filename="100.JPG" index="0">~~ `
            Надеюсь обновлял? лучше рестартани вообще iobroker

            Высокий уровень Децибел вреден для здоровья!

            http://blog.instalator.ru/

            1 Reply Last reply
            0
            • S Offline
              S Offline
              Securbond
              wrote on last edited by
              #17

              @instalator:

              @Securbond:

              @instalator:

              не там смотришь, смотри не в system а просто в mqtt.0 `

              а нету у меня просто mqtt.0

              ! filename="100.JPG" index="0">~~ Надеюсь обновлял? лучше рестартани вообще iobroker

              Рестартанул, не появилось,

              удалил MQQT драйвер, поставил заново все равно только system((

              :oops: :(

              1 Reply Last reply
              0
              • I Offline
                I Offline
                instalator
                wrote on last edited by
                #18

                @Securbond:

                @instalator:

                @Securbond:

                а нету у меня просто mqtt.0

                ! filename="100.JPG" index="0">~~ Надеюсь обновлял? лучше рестартани вообще iobroker

                Рестартанул, не появилось,

                удалил MQQT драйвер, поставил заново все равно только system((

                :oops: :( `
                По фильтру Detskay тоже ничего? у тебя ардуина публикует данные при старте?

                client.publish("myhome/Kitchen/Change_Counter", "0"); //публикует на iobroker если его нет создает объект.

                Высокий уровень Децибел вреден для здоровья!

                http://blog.instalator.ru/

                1 Reply Last reply
                0
                • S Offline
                  S Offline
                  Securbond
                  wrote on last edited by
                  #19

                  @instalator:

                  @Securbond:

                  @instalator:

                  Надеюсь обновлял? лучше рестартани вообще iobroker `

                  Рестартанул, не появилось,

                  удалил MQQT драйвер, поставил заново все равно только system((

                  :oops: :( `
                  По фильтру Detskay тоже ничего? у тебя ардуина публикует данные при старте?

                  client.publish("myhome/Kitchen/Change_Counter", "0"); //публикует на iobroker если его нет создает объект. `

                  Вот где собака порылась….

                  Выключил, включил ардуину и все появилось.

                  Спасибо за терпение..

                  1 Reply Last reply
                  0
                  • S Offline
                    S Offline
                    Securbond
                    wrote on last edited by
                    #20

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

                    1 Reply Last reply
                    0
                    • S Offline
                      S Offline
                      Securbond
                      wrote on last edited by
                      #21

                      @instalator:

                      @Securbond:

                      Похоже проблема в подключении к локалке, пока что не вижу шилда в сети …

                      Спасибо, сейчас попробую голый скетч залить. На всякий случай [http://forum.iobroker.net/viewtopic.php?f=33&amp;t=1609](http://forum.iobroker.net/viewtopic.php?f=33&amp;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 running

                      lcd.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
                      1 Reply Last reply
                      0
                      • I Offline
                        I Offline
                        instalator
                        wrote on last edited by
                        #22

                        @Securbond:

                        @instalator:

                        @Securbond:

                        Похоже проблема в подключении к локалке, пока что не вижу шилда в сети …

                        Спасибо, сейчас попробую голый скетч залить. На всякий случай [http://forum.iobroker.net/viewtopic.php?f=33&amp;t=1609](http://forum.iobroker.net/viewtopic.php?f=33&amp;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 running

                        lcd.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://blog.instalator.ru/

                        1 Reply Last reply
                        0
                        • S Offline
                          S Offline
                          Securbond
                          wrote on last edited by
                          #23

                          @instalator:

                          @Securbond:

                          @instalator:

                          На всякий случай 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 running

                          lcd.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

                          но судя по всему дело все в тех же переменных

                          1 Reply Last reply
                          0
                          • I Offline
                            I Offline
                            instalator
                            wrote on last edited by
                            #24

                            @Securbond:

                            @instalator:

                            @Securbond:

                            не посмотришь где я косячу ?

                            ! ````
                            #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 running

                            lcd.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); а самой функции нету

                            Высокий уровень Децибел вреден для здоровья!

                            http://blog.instalator.ru/

                            1 Reply Last reply
                            0
                            • S Offline
                              S Offline
                              Securbond
                              wrote on last edited by
                              #25

                              @instalator:

                              @Securbond:

                              @instalator:

                              Типы переменных передаваемые в функцию не совпадают.

                              Пробуй так

                                    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

                              1 Reply Last reply
                              0
                              • I Offline
                                I Offline
                                instalator
                                wrote on last edited by
                                #26

                                @Securbond:

                                как раз хотел спросить что делает эта функция

                                /////////////////////////////////От Брокера//////////////////////////////////////////////
                                void callback_iobroker(String strTopic, String strPayload){
                                  if (strTopic == "0"){
                                    
                                  }
                                }
                                
                                

                                добавил, ошибок больше стало аааааааа…......... `
                                Эта функция принимает strTopic от iobroker.

                                Высокий уровень Децибел вреден для здоровья!

                                http://blog.instalator.ru/

                                1 Reply Last reply
                                0
                                • I Offline
                                  I Offline
                                  instalator
                                  wrote on last edited by
                                  #27

                                  @instalator:

                                  @Securbond:

                                  как раз хотел спросить что делает эта функция

                                  /////////////////////////////////От Брокера//////////////////////////////////////////////
                                  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");
                                      }
                                    }
                                  
                                  

                                  Высокий уровень Децибел вреден для здоровья!

                                  http://blog.instalator.ru/

                                  1 Reply Last reply
                                  0
                                  • S Offline
                                    S Offline
                                    Securbond
                                    wrote on last edited by
                                    #28

                                    @instalator:

                                    @instalator:

                                    @Securbond:

                                    как раз хотел спросить что делает эта функция

                                    /////////////////////////////////От Брокера//////////////////////////////////////////////
                                    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

                                    ! 939_77.jpg

                                    1 Reply Last reply
                                    0
                                    • I Offline
                                      I Offline
                                      instalator
                                      wrote on last edited by
                                      #29

                                      @Securbond:

                                      как понял это обратная связь, если на брокере значение поменять она передает его ардуине так ??

                                      я эту функцию временно закоментил и залил скетч.

                                      объекты создались но данные не приходят везде стоит - 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);

                                      Высокий уровень Децибел вреден для здоровья!

                                      http://blog.instalator.ru/

                                      1 Reply Last reply
                                      0
                                      • S Offline
                                        S Offline
                                        Securbond
                                        wrote on last edited by
                                        #30

                                        @instalator:

                                        @Securbond:

                                        как понял это обратная связь, если на брокере значение поменять она передает его ардуине так ??

                                        я эту функцию временно закоментил и залил скетч.

                                        объекты создались но данные не приходят везде стоит - 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/#");
                                                }
                                            }  
                                        
                                        
                                        1 Reply Last reply
                                        0
                                        • I Offline
                                          I Offline
                                          instalator
                                          wrote on last edited by
                                          #31

                                          @Securbond:

                                          @instalator:

                                          @Securbond:

                                          как понял это обратная связь, если на брокере значение поменять она передает его ардуине так ??

                                          я эту функцию временно закоментил и залил скетч.

                                          объекты создались но данные не приходят везде стоит - 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/#");
                                                  }
                                              }  
                                          
                                          

                                          Высокий уровень Децибел вреден для здоровья!

                                          http://blog.instalator.ru/

                                          1 Reply Last reply
                                          0

                                          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
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          321

                                          Online

                                          32.7k

                                          Users

                                          82.6k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe