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

아두이노 기반 가정용 풍량계: 제작 및 모니터링

부품 및 소모품

아두이노 UNO × 1
점퍼 와이어 (범용) × 25
브레드보드 (범용) × 1
로터리 포텐셔미터 10kΩ × 1
Adafruit RGB 백라이트 LCD - 16x2 × 1
스루홀 저항 220kΩ × 1
Diymall 전압 센서 DC 0-25V × 1
DROK 신호 증폭기 AD620 × 1
컵 블레이드 풍속계 (아네모미터) × 1

필요한 도구 및 기계

납땜 인두 (범용)

프로젝트 소개

배경

가정용으로 사용할 수 있는 풍량계(airflow flowmeter) 제작 과제가 주어졌습니다. 불행히도 현재 HVAC 업계에서 판매되는 풍량 감지 장치는 모두 산업용 시스템용으로 설계돼 있습니다. 현재 산업용 레지스터의 풍량을 계산하는 장치들은 가정용 레지스터에는 너무 크거나, 가정용 HVAC 시스템의 적은 풍량 출력을 측정하지 못합니다.

작동 원리

공기 흐름에서 신호를 생성하기 위해 컵 아네모미터를 사용해 공기를 포착했습니다. Autodesk Inventor로 맞춤형 3D 프린팅 블레이드를 제작해 팬 블레이드의 공기 포집 성능을 최적화했습니다. 아네모미터를 담을 인클로저도 3D 프린팅했습니다.

아두이노 기반 가정용 풍량계: 제작 및 모니터링
아두이노 기반 가정용 풍량계: 제작 및 모니터링

아네모미터가 출력한 신호를 읽기 위해 전압 센서를 선택했습니다. 센서 신호는 전압 센서에서 더 정확한 읽기를 위해 증폭이 필요했습니다. 증폭기는 아네모미터의 출력 전압을 10배 증폭합니다. 이 증폭 배율은 입력 전압에 따라 1.5배에서 1000배 사이로 조절 가능합니다.

아두이노 우노로 전압 센서의 아날로그 신호를 읽고 LCD 화면에 표시할 내용을 제어했습니다. 이 문제에서는 풍속을 CFM(분당 입방피트)로 표시하고자 했으므로 화면에 CFM으로 표시되게 했습니다.

제작 과정

전자부품

첫 단계는 아네모미터부터 시작합니다. 아래는 장치 사진들입니다.

아두이노 기반 가정용 풍량계: 제작 및 모니터링
아두이노 기반 가정용 풍량계: 제작 및 모니터링

"아네모미터 탑 뷰" 이미지를 보세요. 블레이드가 아네모미터에 연결되는 부분이 L자형이고 매우 얇습니다. 고속에서 견디기 어려우니 여기서 새로운 블레이드를 설계했습니다. 더 두꺼운 블레이드와 더 견고한 핸들 디자인을 원했습니다. 더 큰 블레이드의 목적은 블레이드와 하우징 유닛(팬이 들어갈 곳) 사이의 단면적 공기 간격을 줄여, 스쿱이 포집하는 공기량과 모터가 생성하는 전압을 늘리는 것입니다. 아래는 블레이드가 아네모미터에 연결되는 부분 사진입니다.

아두이노 기반 가정용 풍량계: 제작 및 모니터링

이게 큰 차이를 만들까? 좋은 질문입니다. Autodesk Inventor에서 응력 해석 테스트를 수행해 새 디자인이 얼마나 더 견고한지 확인했습니다. 아래 그림이 결과입니다.

아두이노 기반 가정용 풍량계: 제작 및 모니터링
아두이노 기반 가정용 풍량계: 제작 및 모니터링

새 블레이드가 고속에서 훨씬 더 효과적임을 알 수 있습니다. 블레이드 STL 파일은 파일 섹션에 첨부돼 있습니다. 아직 새 블레이드를 장착하지 마세요.

다음으로 수정된 아네모미터를 하우징 유닛에 장착합니다. 하우징 유닛 STL 파일도 파일 섹션에 있습니다. 블레이드 없는 아네모미터를 하우징 바닥 구멍으로 위로 밀어 넣습니다. 아네모미터 바닥을 얇은 나무 원형 두 개(호비 로비 제품)에 고릴라 글루로 붙입니다. 원형과 ABS 플라스틱 하우징에 작은 구멍 4개 뚫기. 하나는 와이어 통과용, 세 개는 나사용. 아래 그림처럼 됩니다.

아두이노 기반 가정용 풍량계: 제작 및 모니터링

다음으로 아네모미터를 증폭기에 배선합니다. 아래는 증폭기 사진입니다.

아두이노 기반 가정용 풍량계: 제작 및 모니터링

*증폭기에 연결된 모든 와이어는 수-수 타입

수-수 와이어 두 개(색상 무관, 본 프로젝트에서 쓴 색으로 설명)를 준비합니다. 빨강 와이어를 오른쪽 +S 서클에 납땜, 다른 끝을 아네모미터에서 나온 빨강 와이어에 납땜. 검정 와이어를 오른쪽 -S 서클에 납땜, 다른 끝을 아네모미터에서 나온 노란 와이어에 납땜. 전기 테이프로 고정하면 좋습니다.

아두이노 기반 가정용 풍량계: 제작 및 모니터링
아두이노 기반 가정용 풍량계: 제작 및 모니터링

다음으로 증폭기를 배터리 전원에 배선합니다. 노란 와이어를 오른쪽 GND에 납땜, 다른 끝을 배터리 팩 커넥터의 검정 와이어에 납땜. 흰 와이어를 오른쪽 Vln 서클에 납땜, 다른 끝을 배터리 팩 커넥터의 빨강 와이어에 납땜.

다음으로 증폭기를 전압 센서에 배선합니다. 파란 와이어를 증폭기 GND에 납땜, 다른 끝을 전압 센서 VCC에 납땜. 초록 와이어를 증폭기 Vout에 납땜, 다른 끝을 전압 센서 GND에 납땜.

아두이노 기반 가정용 풍량계: 제작 및 모니터링
아두이노 기반 가정용 풍량계: 제작 및 모니터링

이제 전압 센서를 아두이노에 배선하고 배선 마무리. 회로도 섹션의 배선도가 이 부분을 보여줍니다.

마무리 작업

가장 어려운 부분 끝! 모든 배선 완료했으니 전자부품을 풍량계에 장착합니다. 폼 보드 조각을 팬 하우징 상단의 천장 삼아 쓰고 고릴라 글루로 고정. 전자부품을 폼 보드 위에 올리고 폼 보드로 전자부품을 감쌉니다. 아래 사진들에서 폼으로 전자부품을 감싼 모습을 볼 수 있습니다.

아두이노 기반 가정용 풍량계: 제작 및 모니터링

아두이노와 증폭기가 각자의 9V 배터리 전원에 접근할 수 있게 폼에 구멍을 뚫었습니다. 아래 사진에서 확인 가능.

아두이노 기반 가정용 풍량계: 제작 및 모니터링

다음으로 깔때기(funnel)를 만듭니다. PVC 자재로 깔때기 판 4개를 만들었습니다. 사다리꼴 모양 4개. 판들을 고릴라 글루와 실리콘으로 서로 연결. 같은 방식으로 깔때기를 팬 하우징에 연결. 깔때기 큰 끝 둘레에 웨더 스트리핑을 둘러 벤트에 밀착시 밀봉되게 했습니다. 깔때기 큰 끝 단면은 14" x 14". 아래 그림은 깔때기 정면도입니다.

캘리브레이션

모든 제작 완료 후 풍량계를 캘리브레이션했습니다. 정확한 풍량을 아는 장치로 테스트했습니다. 최초 코드는 센서가 읽은 전압을 LCD에 표시했습니다. 수집한 데이터로 LCD에 CFM을 표시하는 방정식을 만들었습니다. 아래 데이터가 캘리브레이션 과정입니다.

아두이노 기반 가정용 풍량계: 제작 및 모니터링
아두이노 기반 가정용 풍량계: 제작 및 모니터링

그래프에서 두 곡선, 초기 풍량과 실제 풍량이 보입니다. 깔때기로 공기를 모으면 속도가 약간 감소하므로 다릅니다. 여기선 실제 풍량에 대한 최적 적합 방정식인

y = 1.1409x² + 44.958x

를 아두이노 코드에 사용합니다. 코드는 세 부분으로 나뉩니다: 풍속 0 영역, 중저속 풍속 영역, 고속 풍속 영역. 위 최적 적합 방정식으로 전체 풍속 범위를 모델링할 수 있지만, 중저속 범위를 더 잘 모델링하는 방정식을 찾았습니다. 범위는 다음 방정식들로 표현:

대용량 CFM (고속):

y = 1.1409x² + 44.958x

중소용량 CFM (중저속):

y = 40x + 20

영 CFM (풍속 0):

y = 0

코드는 뒷부분에 있습니다.

코드를 아두이노에 업로드하면 풍량계 완성!

직접 캘리브레이션하기 (선택 사항)

직접 캘리브레이션하고 싶을 수도 있습니다. 풍속 단위를 m/s나 mph로 쓰고 싶을 수도 있죠. 직접 캘리브레이션 단계를 안내합니다.

  1. 실제 유량 측정 방법 찾기. 가장 저렴한 방법은 매장에서 아네오미터 구매. 이런 제품이 적당합니다.
  2. 다단계 속도 설정 가능한 팬 앞에 아네오미터 배치. 아래 사진 같은 팬.
