산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

IoT 기반 수질 센서

구성품 및 소모품

Arduino UNO
× 1
남성/여성 점퍼 와이어
× 1
HC-05 블루투스 모듈
× 1
RGB 확산 공통 음극
× 1
저항 330옴
× 3
회전 전위차계(일반)
× 1
RGB LCD 실드 키트, 16x2 문자 디스플레이
× 1
저항 1k 옴
× 1

필요한 도구 및 기계

와이어 스트리퍼 및 절단기, 26-14 AWG 단선 및 연선

앱 및 온라인 서비스

Arduino IDE
아두투스

이 프로젝트 정보

물은 우리 일상생활에서 없어서는 안 될 중요한 자원입니다. 따라서 사용하기에 좋은 품질인지 확인해야 합니다.

TDS란 무엇입니까?

TDS는 Total Dissolved Solids의 약자입니다. 이름에서 알 수 있듯이 일정량의 물에 녹아 있는 고체의 수를 ppm(백만분의 일)으로 나타냅니다. TDS는 전기 전도도[S/m]를 기반으로 계산됩니다. 전기 전도도가 높을수록 TDS 값이 높아집니다. 다음은 다양한 물 유형의 TDS 값 목록입니다.

<울>
  • 순수:80-150
  • <울>
  • 수돗물:250-350
  • <울>
  • 지하수:500-1000
  • <울>
  • 해수:약 30000
  • WHO(세계보건기구)에서 권장하는 식수의 적정 TDS는 300 미만입니다. 그러나 TDS가 100 미만인 물은 필수 미네랄이 부족하여 섭취할 수 없습니다. 300이 넘는 물은 필요한 것보다 더 많은 미네랄을 함유하고 있기 때문에 너무 "단단한" 것으로 간주됩니다.

    일반적으로 TDS 펜을 사용하여 물의 TDS를 측정합니다. 그러나 펜을 Arduino와 통합할 수는 없습니다. 따라서 Arduino와 통합할 수 있는 특수 TDS 미터를 사용할 수 있습니다. 그러나 TDS 펜을 사용하지 않고 이 프로젝트를 하기로 결정했습니다.

    회로

    아두이노

    <울>
  • 5V의 Arduino를 브레드보드의 하나의 전원 레일에 연결
  • <울>
  • Arduino의 접지를 브레드보드의 다른 전원 레일에 연결
  • <울>
  • 1k-ohm 저항기의 한쪽 끝을 접지에 연결하고 다른 쪽 끝을 브레드보드에 연결합니다. Arduino의 아날로그 핀 A0을 저항에 연결하십시오. 마지막으로 와이어를 저항에 연결하고 다른 와이어를 5V에 연결합니다. 이 와이어의 자유 끝을 악어 클립에 연결합니다.
  • LCD 디스플레이

    <울>
  • VSS 핀을 접지 레일에 연결
  • <울>
  • VDD 핀을 5V 레일에 연결
  • <울>
  • V0을 전위차계의 중앙 핀에 연결합니다.
  • <울>
  • 전위차계의 끝을 5V 및 접지에 연결합니다.
  • <울>
  • RS 핀을 Arduino 핀 7에 연결
  • <울>
  • R/W 핀을 접지 레일에 연결
  • <울>
  • E 핀을 Arduino 핀 8에 연결
  • <울>
  • D4를 Arduino 핀 10에 연결
  • <울>
  • D5를 Arduino 핀 11에 연결
  • <울>
  • D6을 Arduino 핀 12에 연결
  • <울>
  • D7을 Arduino 핀 13에 연결
  • HC-05 블루투스 모듈

    <울>
  • VCC 핀을 5V 레일에 연결
  • <울>
  • GND 핀을 접지에 연결
  • <울>
  • TX 핀을 Arduino 핀 3에 연결(RX 역할)
  • <울>
  • RX 핀을 Arduino 핀 2에 연결(TX 역할)
  • RGB LED

    <울>
  • 공통 음극(가장 긴 핀)을 접지에 연결합니다.
  • <울>
  • 330옴 저항을 통해 빨간색 핀(음극 핀 오른쪽)을 Arduino의 PWM 핀 9에 연결합니다.
  • <울>
  • 330옴 저항을 통해 녹색 핀(음극 핀 왼쪽)을 Arduino의 PWM 핀 6에 연결합니다.
  • <울>
  • 330옴 저항을 통해 파란색 핀(맨 왼쪽)을 Arduino의 PWM 핀 5에 연결합니다.
  • 자유 전선 사이의 저항 계산을 위한 유도

    저항 R의 저항을 통한 전압 [V]는 저항을 통해 흐르는 전류 [I]에 정비례한다는 옴의 법칙을 사용할 것입니다. 즉, V =IR

    Arduino의 아날로그 핀 A0에 2개의 저항[R₁ - 1000옴, R₂ - 자유 전선 사이]에 연결된 전선이 있지만 해당 전선의 저항은 무시할 수 있으므로 다음과 같이 말할 수 있습니다. 최소한의 전류가 전선을 통해 흐릅니다. 따라서 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에 추가하거나 도구 -> 라이브러리 관리 -> 다운로드하려는 라이브러리 검색으로 이동할 수 있습니다.

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    <울>
  • 수질 모니터링 코드
  • 수질 모니터링 코드Arduino
    //라이브러리 포함#include #include //블루투스 - RX 핀이 3이고 TX 핀이 2SoftwareSerial BTserial(3,2)인 BTserial이라는 개체를 만듭니다. // 수신 | TX//모든 변수의 선언 float reads;int pin =A0;float vOut =0;//2점에 걸친 전압 강하float vIn =5;float R1 =1000;float R2 =0;float 버퍼 =0;float TDS;float R =0;//두 와이어 사이의 저항float r =0;//저항 float L =0.06;//mdouble A =0.000154;//m^2float에서 와이어의 단면적 C =0;//S/mfloat Cm =0의 전도도;//mS/cm의 전도도/cmint rPin =9;int bPin =5;int gPin =6;int rVal =255;int bVal =255;int gVal =255;// 옴의 법칙 -> R =r L/A => r =RA/L//LiquidCrystal lcd(7,8,10,11,12,13 );void setup() { //BT 직렬 및 직렬 모니터 초기화 Serial.begin(9600); BTserial.begin(9600); //LCD 초기화 lcd.begin(16, 2); // rgb led 핀(Arduino에서 모두 pwm 핀이 됨)을 출력으로 설정합니다. pinMode(rPin,OUTPUT); 핀모드(b핀, 출력); 핀모드(g핀,출력); 핀모드(핀,입력); // LCD에 정체 메시지 인쇄 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; Cm =C*10; //전도도(mS/cm)를 TDS로 변환 TDS =Cm *700; //LCD 커서를 다음 행으로 설정 lcd.setCursor(0,1); lcd.println(C); // 아날로그 읽기에 따라 rgb led에 해당 색상을 표시합니다. if( reads <600 ) { if (reads <=300){ setColor( 255, 0, 255 ); } if (읽기> 200){ setColor( 200, 0, 255 ); } } else{ if( 읽기 <=900 ) { setColor( 0, 0, 255 ); } if( 읽기> 700 ) { setColor( 0, 255, 255 ); } } // bluetoothBTserial.print(C);BTserial.print(",");BTserial.print(TDS);BTserial.print(";");delay(500)를 통해 휴대 전화의 Ardutooth 앱에 데이터를 보냅니다. } 무효 setColor(int red, int 녹색, int blue){ analogWrite( rPin, 255 - red ); analogWrite( gPin, 255 - 녹색 ); analogWrite( bPin, 255 - 파란색 ); }

    맞춤형 부품 및 인클로저

    나는 이것을 만들기 위해 오래된 시험관을 사용했습니다. 나는 튜브의 양쪽 끝에 구멍을 뚫고 양쪽 끝에서 와이어를 삽입했습니다. 마지막으로 전선을 제자리에 고정하기 위해 퍼티를 부착했습니다.

    회로도


    제조공정

    1. 기본 IoT – RaspberryPI HDC2010 방법
    2. DHT11 센서를 연결하는 라즈베리 PI 기반 IoT 프로젝트
    3. Cellular IoT:Smart Garbage Can
    4. 헬륨 공기 품질 센서
    5. MCP3008의 고감도 물 센서
    6. Windows 10 IoT 코어 및 SHT15
    7. 다중 온도 센서
    8. Arduino 기반 물병
    9. 모션 센서 물총
    10. 탄소 기반 공기질 센서