NB-IoT實例1——用Tinkernode做一個電瓶車的追蹤防盜裝置

一年前,我去永輝買菜,二十分鐘後回來,發現停門口的電瓶車不見了。後來我又買了一輛電瓶車。

 

我又買了一件雨衣,下雨天時騎車用。雨衣剛買回來感覺還不錯,裝袋子裏剛剛好,一點多餘空間都不給,渾然天成的趕腳

雨衣用了一次過後

就再也裝不回去了......
想象一下,熟練的工廠工人將嶄新平整的雨衣塞進了剛剛好的包裝裏,交到我這樣的手殘黨客戶手裏,我要想把使用過後有褶皺的雨衣再塞回去,花上個小半天應該也能行。不說了,設計包裝的師傅出來捱打。袋子給大一點,廢不了幾塊布料啊。

 

咦?爲什麼我要吐槽雨衣

後來我買了輛電瓶車,日常上兩把鎖的情況下。還一直想着給它加個防盜追蹤功能,卻遲遲動不了手。差不多一年過去了,最近我有種預感,車近期有被盜的卦象(其實是無臉再拖延),於是決定着手來做這個防盜追蹤功能。

 

對了,說一下我平時使用電瓶車遇到的問題。首先是怕被偷的問題,電瓶和車子被偷風險都挺大。再就是平時充電得問題,車棚裏車子多得很,來往停車取車人較多,如果有人不小心把你充電器插頭碰掉了,第二天上班就只能安排其他的交通工具了,我遇到過兩次這種情況,特別麻煩。

這次剛好手上有一塊Tinkernode的NB物聯網開發板,於是就用它來做這個防盜追蹤裝置。原本也計劃將第二個問題物聯網監控充電情況的問題也給一起解決掉,但沒有找到相對應的測電壓的模塊,所以暫時放着,以後再加這個功能。Tinkernode這個板子,真心很方便,它自帶有定位功能,所以不用再外加定位模塊了。並且它供電方式多樣,6-24v直流電源、3.7v鋰電池、USB供電、4.5-6v太陽能供電。開發板上有一塊esp32的控制器,所以在製作的時候,不用外接控制器了,板子整體很小,功能集成度很高,適用於更小更窄的應用場景

自帶的聯通卡在我這兒,NB信號很弱,所以我自己買了一張移動的NB卡

需要實現的功能:我想利用Tinkernode這塊開發板通過NB物聯網,將電瓶車的實時位置信息上傳到阿里雲物聯網平臺,可以通過平臺上的地圖軟件來直觀地查看電瓶車的位置。並通過阿里云爲電瓶車設置“地理圍欄”,當電動車離開了我所設置的範圍內,阿里雲會給我的手機發送短信或打電話通知情況。假如我遇到車子被偷的情況,車子一出地理圍欄的範圍,我就會收到電話通知,然後我就會通過阿里雲對Tinkernode進行控制,讓它操作繼電器對電瓶車進行斷電,讓偷車賊喪失快速移動的能力,然後我可以通過地圖定位趕到車所在的位置,將車奪回。
 
具體細節:電瓶車控制部分是24v直流電,可以直接給Tinkernode開發板供電,然後我將繼電器安裝在油門手柄這條線路上即可,斷開後,手柄將無法再控制電瓶車的啓動

需要用到的材料:

材料簡單,接線方面也很簡單。將Tinkernode開發板的GNSS定位天線和NB信號天線給扣上。繼電器的信號線焊在開發板D4腳,正負極各自對應着焊

接下來就是阿里雲平臺的部分了,其實在Tinkernode教程貼裏也有阿里雲相應的使用教程,我這裏也還是一步步地寫出來
   
註冊並登陸
 
點擊物聯網平臺
“IOT studio”下,選擇“項目管理”,並點擊“新建項目”
點擊“新建空白項目”,並輸入項目名稱,我們這裏輸入Tracker
隨後就會進入到項目管理頁面,我們在Tracker這個項目下,新建一個產品。我之前已經建了兩個產品,不用管這兩
點擊新建產品後,我們會看到下邊的頁面,我們先給產品取個名字GNSS_tacker,然後把類型選成“自定義品類”、“直連設備”,連網方式選“蜂窩”,點擊“保存”
產品頁面就會出現該產品
點擊GNSS_tacker產品的“查看”命令
點擊“功能定義”,選擇“標準功能”頁面下“添加標準功能”
在搜索欄輸入“地理位置”,點搜索按鈕
選擇“適用類別”與圖片相對應的選項,並點擊“確定”
“地理位置”這個功能就產生了
然後到“設備”選項卡下,選擇“新增設備”
會彈出窗口,“產品”那裏選擇“GNSS_tacker”,然後“提交”
彈出窗口這裏直接點“關閉”
此時,設備顯示“未激活”
上邊,咱們將GNSS定位在阿里雲上的操作給完成了,現在還需要添加繼電器的部分
回到“產品”頁面下的“功能定義”,點“標準功能”下的“添加標準功能”,找到一個“主燈開關”的功能,點擊“確定”。由於繼電器和主燈開關的性質相似,這裏就用“主燈開關”來控制繼電器
至此,繼電器部分也完成了
 
