日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

基于ArduinoUNOR3的智能调速风扇

發布時間:2024/3/26 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于ArduinoUNOR3的智能调速风扇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一,項目介紹
??如今相當一部分的家庭依然使用著一些老式家電,扔掉浪費,繼續使用又有點土不拉嘰的。利用機智云的云計算IoT軟件平臺,可以輕而易舉地實現一些智能功能,舊瓶裝新酒,讓老式電氣發出現代異彩,感覺有點像用古代的缶裝上現代的人頭馬XO,把風箏搞成隱形飛行器一樣,極具科技感酷勁。為了更利于老式電氣的改裝,通過手機-gokit-無線模塊-風扇等一系列硬件的中繼接力,完成對一臺老式風扇的調速過程。
??請看一下項目視頻


二 硬件準備

序號 名稱 規格/型號 數量
1 老式風扇 三檔手動調速 一臺
2 機智云開發板 Gokit2 一套
3 無線發射模塊 L24YK-TXH 一個
4 4路功率驅動模塊 TB6612FNG 一個
5 無線接收模塊 L24YK-RX4 一個
6 電源模塊 AC220V/DC3.3V 一個
7 繼電器模塊 4路光耦 一個
8 電阻,電容,LED燈等 200Ω,1K,RGB共陰極LED 若干


項目完成后的圖片
1)Gokit+無線發射模塊
?
2)接收板
4路功率驅動模塊+無線接收模塊+電源模塊+繼電器模塊
?

3)接收板通過一個插座盒安裝到老式風扇
?

三 軟件開發環境

  • 機智云賬號一個


? ?? ???用于使用機智云的物聯網云服務和開發工具,如自動代碼生成等,這方面的教程機智云社區的前輩們已經介紹的非常詳細,在此就不再啰嗦了。

