牟曉東
炎炎夏日,一直“貓”在空調(diào)房中取涼對身體是極為不利的,還是用風扇吹自然風比較健康。對于我們熱衷于“鼓搗”的創(chuàng)客一族而言,吹吹風也一定要吹出不一樣的境界,比如使用App Inventor編程開發(fā)個手機應用程序,遠程操控樹莓派的智能風扇——既能任意變速,又能定時關機。
所需的實驗器材包括:樹莓派3B+(帶電源線)一塊,古德微擴展板一塊,風扇模塊一個,智能手機一部,公對母異色杜邦線四根(如圖1)。
風扇模塊(L9110)直流電動機的馬達控制板提供有四個引腳:電源正極VCC、接地GND和IA、IB兩個輸入控制端,引腳次序與古德微擴展板24號一一對應,但“直插”的話會導致扇葉在放置時與擴展板親密接觸,因此應該借助杜邦線進行“延長”。注意:控制板的IA引腳接擴展板24號的D端,控制板的IB引腳接擴展板的A0端(如果這兩個輸入控制端交叉連接就會出現(xiàn)扇葉“反轉(zhuǎn)”——變成“排氣扇”)。
1.組件設計
瀏覽器訪問App Inventor網(wǎng)站(https://app.wxbit.com/login/),QQ賬號登錄。新建“智能風扇”項目,分別建立三個“水平布局”,進行“居中”,寬度“充滿”,高度“自動”設置;在第一個水平布局中建立“風力調(diào)節(jié)”標簽和“風力調(diào)節(jié)滑桿”水平滑動條,注意滑桿的最大值設為3000,最小值設為0,滑桿位置設為0;在第二個水平布局建立兩個標簽,分別為“風力”和“風力值”(文本設為0);在第三個水平布局中建立一個“時間選擇框”(重命名為“定時關機”),再建立“關機時間”標簽(文本設置為“00:00”)。
然后建立一個“圖像框”,上傳風扇圖片(“自動縮放有效”,寬度和高度均為“自動充滿”);再從“通信連接”中建立一個“MQTT客戶端”,注意將“服務器URL”修改為古德微機器人網(wǎng)站的URL:“tcp://www.gdwrobot.top:1883”;最后從“傳感器”中建立一個“計時器”,完成組件設計(如圖2)。
2.邏輯設計部分
切換至“邏輯設計”界面進行相關項目的初始化和連接等設置。比如“當屏幕Screen初始化”時,調(diào)用MQTT客戶端連接;“當MQTT客戶端已連接”時,設置風力值文本顯示為“MQTT已經(jīng)連接成功!”;“當定時關機被點擊”時,調(diào)用定時關機彈出選擇框;當“定時關機完成時間設定”時,設置顯示關機時間等相關信息(如圖3)。
當“風力調(diào)節(jié)滑桿的滑塊位置發(fā)生改變”時,設置風力值為滑塊位置的四舍五入數(shù)值,然后調(diào)用MQTT客戶端發(fā)布相關的信息(注意“l(fā)uke008/Fan”主題必須與樹莓派賬號一一對應)(如圖4)。
當“計時器到計時間隔點”,根據(jù)用戶設定的定時關機時間再次進行發(fā)布(如圖5)。
瀏覽器訪問古德微機器人平臺(http://www.gdwrobot.cn/),輸入賬號密碼登錄。首先從“物聯(lián)網(wǎng)”處設置物聯(lián)網(wǎng)服務器積木模塊,再監(jiān)聽主題Fan并設置初始值為0;然后建立“循環(huán)當真”結(jié)構,判斷是否收到主題Fan的新數(shù)據(jù):如果收到,先在調(diào)試區(qū)輸出該數(shù)據(jù),然后控制24號(風扇)GPIO輸出;如果主題Fan的數(shù)據(jù)為0,控制24號關停風扇;最后添加等待時間,保存程序為“編程智能風扇”(如圖6)。
確保風扇與擴展板正確連接之后,通電啟動樹莓派;在古德微機器人平臺上點擊“連接設備”后打開LOG調(diào)試區(qū),點擊“運行”按鈕;到App Inventor網(wǎng)站智能風扇項目中點擊“連接”-“AI伴侶”,出現(xiàn)二維碼;在智能手機上運行AI伴侶,掃描二維碼,連接成功后會顯示出與在App Inventor組件設計中相同的界面。
此時就可以向右撥動“風力調(diào)節(jié)”后面的風力調(diào)節(jié)滑桿,下方的“風力”處即時顯示出數(shù)值(比如1620),同時在古德微機器人平臺的程序LOG調(diào)試區(qū)也會對應顯示該數(shù)值。當然,最重要的是風扇此時已經(jīng)轉(zhuǎn)動起來了,撥動調(diào)節(jié)該數(shù)值越大,風扇葉片的旋轉(zhuǎn)速度就越快——撥動到0,風扇停轉(zhuǎn)(如圖7)。
再來試一下“定時關機”功能,比如現(xiàn)在是14:29,可以點擊彈出的時間鐘表盤設置關機時間——比如14:31。此時風扇仍然是按照撥動的轉(zhuǎn)速值在旋轉(zhuǎn),到預定的關機時間后,風扇立刻停轉(zhuǎn)了,非?!奥犜挕保蠹也环烈辉?。
(本實例效果演示可在B站搜索“二娃學編程”觀看)