ZMPT101b + ADS1115 + NodeMCU

Тема в разделе "ESP8266, ESP32", создана пользователем Zvere4ek, 5 мар 2019.

  1. parovoZZ

    parovoZZ Гуру

    АВР собрать самому не такая и диковинная задача. Я как-то в проекте разрабатывал на 250 кВт АВР-чик безо всяких украс. Тупо РН, тупо пару автоматов с электроприводом, пара индикаторов и галетников. Больше там не надо ничего.
     
  2. Zvere4ek

    Zvere4ek Нерд

    Это смотря какой АВР :) АВР АВР-у рознь :) Как и генератор генератору и прочее... И бюджет этих железяк тоже может быть очень разный. А чем дороже устройство, чем наворочееней и "умней", тем сложнее реализация АВР и соответственно сложнее с этим всем разбираться. Так что кому-то легче одним выключателем щёлкать, а кому-то приходится копаться и разбираться с тем, что уже установлено кем-то, не имея ни схем, ни даже зачастую маркировок.
     
  3. parovoZZ

    parovoZZ Гуру

    у меня под соточку получился) по старым ценам. Siemens вроде в потроха набил.
     
  4. znamen

    znamen Гик

    Если Ваша задача решается просто из любопытства(какое там напряжение в 4 х точках АВР? ) То купите
    себе китайский вольтметр переменного напряжения,который стоит копейки. Если же на основании измеренных параметров Вы должны принимать ответственные решения по дальнейшим переключениям,то
    ответственно заявляю ,что решение этого вопроса на ардуино-гибельный вариант.
     
  5. parovoZZ

    parovoZZ Гуру

    всеобъемлющий довод.
     
  6. znamen

    znamen Гик

    Друже. Это я сказал не из ненависти к ардуино,а потому,что ардуино не проканает в промышленных решениях А АВР промышленный ответственный объект. Ардуино просто
    соответствующие органы не пропустят . Тебе ли объяснять специалисту-бюрократу.
     
  7. Zvere4ek

    Zvere4ek Нерд

    Уважаемый znamen, я выше писал, что данный проект необходим для того, чтобы удалённо контролировать работу АВР на даче. По сути мне нужна информация о напряжениях в контрольных точках АВР, чтобы понимать состояние его работы и иметь удалённую возможность обхода реле напряжения (что-то вроде bypass), в случае выхода его из строя. В настоящее время мне, к сожалению, так и не удалось скрестить устройства, перечисленные в заголовке топика, таким образом, чтобы выдавались корректные данные. Библиотека EmonLib.h не хочет работать через ADS. Считывание синусоиды с ZMPT101b вручную мне не очень понравилось, так как там нашлись свои подводные камни, хотя такой вариант может иметь право на жизнь. Но я всё же решил вместо ADS1115 использовать Ардуино Nano.
     
  8. ABoo

    ABoo Нуб

    Все перечисленное можно подружить.
    Чего точно нельзя делать:
    1. Нельзя пытаться прочитать значение на входе ADS с помощью библиотеки EmonLib. В этой библиотеке чтение идет с аналогого входа и никак иначе. Можно расковырять библиотеку и взять оттуда нужные куски, изменив их под чтение с входа ADS.
    Заодно разобраться как все это вообще работает...

    2. ZMPT101b на выходе имеет синус с пиковым значением 5В. Нельзя его давать на аналоговый вход ESP8266 (там 3,3В максимум). И нельзя просто так его давать на вход ADS - там 4,096 В в режиме по умолчанию, можно спалить... Подстроечный резистор в помощь.

    Также : ADS1115 имеет хорошую точность (16 бит как никак). Но - низкую скорость. По умолчанию - 125 измерений в секунду, что для 50 герцовой синусоиды катастрофически мало. Если поразбираться в библиотеке Адафрукта, или поискать на Гите по фразе "ADS 1115 max speed" то этот АЦП можно разогнать до максимлаьных штатных 860 измерений в секунду. Тоже медленновато (18 измерений на период синусоиды), но уже можно измерять что то... При большой выборке (пара тысяч измерений) и результат будет приемлемый.

    Для скорости можно использовать ADS1015, та имеет максимум 3300 измерений в секунду, что уже достаточно для точности и скорости. Но - этот АЦП 12 разрядный. Что все равно лучше 10 битного АЦП у ESP8266 или Ардуины.

    Так что дерзайте, все можно.)
    Даже контролировать АВР ардуиной... С оглядкой конечно.)
     
    Последнее редактирование: 20 апр 2019
  9. Zvere4ek

    Zvere4ek Нерд

    Спасибо за технические подробности ADS-ок. Буду иметь ввиду. Как оказалось позднее, у меня вроде получилось измерять синусоиду с помощью ADS1115 без библиотеки Emonlib. Да, скорость маловата, но ведь гармоники при Н.У. относительно одинаковые и примерное напряжение и его изменение измерить вроде как удаётся. Просто можно мерить тупо различные точки не одной синусоиды, а нескольких, которые успевают проскочить за некоторое заданное кол-во времени. Да, во времени мы проигрываем, да и в точности тоже, но в моём условии нет необходимости знать точные параметры напряжения каждую секунду. К сожалению, свой проект я уже реализовал на базе ардуино нано, вместо ADS. На данный момент осталось завершить сборку в корпусе и установить устройство на объекте. Наверно я мог бы реализовать это на базе ADS, как хотел изначально и написал выше, но меня подвело то, что когда у меня вроде бы всё заработало с ADS, полученные показания отличались от измерения 220 В бытовым вольтметром. А именно, если начальные скорректированные измерения для 220В были равны показаниям бытового вольтметра, то если в другой розетке реально было 230В, моё устройство выдавало 210, т.е. была какая-то обратно пропорциональная зависимость. Я немного помучился с этим и плюнул, решив, что я чего-то не допонимаю и без таинственной библиотеки Emonlib с её хитрыми поправочными коэффициентами мне не обойтись, переделал проект на базе Ардуино нано. И только после этого я понял, что на ZMPT101b нужно было выкрутить подстроечные резисторы по часовой стрелке процентов на 60... Только тогда всё встало на свои места, но обратно всё переделывать на ADS я уже не стал :( К сожалению, у меня нет ни ЛАТРа, ни осциллографа, чтобы играться с этими штуками и разбираться более детально. В общем, я выбрал более лёгкий путь, так и не реализовав тему данного топика. Возможно я как-нибудь позже вернусь к этому и всё-таки окончательно разберусь в этом вопросе.