- 액체의 탁도는 무엇입니까?
- Arduino를 사용하여 탁도를 측정하는 방법은 무엇입니까?
- 탁도 측정기에 필요한 부품
- 탁도 센서 개요
- 탁도 모듈의 주요 기능
- Arduino와 탁도 센서 인터페이스 – 회로도
- 수중 탁도 측정을위한 Arduino 프로그래밍
액체와 관련하여 탁도는 중요한 용어입니다. 액체 역학에서 중요한 역할을하고 수질 측정 에도 사용되기 때문 입니다. 따라서이 튜토리얼에서는 탁도가 무엇인지, Arduino를 사용하여 액체의 탁도를 측정하는 방법에 대해 논의하겠습니다. 이 프로젝트를 더 진행하려면 Arduino와 pH 측정기를 연결하고 물의 pH 값을 읽어 수질을 더 잘 평가할 수도 있습니다. 이전에는 ESP8266을 사용하여 IoT 기반 수질 모니터링 장치도 구축했으며 관심이있는 경우 확인할 수도 있습니다. 즉, 시작합시다
액체의 탁도는 무엇입니까?
탁도는 액체 의 흐림 또는 흐릿함 의 정도 또는 수준입니다. 이것은 공기 중의 흰 연기와 유사한 (육안으로) 많은 수의 보이지 않는 입자가 존재하기 때문에 발생합니다. 빛이 액체를 통과 할 때 이러한 작은 입자의 존재로 인해 광파가 산란됩니다. 액체의 탁도는 입자의 수가 증가하면 탁도도 증가하는 자유 부유 입자에 정비례합니다.
Arduino를 사용하여 탁도를 측정하는 방법은 무엇입니까?
앞서 언급했듯이 광파의 산란으로 인해 탁도가 발생하므로 탁도를 측정하기 위해서는 빛의 산란을 측정해야합니다. 탁도는 일반적으로 측정에 사용되는 방법에 따라 NTU (nephelometric turbidity units) 또는 JTLJ (Jackson turbidity unit) 로 측정됩니다. 두 단위는 거의 동일합니다.
이제 탁도 센서가 어떻게 작동하는지 보겠습니다 . 송신기와 수신기의 두 부분으로 구성 됩니다. 송신기는 일반적으로 LED와 드라이버 회로 인 광원으로 구성됩니다. 수신기쪽에는 광 다이오드 또는 LDR과 같은 광 감지기가 있습니다. 송신기와 수신기 사이에 솔루션을 배치합니다.
송신기는 단순히 빛을 전송하고, 그 빛의 파장은 용액을 통과하고 수신기는 빛을받습니다. 일반적으로 (솔루션없이) 전송 된 빛은 수신기 측에서 완전히 수신됩니다. 그러나 탁한 용액이 있으면 투과되는 빛의 양이 매우 적습니다. 즉, 리시버 측에서는 낮은 강도의 빛만 얻고이 강도는 탁도에 반비례 합니다. 그래서 우리는 빛의 강도가 높으면 용액의 탁도가 적고 빛의 강도가 매우 낮 으면 용액이 더 탁한 것을 의미하는 빛의 강도를 측정하여 탁도를 측정 할 수 있습니다.
탁도 측정기에 필요한 부품
- 탁도 모듈
- Arduino
- 16 * 2 I2C LCD
- 공통 음극 RGB LED
- 브레드 보드
- 점퍼 와이어
탁도 센서 개요
이 프로젝트에 사용 된 탁도 센서는 다음과 같습니다.
보시다시피이 탁도 센서 모듈은 3 개 부품으로 제공됩니다. 방수 리드, 드라이버 회로 및 연결 와이어. 테스트 프로브는 송신기와 수신기로 구성됩니다.
위의 이미지는 이러한 유형의 모듈이 IR 다이오드를 광원으로 사용하고 IR 수신기를 감지기로 사용함을 보여줍니다. 그러나 작동 원리는 이전과 동일합니다. 드라이버 부분 (아래 참조)은 연산 증폭기와 감지 된 광 신호를 증폭하는 일부 구성 요소로 구성됩니다.
실제 센서는 JST XH 커넥터를 사용하여이 모듈에 연결할 수 있습니다. 3 개의 핀, VCC, 접지 및 출력이 있습니다. Vcc는 5v에 연결되고 접지와 접지됩니다. 이 모듈의 출력은 빛의 세기에 따라 변하는 아날로그 값입니다.
탁도 모듈의 주요 기능
- 작동 전압: 5VDC.
- 전류: 30mA (최대).
- 작동 온도: -30 ° C ~ 80 ° C
- Arduino, Raspberry Pi, AVR, PIC 등과 호환됩니다.
Arduino와 탁도 센서 인터페이스 – 회로도
탁도 센서를 Arduino에 연결하는 전체 회로도는 아래에 나와 있으며 회로는 EasyEDA를 사용하여 설계되었습니다.
이것은 매우 간단한 회로도입니다. 탁도 센서의 출력은 아날로그이므로 Arduino의 A0 핀에 연결되고 I2C LCD는 Arduino의 I2C 핀에 연결됩니다. 그런 다음 RGB LED는 디지털 핀 D2, D3 및 D4에 연결됩니다. 연결이 완료되면 하드웨어 설정은 다음과 같습니다.
센서의 VCC를 Arduino 5v에 연결 한 다음 접지를 접지에 연결합니다. 센서의 출력 핀은 Arduino의 아날로그 0입니다. 다음으로 VCC와 LCD 모듈의 접지를 Arduino의 5v와 접지에 연결합니다. 그런 다음 SDA에서 A4로, SCL에서 A5로,이 두 핀은 Arduino의 I2C 핀입니다. 마지막으로 RGB LED의 접지를 Arduino의 접지에 연결하고 녹색을 D3, 파란색을 D4, 빨간색을 D5에 연결합니다.
수중 탁도 측정을위한 Arduino 프로그래밍
계획은 0에서 100까지의 탁도 값을 표시하는 것입니다. 즉, 미터는 순수한 액체에 대해 0을 표시하고 매우 탁한 액체에 대해 100을 표시해야합니다. 이 Arduino 코드도 매우 간단하며 전체 코드는이 페이지 하단에서 찾을 수 있습니다.
먼저 I2C LCD를 사용하여 연결을 최소화하기 때문에 I2C 액정 라이브러리를 포함했습니다.
# 포함
그런 다음 센서 입력을 위해 정수를 설정합니다.
int sensorPin = A0;
설정 섹션에서 핀을 정의했습니다.
pinMode (3, OUTPUT); pinMode (4, OUTPUT); pinMode (5, OUTPUT);
루프 섹션에서 앞서 언급했듯이 센서의 출력은 아날로그 값입니다. 그래서 우리는 그 값을 읽어야합니다. Arduino AnalogRead 기능 의 도움으로 루프 섹션에서 출력 값을 읽을 수 있습니다.
int sensorValue = analogRead (sensorPin);
먼저 센서의 동작을 이해해야합니다. 즉, 탁도 센서의 최소값과 최대 값을 읽어야합니다. serial.println 함수를 사용하여 직렬 모니터에서 해당 값을 읽을 수 있습니다.
이 값을 얻으려면 먼저 솔루션이없는 센서를 자유롭게 읽으십시오. 나는 약 640의 값을 얻었고 그 후 송신기와 수신기 사이에 검은 물질을 놓으면 최소값 인 값을 얻습니다. 일반적으로 그 값은 0입니다. 그래서 우리는 최대로 640을, 최소로 0을 얻었습니다. 이제이 값을 0-100으로 변환해야합니다.
이를 위해 Arduino 의지도 기능을 사용했습니다.
int turbidity = map (sensorValue, 0,640, 100, 0);
그런 다음 그 값을 LCD 디스플레이에 표시했습니다.
lcd.setCursor (0, 0); lcd.print ("탁도:"); lcd.print (""); lcd.setCursor (10, 0); lcd.print (탁도);
그 후 if 조건 의 도움으로 다른 조건을 지정했습니다.
if (탁도 <20) { digitalWrite (2, HIGH); digitalWrite (3, LOW); digitalWrite (4, LOW); lcd.setCursor (0, 1); lcd.print ("CLEAR"); }
탁도 값이 20 미만인 경우 녹색 LED가 활성화되고 LCD에 "맑음"이 표시됩니다.
if ((탁도> 20) && (탁도 <50)) { digitalWrite (2, LOW); digitalWrite (3, HIGH); digitalWrite (4, LOW); lcd.setCursor (0, 1); lcd.print ("그것의 CLOUDY"); }
탁도 값이 20과 50 사이에 있으면 파란색 LED가 활성화되고 LCD에 "흐림"이 표시됩니다.
if ((탁도> 50) { digitalWrite (2, LOW); digitalWrite (3, HIGH); digitalWrite (4, LOW); lcd.setCursor (0, 1); lcd.print ("its DIRTY"); }
아래 그림과 같이 탁도 값이 50보다 크면 빨간색 LED가 활성화되고 LCD에 "더러워졌습니다"를 표시합니다.
회로도를 따라 코드를 업로드하기 만하면됩니다. 모든 것이 올바르게 진행되면 물의 탁도를 측정 할 수 있고 LCD에 위와 같이 수질이 표시됩니다.
이 탁도 측정기는 탁도의 백분율을 표시하며 정확한 산업 값이 아닐 수 있지만 여전히 두 물의 수질을 비교하는 데 사용할 수 있습니다. 이 프로젝트의 전체 작업은 아래 비디오에서 찾을 수 있습니다. 튜토리얼을 즐겼기를 바라며 질문이있는 경우 유용한 정보를 배우시길 바랍니다. 아래 댓글 섹션에 질문을 남기거나 CircuitDigest 포럼을 사용하여 기술 질문을 게시하거나 관련 토론을 시작할 수 있습니다.