Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. artemon2405

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    A
    • Profile
    • Following 0
    • Followers 0
    • Topics 0
    • Posts 7
    • Best 0
    • Groups 0

    artemon2405

    @artemon2405

    0
    Reputation
    4
    Profile views
    7
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    artemon2405 Follow

    Latest posts made by artemon2405

    • RE: Драйвер Mqtt + Arduino

      @instalator:

      @artemon2405:

      я взял с этого скетча всё что касается MQTT и перекинул в ваш скетч и всё заработало пока тестирую зачем если мой код полностью рабочий?
      почему то ваш скетч у меня не пошол как я уже писал пришлось чуть переправить

      // Функция Callback
      void callback(char* topic, byte* payload, unsigned int length)
      {
        // Выделяем необходимое кол-во памяти для копии payload
        byte* p = (byte*)malloc(length);
        // Копирование payload в новый буфер
        memcpy(p, payload, length);
        client.publish("home/data/status/sensor", p, length);
        // Освобождаем память
        free(p);
      }
      
      

      и теперь всё отлично с ds1820 разобрался сам а вот mq7 он подключен к аналогу A0 но данные идут одинаковые home/data/status/sensor и myhome/Kitchen/MQ7 но в принципе оно мне не мешает и ещё не понимаю почему

      myhome/Kitchen/Window в топиках есть инфа а вот myhome/Kitchen/Motion нет в публикациях и не где не видно.

      А так вообще конечно спасибо за помощь и за скетч

      posted in ioBroker драйвера
      A
      artemon2405
    • RE: Драйвер Mqtt + Arduino

      почему то в myhome/Kitchen/Temp_radiator пишет значение -127 тоесть значение с минусом я так понимаю это значение с датчика DS1820 ONE_WIRE_BUS 8 и он подключен к пину 8 похоже что он не видит мой датчик пока не могу понять от чего и ещё кое что у меня не так home/data/status/sensor а так же myhome/Kitchen/MQ7 имеют одно значение и меняются вместе похоже что то с подключением . если есть какие то идеи подскажите

      posted in ioBroker драйвера
      A
      artemon2405
    • RE: Драйвер Mqtt + Arduino

      залил на ардуино но данные никакие не поступают дело в том что я пользуюсь Mosquitto а не IBroker может быть из за этого. Просто до этого я пользовался только одним DHT вот этим скетчем````
      *
      //Скетч для вывода в Монитор порта теспературы в Цельсиях и Влажности
      // с датчика DHT22 и отправки их по MQTT в брокер и MajorDoMo.
      */

      #include <spi.h> // Библиотека SPI шины
      #include <ethernet.h> // Ethernet библиотека
      #include <pubsubclient.h> // Библиотека MQTT
      #include <dht.h> // Библиотека для датчиков DHT11/22

      #define DHTPIN 2 // Номер пина, к которому подсоединен датчик
      #define DHTTYPE DHT22 // Задаём тип DHT датчика
      DHT dht(DHTPIN, DHTTYPE);

      // Задаём mac и ip адреса в Локальной сети
      byte mac[] = { 0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
      IPAddress ip{192, 168, 1, 74}; //ip Адрес Ethernet Shild'a Arduino
      IPAddress server{192, 168, 1, 3}; //ip Адрес для MQTT Брокера

      // Шапка Функции Callback (обратный вызов)
      void callback(char* topic, byte* payload, unsigned int length);

      EthernetClient ethClient; //Инициализируем Ethernet клиент
      PubSubClient client(server, 1883, callback, ethClient); //Инициализируем MQTT клиент

      // Функция Callback
      void callback(char* topic, byte* payload, unsigned int length)
      {
      // Выделяем необходимое кол-во памяти для копии payload
      byte* p = (byte*)malloc(length);
      // Копирование payload в новый буфер
      memcpy(p, payload, length);
      client.publish("home/data/status/sensor", p, length);
      // Освобождаем память
      free(p);
      }

      void setup()
      {
      // 1 бод равно 0.8 бит/сек
      // 1 бит/сек равно 1.25 бод
      Serial.begin(9600); // Задаём скорость порта в БОД'ах.
      Serial.println("DHT22 test!"); // Тестовое сообщ. при откр. Монитора порта

      dht.begin();

      Ethernet.begin(mac, ip); // Инициализируем mac, ip

      }

      void loop() {

      int h = dht.readHumidity(); // Переменная типа int для Влажности
      int t = dht.readTemperature(); // Переменная типа int для Температуры

      // Преобразуем переменные для отправки в MQTT в Брокер
      static char char_temp[7]; // Переменная для перевода из int в char
      dtostrf(t, 3, 0, char_temp); // Перевод из int в char

      static char char_hum[7];
      dtostrf(h, 3, 0, char_hum);

      if (client.connect("DHTClient")) //Если DHTClient подкл., то выполняется код...
      {
      if (isnan(t) || isnan(h)) // Проверка удачно ли прошло считывание с DHT22
      {
      Serial.println("Failed to read from DHT22"); // Не удалось прочитать DHT22
      } else {
      // Отправка данных в Монитор порта при удачной проверке
      Serial.print("Humidity: ");
      Serial.print(h);
      Serial.print(" %\t");
      Serial.print("Temperature: ");
      Serial.print(t);
      Serial.println(" *C");

        //Отправка данных по MQTT в Брокер
        client.publish("home/data/status/sensor/temp", char_temp);  //Температура
        client.publish("home/data/status/sensor/hum", char_hum);    //Влажность
        delay(5000);              // Отправка данных в Брокер раз в 5 секунд
      }
      

      } else {
      client.disconnect(); // иначе отключиться
      }
      }</dht.h></pubsubclient.h></ethernet.h></spi.h>

      я взял с этого скетча всё что касается MQTT и перекинул в ваш скетч и всё заработало пока тестирую
      posted in ioBroker драйвера
      A
      artemon2405
    • RE: Драйвер Mqtt + Arduino

      спасибо огромное с вашей библиотекой сразу всё скомпилипровалось сейчас попробую сбросить на ардуинку и буду тестировать

      posted in ioBroker драйвера
      A
      artemon2405
    • RE: Драйвер Mqtt + Arduino

      переименовал в самой библиотеке файл DHT.h в dht.h теперь исчезла ошибка по библиотеке но появились много других которые я думаю связаны друг с другом выкладываю мои ошибки может кто подскажет что можно сделать

      Arduino: 1.6.6 (Windows 10), Плата:"Arduino/Genuino Uno"
      
      Kitchen_Mqtt:56: error: 'dht' does not name a type
      
          dht  DHT;
      
          ^
      
      C:\Users\User\Downloads\Kitchen_Mqtt_HAUS\Kitchen_Mqtt\functions.ino: In function 'void getSensors()':
      
      functions:48: error: expected primary-expression before '.' token
      
         if (DHT.read22(DHT22_PIN)== DHTLIB_OK) {
      
                ^
      
      functions:48: error: 'DHTLIB_OK' was not declared in this scope
      
         if (DHT.read22(DHT22_PIN)== DHTLIB_OK) {
      
                                     ^
      
      functions:49: error: expected primary-expression before '.' token
      
           Hout = DHT.humidity;
      
                     ^
      
      functions:50: error: expected primary-expression before '.' token
      
           Tout = DHT.temperature;
      
                     ^
      
      functions:54: error: expected primary-expression before '.' token
      
           if (DHT.read22(DHT22_PIN)== DHTLIB_OK) {
      
                  ^
      
      functions:54: error: 'DHTLIB_OK' was not declared in this scope
      
           if (DHT.read22(DHT22_PIN)== DHTLIB_OK) {
      
                                       ^
      
      functions:55: error: expected primary-expression before '.' token
      
           Hout = DHT.humidity;
      
                     ^
      
      functions:56: error: expected primary-expression before '.' token
      
           Tout = DHT.temperature;
      
                     ^
      
      exit status 1
      'dht' does not name a type
      
        Это сообщение будет содержать больше информации чем
        "Отображать вывод во время компиляции"
        включено в Файл > Настройки
      
      

      вся надежда на вас instalator или на других желающих помочь . этот скетч как будто написан под мои запросы мне надо передавать данные в majordomo по MQTT так что прошу вашего внимания. Заранее спасибо

      posted in ioBroker драйвера
      A
      artemon2405
    • RE: Драйвер Mqtt + Arduino

      @instalator:

      > я думаю что проблема с библиотекой но я несколько установил проблема не исчезла . проблема не в библиотеке. Перепиши код под свою библиотеку `

      спасибо за ответ я попробовал по разному но у меня все ошибки начинаются с самого начала когда я библиотеку

      #include 
      ````начинаю переименовывать в````
      #include 
      ````потому что у меня просит библиотеку именно с большими буквами поэтому я и прошу дать библиотеку которая написана с маленькими буквами. Потому что после переименования библиотеки пропадает ошибка инициализации библиотеки но она тянет за собой кучу других ошибок.
      
      Буду признателен за dht библиотеку прописанную в этом скетче
      posted in ioBroker драйвера
      A
      artemon2405
    • RE: Драйвер Mqtt + Arduino

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

      EthernetClient ethClient; //ЗДЕСЬ КОМЕНТИРУЮ И КОПИРУЮ В ДРУГОЕ МЕСТО НИЖЕ

      PubSubClient client(server, 1883, callback, ethClient);

      перенёс их ниже как подсказали эта ошибка исчезла и вот теперь уже несколько дней мучаюсь с ошибкой 58 строка

      DHT DHT; ошибка no matching function for call to 'DHT::DHT()'

      я думаю что проблема с библиотекой но я несколько установил проблема не исчезла . IDE 16.6

      но пробовал и другие если кому не сложно выложите библиотеку DHT с которой этот скетч компилируется ну и заодно свой скетч и версию IDE. сейчас у меня ват такой скетч

      ! #include <spi.h>// Ethernet shield
      ! #include <ethernet.h>// Ethernet shield
      ! #include <pubsubclient.h>// MQTT
      ! #include <servo.h>#include <dht.h>#include <onewire.h>#include <dallastemperature.h>Servo servo;
      ! 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/"
      ! ///////////////Объявляем порты ввода-вывода
      ! #define ServoPin 3 //Порт к которому подключен сервопривод
      ! const int start_DI_pin [] = {2, 4, 5}; // Порты Ввода
      ! int n_DI_pin = sizeof(start_DI_pin) / sizeof(start_DI_pin[0]) - 1; //Вычисляем длинну массива
      ! const int start_DO_pin [] = {6, 7}; //Порты Вывода
      ! int n_DO_pin = sizeof(start_DO_pin) / sizeof(start_DO_pin[0]) - 1; //Вычисляем длинну массива
      ! int DI[] = {0, 0, 0};
      ! int old_DI[] = {0, 0};
      ! ///////////////////////////Переменные для работы с освещением//////////////////////////////////////
      ! int ServoAngle = 100; //Угол сервопривода при включении
      ! int flag = 0;
      ! int flag2 = 0;
      ! int pause = 0;
      ! //–----------------------------------------- Sensors -------------------------------------------//
      ! const int MQ7_Pin = A0; // Куда подключили MQ7
      ! //int MQ7Value = 0;
      ! int MQ7Value = analogRead(MQ7_Pin);
      ! const int foto_Pin = A1; // устанавливаем входную ногу для Фоторезистора
      ! //unsigned int fotoValue = 0; // цифровое значение фоторезистора
      ! unsigned int fotoValue = analogRead(foto_Pin);
      ! #define ONE_WIRE_BUS 8
      ! OneWire oneWire(ONE_WIRE_BUS);
      ! DallasTemperature DS_sensors(&oneWire);
      ! // 28 FF F2 5C 53 15 2 97
      ! DeviceAddress addr_T1 = { 0x28, 0xFF, 0xF2, 0x5C, 0x53, 0x15, 0x02, 0x97 };
      ! float T1 = 0;
      ! DHT DHT;
      ! #define DHT22_PIN 9
      ! float Hout = 0;
      ! float Tout = 0;
      ! //#define DHTPIN 2 // Номер пина, к которому подсоединен датчик
      ! //#define DHTTYPE DHT22 // Задаём тип DHT датчика
      ! //DHT dht(DHTPIN, DHTTYPE);
      ! ////////////////////////////////////////////////////////////////////////////
      ! 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);
      ! }
      ! EthernetClient ethClient; //ЗДЕСЬ КОМЕНТИРУЮ И КОПИРУЮ В ДРУГОЕ МЕСТО НИЖЕ
      ! PubSubClient client(server, 1883, callback, ethClient);
      ! ////////////////////////////////////////////////////////////////////////////
      ! void setup() {
      ! //Serial.begin(57600);
      ! // Serial.println("start");
      ! //Объявляем порты Digital inputs/outputs
      ! for (int i = 0 ; i <= n_DI_pin; i++) {
      ! pinMode (start_DI_pin __, INPUT);
      ! }
      ! digitalWrite(5, HIGH); //Окно
      ! digitalWrite(4, HIGH); //Объемник
      ! for (int i = 0 ; i <= n_DO_pin; i++) {
      ! pinMode (start_DO_pin __, OUTPUT);
      ! }
      ! Ethernet.begin(mac, ip);
      ! if (client.connect(id_connect)) {
      ! getSensors();
      ! control();
      ! // client.publish("myhome/Kitchen/Change_Counter", "0");
      ! // client.publish("myhome/Kitchen/Temp_room", "0");
      ! // client.publish("myhome/Kitchen/Humidity_room", "0");
      ! // client.publish("myhome/Kitchen/Temp_radiator", "0");
      ! // client.publish("myhome/Kitchen/Temp_in", "0");
      ! // client.publish("myhome/Kitchen/Lux", "0");
      ! // client.publish("myhome/Kitchen/Servo", "0");
      ! // client.publish("myhome/Kitchen/MQ7", "0");
      ! client.subscribe("myhome/Kitchen/#");
      ! }
      ! }
      ! /////////////////////////////////////////////////////////////////////////
      ! void loop() {
      ! client.loop();
      ! control();
      ! getSensors();
      ! if (!client.connected()) {
      ! if (client.connect(id_connect)) {
      ! control();
      ! getSensors();
      ! client.subscribe("myhome/Kitchen/#");
      ! }
      ! }
      ! }____</dallastemperature.h></onewire.h></dht.h></servo.h></pubsubclient.h></ethernet.h></spi.h> __и отдельно Functions

      ! /////////////////////////////////От Брокера//////////////////////////////////////////////
      ! void callback_iobroker(String strTopic, String strPayload){
      ! if (strTopic == "myhome/Kitchen/Servo"){
      ! ServoAngle=strPayload.toInt();
      ! if (ServoAngle >= 0 && ServoAngle <= 255){
      ! servo.attach(ServoPin);
      ! //delay(200); //ждем 2 секунды
      ! servo.write(ServoAngle); //ставим вал под 0
      ! delay(1000); //ждем 2 секунды
      ! //client.publish("myhome/Kitchen/Servo", b);
      ! servo.detach();
      ! }
      ! }
      ! }
      ! ////////////////////////////////////Брокеру/////////////////////////////////////
      ! void control(){
      ! if(digitalRead(5)==HIGH && flag==0) { //если окно открыто
      ! client.publish("myhome/Kitchen/Window", "1");
      ! flag=1;
      ! }
      ! if(digitalRead(5)==LOW && flag==1){//если окно закрыто
      ! client.publish("myhome/Kitchen/Window", "0");
      ! flag=0;//обнуляем переменную flag
      ! }
      ! if(digitalRead(4)==HIGH && flag2==0) { // Если есть движение
      ! client.publish("myhome/Kitchen/Motion", "1");
      ! flag2=1;
      ! }
      ! if(digitalRead(4)==LOW && flag2==1){// Если нет движения
      ! client.publish("myhome/Kitchen/Motion", "0");
      ! flag2=0;//обнуляем переменную flag
      ! }
      ! }
      ! ///////////////////////////////Данные сенсоров////////////////////////////////////
      ! void getSensors () {
      ! MQ7Value = analogRead(MQ7_Pin);
      ! fotoValue = analogRead(foto_Pin); // считываем значение с фоторезистора
      ! // ServoAngle = analogRead(2);
      ! //Обработка данных датчика DHT22. Подключение к порту цифровому P9 Arduino
      ! //Глобальные переменные Hout и Tout типа флоат - влажность (%) и температура (град. С)
      ! if (DHT.read22(DHT22_PIN)== DHTLIB_OK) {
      ! Hout = DHT.humidity;
      ! Tout = DHT.temperature;
      ! }
      ! if (Hout == 0 || Tout == 0){
      ! delay (1000);
      ! if (DHT.read22(DHT22_PIN)== DHTLIB_OK) {
      ! Hout = DHT.humidity;
      ! Tout = DHT.temperature;
      ! }
      ! }
      ! //Обработка данных цифровых датчиков температуры типа DS18B20.
      ! //Шина 1-Wire на цифровой пин P8 Arduino.
      ! //Подключено 2 датчика температуры, адреса задаются в секции глобальных констант "Sensors"
      ! //Три значение температуры T1, T2, типа float (град. С).
      ! DS_sensors.requestTemperatures();
      ! T1 = DS_sensors.getTempC(addr_T1);
      ! ///////////////////////Паблик данных сенсоров////////////////////////
      ! if (pause == 50 || pause == 0){
      ! char b[5];
      ! String char_Hout = String(Hout);
      ! char_Hout.toCharArray(b,5);
      ! client.publish("myhome/Kitchen/Humidity_room", b);
      ! String char_Tout = String(Tout);
      ! char_Tout.toCharArray(b,5);
      ! client.publish("myhome/Kitchen/Temp_room", b);
      ! String char_T1 = String(T1);
      ! char_T1.toCharArray(b,5);
      ! client.publish("myhome/Kitchen/Temp_radiator", b);
      ! String char_fotoValue = String(fotoValue);
      ! char_fotoValue.toCharArray(b,4);
      ! client.publish("myhome/Kitchen/Lux", b);
      ! String char_ServoAngle = String(ServoAngle);
      ! char_ServoAngle.toCharArray(b,4);
      ! client.publish("myhome/Kitchen/Servo", b);
      ! String char_MQ7Value = String(MQ7Value);
      ! char_MQ7Value.toCharArray(b,4);
      ! client.publish("myhome/Kitchen/MQ7", b);
      ! pause = 1;
      ! }
      ! else pause++;
      ! }
      Заранее всем спасибо жду ответов__

      posted in ioBroker драйвера
      A
      artemon2405
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo