步驟1:先決條件
GSM模塊-SIM800L
非常小巧,易于使用
能夠使用移動互聯網(GPRS)
便宜
GPS模塊-Ublox NEO6M
也很小
很好地處理了工作
一個微控制器-可以是任何東西-您可以使用著名的Arduino Uno或Nano釋放一些空間
電池 -我使用18650電池作為主要電源,并且只有電源(標稱3.7V)
電池座-為什么? -因為焊接18650電池由于熱量非常危險。
DC-DC升壓轉換器5V升壓模塊-必須具備,因為我使用的Arduino需要5V
工具,因此可以方便地使用一些基本的東西:
電線,烙鐵,試驗用面包板
步驟2:主要概念
主要概念如下:
它由3個部分組成:
設備-具有正確的GPS坐標并且可以遠程連接到服務器并向其發送數據
網絡服務器-可以接收傳入數據-存儲它-并為其他客戶端提供服務
平臺-我們可以在其中查看坐標-理想情況下,它現在應該是移動應用程序或網站
步驟3:SIM800L模塊
我在模塊方面遇到了困難。
我想從一些特性和參考開始。
根據數據表:
它在3.4V-4.4V之間工作
它可以發送短信,與其他電話進行語音通話,甚至連接到Internet!
我們可以通過AT命令與之通信!
在峰值時間它可以使用高達2A的電流! 注意:由于它的低采樣率,您可能無法用萬用表進行測量
我的經驗是,低于3.8V的SIM800L不能
有關更多信息,請訪問:數據表
因此,您的工作是提供 至少3.8V 連接至模塊(理想情況下為4V),該電源可輸出至少2A 。
在最終設備中使用該模塊之前,建議您與您的設備建立通信SIM800L和您的計算機,以確保您的設備正常工作。
首先,插入SIM卡,如上圖所示。
要將其與PC連接,可以使用USB到TTL轉換器或Arduino。
現在,我選擇Arduino。
連接SIM800L VCC和GND連接到電源端子。
將TX連接到Arduino的第10個數字引腳,RX連接到arduino的第11個數字引腳。
下載代碼,我已完成此步驟的鏈接。
使用該代碼,您可以在串行監視器上發送命令并將其取回。
一些簡單的命令:
AT-》如果連接正常,則返回OK。
ATD + 123456789; -》撥打給定的電話號碼。注意:不要忘記以分號結尾。
AT + CPIN? -》返回SIM卡狀態(是否鎖定)
如果要發送短信,則需要以特殊字符結束輸入,可以使用‘$’符號完成。
對于其他有趣的命令,我建議您閱讀。
有各種命令,請熟悉它們,它們確實非常有用。
有紅色狀態LED,告訴您SIM800L正在進行什么操作。
64 MS開啟-800MS關閉-SIM800L未注冊到網絡。
64 MS開啟-3000MS關閉-SIM800L已注冊
64 MS ON-300MS OFF-SIM800l處于GPRS模式
如果SIM800L 在大約8-10次閃爍后保持重啟狀態,可能是由于缺少高效的電源 。
如果在AT后仍然無法正常工作,請檢查接線!如果您有萬用表,請檢查電線的導通性。
檢查電線和焊點的連接!該模塊僅在閃爍時起作用。
步驟4:Ublox Neo 6m
某些特性
最大電壓:3.6V-我使用Arduino的3.3V引腳為其供電
最大電流消耗為67mA-因此您可以通過arduino為其供電
溫度范圍:-40-85攝氏度(我想它會適合您)
我訂購的設備帶有圖片上顯示的天線,我只是將其插入相應的插槽中。
設備出現信號時,會閃爍藍色LED。
首先,如果不知道,請檢查GPS在這里的工作方式。
打開設備并找到3顆衛星后,它會像上面一樣向Arduino發送很多逗號分隔的值。
為了幫助我們完成工作,我們可以使用一些外部庫來解析這些數據,以使其更易于閱讀。
您可以使用TinyGps庫或NeoGPS庫。我使用第二個是因為它更輕。
要進行測試,您必須將電源引腳連接到arduino 3.3V和GND。
下載此代碼,并將其與GPS結合使用。 RX-》數字引腳10,TX-》數字引腳11
注意:不要忘記在室外使用該模塊,最好是在沒有云的情況下。
半分鐘后,設備應閃爍并輸出GPS坐標! :)
一旦您知道您的SIM800L和GPS模塊可以正常工作,就可以繼續下一步。
第5步:電路
電路如圖所示。
因此,3.4V-4.2V 18650電池是主要電源。 Sim800L直接從中獲取能量。為了提高電路的穩定性,它們之間應并聯一個電容器。
選擇電容器時,應選擇低ESR電容器。
一個5V步進-升壓轉換器將電池電壓升至5V(因為Arduino使用5V,所以需要ir)。
5V電源軌在此處連接到Nano。如圖所示,Sim800L和Neo6m與Nano相連。 (Sim Tx-D10,SimRx-D11; NeoTX-D3,NeoRX-D4)
D12連接到RST,因此我們可以通過編程方式重新引導系統(SIM800L除外)。注意:這種重啟方法可能不是最佳實踐)
最后,兩個LED連接到了NANO,因此我們可以告訴用戶是否發生任何錯誤。
第6步:代碼
該代碼已附加到Instructables上,或查看github。
您可以對其進行修改以使其適合您的需要,
waitUntilResponse();或使用其他人的代碼。輔助函數來自他的代碼。
簡而言之,在設置功能中,我們需要啟用SIM800L模塊的GPRS連接。我們知道如果LED快速閃爍是否成功。 (setupGPRSConnection())
在循環函數中-每15秒調用一次sendData()函數-該請求具有HTTP請求
我使用查詢字符串將數據推送到Web服務器格式如下:
ip地址/file.php?key=value&key=value例如http://xxx.xxx.xxx.xxx/log.php?lat=xy&lon=xy
如果發生任何錯誤,相應的LED將亮起。 (SIM,GPS)
第7步:Web服務器
對于我們來說,一個簡單的輕量級Web服務器就足夠了。
您可以選擇以下選項:
您可以使用公司的遠程服務器,您可能需要定期支付費用。
您可以使用您自己的計算機。我只建議將其用于測試,由于能源浪費,安全問題,它并非全天候24/7運行。
您可以使用小型計算機,例如 Raspberry PI 。輕巧,便宜,不會消耗太多電量。
我嘗試了第二種和第三種選擇,它們效果很好。好吧,主要目標不是此教學的服務器,但我向您提示一些建議。
如果您使用PC ,則可能使用Windows。如果您是我,我將在其上安裝Apache或XAMPP服務器。
XAMPP中已經包含PHP,此外它還附帶HTML,Perl和數據庫管理系統。使用PHP,可以創建動態服務器。如果要使用世界各地制造的本地服務器,則需要為PC分配靜態IP并進行一些端口轉發。關于靜態IP的有用教程:
以及整個portforwarding內容:
如果您有Raspberry ,使用它是一個好習慣。您可以熟悉Linux命令,并以24/7全天候運行自己的服務器。
操作系統是Raspbian Jessie,無頭設置(無鍵盤,顯示器)-我通過SSH連接在計算機上對其進行了控制
我使用Putty登錄到Raspberry。不要忘記更改您的帳戶密碼,以使其他人無法登錄您的Pi。默認值為:pi,密碼:raspberry。
我使用sqlite3安裝了lighttpd Web服務器。在這里找到好的教程:
我在服務器代碼中主要使用PHP。使用PHP,您可以接收數據,讀取/寫入數據庫-將查詢編碼為json格式等。。..本教程將為您提供很多有關如何使用PHP管理數據庫的幫助。
您可以在github上也可以在server_files文件夾中查看我的代碼。
當然,如果要遠程訪問,則必須在路由器上啟用端口轉發到Pi。
第8步:結束/體驗
尚待完成一個機箱。
我的經驗是,系統運行情況還不錯。但是有待改進的穩定性。
如果跟蹤器無法使用我所附的代碼,請不要擔心。嘗試確保SIM800L和NEO 6M正常工作。您可以自由修改我的代碼,或者尋找更好的代碼。我只是希望,我可以向您展示一個示例,說明如何完成此項目。
-
gps
+關注
關注
22文章
2886瀏覽量
166054 -
追蹤器
+關注
關注
0文章
168瀏覽量
25685
發布評論請先 登錄
相關推薦
評論