Считывание счетчика воды по WiFi на Wemos D1 mini (esp8266) под Arduino IDE

Тема в разделе "Глядите, что я сделал", создана пользователем Slacky, 22 ноя 2017.

  1. Bor2121

    Bor2121 Нуб

    Доброго дня!
    Тут : s =""; в кавычках?
    тогда будет формироваться 2 сообщения в сторону MQTT, То что я впишу и второе ваше, предусмотренное скетчем?
    В Домотиксе счетчик как бы тупее вашего проекта ;) Он учитывает импульс, то есть каждые 10 литров(условно) ему отправляется 10, потом 10 и он уже сам собирает данные. Ему не нужны количества. ;-)
     
  2. Slacky

    Slacky Нерд

    s="" и последующие s+= заменяете на Ваше.

    Например
    Код (C++):
    s = "\"idx\" : 3, \"name\" : \"Cold_Water\", \"svalue\" : \"10\"";
    Т.е. примерно будет выглядеть так

    Код (C++):
    /* If counter of hot water was added */
      if (counterHotWater > 0) {
        wmConfig.hotTime = localTimeT();
        s ="\"idx\" : 2, \"name\" : \"Hot_Water\", \"svalue\" : \"10\"";
        if (DEBUG) {
          Serial.print(mqttTopicHotOut + " <== "); Serial.println(s);
        }
        if (mqttClient.connected()) mqttClient.publish(mqttTopicHotOut.c_str(),s.c_str());
        else saveConfig();
        counterHotWater = 0;
      }

      /* If counter of cold water was added */
      if (counterColdWater > 0) {
        wmConfig.coldTime = localTimeT();
        s ="\"idx\" : 3, \"name\" : \"Cold_Water\", \"svalue\" : \"10\"";
        if (DEBUG) {
          Serial.print(mqttTopicColdOut + " <== "); Serial.println(s);
        }
        if (mqttClient.connected()) mqttClient.publish(mqttTopicColdOut.c_str(),s.c_str());
        else saveConfig();
        counterColdWater = 0;
      }
    Но это не совсем корректно, если счетчик больше 1. Там нужно учесть, что если счетчик больше 1, например 2, то перердавать не 10 литров, а 20 и т.д
     
  3. Bor2121

    Bor2121 Нуб

    Скеч проверю как толь комп дома настрою специально под хобби ;-) Спасибо за помощь.

    "Но это не совсем корректно, если счетчик больше 1. Там нужно учесть, что если счетчик больше 1, например 2, то передавать не 10 литров, а 20 и т.д"

    Тут вот какое дело, я проверил работу счетчика в Домотиксе, отсылая фейковые сообщения на MQTT брокер с топиком dimoticz/in. сколько отправишь в сообщении столько виртуальный счетчик и плюсует в свою базу данных.
    То есть повторяя это сообщение на брокера:
    mosquitto_pub -h 127.0.0.1 -m '{ "idx" : 3, "name" : "Cold_Water", "svalue" : "10" }' -t 'domoticz/in' Домотикс видит это сообщение и инкрементный счетчик Домотикса копит эти данные и собирая статистику.
    И если я правильно понял инструкцию на свой водяной счетчик, то там обычный оборот "колёсика" принят за 10 литров. Вот и подумал, что Домотиксу достаточно отправлять расход по 10ке. А он уже сам накопит данные. (тут конечно если потеря связи или дургой катаклизм - то данные потеряются. Переписать ваш скетч для проверки данных в домотиксе и на карте памяти - это для меня совсем за гранью. Мне с этим то поразбираться некогда особо ;( а очень хочется.
    У вас же сделано очень по уму ;-) Учитываете разные моменты и тд. Еще с батарей поколдую - БаттериШилд как у вас продаётся только у одного китайса ;) попробую с ней, если пришлет.
     
  4. Slacky

    Slacky Нерд

  5. Bor2121

    Bor2121 Нуб

    Именно! Уже жду со дня на день. и еще немного для других экспериментов. Где бы время взять только ;-)

    ЗЫ: Хотя нет, когда я заказывал - в ВЕМОСе не было такой.
    Жду из другого магаза. проверим.
     
  6. Bor2121

    Bor2121 Нуб

    Собрал,подключил, под Домотикс адаптировал. Смотрю литры бегут быстрее счетчика. И даже Горячие литры при использовании холодной ;-) Похоже не канает схема... У меня скорее всего цепь Намур в счетчиках. а не просто контакты ;(
     
  7. Slacky

    Slacky Нерд

    Ну намур отличается только сопротивлением в цепи, которое падает в два раза при замыкании геркона. Если проводов два, то да, возможно и просто геркон, и намур. Если три, то можно реализовать обе схемы. В любом случае нужно смотреть спецификацию на счетчик или тупо измерить сопротивление между контактами ...
     
  8. Bor2121

    Bor2121 Нуб

    В моих счетчиках 2 провода, по паспорту так и есть - НАМУР. Как изменить схему наверно не соображу ;(
     
  9. Slacky

    Slacky Нерд

    Ну можно попробовать так - измерить сопротивление разомкнутого и замкнутого состояния. В инете сходу нарвался на 5к6 при разомкнутом и 2к2 при замкнутом. Убрать внутреннюю подтяжку PULLUP (там вроде 12кОм) и подобрать сопротивление на ножку через +3.3v чтобы при разомкнутом четко читалась единица, а при замкнутом ноль.

    Все IMHO, так как я тоже специалист не очень :))