謝作如 鄭蕾蕾
據(jù)說(shuō)99%的人都有關(guān)門(mén)強(qiáng)迫癥,筆者也不例外。每次在踏出家門(mén)的1分鐘后,總會(huì)在糾結(jié)門(mén)是否關(guān)上?有時(shí)忍不住折回檢查,而十有八九門(mén)都是鎖好了的。如果能讓門(mén)變得智能該多好啊。打開(kāi)手機(jī),點(diǎn)個(gè)按鈕,它能告訴我們當(dāng)前狀態(tài),鎖了還是沒(méi)鎖,就一清二楚了。
現(xiàn)在,強(qiáng)迫者的救星來(lái)了。借助一塊IOT模塊(OBLOQ模塊),開(kāi)源硬件micro:bit就能連接上網(wǎng)絡(luò),把門(mén)的狀態(tài)上傳到特定的服務(wù)器,隨時(shí)可以告訴這些關(guān)門(mén)強(qiáng)迫癥“患者”:門(mén)已經(jīng)關(guān)好了,別擔(dān)心!這,就是“強(qiáng)迫癥關(guān)門(mén)利器”的設(shè)計(jì)初衷。
解決思路
要想讓門(mén)和手機(jī)之間可以通信,需要借助物聯(lián)網(wǎng)技術(shù)。所謂物聯(lián)網(wǎng),就是物物相連的網(wǎng)絡(luò)?,F(xiàn)在很多開(kāi)源硬件都能連接互聯(lián)網(wǎng),如虛谷號(hào)、樹(shù)莓派、掌控板等。Arduino和micro:bit等大家比較熟悉的開(kāi)源硬件雖然自身沒(méi)有連接網(wǎng)絡(luò)的功能,但是借助OBLOQ模塊,同樣也能夠連上互聯(lián)網(wǎng),實(shí)現(xiàn)“物物相連”。
“強(qiáng)迫癥關(guān)門(mén)利器”首先是利用micro:bit結(jié)合傳感器來(lái)檢測(cè)門(mén)的狀態(tài),然后將狀態(tài)信息輸出到物聯(lián)網(wǎng)服務(wù)器,供手機(jī)查詢。對(duì)開(kāi)門(mén)和鎖門(mén)的狀態(tài)檢測(cè),可以使用紅外數(shù)字避障傳感器,只要安裝在合適的位置即可。物聯(lián)網(wǎng)服務(wù)器則采用DFRobot的物聯(lián)網(wǎng)平臺(tái),結(jié)合Easy IoT微信小程序,使得我們能夠在移動(dòng)設(shè)備中查看門(mén)的狀態(tài)。
如圖1所示,用戶登錄微信,通過(guò)微信小程序EasyIoT發(fā)送“door”的檢測(cè)消息,已連接上Wi-Fi的IOT模塊接收到檢測(cè)指令后,發(fā)送給micro:bit,micro:bit讀取紅外數(shù)字避障傳感器的數(shù)值,檢測(cè)到目標(biāo)返回1(門(mén)為打開(kāi)狀態(tài)),未檢測(cè)到目標(biāo)返回0(門(mén)為關(guān)閉狀態(tài))。根據(jù)傳感器的數(shù)值,micro:bit通過(guò)IOT模塊向待定服務(wù)器發(fā)送對(duì)應(yīng)的字符串“Gobackandclosethe door”或“Thedoorisclosed”,這消息最后會(huì)在用戶手機(jī)中的微信小程序EasyIoT中的消息列表中呈現(xiàn)。
硬件準(zhǔn)備
“強(qiáng)迫癥關(guān)門(mén)利器”需要OBLOQ模塊、紅外數(shù)字避障傳感器、micro:bit和Micro:Mate擴(kuò)展板,核心模塊如上頁(yè)圖2所示。
上頁(yè)表中列出了“強(qiáng)迫癥關(guān)門(mén)利器”所需的具體器材,這些器材在DFRobot的商城上都可以找到。
解決過(guò)程
1.物聯(lián)網(wǎng)配置
打開(kāi)微信,搜索微信的小程序“EasyIoT”,使用DF IoT平臺(tái)創(chuàng)建設(shè)備配置物聯(lián)網(wǎng)(如圖3)。在小程序中可以找到用戶的Iot_id和Iot_pwd,添加設(shè)備后,可以得到設(shè)備的topic值。
2.micro:bit代碼編寫(xiě)
打開(kāi)makecode編程平臺(tái),并將如圖4的程序?qū)懭雖icro:bit中?!癢i-Fi”部分寫(xiě)的是無(wú)線路由器的信息,“物聯(lián)網(wǎng)服務(wù)”部分,則填寫(xiě)在小程序中看到的各種信息?!耙_設(shè)置”要和OBLOQ在Micro:Mate上的連接一致。筆者是將綠色導(dǎo)線接在P1上,藍(lán)色導(dǎo)線接在P2上。
注意,makecode編程平臺(tái)需要先導(dǎo)入obloq軟件包,才能找到這一編程模塊。具體做法是“添加軟件包”-“填寫(xiě)項(xiàng)目地址”。obloq軟件包的地址:https://github.com/DFRobot/pxt-Obloq。
3.實(shí)驗(yàn)測(cè)試
由于OBLOQ模塊與紅外數(shù)字避障傳感器在5V電壓下才能正常工作,因此需要將擴(kuò)展板上的開(kāi)關(guān)撥到5V。LED陣列上第一次出現(xiàn)“√”,說(shuō)明聯(lián)網(wǎng)成功(如圖5)。第二次出現(xiàn)“√”,表示已成功連接IoT服務(wù)。
根據(jù)實(shí)際的檢測(cè)環(huán)境,即紅外數(shù)字避障傳感器離門(mén)的距離,要用一字螺絲刀調(diào)節(jié)傳感器背后的旋鈕。
登錄微信小程序EasyIoT發(fā)送door消息進(jìn)行門(mén)的開(kāi)關(guān)檢測(cè)(如圖6),打開(kāi)消息列表進(jìn)行查看(如圖7)。
當(dāng)傳感器沒(méi)有監(jiān)測(cè)到目標(biāo)的時(shí)候,micro:bit發(fā)送信息“Goback andclosethedoor”;當(dāng)傳感器監(jiān)測(cè)到目標(biāo)的時(shí)候,micro:bit發(fā)送信息“Thedoorisclosed”。
思考與總結(jié)
“強(qiáng)迫癥關(guān)門(mén)利器”用物聯(lián)網(wǎng)技術(shù)幫助了強(qiáng)迫者用戶,避免了無(wú)效的折返檢查關(guān)門(mén)的行為。雖然代碼很簡(jiǎn)單,作品的結(jié)構(gòu)也很簡(jiǎn)單,但的確能夠有效檢測(cè)門(mén)的當(dāng)前狀態(tài)。EasyIoT小程序中還能看到“門(mén)”的歷史狀態(tài),以及發(fā)送的信息列表。
對(duì)于開(kāi)門(mén)關(guān)門(mén)的狀態(tài)檢測(cè),也可以用其他的方案,如超聲波傳感器、觸碰傳感器等。如果借助于電子鎖之類的其他裝置,還可以實(shí)現(xiàn)遠(yuǎn)程開(kāi)門(mén)和關(guān)門(mén)。如果加上溫度、濕度之類的傳感器,就能實(shí)現(xiàn)簡(jiǎn)單的智能家居功能。本項(xiàng)目的成功制作,告訴我們物聯(lián)網(wǎng)技術(shù)并不神秘,小學(xué)生都可以駕馭。