“這是一篇介紹老式電風(fēng)扇智能化改造的文章”
如今相當(dāng)一部分的家庭依然使用著一些老式家電,扔掉浪費(fèi),繼續(xù)使用又有點(diǎn)土不拉嘰的。利用機(jī)智云的云計(jì)算平臺(tái),可以輕而易舉地實(shí)現(xiàn)一些智能功能,舊瓶裝新酒,讓老式電氣發(fā)出現(xiàn)代異彩,感覺(jué)有點(diǎn)像用古代的缶裝上現(xiàn)代的人頭馬XO,把風(fēng)箏搞成隱形飛行器一樣,極具科技感酷勁。為了更利于老式電氣的改裝,通過(guò)手機(jī)-gokit-無(wú)線模塊-風(fēng)扇等一系列硬件的中繼接力,完成對(duì)一臺(tái)老式風(fēng)扇的調(diào)速過(guò)程。
硬件準(zhǔn)備
序號(hào) | 名稱 | 規(guī)格/型號(hào) | 數(shù)量 |
1 | 老式風(fēng)扇 | 三檔手動(dòng)調(diào)速 | 一臺(tái) |
2 | 機(jī)智云開(kāi)發(fā)板 | Gokit2 | 一套 |
3 | 無(wú)線發(fā)射模塊 | L24YK-TXH | 一個(gè) |
4 | 4路功率驅(qū)動(dòng)模塊 | TB6612FNG | 一個(gè) |
5 | 無(wú)線接收模塊 | L24YK-RX4 | 一個(gè) |
6 | 電源模塊 | AC220V/DC3.3V | 一個(gè) |
7 | 繼電器模塊 | 4路光耦 | 一個(gè) |
8 | 電阻,電容,LED燈等 | 200Ω,1K,RGB共陰極LED | 若干 |
項(xiàng)目完成后的圖片
1)Gokit+無(wú)線發(fā)射模塊
2)接收板
4路功率驅(qū)動(dòng)模塊+無(wú)線接收模塊+電源模塊+繼電器模塊
3)接收板通過(guò)一個(gè)插座盒安裝到老式風(fēng)扇
軟件開(kāi)發(fā)環(huán)境
機(jī)智云賬號(hào)一個(gè)
借助機(jī)智云的云服務(wù)和開(kāi)發(fā)工具(MCU自動(dòng)代碼生成),這方面的教程機(jī)智云社區(qū)的前輩們已經(jīng)介紹的非常詳細(xì),在此就不再啰嗦了。
代碼說(shuō)明
通過(guò)自動(dòng)生成的代碼+機(jī)智云寵物屋的云端部分+添加部分邏輯和自定義函數(shù),就可以完成項(xiàng)目,可靠地進(jìn)行控制。下面介紹一下邏輯和自定義函數(shù)部分的代碼:
1)修改原來(lái)寵物屋的WiFi配置狀態(tài)顯示代碼
void wifiStatusHandle(),是寵物屋代碼里的函數(shù),用于監(jiān)視Gokit開(kāi)發(fā)板上的Key2狀態(tài),也就是手機(jī)與硬件設(shè)備配置時(shí),自動(dòng)或手動(dòng)配置WiFi連接的按鈕短按或長(zhǎng)按的狀態(tài),只不過(guò)經(jīng)過(guò)修改以上代碼,該設(shè)備的Gokit開(kāi)發(fā)板上不會(huì)有任何表示,取而代之的是,接收板收到數(shù)據(jù)后,RGBLDE燈點(diǎn)亮的同時(shí),會(huì)以接收到的相應(yīng)風(fēng)量指令啟動(dòng)風(fēng)扇,也就是遠(yuǎn)程配置。
void wifiStatusHandle(){if(myGizwits.wifiHasBeenSet(WIFI_SOFTAP)) {Serial.println(F(“WIFI_SOFTAP!”));ControlFan_1(); //Soft AP模式,向無(wú)線接收模塊發(fā)送紅燈點(diǎn)亮和啟動(dòng)第一檔風(fēng)量數(shù)據(jù) } if(myGizwits.wifiHasBeenSet(WIFI_AIRLINK)) {Serial.println(F(“WIFI_AIRLINK!”));ControlFan_2();
//AirLink模式,向無(wú)線接收模塊發(fā)送藍(lán)燈點(diǎn)亮和啟動(dòng)第二檔風(fēng)量數(shù)據(jù) } if(myGizwits.wifiHasBeenSet(WIFI_STATION)) {Serial.println(F(“WIFI_STATION!”)); } if(myGizwits.wifiHasBeenSet(WIFI_CON_ROUTER)) {Serial.println(F(“WIFI_CON_ROUTER!”));ControlRst();//配置成功后,關(guān)閉遠(yuǎn)程設(shè)備。 } }
2)添加邏輯控制代碼
void loop() { bool varR_Switch = 0;//系統(tǒng)根據(jù)數(shù)據(jù)點(diǎn)自動(dòng)生成的開(kāi)關(guān)變量,以下相同。bool varR_Fan_1 = 0;//風(fēng)量一檔bool varR_Fan_2 = 0;//風(fēng)量二擋bool varR_Fan_3 = 0;
//風(fēng)量三檔 KEY_Handle();//key handle , network configure wifiStatusHandle();//WIFI Status Handle//手機(jī)發(fā)過(guò)來(lái)的開(kāi)關(guān)事件if(myGizwits.hasBeenSet(EVENT_Switch)) { myGizwits.read(EVENT_Switch,&varR_Switch);if(varR_Switch == 1)//當(dāng)開(kāi)關(guān)為開(kāi)狀態(tài)時(shí) { ControlFan_1();//默認(rèn)風(fēng)量一檔開(kāi)啟 }else{ ControlRst();
//當(dāng)開(kāi)關(guān)為關(guān)閉時(shí),風(fēng)扇停止。 } }//手機(jī)發(fā)過(guò)來(lái)的第一檔風(fēng)量事件 if(myGizwits.hasBeenSet(EVENT_Fan_1)) { myGizwits.read(EVENT_Fan_1,&varR_Fan_1);//Address for storing dataif(varR_Fan_1 == 1)//接收到云端一檔時(shí) { ControlFan_1();//風(fēng)量一檔開(kāi)啟 }else{ ControlRst();//當(dāng)開(kāi)關(guān)為關(guān)閉時(shí),風(fēng)扇停止。 } }//手機(jī)發(fā)過(guò)來(lái)的第二檔風(fēng)量事件 if(myGizwits.hasBeenSet(EVENT_Fan_2)) { myGizwits.read(EVENT_Fan_2,&varR_Fan_2);
//Address for storing dataif(varR_Fan_2 == 1)//接收到云端二檔時(shí) { ControlFan_2();//風(fēng)量二檔開(kāi)啟 }else{ ControlRst();//當(dāng)開(kāi)關(guān)為關(guān)閉時(shí),風(fēng)扇停止。 } }//手機(jī)發(fā)過(guò)來(lái)的第三檔風(fēng)量事件 if(myGizwits.hasBeenSet(EVENT_Fan_3)) { myGizwits.read(EVENT_Fan_3,&varR_Fan_3);
//Address for storing dataif(varR_Fan_3 == 1)//接收到云端三檔時(shí) { ControlFan_3();//風(fēng)量三檔開(kāi)啟 }else{ ControlRst();//當(dāng)開(kāi)關(guān)為關(guān)閉時(shí),風(fēng)扇停止。 } } myGizwits.process();}//關(guān)閉設(shè)備函數(shù)void ControlRst(){ val = 0;for(int i = 9;i 《= 11;i++){ pinMode(i,OUTPUT); digitalWrite(i,HIGH);
}}//風(fēng)量一檔控制函數(shù)void ControlFan_1(){ ControlRst();//啟動(dòng)設(shè)備前,先關(guān)閉其他檔位的風(fēng)量 digitalWrite(Pin9,LOW);//向接收端無(wú)線模塊發(fā)送開(kāi)關(guān)啟動(dòng)信號(hào)}//風(fēng)量二檔控制函數(shù)void ControlFan_2(){ ControlRst();//啟動(dòng)設(shè)備前,先關(guān)閉其他檔位的風(fēng)量 digitalWrite(Pin10,LOW);//向接收端無(wú)線模塊發(fā)送開(kāi)關(guān)啟動(dòng)信號(hào)}//風(fēng)量三檔控制函數(shù)void ControlFan_3(){ ControlRst();//啟動(dòng)設(shè)備前,先關(guān)閉其他檔位的風(fēng)量 digitalWrite(Pin11,LOW);//向接收端無(wú)線模塊發(fā)送開(kāi)關(guān)啟動(dòng)信號(hào)}
核心功能就是利用三個(gè)void ControlFan()風(fēng)扇控制函數(shù),依次啟動(dòng)ardiuno的9,10,11三個(gè)引腳低電位,從而控制連接在三個(gè)腳上面的無(wú)線發(fā)射模塊三路開(kāi)關(guān)信號(hào)發(fā)送出去。當(dāng)風(fēng)扇上的無(wú)線接收模塊收到信號(hào)后,會(huì)立刻觸發(fā)對(duì)應(yīng)的繼電器閉合,從而啟動(dòng)風(fēng)扇運(yùn)行和RGBLED燈點(diǎn)亮。
關(guān)閉設(shè)備函數(shù)void ControlRst(),其實(shí)質(zhì)就是復(fù)位三個(gè)ardiuno引腳,從而觸發(fā)接收模塊動(dòng)作,關(guān)閉風(fēng)扇,不管風(fēng)扇運(yùn)行在任何風(fēng)量檔位上,都可以立刻關(guān)閉。
五 關(guān)于模塊使用說(shuō)明,完整代碼,測(cè)試用APK
1)本文提到的模塊,電路圖,完整代碼等請(qǐng)參照附件的資料
2)本文使用的手機(jī)APK是機(jī)智云提供的標(biāo)準(zhǔn)測(cè)試調(diào)試軟件,大家請(qǐng)上云端下載就可以了。配置前后的圖標(biāo)和界面如下圖所示:
原文標(biāo)題:老式電風(fēng)扇改造:基于ArduinoUNOR3和機(jī)智云的智能調(diào)速風(fēng)扇
文章出處:【微信公眾號(hào):機(jī)智云開(kāi)發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
電風(fēng)扇
+關(guān)注
關(guān)注
7文章
152瀏覽量
35186 -
Arduino
+關(guān)注
關(guān)注
188文章
6477瀏覽量
187854 -
機(jī)智云
+關(guān)注
關(guān)注
2文章
591瀏覽量
26461
原文標(biāo)題:老式電風(fēng)扇改造:基于ArduinoUNOR3和機(jī)智云的智能調(diào)速風(fēng)扇
文章出處:【微信號(hào):IoTMaker,微信公眾號(hào):機(jī)智云開(kāi)發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論