Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Датчик качества воды на основе Интернета вещей

Компоненты и расходные материалы

Arduino UNO
× 1
Провода перемычки "папа / мама"
× 1
Модуль Bluetooth HC-05
× 1
Общий катод, рассеянный RGB
× 1
Резистор 330 Ом
× 3
Поворотный потенциометр (общий)
× 1
Комплект ЖК-экрана RGB, дисплей 16x2 символов
× 1
Резистор 1 кОм
× 1

Необходимые инструменты и машины

Инструмент для зачистки и обрезки проводов, одножильные и многожильные провода 26-14 AWG

Приложения и онлайн-сервисы

IDE Arduino
Ardutooth

Об этом проекте

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

Что такое TDS?

TDS означает «Общее количество растворенных твердых веществ». Как следует из названия, он дает нам количество твердых веществ, растворенных в определенном количестве воды, в ppm (частях на миллион). TDS рассчитывается на основе электропроводности [См / м]. Чем выше электропроводность, тем выше значение TDS. Вот список значений TDS для различных типов воды:

  • Чистая вода:80–150.
  • Водопроводная вода:250–350.
  • Подземные воды:500–1000.
  • Морская вода:около 30000.

В соответствии с рекомендациями ВОЗ (Всемирная организация здравоохранения) подходящая TDS питьевой воды ниже 300. Однако воду с TDS ниже 100 нельзя употреблять, так как в ней не хватает основных минералов. Вода выше 300 считается слишком жесткой, так как содержит больше минералов, чем необходимо.

Обычно мы используем ручку TDS для измерения TDS воды. Однако мы не можем интегрировать перо с Arduino. Итак, доступны специальные измерители TDS, которые можно интегрировать с Arduino. Однако я решил сделать этот проект без использования ручки TDS.

Схема

Ардуино

  • Подключите 5 В Arduino к одной шине питания макета.
  • Подключите землю Arduino к другой шине питания макета.
  • Подключите один конец резистора сопротивлением 1 кОм к земле, а другой конец - к макетной плате. Подключите аналоговый вывод A0 на Arduino к резистору. Наконец, подключите провод к резистору, а другой провод к 5 В. Присоедините свободные концы этих проводов к зажимам типа «крокодил».

ЖК-дисплей Медийная реклама

  • Подключите контакт VSS к шине заземления.
  • Подключите вывод VDD к шине 5 В
  • Подключите V0 к центральному контакту потенциометра.
  • Подключите концы потенциометра к 5 В и земле.
  • Подключите вывод RS к выводу 7 Arduino.
  • Подключите контакт R / W к шине заземления.
  • Подключите контакт E к контакту 8 Arduino
  • Подключите D4 к контакту 10 Arduino
  • Подключите D5 к контакту 11 Arduino.
  • Подключите D6 к контакту 12 Arduino.
  • Подключите D7 к контакту 13 Arduino.

Модуль Bluetooth HC-05

  • Подключите вывод VCC к шине 5 В
  • Подключите контакт GND к земле
  • Подключите вывод TX к контакту 3 Arduino (служит RX)
  • Подключите вывод RX к контакту 2 Arduino (служит TX)

Светодиод RGB

  • Подключите общий катод (самый длинный контакт) к земле.
  • Подключите красный контакт (справа от контакта катода) к контакту 9 PWM на Arduino через резистор 330 Ом.
  • Подключите зеленый контакт (слева от контакта катода) к контакту 6 PWM на Arduino через резистор 330 Ом.
  • Подключите синий контакт (крайний левый) к контакту 5 PWM на Arduino через резистор 330 Ом.

Вывод для расчета сопротивления между свободными проводами

Мы будем использовать закон Ома, который гласит, что напряжение [V] через резистор с сопротивлением R прямо пропорционально току [I], протекающему через резистор. Другими словами, V =IR

Хотя между двумя резисторами [R₁ - 1000 Ом и R₂ - между свободными проводами] есть провод, подключенный к аналоговому выводу A0 на Arduino, сопротивлением этого провода можно пренебречь, и, следовательно, мы можем сказать, что по проводу протекает минимальный ток. Итак, R₁ и R₂ соединены последовательно.

Итак, мы можем сказать, что V₁ =IR₁ и V₂ =IR₂ .

Следовательно, мы можем сказать V₂ / V₁ =IR₂ / IR₁ =R₂ / R₁

. Однако мы не знаем V₂.

Мы знаем, что в последовательной комбинации резисторов V₁ + V₂ =V , где V =5 Вольт. Отсюда мы можем получить V₂ =5-V₁

