- IoT 기반 천장 팬 조정기의 작동
- AC 팬 속도 제어 회로에 필요한 재료
- AC 팬 레귤레이터 제어 회로
- IoT 제어 천장 팬 조정기를위한 PCB 설계
- Firebase 계정 설정
- NodeMCU로 팬 조정기를 제어하는 Arduino 코드
- MIT App Inventor로 팬 레귤레이터 앱 빌드
- ESP32 기반 터치 센서 회로 테스트
- 추가 향상
이 기사에서는 팬으로 흐르는 전류를 제한하여 팬의 속도를 제어 할 수있는 AC 팬 레귤레이터 회로를 구축합니다. AC 천장 팬 레귤레이터 라는 용어 는 입에 가득 차 있기 때문에 지금부터는 간단히 팬 레귤레이터라고 부를 것입니다. 팬 레귤레이터 회로를 증가 시키거나 필요에 따라 AC 팬 / 모터의 속도를 감소시키는 데 사용되는 중요한 요소이다. 몇 년 전, 기존의 저항 식 팬 조절기 또는 전자 조절기 중에서 선택했지만 지금은 모두 전자 팬 조절기 회로로 대체되었습니다.
이전 기사에서 우리는 백열 전구의 밝기를 제어하고 팬의 속도를 제어 할 수있는 Arduino를 사용하여 AC 위상 각도 제어 회로를 구축하여 한 단계 높이는 방법을 보여주었습니다. 이 기사에서는 IoT 기반 AC 천장 팬 조정기 회로 를 구축 할 것 입니다. Android 애플리케이션 의 도움으로 천장 선풍기 의 속도 를 제어 할 수 있습니다.
IoT 기반 천장 팬 조정기의 작동
팬 레귤레이터 회로는 AC 사인파 의 위상 각 을 변경 하거나 간단하게 TRIAC의 정밀 제어를 통해 AC 천장 팬의 속도를 제어 할 수있는 간단한 회로입니다. 555 타이머 및 PWM을 사용한 AC 위상 각도 제어 기사 에서 AC 팬 조정기 회로의 모든 기본 작동을 언급했듯이 실제 회로 구축에 집중할 것입니다. 이 주제에 대해 더 알고 싶다면 Arduino 및 TRIAC Project를 사용하는 AC Light Dimmer에 대한 기사도 확인하십시오.
위의 기본 블록 다이어그램은 회로가 실제로 어떻게 작동하는지 보여줍니다. 앞서 말했듯이 Firebase IoT 및 NodeMCU 의 도움으로 PWM 신호를 생성 한 다음 PWM 신호가 저역 통과 필터를 통과하여 MOSFET의 게이트를 제어하고 555 타이머가 제어합니다. 옵토 커플러의 도움으로 실제 TRIAC.
이 경우 Android 앱은 firebaseDB 의 값을 변경하고 ESP는 풀다운되고 값이 PWM 신호로 변환되는 변경이 발생하면 해당 DB에 발생하는 변경 사항을 지속적으로 확인합니다.
AC 팬 속도 제어 회로에 필요한 재료
아래 이미지는이 회로를 만드는 데 사용되는 재료를 보여줍니다. 이것은 매우 일반적인 구성 요소로 만들어 졌기 때문에 지역 취미 상점에서 나열된 모든 재료를 찾을 수 있어야합니다.
또한 데모 프로젝트 이후 유형 및 수량과 함께 아래 표에 구성 요소를 나열했습니다. 단일 채널을 사용하여 그렇게합니다. 그러나 회로는 요구 사항에 따라 쉽게 확장 할 수 있습니다.
- 나사 고정 터미널 5.04mm 커넥터-2
- 수 헤더 2.54mm 커넥터-1
- 56K, 1W 저항기-2
- 1N4007 다이오드-4
- 0.1uF, 25V 커패시터-2
- AMS1117 전압 레귤레이터-1
- 1000uF, 25V 커패시터-1
- DC 전원 잭-1
- 1K 저항기-1
- 470R 저항-2
- 47R 저항-2
- 82K 저항기-1
- 10K 저항기-5
- PC817 광 커플러-1
- NE7555 IC-1
- MOC3021 Opto TriacDrive-1
- IRF9540 MOSFET-1
- 3.3uF 커패시터-1
- 전선 연결-5
- 0.1uF, 1KV 커패시터-1
- ESP8266 (ESP-12E) 마이크로 컨트롤러-1
AC 팬 레귤레이터 제어 회로
의 개략 의 IoT 팬 레귤레이터 회로는 이 회로가 매우 간단하며, 위상 각 제어를 달성하기 일반 요소를 사용하여 아래와 같이된다.
이 회로는 매우 신중하게 설계된 구성 요소로 구성됩니다. 각 블록을 살펴보고 각 블록을 설명하겠습니다.
ESP8266 (ESP-12E) Wi-Fi 칩:
이것은 우리 회로의 첫 번째 부분이며 우리가 많은 것을 변경 한 부분입니다. 다른 부분은 정확히 동일하게 유지됩니다. 즉, 이전 기사를 따랐다면 말입니다.
이 섹션에서는 Enable, Reset 및 GPIO0 핀을 풀업했으며, 또한 칩의 데이터 시트에서 권장하는 GPIO15 및 Ground Pin을 풀다운했습니다. 프로그래밍에 관해서는 TX, RX 및 접지 핀을 노출하는 3 핀 헤더를 배치하여 칩을 매우 쉽게 프로그래밍 할 수 있습니다. 또한 GPIO0을 접지에 연결하기위한 촉각 스위치를 배치했습니다. 이는 ESP를 프로그래밍 모드로 전환하는 데 필요한 단계입니다. PWM 신호가 생성되는 출력으로 GPIO14 핀을 선택했습니다.
노트! 프로그래밍 할 때 버튼을 누르고 DC 배럴 잭으로 장치에 전원을 공급해야합니다.
제로 크로싱 감지 회로:
먼저, 우리 목록에는 4 개의 1n4007 다이오드 및 PC817 옵토 커플러와 함께 2 개의 56K, 1W 저항으로 만들어진 제로 크로싱 감지 회로가 있습니다. 그리고이 회로는 555 타이머 IC에 제로 크로싱 신호를 제공하는 역할을합니다. 또한 TRIAC 섹션에서 더 사용하기 위해 위상과 중립 신호를 테이프로 찍었습니다.
AMS1117-3.3V 전압 조정기:
AMS1117 전압 조정기는 회로에 전원을 공급하는 데 사용되며 회로는 전체 회로에 전원을 공급하는 역할을합니다. 또한 AMS1117-3.3 IC의 디커플링 커패시터로 2 개의 1000uF 커패시터와 0.1uF 커패시터를 사용했습니다.
NE555 타이머가있는 제어 회로:
위의 이미지는 555 타이머 제어 회로를 보여줍니다. 555는 단 안정 구성으로 구성되어 있으므로 제로 크로싱 감지 회로의 트리거 신호가 트리거에 도달하면 555 타이머가 저항을 사용하여 커패시터를 충전하기 시작합니다 (일반적으로) 그러나 우리 회로에는 저항 대신 MOSFET이 있으며 MOSFET의 게이트를 제어하여 커패시터로가는 전류를 제어하므로 충전 시간을 제어하므로 555 타이머의 출력을 제어합니다.
TRIAC 및 TRIAC- 드라이버 회로:
TRIAC은 실제로 켜지고 꺼지는 메인 스위치로 작동하여 AC 신호의 출력을 제어합니다. MOC3021 Opto-Triac 드라이브를 사용하여 TRIAC를 구동하면 TRIAC를 구동 할뿐만 아니라 광학 절연, 0.01uF 2KV 고전압 커패시터를 제공하며 47R 저항은 스 너버 회로를 형성하여 회로를 보호합니다. 유도 성 부하에 연결될 때 발생하는 고전압 스파이크, 전환 된 AC 신호의 비 정현파 특성이 스파이크의 원인입니다. 또한 역률 문제를 담당하지만 다른 기사의 주제입니다.
저역 통과 필터 및 P 채널 MOSFET (회로에서 저항으로 작동):
82K 저항과 3.3uF 커패시터는 Arduino에서 생성 된 고주파 PWM 신호를 평활화하는 역할을하는 저역 통과 필터를 형성합니다. 앞서 언급했듯이 P 채널 MOSFET은 커패시터의 충전 시간을 제어하는 가변 저항기 역할을합니다. 이를 제어하는 것은 저역 통과 필터에 의해 평활화 된 PWM 신호입니다.
IoT 제어 천장 팬 조정기를위한 PCB 설계
IoT 천장 팬 조정기 회로 용 PCB는 단면 기판으로 설계되었습니다. Eagle PCB 설계 소프트웨어를 사용하여 PCB를 설계했지만 원하는 설계 소프트웨어를 사용할 수 있습니다. 내 보드 디자인의 2D 이미지는 아래와 같습니다.
모든 구성 요소간에 적절한 접지 연결을 만들기 위해 충분한 접지 충전이 사용됩니다. 3.3V DC 입력과 220V AC 입력은 왼쪽에 있고 출력은 PCB의 오른쪽에 있습니다. Gerber와 함께 Eagle의 전체 디자인 파일은 아래 링크에서 다운로드 할 수 있습니다.
- 천장 팬 레귤레이터 회로를위한 PCB 설계, GERBER 및 PDF 파일
수제 PCB:
편의를 위해 수제 버전의 PCB를 만들었으며 아래에 나와 있습니다.
이를 통해 우리의 하드웨어는 회로도에 따라 준비되었으므로 이제 Android 애플리케이션과 Google firebase를 준비해야합니다.
Firebase 계정 설정
다음 단계에서는 Firebase 계정을 설정해야합니다. 모든 커뮤니케이션은 Firebase 계정을 통해 이루어집니다. Firebase 계정을 설정하려면 Firebase 웹 사이트로 이동하여 '시작하기'를 클릭하세요.
클릭하면 Google 계정으로 로그인해야합니다.
로그인 한 후 프로젝트 생성 버튼을 클릭하여 프로젝트를 생성해야합니다.
그러면 위의 이미지와 같은 페이지로 리디렉션됩니다. 프로젝트 이름을 입력하고 계속을 클릭하십시오.
다시 계속을 클릭하십시오.
그런 다음 확인란을 클릭하여 일부 이용 약관에 동의해야합니다. 다음으로 프로젝트 생성 버튼을 클릭해야합니다.
모든 것을 올바르게 수행했다면 잠시 후 이와 같은 메시지를 받게됩니다. 완료되면 Firebase 콘솔이 아래 이미지와 같아야합니다.
이제 여기에서 두 가지를 수집해야합니다. 그렇게하려면 방금 만든 프로젝트의 이름을 클릭해야합니다. 저에게는 CelingFanRegulator입니다. 클릭하면 아래 이미지와 유사한 대시 보드가 표시됩니다.
설정을 클릭 한 다음 프로젝트 설정을 클릭하면 아래 이미지와 같은 페이지가 표시됩니다.
서비스 계정-> 데이터베이스 비밀을 클릭합니다 .
데이터베이스 비밀을 복사하고 나중에 사용할 수 있도록 보관하십시오.
다음으로 실시간 데이터베이스를 클릭하고 URL을 복사합니다. 나중에 사용할 수 있도록 보관하십시오.
그리고 그게 전부입니다.
NodeMCU로 팬 조정기를 제어하는 Arduino 코드
간단한 Arduino 코드는 firebase와 ESP-12E 모듈 간의 통신을 처리합니다. 회로 및 코드 설명은 아래에 나와 있습니다. 먼저 필요한 모든 라이브러리를 정의합니다. 주어진 링크에서 다음 라이브러리를 다운로드 할 수 있습니다. Arduino JSON 라이브러리 및 FirebaseArduino 라이브러리
#포함
FirebaseArduino 라이브러리를 사용하여 firebase 와의 통신을 설정합니다.
// 예제를 실행하도록 설정합니다. #define FIREBASE_HOST "celingfanregulator.firebaseio.com"#define FIREBASE_AUTH "1qAnDEuPmdy4ef3d9QLEGtYcA1cOehKmpmzxUtLr"#define WIFI_SSID "내 SSID"#define WIFI_PASSWORD "귀하의 패스"
다음으로, 이전에 firebase 계정을 만들 때 저장 한 firebase 호스트 인 firebase 인증 을 정의했습니다. 그런 다음 라우터 의 SSID 와 암호 를 정의했습니다.
문자열 Resivedata; #define PWM_PIN 14;
다음 으로 모든 데이터가 저장 될 문자열 유형 변수 인 Resivedata 를 정의 하고 PWM 출력을 얻을 PWM_PIN 도 정의했습니다.
다음으로 void setup () 섹션에서 필요한 작업을 수행합니다.
Serial.begin (9600); pinMode (PWM_PIN, OUTPUT); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.print ("연결"); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); 지연 (500); } Serial.println (); Serial.print ("연결됨:"); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); Firebase.setString ("Variable / Value", "FirstTestStrig");
먼저 Serial.begin () 함수를 호출하여 직렬을 활성화합니다. 다음으로 PWM 핀을 OUTPUT으로 설정했습니다. WiFi.begin () 함수 의 도움으로 Wi-Fi 연결을 시작하고 함수에 SSID 와 암호 를 전달합니다. while 루프 에서 연결 상태를 확인하고 연결 되면 루프 를 끊고 계속합니다. 다음으로 연결된 메시지를 IP 주소로 인쇄합니다.
마지막으로 Firebase.begin () 함수를 사용하여 firebase 와 통신을 시작하고 앞서 정의한 FIREBASE_HOST 및 FIREBASE_AUTH 매개 변수를 전달합니다. 그리고 설정 함수의 끝을 표시하는 setString () 함수로 문자열을 설정합니다. 에서 보이드 루프 (12) 부분,
Resivedata = Firebase.getString ("Variable / Value"); Serial.println (Resivedata); analogWrite (PWM_PIN, map (Resivedata.toInt (), 0, 80, 80, 0)); Serial.println (Resivedata); 지연 (100);
데이터가 firebase에 저장되는 변수 / 값으로 getString () 함수를 호출합니다. 예제는 아래 이미지와 같습니다.
그런 다음 디버깅을 위해 값을 인쇄합니다. 다음으로 map 함수를 사용하여 값을 매핑합니다. 0-80 범위 내에서 MOSFET의 게이트를 정확하게 제어 할 수 있고 RC 저역 통과 필터가이 값을 어느 정도 담당하므로 80이 사용됩니다. 이 범위 내에서 위상 각 제어 회로가 정확하게 작동하므로 값을 하드웨어-소프트웨어 스위트 스팟이라고 부를 수 있습니다. 이 프로젝트를 수행하고 문제에 직면하면 가치를 가지고 플레이하고 결과를 직접 결정해야합니다.
그리고 그 후, 우리는 사용 analogWrite () 데이터를 먹이고 그 후, 우리는 사용하여 PWM을 활성화하는 기능을 Serial.println () 바로 결과를 확인하기 위해 다시 기능을, 그리고 마지막으로, 우리는을 줄이기 위해 지연 기능을 사용 프로그램을 종료하는 firebase API에 대한 hit-count.
MIT App Inventor로 팬 레귤레이터 앱 빌드
AppInventor 의 도움으로 우리는 firebase 와 통신 하고 firebase 데이터베이스에 저장된 데이터를 변경할 권한이 있는 Android 앱을 만들 것 입니다.
그렇게하려면 appInventors 웹 사이트로 이동하여 Google 계정으로 로그인하고 이용 약관에 동의하십시오. 그러면 아래 이미지와 같은 화면이 표시됩니다.
새 프로젝트 시작 아이콘을 클릭하고 이름을 지정하고 확인을 누르면 아래 이미지와 같은 화면이 표시됩니다.
일단 거기에 먼저 두 개의 레이블을 입력해야합니다 . 여기에서 슬라이더를 약간 아래로 내리고, 다음으로 일부 모듈을 가져와야합니다. 이들은 FirebaseDB 모듈과 웹 모듈 입니다.
firebaseDB의 중포 기지와 통신하는 모듈은 웹 모듈은 시간에 사용되는 HTTP 요청 andle. 아래 이미지와 같습니다.
이 작업이 완료되면 PWM이라는 이름의 슬라이더와 레이블을 가져와야합니다.이 순간에 혼란 스러우면 앱 발명가와 함께 앱을 만드는 것과 관련된 다른 자습서를 확인할 수 있습니다.
프로세스가 끝나면 firebase DB 아이콘을 클릭하고 firebase 계정을 만들 때 저장 한 firebase 토큰과 firebase URL을 입력합니다.
이제 디자인 섹션을 마쳤으며 블록 섹션을 설정해야합니다. 이를 위해 디자이너 옆의 오른쪽 상단 모서리에있는 차단 버튼을 클릭해야합니다.
슬라이더를 클릭하면 긴 모듈 목록이 표시되고 첫 번째 모듈을 꺼내고 엄지 손가락 위치 버튼 위로 마우스를 가져 가면 두 개의 모듈이 더 표시되고 둘 다 꺼냅니다. 나중에 사용할 것입니다.
이제 thumbposition 변수를 연결하고 반올림 하여 thumb position 값을 얻습니다. 다음으로 firebasedb를 클릭하고 FirebaseDB.storeValue 호출 태그 값을 가져 와서 저장하고 모듈화 한 다음 엄지 위치 값의 하단에 연결합니다.
완료되면 텍스트 블록을 클릭하여 빈 텍스트 상자를 꺼내 태그와 함께 첨부합니다. 이것은 Firebase에서 데이터를 읽고 쓰기 위해 Arduino IDE에서 설정 한 태그입니다. 이제 태그를 저장할 값에 thumb 값 변수를 연결합니다. 모든 작업을 올바르게 수행 한 경우 슬라이더를 이동하여 firebaseDB의 값을 변경할 수 있습니다.
- .aia (저장된 파일) 및.apk (컴파일 된 파일)
앱 제작 과정이 끝났음을 의미합니다. 방금 만든 Android 애플리케이션의 스냅 샷은 아래와 같습니다.
ESP32 기반 터치 센서 회로 테스트
회로를 테스트하기 위해 백열 전구를 천장 선풍기와 평행하게 연결하고 5V DC 어댑터로 회로에 전원을 공급했습니다. 위 그림에서 볼 수 있듯이 앱 슬라이더가 낮음으로 설정되어 있습니다. 전구가 낮은 밝기로 빛납니다. 그리고 팬도 천천히 회전합니다.
추가 향상
이 데모를 위해 회로는 수제 PCB로 만들어졌지만 회로는 좋은 품질의 PCB에서 쉽게 구축 될 수 있습니다. 제 실험에서는 PCB의 크기가 부품 크기로 인해 실제로 약간이지만 생산 환경에서는 값싼 SMD 부품을 사용하여 줄일 수 있습니다. 555 타이머 대신 7555 타이머를 사용하면 제어가 광범위하게 증가하고 회로의 안정성도 증가합니다.