物聯(lián)網(wǎng)無處不在,是可以用來讓生活更輕松的最偉大的東西之一?;ヂ?lián)網(wǎng)上有許多基于物聯(lián)網(wǎng)的 家庭自動化項目 ,但它們都沒有為您提供通過互聯(lián)網(wǎng)控制風扇速度的選項。所以在這里,在這個項目中,我們將制作一個 物聯(lián)網(wǎng) 風扇速度控制 電路,以使用 Blynk 控制普通風扇或其他設備的速度。該電路與其他電路有兩個不同之處,首先,它是基于 TRIAC 的控制,其次,它非常易于安裝。我們設計了完整的系統(tǒng)以安裝在一個緊湊的外殼中,使其易于安裝并與您的吊扇或壁扇一起安裝。這種緊湊的設計是由 PCBWay制造的 PCB 板實現(xiàn)的,我們還將向您展示電路板是如何設計和從 PCBway 訂購的。那么,讓我們看一下項目計劃并構建一個精心設計 的基于物聯(lián)網(wǎng)的風扇調(diào)節(jié)器。
構建基于物聯(lián)網(wǎng)的風扇速度控制器所需的組件
在這里,我們將使用基于物聯(lián)網(wǎng)的低成本控制系統(tǒng),該系統(tǒng)可用于以下應用:
接受交流輸入和控制輸出的簡單產(chǎn)品。
就像設備之間的串聯(lián)設備一樣
無需任何修改即可使用。
使用互聯(lián)網(wǎng)連接并連接到附近的 Wi-Fi 網(wǎng)絡以獲得互聯(lián)網(wǎng)連接。
使用移動應用程序(不是定制的,而是現(xiàn)成的工具)。
一次控制高達 250 瓦的電器,無需太多修改。
有一個蜂鳴器,當狀態(tài)發(fā)生任何變化時,它會通知用戶。
為了滿足上述項目要求,需要以下組件:
基于物聯(lián)網(wǎng)的風扇速度控制器示意圖
基于物聯(lián)網(wǎng)的 風扇控制器的完整電路圖如下:
好吧,電路的工作并不那么復雜,而且非常簡單。電路由以下幾部分組成:
交流到直流轉(zhuǎn)換器
過零電路
TRIAC和驅(qū)動電路
蜂鳴器
交流到直流轉(zhuǎn)換器:
運行電路需要兩個電壓電平。這里,PS1 是將交流電轉(zhuǎn)換為 5V 1A 的電源單元,用于電路級操作。然而,由于我們使用的是 ESP12F,我們需要 3.3V 來運行微控制器單元。Hi-Link 5V 1A 模塊用于將 AC 230V 市電轉(zhuǎn)換為 DC 5V 1A。使用 AMS1117-3.3V LDO 穩(wěn)壓器 U2 將其進一步轉(zhuǎn)換為微控制器所需的 3.3V。
L4 的目的是降低進入 SMPS 模塊的共模 EMI 。如果您不熟悉 EMI,可以查看有關電磁干擾基礎知識的文章以及降低SMPS 中 EMI 的設計技術。
過零電路:
過零電路用于檢測正弦波穿過零區(qū)域時的時間或事件。但是我們?yōu)槭裁匆@樣做呢?這是因為我們必須切換(增加/減少)這個交流電壓來控制風扇的速度。開始切換交流波的最佳時間是當它穿過零點時。對于初學者來說,這可能會讓人感到困惑,所以請閱讀過零教程以了解基礎知識。
在該電路中,二極管電橋?qū)⒔涣髡也ㄞD(zhuǎn)換為每秒發(fā)生 100 次的等效脈沖。因為 50 Hz 正弦波在 1 秒內(nèi)穿越零 100 次,使用光耦合器進一步轉(zhuǎn)換為 3.3V 邏輯電平。使用光耦合器有兩個原因。首先是將高壓直流轉(zhuǎn)換為低壓邏輯電平,另一個原因是將高壓線與低壓微控制器部分隔離。兩個電阻 R1 和 R2 用于限制光耦合器 LED 電流。
TRIAC 和驅(qū)動電路:
TRIAC是一種雙向器件,可在端子的兩側(cè)傳導電流。TRIAC 的雙向特性對于控制交流 (AC) 操作設備非常有用。因此,通過在 TRIAC 上使用 AC 相角控制,我們可以控制流入負載的平均電流。因此,檢測過零時,如果我們延遲開啟 TRIAC,就可以控制負載電流。在這里,我們檢測過零并以一定的延遲打開 TRIAC 并控制流向風扇的電流。
由于 FAN 是感性負載,RC 緩沖電路R12 和 C3 用于保護 TRIAC 不產(chǎn)生反電動勢。電阻R6和R7用于控制TRIAC的觸發(fā)電流。
但是,TRIAC 可以是BTA16 或 BT136。兩者都合適。這里我們使用的是 BT136,它的最大終端電流為 4A。BT136的柵極閾值電壓也很小,也可以由數(shù)字電路驅(qū)動。
BC847 是傳導 MOC3021 和基于 TRIAC 的光電隔離器的晶體管,用于打開 TRIAC。
蜂鳴器電路:
蜂鳴器電路是使用 MOSFET 2N7002 控制的標準圓形蜂鳴器。
微控制器:
該項目使用的微控制器是廣受歡迎的 ESP12。它有Wi-Fi,也很便宜。為模塊的正常工作提供了所需的上拉電路。
為物聯(lián)網(wǎng)風扇控制器電路制造PCB
PCB 設計有適當?shù)慕涣鞯街绷麟妷焊綦x。但是,這是用于測試目的的 PCB 的更新版。很少有組件是通過孔制成的,以彌補間隙問題,而不是 SMD 小尺寸組件。此外,Boot 和 RST 引腳部分用于連接在編程期間很有用的按鈕。下面是 PCB 頂層和底層的 3D 模型視圖:
組裝風扇控制器 PCB
訂購板后,幾天后,它通過快遞在一個標簽整齊且包裝完好的盒子中到達我的手中。PCB質(zhì)量一如既往的好。板子的頂層和底層如下圖所示:
在確保軌道和腳印是正確的之后。我繼續(xù)組裝PCB。完全焊接的板如下所示:
配置 Blynk 以控制風扇速度
現(xiàn)在我們已經(jīng)組裝了 PCB,我們可以繼續(xù)配置 Blynk 應用程序并對 ESP 進行編程。對于那些不知道 Blynk 是一款可以在 Android 和 iOS 設備上運行以使用智能手機控制任何物聯(lián)網(wǎng)設備和電器的應用程序的人來說。首先,需要創(chuàng)建一個圖形用戶界面 (GUI) 來控制風扇。設置前,請從 Google Play 商店下載 Blynk 應用程序(iOS 用戶可從 App Store 下載)。安裝后,使用您的電子郵件 ID 和密碼注冊。
安裝成功后,打開應用程序,我們會看到一個帶有“新建項目”選項的屏幕。點擊它,它會彈出一個新屏幕,我們需要在其中設置項目名稱、電路板和連接類型等參數(shù)。在我們的項目中,選擇設備為“ESP8266”,連接類型為“Wi-Fi”,然后點擊“創(chuàng)建”。
項目創(chuàng)建成功后,您將在我們的掛號信中獲得一個Authenticate ID。保存驗證 ID 以供將來參考。
現(xiàn)在,下一步是添加小部件來控制風扇速度和打開/關閉風扇。為此,單擊 + 號并添加 Slider 小部件。
將小部件拖到我們的項目后,現(xiàn)在我們必須設置其參數(shù),這些參數(shù)用于將滑塊值發(fā)送到 ESP。單擊滑塊,然后我們將獲得一個名為滑塊設置的屏幕。單擊 PIN 并選擇 PIN 類型為 Virtual,Pin 名稱為 V0。此 Pin 圖將由 BLYNK 應用程序訪問。
然后選擇從 0 到 100 的滑塊范圍。
基于物聯(lián)網(wǎng)的風扇速度控制器代碼
使用 ESP8266進行交流風扇速度控制的完整代碼可以在文檔末尾找到。為了理解這個風扇控制器代碼是如何工作的,在這里我們將用小片段來解釋代碼。首先,感謝 RobotDynOfficial 對使用 TRIAC 和過零檢測的 AC 調(diào)光器的出色庫支持。使用的庫可以從下面的 GitHub 鏈接安裝。?
https://github.com/RobotDynOfficial/RBDDimmer
由于我們使用了 Blynk,因此代碼架構使用來自 Blynk 示例 - Virtual Pin Read
?
BLYNK_WRITE(V0) { int pinValue = param.asInt(); // 將從引腳 V1 傳入的值賦給一個變量 pwm = pinValue; 嗡嗡聲通知(); Serial.println("收到PWM值-"); 串行.println(pwm); 序列號.println("\n"); }
?
每當在 Blynk 應用程序上更改新值或滑塊并設置 PWM 輸出值時,都會調(diào)用上述函數(shù)。在這些更改期間,蜂鳴器開始發(fā)出嗶嗶聲。
?
無效循環(huán)() { Blynk.run(); map_pwm = map(pwm, 0, 100, 0, 87); //analogRead(analog_pin), min_analog, max_analog, 0%, 100%); 調(diào)光器.setPower(map_pwm); // name.setPower(0%-100%) }
?
使用 87%,因為在測試期間最大功率達到 87%。
使用 Blynk 和 ESP-12E 控制風扇速度
準備好我的基于物聯(lián)網(wǎng)的風扇控制器電路后,我走到我的壁扇前,追蹤它的電線并連接風扇控制器設置,如下圖所示。完成后,現(xiàn)在我可以通過手機控制我的風扇了。
同樣,您可以使用手機或筆記本電腦無線控制風扇。您還可以在 blynk 應用程序上設置計時器,以在一天中的特定時間自動打開/關閉風扇。完整的工作視頻和代碼可以在下面找到。
#define BLYNK_PRINT Serial
#include
#include
#include
#define outputPin 14
#define zerocross 4 // 用于帶有 CHANGEABLE 輸入引腳的板
#define buzz 5
//#define TRIAC 14
int pwm=0;
int map_pwm=0;
// 你應該在 Blynk App 中獲得 Auth Token。
// 轉(zhuǎn)到項目設置(螺母圖標)。
char auth[] = "BLYNK 令牌";
// 您的 WiFi 憑據(jù)。
// 為開放網(wǎng)絡設置密碼為“”。
字符 ssid[] = "xxxx";
char pass[] = "xxxxxx";
//void ICACHE_RAM_ATTR ISRoutine();
dimmerLamp 調(diào)光器(outputPin, zerocross); //用于 ESP8266、ESP32、Arduino 的調(diào)光器的初始化端口
int outVal = 0;
無效的嗡嗡聲(無效){
數(shù)字寫入(嗡嗡聲,高);
延遲(1000);
數(shù)字寫入(嗡嗡聲,低);
延遲(1000);
}
BLYNK_WRITE(V0)
{
int pinValue = param.asInt(); // 將從引腳 V1 傳入的值分配給變量
pwm = pinValue;
嗡嗡聲通知();
Serial.println("收到PWM值-");
串行.println(pwm);
序列號.println("\n");
}
void setup()
{
// 調(diào)試控制臺
pinMode(buzz,OUTPUT);
序列號.開始(115200);
嗡嗡聲通知();
Blynk.begin(auth, ssid, pass);
調(diào)光器.開始(正常模式,開);//調(diào)光器初始化:name.begin(MODE, STATE)
// void ICACHE_RAM_ATTR ISRoutine();
// 也可以指定服務器:
//blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);
//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
}
無效循環(huán)()
{
Blynk.run();
map_pwm = map(pwm, 0, 100, 0, 87); //analogRead(analog_pin), min_analog, max_analog, 100%, 0%);
調(diào)光器.setPower(map_pwm); // name.setPower(0%-100%)
}
評論
查看更多