КОРЗИНА
магазина
8 (499) 500-14-56 | ПН. - ПТ. 12:00-18:00
ЛЕСНОРЯДСКИЙ ПЕРЕУЛОК, 18С2, БЦ "ДМ-ПРЕСС"

Измеритель концентрации (TDS/EC) на Arduino, Piranha, ESP

Общие сведения

Измеритель концентрации можно использовать для анализа жидкостей, используемых в гидропонике, аквариумах, колодцах для полива растений и т.д.

У нас также есть проекты по созданию измерителя кислотности (pH-метр), универсального измерителя pH и TDS, а таже устройств для автоматической нормализации кислотности и концентрации.

Если это ваш первый опыт программирования контроллеров, прочитайте статью о настройке Arduino IDE и об установке библиотек.

Видео

Нам понадобится

* Можно использовать любой контроллер серии PiranhaArduino, или ESP-32.

Схема

Не забудьте перед сборкой схемы откалибровать датчик TDS. О том, как это сделать, читайте в статье.

Измеритель концентрации (насыщенности) TDS, EC-метр на ардуино

Установка библиотек 

Перед загрузкой кода в контроллер, установите необходимые библиотеки:

При необходимости воспользуйтесь инструкцией по установке.

Скетч

#include <iarduino_I2C_TDS.h>         // Подключаем библиотеку для работы с TDS/EC-метром I2C-flash.
#include <LiquidCrystal_I2C.h>        //  Подключаем библиотеку для работы с LCD дисплеем по шине I2C

iarduino_I2C_TDS tds;                 // Объявляем объект tds  для работы с функциями и методами библиотеки iarduino_I2C_TDS, адрес модуля на шине I2C не указываем - он будет обнаружен автоматически.
LiquidCrystal_I2C lcd(0x27,20,4);     // Объявляем объект lcd для работы с дисплеем(адрес I2C = 0x27, количество столбцов = 20, количество строк = 4) (для диспления 1602 параметры будут 16 и 2)

void setup(){                                    
  Serial.begin(9600);      // Инициируем работу с шиной UART для передачи данных в монитор последовательного порта на скорости 9600 бит/сек.
  tds.begin();             // Инициируем работу с TDS/EC-метром I2C-flash.
  lcd.init();              // Инициируем работу с LCD дисплеем
  lcd.backlight();         // Включаем подсветку LCD дисплея
}                                                 
                                                  
void loop(){    
  lcd.clear();             // Очищаем дисплей
  tds.set_t(18.0f);        // Указываем текущую температуру жидкости.

  // Удельная электрическая проводимость, приведённая к опорной температуре T = 25°C (по умолчанию), мкСм/см
  lcd.setCursor(0, 0);     // Устанавливаем курсор в 0 столбец 0 строку дисплея
  lcd.print("EC  = ");     // Выводим текст на дисплей
  lcd.print(tds.getEC());  // Выводим общее измеренное сопротивление.
  lcd.setCursor(11, 0);    // Устанавливаем курсор
  lcd.print("uS/sm");      // Выводим текст на дисплей

  // Количество растворённых твёрдых веществ в ppm (мг/л воды)
  lcd.setCursor(0, 1);     // Устанавливаем курсор в 0 столбец 1 строку дисплея
  lcd.print("TDS = ");     // Выводим текст на дисплей
  lcd.print(tds.getTDS()); // Выводим общее измеренное сопротивление.
  lcd.setCursor(11, 1);    // Устанавливаем курсор
  lcd.print("mg/l");       // Выводим текст на дисплей

  // Общее измеренное сопротивление, Ом
  lcd.setCursor(0, 2);     // Устанавливаем курсор в 0 столбец 1 строку дисплея
  lcd.print("Ro  = ");     // Выводим текст на дисплей
  lcd.print(tds.getRo());  // Выводим общее измеренное сопротивление.
  lcd.setCursor(11, 2);    // Устанавливаем курсор
  lcd.print(char(244));    // Выводим текст на дисплей

  // Удельная электрическая проводимость, мкСм/см
  lcd.setCursor(0, 3);     // Устанавливаем курсор в 0 столбец 1 строку дисплея
  lcd.print("S   = ");     // Выводим текст на дисплей
  lcd.print(tds.get_S());  // Выводим измеренную удельную электропроводность жидкости.
  lcd.setCursor(11, 3);    // Устанавливаем курсор
  lcd.print("uS/sm");      // Выводим текст на дисплей
  
  delay(1000);             // Задержка
}

Ссылки




Обсуждение

Гарантии и возврат Используя сайт Вы соглашаетесь с условями