Наконец, подставив полученное значение для V₂ в V₂ / V₁ =R₂ / R₁ , мы можем определить буфер переменной как 5-V₁ / V₁ вместо V₂ / V₁ .

Наконец, мы можем сказать, что R₂ =buffer * R₁ .

Рабочий

Мы рассчитаем сопротивление тестируемой воды и на основании этого получим удельное сопротивление. Для этого мы должны учитывать длину и площадь поперечного сечения нашего контейнера.

  R =r L / A => r =R A / L  

Из удельного сопротивления мы можем получить проводимость

  c =1 / r  

Наконец, мы получаем TDS из проводимости

  TDS =c * 7000  

Библиотеки

  • Библиотека жидких кристаллов:https://www.arduinolibraries.info/libraries/liquid-crystal
  • Программная последовательная библиотека:https://pdfpunk.weebly.com/softwareserial-library-download.html

Вы можете либо загрузить эти библиотеки и добавить их в свою Arduino IDE, либо перейти в Инструменты -> Управление библиотеками -> поиск библиотеки, которую вы хотите загрузить

Код

  • Код мониторинга качества воды
Код мониторинга качества воды Arduino
 // включаем библиотеки # include  #include  // для bluetooth - создаем объект с именем BTserial, с выводом RX на 3 и выводом TX на 2SoftwareSerial BTserial (3,2); // RX | TX // уменьшение всех наших переменных float reads; int pin =A0; float vOut =0; // падение напряжения на 2 точках float vIn =5; float R1 =1000; float R2 =0; float buffer =0; float TDS; float R =0; // сопротивление между двумя проводами float r =0; // сопротивление float L =0,06; // расстояние между проводами в mdouble A =0,000154; // площадь поперечного сечения провода в m ^ 2float C =0; // проводимость в См / мfloat Cm =0; // проводимость в мСм / см int rPin =9; int bPin =5; int gPin =6; int rVal =255; int bVal =255; int gVal =255; // мы будем использовать эту формулу, чтобы получить удельное сопротивление после использования закона Ома -> R =r L / A => r =RA / L // создание объекта lcd из библиотеки Liquid Crystal LiquidCrystal lcd (7,8,10,11,12,13 ); void setup () {// инициализируем серийный и последовательный монитор BT Serial.begin (9600); BTserial.begin (9600); // инициализировать lcd lcd.begin (16, 2); // устанавливаем выводы светодиода rgb (все должны быть выводами pwm на Arduino) как output pinMode (rPin, OUTPUT); pinMode (bPin, ВЫХОД); pinMode (gPin, ВЫХОД); pinMode (контакт, ВХОД); // Вывести сообщение о застойном состоянии на ЖК-дисплей lcd.print ("Conductivity:");} void loop () {reads =analogRead (A0); vOut =читает * 5/1023; Serial.println (читает); // Serial.println (vOut); буфер =(vIn / vOut) -1; R2 =R1 * буфер; Serial.println (R2); задержка (500); // преобразование напряжения в сопротивление // Применение указанной выше формулы r =R2 * A / L; // R =rL / A // преобразование удельного сопротивления в кондуктивность C =1 / r; См =С * 10; // преобразование проводимости в мСм / см в TDS TDS =Cm * 700; // Установить курсор ЖК-дисплея на следующую строку lcd.setCursor (0,1); lcd.println (С); // отображение соответствующих цветов на RGB-светодиоде в соответствии с аналоговым считыванием if (reads <600) {if (reads <=300) {setColor (255, 0, 255); } если (читает> 200) {setColor (200, 0, 255); }} else {if (читает <=900) {setColor (0, 0, 255); } если (читает> 700) {setColor (0, 255, 255); }} // отправляем данные в приложение Ardutooth на мобильном телефоне через bluetoothBTserial.print (C); BTserial.print (","); BTserial.print (TDS); BTserial.print (";"); delay (500); } void setColor (int красный, int зеленый, int синий) {analogWrite (rPin, 255 - красный); analogWrite (gPin, 255 - зеленый); analogWrite (bPin, 255 - синий); } 

Изготовленные на заказ детали и корпуса

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

Схема


Производственный процесс

  1. Базовый IoT - RaspberryPI HDC2010 как
  2. Проект Интернета вещей на основе Raspberry PI Подключение датчика DHT11
  3. Сотовый Интернет вещей:умный мусорный бак
  4. Датчик качества воздуха с гелием
  5. Высокочувствительный датчик воды на MCP3008
  6. Windows 10 IoT Core и SHT15
  7. Многотемпературный датчик
  8. Бутылка для воды с питанием от Arduino
  9. Водяной пистолет с датчиком движения
  10. Датчик качества воздуха на основе углерода