四 代碼說明
? ?? ???通過自動生成的代碼+機智云寵物屋的云端部分+添加部分邏輯和自定義函數,就可以完成項目,可靠地進行控制。下面介紹一下邏輯和自定義函數部分的代碼:
1)修改原來寵物屋的WiFi配置狀態顯示代碼

  • void wifiStatusHandle()
  • {
  • ??if(myGizwits.wifiHasBeenSet(WIFI_SOFTAP))
  • ??{
  • ? ? Serial.println(F("WIFI_SOFTAP!"));
  • ? ? ControlFan_1();? ?? ???//Soft AP模式,向無線接收模塊發送紅燈點亮和啟動第一檔風量數據
  • ??}
  • ??
  • ??if(myGizwits.wifiHasBeenSet(WIFI_AIRLINK))
  • ??{
  • ? ? Serial.println(F("WIFI_AIRLINK!"));
  • ? ?? ???ControlFan_2();? ?? ???//AirLink模式,向無線接收模塊發送藍燈點亮和啟動第二檔風量數據
  • ??}
  • ??
  • ??if(myGizwits.wifiHasBeenSet(WIFI_STATION))
  • ??{
  • ? ? Serial.println(F("WIFI_STATION!"));
  • ??}
  • ??
  • ??if(myGizwits.wifiHasBeenSet(WIFI_CON_ROUTER))
  • ??{
  • ? ? Serial.println(F("WIFI_CON_ROUTER!"));
  • ? ?? ???ControlRst();//配置成功后,關閉遠程設備。
  • ??}
  • ??}
  • void wifiStatusHandle(),是寵物屋代碼里的函數,用于監視Gokit開發板上的Key2狀態,也就是手機與硬件設備配置時,自動或手動配置WiFi連接的按鈕短按或長按的狀態,只不過經過修改以上代碼,該設備的Gokit開發板上不會有任何表示,取而代之的是,接收板收到數據后,RGBLDE燈點亮的同時,會以接收到的相應風量指令啟動風扇,也就是遠程配置。

    2)添加邏輯控制代碼

  • void loop() {??
  • ??bool varR_Switch = 0;//系統根據數據點自動生成的開關變量,以下相同。
  • ??bool varR_Fan_1 = 0;//風量一檔
  • ??bool varR_Fan_2 = 0;//風量二擋
  • ??bool varR_Fan_3 = 0;//風量三檔
  • ??
  • ??KEY_Handle();//key handle , network configure
  • ??wifiStatusHandle();//WIFI Status Handle
  • ??//手機發過來的開關事件
  • ??if(myGizwits.hasBeenSet(EVENT_Switch))
  • ??{
  • ? ? myGizwits.read(EVENT_Switch,&varR_Switch);
  • ? ?? ???if(varR_Switch == 1)//當開關為開狀態時
  • ? ?? ???{
  • ? ?? ???ControlFan_1();//默認風量一檔開啟
  • ? ?? ???}
  • ? ?? ???else{
  • ? ?? ???ControlRst();//當開關為關閉時,風扇停止。
  • ? ?? ???}
  • ??}
  • ??//手機發過來的第一檔風量事件??
  • ??if(myGizwits.hasBeenSet(EVENT_Fan_1))
  • ??{
  • ? ? myGizwits.read(EVENT_Fan_1,&varR_Fan_1);//Address for storing data
  • ? ? if(varR_Fan_1 == 1)//接收到云端一檔時
  • ? ?? ???{
  • ? ?? ???ControlFan_1();//風量一檔開啟
  • ? ?? ???}
  • ? ?? ???else{
  • ? ?? ???ControlRst();//當開關為關閉時,風扇停止。
  • ? ?? ???}
  • ??}
  • ??//手機發過來的第二檔風量事件??
  • ??if(myGizwits.hasBeenSet(EVENT_Fan_2))
  • ??{
  • ? ? myGizwits.read(EVENT_Fan_2,&varR_Fan_2);//Address for storing data
  • ? ? if(varR_Fan_2 == 1)//接收到云端二檔時
  • ? ?? ???{
  • ? ?? ???ControlFan_2();//風量二檔開啟
  • ? ?? ???}
  • ? ?? ???else{
  • ? ?? ???ControlRst();//當開關為關閉時,風扇停止。
  • ? ?? ???}
  • ??}
  • ??//手機發過來的第三檔風量事件??
  • ??if(myGizwits.hasBeenSet(EVENT_Fan_3))
  • ??{
  • ? ? myGizwits.read(EVENT_Fan_3,&varR_Fan_3);//Address for storing data
  • ? ? if(varR_Fan_3 == 1)//接收到云端三檔時
  • ? ?? ???{
  • ? ?? ???ControlFan_3();//風量三檔開啟
  • ? ?? ???}
  • ? ?? ???else{
  • ? ?? ???ControlRst();//當開關為關閉時,風扇停止。
  • ? ?? ???}
  • ??}
  • ??myGizwits.process();
  • }
  • //關閉設備函數
  • void ControlRst(){
  • ? ?val = 0;
  • ? ?for(int i = 9;i <= 11;i++){
  • ??pinMode(i,OUTPUT);
  • ??digitalWrite(i,HIGH);
  • ? ?}
  • }
  • //風量一檔控制函數
  • void ControlFan_1(){
  • ? ? ControlRst();//啟動設備前,先關閉其他檔位的風量
  • ? ?? ???digitalWrite(Pin9,LOW);//向接收端無線模塊發送開關啟動信號
  • }
  • //風量二檔控制函數
  • void ControlFan_2(){
  • ? ?? ???ControlRst();//啟動設備前,先關閉其他檔位的風量
  • ? ?? ???digitalWrite(Pin10,LOW);//向接收端無線模塊發送開關啟動信號
  • }
  • //風量三檔控制函數
  • void ControlFan_3(){
  • ? ?? ???ControlRst();//啟動設備前,先關閉其他檔位的風量
  • ? ?? ???digitalWrite(Pin11,LOW);//向接收端無線模塊發送開關啟動信號
  • }
  • ? ? 核心功能就是利用三個void ControlFan()風扇控制函數,依次啟動ardiuno的9,10,11三個引腳低電位,從而控制連接在三個腳上面的無線發射模塊三路開關信號發送出去。當風扇上的無線接收模塊收到信號后,會立刻觸發對應的繼電器閉合,從而啟動風扇運行和RGBLED燈點亮。
    ? ? 關閉設備函數void ControlRst(),其實質就是復位三個ardiuno引腳,從而觸發接收模塊動作,關閉風扇,不管風扇運行在任何風量檔位上,都可以立刻關閉。

    五 關于模塊使用說明,完整代碼,測試用APK

    • 1)本文提到的模塊,電路圖,完整代碼等請參照附件的資料
    • 2)本文使用的手機APK是機智云提供的標準測試調試軟件,大家請上云端下載就可以了。



    配置前后的圖標和界面如下圖所示:
    ??

    ?

    源碼下載地址:http://club.gizwits.com/thread-7992-1-1.html

    轉載于:https://www.cnblogs.com/dapangsen/p/7929052.html

    總結

    以上是生活随笔為你收集整理的基于ArduinoUNOR3的智能调速风扇的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。