IOT / Esp32 / FreeRTOS / Arduino / stm32
801 subscribers
747 photos
133 videos
29 files
199 links
Копилка материалов по работе с микроконтроллером esp32 / stm32
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Есть и подвижки:

1) После перезагрузки на индикаторе крутится красота

2) Перешёл к измерениям EC раствора: подключил щуп и смотрю на получаемые милливольты в консоли
- надеялся что сумма прямого и обратного измерения будет равна референсному значению, но получаю недоздачу 35-40mV

3) Внутри задачи во фриртос стали обмениваться данными с помощью xTaskNotify:
- в задачу "экран" отправляется инфа он референсном значении
- в задачу "экран" иногда отправляется информация счетчика секунд чтобы понимать что система ребутнулась
- задача измерения температуры работает раз в 10 секунд и оповещает о температуре задачу измерения EC

4) Начал работу над конфигурацией устройства
IOT / Esp32 / FreeRTOS / Arduino / stm32
2) Самый грустный баг из тех которые уже известны - это я неправильно использовал опорные источники напряжения) в итоге их приходится сдувать. Купил новые - буду пробовать использовать.
3) Складывается ощущение что этот заказ плат я делал в пьяном угаре 🙈 В делитель напряжения вместо 1kΩ заказал установку резиторов 4.7kΩ.

Схема подразумевает использование резисторов делителя напряжения в 1kΩ и 500Ω - нужный резистор можно выбрав джампером на перемычке. Но перемычку же нужно каждый раз впаивать, а я для этого слишком ленив. Поэтому на схеме есть ещё резистор с нулевым сопротивлением 0Ω который выбирает по умолчанию 1000 омный вариант. Который у меня ага 4700 омный =)

Вообще в схему можно впаять перемычку, сдуть нулевой резистор, и использовать уже распаяный делитель с 500Ω. Но паять лень, поэтому пока выдалась такая возможность - потестируем работу в таком режиме.

Представлю что основная цель - измерить чистоту воды после фильтра обратного осмоса. А вдруг мне мембрану уже пора менять
Пробуем померять осмос:
получается 1830mV.

- Напряжение у нас 2513mV (если верить АЦП esp-хи)
- Сопротивление резистора 4649Ω (со слов китайского мультиметра)
- Достаём из-за пазухи законо ома, и получаем сопротивление фильтрованной водички 12 456 Ω

Запомним это число) У меня как раз уже куплена новая мембрана, после смены фильров перепроверим.
Просто холодная и просто горячая вода из под крана получают по
882mV - 2514Ω хол
718mV - 1860Ω гор
В первую очередь разница из-за темпертаруры, но возможно они и загрязнены по разному. Бытует мнение что грязная вода лучше взаимодействует со стенками водопроводной системы и с бОльшей радостью несёт всякое в себе.

Проверим это позже, сравняв их температуры.
Морс!

Запехаем щуп во все имюищеся калибровочные растворы и померяем милливольты ⚡️

Получается что чувствительности АЦП вполне достаточно и для грубых измерений:
между 1-2EC у нас 124mV, а дальше конечно хуже.

Построим график! =)
А графики вполне себе ничего, можно сразу в бой.

Наспех подобрал наглаз калибровочные коэффициенты в екселе и точность получается более чем достаточная для бытового использования. 🥳

Даже с 4700Ω вместо 500
2006 год. Статья про измерение EC/TDS
https://www.octiva.net/projects/ppm/

2006 год. Схема измерения PH
https://www.octiva.net/projects/pH/

обновленные статьи:
EC/TDS https://blea.ch/wiki/index.php/PPM_Meter
PH https://blea.ch/wiki/index.php/PH_Meter

теоретические обоснования
https://www.coleparmer.com/tech-article/conductivity
EC_TDS_PPM Meter.pdf
551.5 KB
Сохраним такой раритет дополнительно в виде pdf
Бам! И теперь платы 2.

Текущего уровня развития "софта" достаточно для того чтобы начать тестирование длительного использования.
1) впаят источник опорного напряжения
2) сделал джампер для выбора EC и выбрал 500Ω
3) сделал джампер для выбора Ro NTC-термистора, выбрал 100k
4) приделал дисплей
5) добавил гребенки для esp-lolin32
заняло около 20 минут

Буду наблюдать за сопротивлением раствора 1EC при постоянной температуре 25°С
Бывают EC-щупы со встроенным термистором (вверху).

Бывают EC-щупы без встроенных термисторов (в середине).
В таком случае термистор нужен отдельный. Они бывают двух типов на 10kΩ или 100kΩ

С помощью жёлтой изоленты совмещаем ЕС и термистор и купорим в баночку вместе с калибровочным раствором 1EC.

Вокруг щупа нужно обязательно очертить пространство где может распространяться электрический ток с помощью напечатанной на 3Д принтере юбочки. Если это не сделать - то прибор будет очень хорошо определять расстояние от электродов до стенки.
Держать температуру 25°С поможет термореле =)

Возьмём 15 сантиметров греющего китайского кабеля, и сделаем нагреватель который будем питать от USB-зарядки. Можность конечно маленькая, но надеюсь достаточная для сохранения тепла внутри пенопластовой коробочки.
Готово!
Пакуем и радуемся постоянной температуре.
This media is not supported in your browser
VIEW IN TELEGRAM
Длительное тестирование началось 26 окт.

Запомним эти цифры:
1616mV - напряжение на делителе
2517mV - опорное напряжение.

Китайский мультиметр при этом считает что 2507mV, так что есть вероятность что АЦП у esp32 плохо калиброван и привирает.
Отправим сырые данные тестирования в облака на хранение, и на сегодня закончим 🤗
Прошли сутки. Надеюсь изменение графика - это очищение электродов =)
Последние 6 часов выглядят очень стабильно.
За сутки график сполз на ~5mV
Кроме этого что-то произошло ночью. Возможно это помеха по питанию - в этот же USB-зарядник воткнута лампа которая для него слишком мощная.
Есть пара моментов которые смущают во всей этой затее.

На всех графиках выше видно что есть некие u+,u-,u.
Это как раз положительное измерение, отрицальеное и среднее.

Расшифровка:
Положительное = Uацп
Отрицательное = Вычитаем Uацп из опорного напряжения 2500mV
Среднее = среднеарифметическое между верхними двумя
Дельта (Δ) = разница менду положительным и отрицательным.

Первое что может пойти не так - это положительное != отрицательному всегда.
Чтобы всё это выглядело сильно красивее на тестовой платке одно из начений смещено на -35 mV.
В таком случае значения пляшут около нуля.

Но на графиках выше мы получаем расхождение окло 15mV и пока не могу определиться с тем какой решение правильнее: смещать или не смещать =)

Скорее всего часть неопределённости сюда вносит неоткалиброванный АЦП. У нас источник опорного 2500 mV и китайский мультиметр считает что там 2497mV). Поэтому показания АЦП 2516mV кажутся немного странными.

Хотя я тут торгуюсь вокруг пары десятков милливольт, которые скорее сильно нише возмо
Но есть вещь которая смущает гораздо больше чем пара десятков милливольт выше. Иногда эта дельта улетает в космос и эти "улёты" вполне стабильны и статичны и точно зависят от каких-то вещей в прошивке. Одно радует что средние значения при этом не меняются.

Дельта (Δ) = 180