如今相當(dāng)一部分的家庭依然使用著一些老式家電,扔掉浪費(fèi),繼續(xù)使用又有點(diǎn)土不拉嘰的。利用機(jī)智云物聯(lián)網(wǎng)平臺(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)備
電路圖
見(jiàn)原文地址:https://club.gizwits.com/thread-7992-1-1.html
二、項(xiàng)目完成后的圖片
1)Gokit+無(wú)線發(fā)射模塊
2)接收板
4路功率驅(qū)動(dòng)模塊+無(wú)線接收模塊+電源模塊+繼電器模塊
3)接收板通過(guò)一個(gè)插座盒安裝到老式風(fēng)扇
三 軟件開(kāi)發(fā)環(huán)境
機(jī)智云開(kāi)發(fā)者中心,使用其中的MCU自動(dòng)代碼生成、APP代碼自動(dòng)生成等服務(wù),方便進(jìn)行移植和功能開(kāi)發(fā)。
四 代碼說(shuō)明
通過(guò)自動(dòng)生成的代碼+機(jī)智云寵物屋的云端部分+添加部分邏輯和自定義函數(shù),就可以完成項(xiàng)目,可靠地進(jìn)行控制。下面介紹一下邏輯和自定義函數(shù)部分的代碼:
1)修改原來(lái)寵物屋的WiFi配置狀態(tài)顯示代碼
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è)備。 } }
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)程配置。
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 data if(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 data if(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 data if(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)和界面如下圖所示:
原文名稱:基于Arduino UNO R3的智能調(diào)速風(fēng)扇
https://club.gizwits.com/thread-7992-1-1.html
方案推薦
機(jī)智云電風(fēng)扇智能化解決方案,免開(kāi)發(fā)接入,賦能企業(yè)快速智能化轉(zhuǎn)型。該方案通過(guò)整合藍(lán)牙SoC免開(kāi)發(fā)方案、PCBA公版方案、微信小程序/APP、設(shè)備管理后臺(tái)及第三方語(yǔ)音接入等軟硬件服務(wù),低成本、高效率實(shí)現(xiàn)產(chǎn)品智能化。并且,方案適用于落地扇、塔扇、循環(huán)扇、吊扇等多種品類風(fēng)扇設(shè)備。
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2914文章
44945瀏覽量
377119
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
開(kāi)發(fā)者的開(kāi)源鴻蒙故事
2024年度國(guó)內(nèi)活躍開(kāi)源項(xiàng)目和開(kāi)發(fā)者在武漢揭曉
NVIDIA發(fā)布小巧高性價(jià)比的Jetson Orin Nano Super開(kāi)發(fā)者套件
云端AI開(kāi)發(fā)者工具怎么用
蘋果發(fā)布Apple Intelligence開(kāi)發(fā)者測(cè)試版
KaihongOS 4.1.2開(kāi)發(fā)者預(yù)覽版正式上線,誠(chéng)邀開(kāi)發(fā)者免費(fèi)試用!
![KaihongOS 4.1.2<b class='flag-5'>開(kāi)發(fā)者</b>預(yù)覽版正式上線,誠(chéng)邀<b class='flag-5'>開(kāi)發(fā)者</b>免費(fèi)試用!](https://file.elecfans.com/web2/M00/35/6C/poYBAGIq5qqAQJzlAAA5OpNWiJA439.png)
KaihongOS 4.1.2開(kāi)發(fā)者預(yù)覽版正式上線,誠(chéng)邀開(kāi)發(fā)者免費(fèi)試用!
涂鴉智能借助亞馬遜云科技全面擁抱生成式AI打造智慧解決方案 提升開(kāi)發(fā)者效率
開(kāi)發(fā)者分享 | 基于先楫RT-Thread BSP,使用CLion開(kāi)發(fā)應(yīng)用
![<b class='flag-5'>開(kāi)發(fā)者</b>分享 | 基于先楫RT-Thread BSP,使用CLion<b class='flag-5'>開(kāi)發(fā)</b>應(yīng)用](https://file.elecfans.com/web2/M00/37/D7/pYYBAGI9l9uAOwALAAAmFmqVYdg094.png)
NVIDIA將全球數(shù)百萬(wàn)開(kāi)發(fā)者轉(zhuǎn)變?yōu)樯?b class='flag-5'>式 AI 開(kāi)發(fā)者
機(jī)智云開(kāi)發(fā)者中心:讓移動(dòng)APP應(yīng)用開(kāi)發(fā)更智能化
![機(jī)智云<b class='flag-5'>開(kāi)發(fā)者</b>中心:讓移動(dòng)APP應(yīng)用<b class='flag-5'>開(kāi)發(fā)</b>更智能化](https://file1.elecfans.com//web2/M00/C6/BC/wKgaomYCiySACVELAAAnscoMqWY584.png)
曙光智能計(jì)算開(kāi)發(fā)者講壇于2024全球開(kāi)發(fā)者先鋒大會(huì)期間在上海成功舉辦
Android 15的首個(gè)開(kāi)發(fā)者預(yù)覽版現(xiàn)已發(fā)布
![Android 15的首個(gè)<b class='flag-5'>開(kāi)發(fā)者</b>預(yù)覽版現(xiàn)已發(fā)布](https://file1.elecfans.com/web2/M00/C3/F9/wKgZomXv83SAPKC7AAB0OyWZuBM240.jpg)
評(píng)論