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