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