牟曉東
炎炎夏日,一直“貓”在空調(diào)房中取涼對身體是極為不利的,還是用風(fēng)扇吹自然風(fēng)比較健康。對于我們熱衷于“鼓搗”的創(chuàng)客一族而言,吹吹風(fēng)也一定要吹出不一樣的境界,比如使用App Inventor編程開發(fā)個手機應(yīng)用程序,遠(yuǎn)程操控樹莓派的智能風(fēng)扇——既能任意變速,又能定時關(guān)機。
所需的實驗器材包括:樹莓派3B+(帶電源線)一塊,古德微擴展板一塊,風(fēng)扇模塊一個,智能手機一部,公對母異色杜邦線四根(如圖1)。

風(fēng)扇模塊(L9110)直流電動機的馬達控制板提供有四個引腳:電源正極VCC、接地GND和IA、IB兩個輸入控制端,引腳次序與古德微擴展板24號一一對應(yīng),但“直插”的話會導(dǎo)致扇葉在放置時與擴展板親密接觸,因此應(yīng)該借助杜邦線進行“延長”。注意:控制板的IA引腳接擴展板24號的D端,控制板的IB引腳接擴展板的A0端(如果這兩個輸入控制端交叉連接就會出現(xiàn)扇葉“反轉(zhuǎn)”——變成“排氣扇”)。
1.組件設(shè)計
瀏覽器訪問App Inventor網(wǎng)站(https://app.wxbit.com/login/),QQ賬號登錄。新建“智能風(fēng)扇”項目,分別建立三個“水平布局”,進行“居中”,寬度“充滿”,高度“自動”設(shè)置;在第一個水平布局中建立“風(fēng)力調(diào)節(jié)”標(biāo)簽和“風(fēng)力調(diào)節(jié)滑桿”水平滑動條,注意滑桿的最大值設(shè)為3000,最小值設(shè)為0,滑桿位置設(shè)為0;在第二個水平布局建立兩個標(biāo)簽,分別為“風(fēng)力”和“風(fēng)力值”(文本設(shè)為0);在第三個水平布局中建立一個“時間選擇框”(重命名為“定時關(guān)機”),再建立“關(guān)機時間”標(biāo)簽(文本設(shè)置為“00:00”)。
然后建立一個“圖像框”,上傳風(fēng)扇圖片(“自動縮放有效”,寬度和高度均為“自動充滿”);再從“通信連接”中建立一個“MQTT客戶端”,注意將“服務(wù)器URL”修改為古德微機器人網(wǎng)站的URL:“tcp://www.gdwrobot.top:1883”;最后從“傳感器”中建立一個“計時器”,完成組件設(shè)計(如圖2)。

2.邏輯設(shè)計部分
切換至“邏輯設(shè)計”界面進行相關(guān)項目的初始化和連接等設(shè)置。比如“當(dāng)屏幕Screen初始化”時,調(diào)用MQTT客戶端連接;“當(dāng)MQTT客戶端已連接”時,設(shè)置風(fēng)力值文本顯示為“MQTT已經(jīng)連接成功!”;“當(dāng)定時關(guān)機被點擊”時,調(diào)用定時關(guān)機彈出選擇框;當(dāng)“定時關(guān)機完成時間設(shè)定”時,設(shè)置顯示關(guān)機時間等相關(guān)信息(如圖3)。

當(dāng)“風(fēng)力調(diào)節(jié)滑桿的滑塊位置發(fā)生改變”時,設(shè)置風(fēng)力值為滑塊位置的四舍五入數(shù)值,然后調(diào)用MQTT客戶端發(fā)布相關(guān)的信息(注意“l(fā)uke008/Fan”主題必須與樹莓派賬號一一對應(yīng))(如圖4)。

當(dāng)“計時器到計時間隔點”,根據(jù)用戶設(shè)定的定時關(guān)機時間再次進行發(fā)布(如圖5)。

瀏覽器訪問古德微機器人平臺(http://www.gdwrobot.cn/),輸入賬號密碼登錄。首先從“物聯(lián)網(wǎng)”處設(shè)置物聯(lián)網(wǎng)服務(wù)器積木模塊,再監(jiān)聽主題Fan并設(shè)置初始值為0;然后建立“循環(huán)當(dāng)真”結(jié)構(gòu),判斷是否收到主題Fan的新數(shù)據(jù):如果收到,先在調(diào)試區(qū)輸出該數(shù)據(jù),然后控制24號(風(fēng)扇)GPIO輸出;如果主題Fan的數(shù)據(jù)為0,控制24號關(guān)停風(fēng)扇;最后添加等待時間,保存程序為“編程智能風(fēng)扇”(如圖6)。

確保風(fēng)扇與擴展板正確連接之后,通電啟動樹莓派;在古德微機器人平臺上點擊“連接設(shè)備”后打開LOG調(diào)試區(qū),點擊“運行”按鈕;到App Inventor網(wǎng)站智能風(fēng)扇項目中點擊“連接”-“AI伴侶”,出現(xiàn)二維碼;在智能手機上運行AI伴侶,掃描二維碼,連接成功后會顯示出與在App Inventor組件設(shè)計中相同的界面。
此時就可以向右撥動“風(fēng)力調(diào)節(jié)”后面的風(fēng)力調(diào)節(jié)滑桿,下方的“風(fēng)力”處即時顯示出數(shù)值(比如1620),同時在古德微機器人平臺的程序LOG調(diào)試區(qū)也會對應(yīng)顯示該數(shù)值。當(dāng)然,最重要的是風(fēng)扇此時已經(jīng)轉(zhuǎn)動起來了,撥動調(diào)節(jié)該數(shù)值越大,風(fēng)扇葉片的旋轉(zhuǎn)速度就越快——撥動到0,風(fēng)扇停轉(zhuǎn)(如圖7)。

再來試一下“定時關(guān)機”功能,比如現(xiàn)在是14:29,可以點擊彈出的時間鐘表盤設(shè)置關(guān)機時間——比如14:31。此時風(fēng)扇仍然是按照撥動的轉(zhuǎn)速值在旋轉(zhuǎn),到預(yù)定的關(guān)機時間后,風(fēng)扇立刻停轉(zhuǎn)了,非常“聽話”,大家不妨一試。
(本實例效果演示可在B站搜索“二娃學(xué)編程”觀看)