牟曉東
在開源硬件編程中,樹莓派是一種卡片般大小的微型電腦,專為學(xué)生計算機編程教育或進(jìn)行嵌入式開發(fā)而設(shè)計;古德微機器人網(wǎng)站提供了“積木”式編程方式,使得中學(xué)生(甚至是小學(xué)生)編程的難度大為降低;“釘釘”是類似于QQ的群聊溝通軟件,通常的應(yīng)用場所是企事業(yè)單位內(nèi)部工作群交流。如果將三者聯(lián)合起來,又會碰撞出什么“火花”呢?本文中我們打造出一個基于古德微和樹莓派硬件組合的釘釘“守望者”機器人,這個硬件機器人在釘釘工作群中有一個虛擬機器人賬號,當(dāng)它的攝像頭或超聲波傳感器監(jiān)測到異常情況時,會在釘釘群中發(fā)送文字信息提醒用戶,并且將抓拍的畫面同步輸出。下面,我們分別進(jìn)行樹莓派實驗器材連接、釘釘群機器人設(shè)置和古德微“積木”編程,最終完成“守望者”的打造。
實驗器材:樹莓派3B+一塊,古德微擴展板一塊,HC SR04超聲波傳感器一個,P5V04A SUNNY定焦攝像頭一個。

首先,將樹莓派主板的CSI卡槽接口(標(biāo)注有“CAMERA”字樣)的黑色塑料鎖扣兩端輕輕向上拉起,將攝像頭數(shù)據(jù)線銀色一面對準(zhǔn)豎紋金屬面小心插入后再將鎖扣兩端向下壓緊鎖好,完成攝像頭與樹莓派的連接操作;接著,將古德微擴展板與樹莓派進(jìn)行“對接”;然后,將超聲波傳感器插入擴展板標(biāo)注有“超聲波”字樣的20、21四個插孔,注意四個引腳的標(biāo)注要與擴展板相同;最后,給樹莓派通電,啟動操作系統(tǒng)(如圖1)。
在電腦端登錄自己的釘釘,進(jìn)入待設(shè)置的某釘釘群。
(1)添加自定義機器人
先點擊群右上角的齒輪狀圖標(biāo),在“群設(shè)置”中點擊“智能群助手”,再點擊“添加機器人”右側(cè)的“+”圖標(biāo);在彈出的“群機器人”頁面中“選擇要添加的機器人”中選擇最后一個“自定義:通過Webhook接入自定義服務(wù)”,點擊“添加”按鈕(如圖2)。

(2)生成密鑰字符串
首先在“機器人名字”處設(shè)置機器人名稱,比如“古德微樹莓派守望者”;接著勾選“加簽”,在下方的密鑰字符串上點擊右鍵進(jìn)行復(fù)制:“SEC2984……565”,粘貼保存至新建的文本文件中,待用;然后再勾選下方的“我已閱讀并同意《自定義機器人服務(wù)及免責(zé)條款”項,點擊“完成”按鈕。
(3)生成Webhook
此時就會生成Webhook:
https:∥oapi.dingtalk.com/robot/send?access_token:9bb4d3……a4b6,點擊右側(cè)的“復(fù)制”按鈕,同樣將它粘貼至文本文件中進(jìn)行保存,最后點擊“完成”按鈕,注意Webhook泄露會有安全風(fēng)險。
此時返回釘釘群,就有一條新的群消息“大家好!我是古德微樹莓派守望者機器人,很高興為你們服務(wù)”彈出,正是由剛剛我們建立的名為“古德微樹莓派守望者”的機器人發(fā)出的。
注意:生成的密鑰字符串和Webhook都要妥善保存好,下一步編程時需要使用它們。
在古德微機器人網(wǎng)站登錄自己的賬號,進(jìn)行“積木”編程:
整體結(jié)構(gòu)為一個“重復(fù)當(dāng)‘真”的循環(huán)體。建立的“超聲波測距”變量是用來存放每次超聲波傳感器檢測到的與障礙物間的距離值,通過條件“超聲波測距<20”來判斷是否有異常情況發(fā)生,即“闖入者”與超聲波傳感器的間距小于20(單位為cm);條件成立的話,則控制攝像頭執(zhí)行抓拍動作,生成圖片文件image.jpg(保存于樹莓派的/home/pi/imageTemp/目錄中)。
接著進(jìn)行釘釘機器人的初始化和參數(shù)設(shè)置:
從左側(cè)“物聯(lián)網(wǎng)”-“釘釘”中創(chuàng)建一個釘釘機器人,將Webhook值和secret值分別補充完整(上一步中生成的Webhook和密鑰字符串);然后為釘釘機器人添加文字報警信息:“大家請注意,有情況!”同時保持默認(rèn)的“@所有人@手機號”;接下來,將樹莓派攝像頭抓拍并生成的圖片文件image]Pg進(jìn)行發(fā)送。
最后,為循環(huán)體添加一個等待0.3秒的“休息”時間,防止程序一直占用樹莓派的系統(tǒng)資源而造成死機(如圖3)。

在樹莓派安裝的超聲波傳感器前方放置“海盜船”模擬有人入侵的情況,起始距離為20cm之外(如圖4)。

在古德微機器人網(wǎng)站中先執(zhí)行“連接設(shè)備”操作,出現(xiàn)五個綠色對鉤后點擊“運行”按鈕;此時,注意觀察釘釘群,靜悄悄的,無任何異常情況。接著,將“海盜船”逐漸向樹莓派靠近,當(dāng)進(jìn)入事先設(shè)定的小于20cm界限時,釘釘群中的古德微樹莓派守望者先是發(fā)了一條文字信息:“大家請注意,有情況!”而且是“@所有人”的;然后就是一張圖片,拍攝內(nèi)容正是從樹莓派攝像頭角度獲取的“海盜船”。
經(jīng)過多次測試,均實現(xiàn)了預(yù)期目標(biāo),釘釘“守望者”及時發(fā)送了文字和圖片達(dá)到了效果,大家不妨一試。本次我們通過互聯(lián)網(wǎng)讓樹莓派和釘釘產(chǎn)生了聯(lián)動,局域互聯(lián)網(wǎng)的應(yīng)用是我們學(xué)習(xí)編程不能忽略的重要部分,我們會在近期持續(xù)介紹類似的應(yīng)用實例。