아두이노 기반 가정용 풍량계: 제작 및 모니터링
  1. 각 속도 설정에서 아네오미터 풍속 기록.
  2. 풍량계가 팬 출력 전압을 읽게 하기. "전압 센서 코드"를 아두이노에 업로드.
  3. 각 팬 속도 설정에서 전압 기록.
  4. 엑셀로 "풍속 vs 전압" 산점도 생성.
  5. 추세선 기능으로 "풍속 vs 전압"을 정확히 모델링하는 방정식 찾기.
  6. 추세선이 별로 선형적이지 않다면, 그래프 하단과 상단 부분에 별도 방정식 적용.
  7. 내 방정식을 여러분의 방정식으로 대체해 "풍량계 코드"에 적용 후 아두이노 업로드하면 끝!

코드

풍량계 코드 C/C++
1. #include <LiquidCrystal.h>
2.
3. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
4. // 사용할 핀들
5.
6. // 센서 내 저항값들
7. float R1=30000;
8. float R2=7500;
9.
10. void setup()
11. {
12.   Serial.begin(9600);
13.   lcd.begin(16, 2);
14.   // LCD 화면 사용 가능하게
15.
16. }
17.
18. void loop()
19. {
20.   int sensorValue = analogRead(A0);
21.   // 센서 값 읽기
22.
23.   float voltage = ((5*sensorValue*(R1+R2))/(1024*R2));
24.   // 실제 전압 방정식
25.
26.   //*********************************************************//
27.   // CFM 방정식은 전압의 구간별 함수이므로
28.   // if문으로 각 구간 나누기
29.   //*********************************************************//
30.
31.   if (voltage > 1)
32.   // 대용량 CFM 첫 번째 구간
33.   {
34.     float cfm = (1.1409*(voltage))*((voltage))+44.258*(voltage);
35.     Serial.println(cfm);
36.     // CFM 표시
37.     lcd.print("CFM = ");
38.     lcd.setCursor(0, 1);
39.     lcd.print(cfm);
40.     delay(1000);
41.     // 1000ms 지연
42.     lcd.clear();
43.     // 반복 위해 클리어
44.     delay(1000);
45.   }
46.
47.   else if (0.01 < voltage && voltage < 1)
48.   // 중소용량 CFM 두 번째 구간
49.   {
50.     float cfm = (40*(voltage)+20);
51.     Serial.println(cfm);
52.     lcd.print("CFM = ");
53.     lcd.setCursor(0, 1);
54.     lcd.print(cfm);
55.     delay(1000);
56.     lcd.clear();
57.     delay(1000);
58.   }
59.
60.   else
61.   // 팬이 안 돌면 CFM은 0
62.   {
63.     float cfm = 0;
64.     Serial.println(cfm);
65.     lcd.print("CFM = ");
66.     lcd.setCursor(0, 1);
67.     lcd.print(cfm);
68.     delay(1000);
69.     lcd.clear();
70.     delay(1000);
71.   }
72.
73. }
전압 센서용 코드 C/C++

직접 캘리브레이션하려면 전압 읽기용 코드:

// 센서 내 저항값들
float R1=30000;
float R2=7500;

void setup() {
  Serial.begin(9600);
}

void loop() {
  int sensorValue = analogRead(A0);
  float voltage = ((5*sensorValue*(R1+R2))/(1024*R2));
  Serial.println(voltage);
  delay(1000);
}
전압 센서 코드 C/C++

풍량계 직접 캘리브레이션용 코드:

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// 사용할 핀들
// 센서 내 저항값들
float R1=30000;
float R2=7500;

void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);
}

void loop() {
  int sensorValue = analogRead(A0);
  float voltage = ((5*sensorValue*(R1+R2))/(1024*R2));
  Serial.println(voltage);
  lcd.print("V = ");
  lcd.setCursor(0, 1);
  lcd.print(voltage);
  delay(1000);
  lcd.clear();
  delay(1000);
}

커스텀 파트 및 인클로저

회로도

아두이노 기반 가정용 풍량계: 제작 및 모니터링

제조공정

  1. 공기 청정기: 설계, 역사 및 미래 트렌드
  2. 산소 탱크 제조: 원자재부터 품질 보증까지
  3. 방향제: 고대 향기에서 현대 플러그인 기술까지
  4. 산소: 고대 발견에서 현대 산업 강자로
  5. 에어컨 시스템: 설계, 제조 및 미래 트렌드
  6. 열기구: 몽골피에 형제에서 현대 비행까지
  7. 에어백 시스템: 설계, 역사, 미래 혁신
  8. 아두이노 우노 & MAX7219로 만드는 UFO 어택 게임 – 직접 만드는 레트로 아케이드
  9. 3D RGB 아두클락(Arduclock) - 블루투스 제어 LED 타임피스 with RTC
  10. 강 건강 모니터: 아두이노 기반 수질 측정 시스템