最後一步,咱們在“產品”頁面下點擊“查看”,再在GNSS_tacker頁面右上角點擊“發佈”,彈出對話框將4個對勾打上,選擇“發佈”

程序部分:
程序方面,首先是阿里雲要接收Tinkernode上報的地理位置信息,然後Tinkernode還要訂閱阿里雲上關於對繼電器的開、關操作
 
上報的GNSS地理信息,必須要符合阿里雲的格式
這個我們可以不用管,直接使用示例程序裏的現成代碼就行。我們需要做的是修改和阿里雲關聯的幾處信息
ProductKey、DeviceName、DeviceSecret這三項在阿里雲平臺上查看,ClientId這項不改
這句語句需要對應着阿里雲上兩個功能的標識符來修改
修改爲
這兩條語句,分別從阿里雲平臺上“設備”頁面下的“Topic列表”下的“物模型通信Topic”裏兩條信息,將其複製後粘貼在語句內
修改爲
 
接下來是將代碼上傳到Tinkernode開發板上。首次使用開發板需要按照wiki資料進行格式化和下載將要用到的庫文件,這些資料都在產品頁面裏
程序上傳完成後,就可以在阿里雲平臺的“設備”頁下,看到設備已經被激活,並“在線”了
 
可以在“產品”頁下的“運行狀態”裏看到開發板上報上來的GNSS信息
也可以通過“在線調試”功能,來測試繼電器是否正常工作
可以看到繼電器亮紅燈了,已經接受到阿里雲平臺發佈的訂閱信息了,正常工作了
地圖可視化製作
在阿里雲平臺上的“主頁”下,點擊“web應用”下的“新建”
彈窗內,輸入名稱後點擊“確認”
點擊左上角“組件”,將“設備地圖”拖拽到中心的空白畫布上,並點擊右上角藍框的“編輯設備地圖”
點擊“選擇產品”,選擇剛剛我們新建的產品“GNSS_tacker”,然後點“確定”。然後點擊右上角灰色的對勾“保存”
回到剛纔的“組件”頁面,點擊保存和發佈
 
顯示web應用發佈成功了,可以點擊“預覽”查看,GNSS所在地圖位置

數據分析:

接下來演示歷史軌跡和地理圍欄功能
 
回到阿里雲列表頁面,選擇“數據分析”
 

選擇“實驗室”

選擇“空間數據可視化”

點擊“創建場景”

 

選擇“物聯網平臺”,然後輸入名稱後,選擇對應的產品,點擊“確定”

點擊“歷史軌跡”

選擇“時間段”和對應的設備,點擊“平滑軌跡線”後,就能看到對應時間段內的移動軌跡了

地理圍欄功能,選擇“地理圍欄”裏的“繪製圍欄”

我這裏選擇“圓形圍欄”

需要你在相應地圖內,拖動繪製一個圓形,然後就會彈出一個對話框,讓你填一些信息,完成信息後,就點“確定”。當相應的GNSS設備出了劃定的圍欄範圍後,就會通過短信或者電話的方式通知你了。

我測試了一下,短信通知,偶爾能成功。電話通知是百分百成功的

接下來就是將Tinkernode和繼電器安裝在電瓶車上了
 
先把坐墊下的空開關了,把電給斷了
 
然後擰螺絲,把燈罩給拆開
找到油門手柄相關的線
將這個線扣給扒開,左邊連接着油門手柄,右邊連接着電瓶車電源和電瓶車主控的信號線
連線的方式爲,Tinkernode的電源由右邊線扣來輸出,Tinkernode上6-24v的兩個接線端口的“+”“-”分別接在右邊線扣上的紅線和黑線上
 
繼電器這邊,則先將這個左邊線扣上的紅線給剪掉。繼電器的“com”接剪掉後紅線頭的部分,“NC”端接在左線扣上的紅線端口上
 
接線完成後,就將燈罩給扣上,螺絲上好,就完成了
程序裏設定的是,每20秒向阿里雲上報位置信息,NB卡每年300M的流量是完全夠用的。現在就可以去阿里雲裏看歷史軌跡了
 
也可以按照上文來設置地理圍欄,這裏就不再演示了
 
在“產品”頁下的“在線調試”功能可以及時地將電瓶車的油門手柄進行斷電,起到遠程制動的效果。
 
美中不足的地方就是,裝在車上的Tinkernode開發板如果不是通過地理圍欄,而是通過跟我手機的定位進行距離判斷,比方說當電瓶車離開我的手機3公里時,就發送手機提醒給我,這樣會更實用一些。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章