資料介紹
描述
?
該項目的目的是展示如何使用 Arduino MKR GSM 1400 的蜂窩定位。為此,我們實現了一個簡單的應用程序,允許您在收到帶有安全檢查的 SMS 時重試 MKR GSM 的緯度和經度收到信。從收到的 SMS 中恢復發件人號碼,并使用適當的 Google 地圖鏈接創建回復,該鏈接由 u-blox 模塊提供的位置服務給出的坐標完成。
你需要什么
該項目基于 Arduino MKR GSM 1400、天線、LiPo 電池組、智能手機和一張數據 SIM 卡。
- Arduino MKR GSM 1400 執行草圖并支持允許我們項目所需的本地化功能的 GSM 連接;
- 需要 SIM 卡才能訪問數據網絡并允許網絡操作;
- 需要 PIN、APN 和訪問憑證才能連接到數據網絡。
硬件設置
這個項目不需要任何特別的東西。將天線連接到板上,插入 SIM 卡并將 LiPo 電池連接到 JST 連接器。
LiPo 電池是可選的,但它可以應對 GSM 模塊可能需要的電流峰值,尤其是在覆蓋范圍較差的情況下。
這個怎么運作
該項目使用 MKRGSM 庫來管理 SMS 消息和基于單元的地理定位。
收到 SMS 時,檢查內容以查明它是否包含字母“L”。只有在這種情況下,草圖才會進行本地化和 SMS 傳輸。使用這種解決方案,任何號碼都可以請求系統的位置,但只有知道密碼(“密信”)的人才能得到答復。這是執行檢查的行,if (c != 76)
76 是“L”的 ASCII 碼。您可以更改值以更改識別的字母。
GSM 模塊沒有 GPS 接收器,但制造商有一個關于 GSM 網絡中每個小區位置的數據庫,因此它為所提供的每個小區 ID 提供坐標。該系統在城市地區非常準確,每個小區覆蓋一個小區域。在農村地區,每個小區的覆蓋范圍要大得多,所提供的位置也比較粗略。
要為 Google 地圖創建鏈接,我們使用標準 URL,我們只需在末尾連接正確的 Long 和 Lat 值。此 URL 類似于“https://www.google.com/maps/place/, ”。地圖上顯示的位置將是細胞基于物理的位置;我們的棋盤在牢房覆蓋的范圍內。
草圖
以下是草圖的詳細描述;第一個代碼段用于包含應用程序所需的庫。
MKRGSM包括所有 GSM 連接、本地化和 SMS 管理功能,這可通過對象GSMClient、GPRS、GSM和GSMLocation 獲得,SMS 管理 API 可通過對象GSM_SMS 獲得,標頭ArduinoLowPower導入允許低功耗管理的 API董事會的模塊。
如果您從 Web 編輯器下載代碼,您會發現一個 arduino_secrets.h文件,其中包含PIN、APN、用戶和密碼等敏感數據。在 Web 編輯器上,您必須在 Secrets 選項卡中填寫敏感數據。
// include the GSM library
#include
#include "ArduinoLowPower.h"
char PINNUMBER [] = SECRET_PINNUMBER;
char GPRS_APN[] = SECRET_GPRS_APN;
char GPRS_LOGIN [] =SECRET_GPRS_LOGIN;
char GPRS_PASSWORD[] =SECRET_GPRS_PASSWORD;
// initialize the library instances
GPRS gprs;
GSM gsmAccess;
GSM_SMS sms;
GSMLocation location;
measureLocation ()查詢模塊以通過蜂窩網絡重試坐標,如果新坐標可用,則將其分配給全局變量,否則再次詢問 45 秒,如果沒有尊重精度約束的可用測量,則返回最后一個好的測量
//global variable used for location management
String GSMlatitude = "0.000000";
String GSMlongitude = "0.000000";
// This function use the location's APIs to get the device coordinates and update the globa variable if all the requirement are satisfied
void measureLocation() {
unsigned long timeout = millis();
while (millis() - timeout < 45000) {
if (location.available() && location.accuracy() < 300 && location.accuracy() != 0) {
GSMlatitude = String(location.latitude(), 6);
GSMlongitude = String(location.longitude(), 6);
break;
}
}
}
connectNetwork()函數使用 API smAccess.begin和gprs.attachGPRS將板子連接到數據網絡;使用由 arduino_secrets.h 中的聲明分配的憑證數據pin 、apn 、user和pass 。
// The connectNetwork() function is used for the board data connection
void connectNetwork()
{
bool status = false;
//set global AT command timeout this allow to recover from uart communication
// freeze between samd module and ublox module.
gprs.setTimeout(100000);
gsmAccess.setTimeout(100000);
// Start GSM connection
while (status == false) {
if ((gsmAccess.begin(PINNUMBER) == GSM_READY) &
(gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD) == GPRS_READY)) {
status = true;
} else {
delay(1000);
}
}
}
The setup section allow to initialize all the object used by the sketch, is called the connectionNetwork() function to establish the data connection and the localization structure beginning.
//code section used to initialize data connection and localization object
void setup() {
connectNetwork();
location.begin();
}
最后一個代碼部分是實現 SMS 管理和位置測量的循環功能,每次有新的 SMS 可用時,板都會向發送者發送帶有板坐標的 SMS 響應,以減少板的消耗關閉模塊和進入深度睡眠 60 秒。
void loop() {
int c;
String response;
String messager = "";
measureLocation();
unsigned long timeout = millis();
while (millis() - timeout < 5000) {
if (sms.available()) { //check for SMS available
char senderNumber[20] = {"0"};
sms.remoteNumber(senderNumber, 20); //Get remote number
int c = sms.read();
if (c != 76) {
sms.flush();
break;
}
//concatenate the string message to be sended to the remote number
String txtMsg = "https://www.google.com/maps/place/" + GSMlatitude + "," + GSMlongitude;
// send the message
sms.beginSMS(senderNumber);
sms.print(txtMsg);
sms.endSMS();
break;
}
}
//Turn off the GSM module to gain the lowest power consumption from the board while are sleeping
gsmAccess.shutdown();
LowPower.sleep(60000); //enable the low power for 60 seconds and after retry the board
connectNetwork(); //turn on the module and reconect to data network
}
如何使用它
如上所述設置硬件,使用您的訪問憑據個性化草圖,將草圖加載到板上,然后等待與 GSM 網絡建立連接。這可能需要 30 秒。
建立連接后,只需向 MKRGSM SIM 號碼發送一條帶有“L”文本的短信:這將啟動本地化過程,并且董事會將回復一條短信,其中包含帶有請求位置的谷歌地圖鏈接。
- 使用MKR GSM 1400將任何事件發布到Wia
- 使用Arduino MKR1000通過WiFi進行HID攻擊
- 如何安全地將Arduino MKR GSM 1400板與GCP IoT Core結合使用
- Arduino MKR WAN 1300 LoRa現場網關客戶端
- 如何將Arduino MKR和Portenta安裝到機柜中
- Arduino MKR1000的大負載
- 使用Twilio、Go和Arduino MKR GSM 1400遠程播放MP3
- Arduino MKR GSM 1400:蜂窩物聯網數據可視化
- 基于Arduino Zero/MKR的示波器
- 使用Arduino MKR1000構建溫度傳感設備
- Arduino MKR1000通用Remonster
- 帶有Arduino MKR1010和MKR RGB Shield的Otto Biped
- 使用MKR IoT載體的Arduino燈控制器
- Arduino MKR GSM 1400和DTMF開源
- 使用Grove Sensor的Arduino MKR1010和阿里云IoT
- 基于LPC2210芯片和uClinux實現導航定位信息獲取模塊的設計 1707次閱讀
- 基于GSM和GPRS實現GPS定位信息傳輸系統的應用設計 3713次閱讀
- 從2G到5G,蜂窩網絡定位技術的發展史 8392次閱讀
- 通過YK-2 GSM短信模塊和上位機實現短信息控制系統的設計 1170次閱讀
- dfrobot紅外定位探頭簡介 1744次閱讀
- 微雪電子GSM/GPRS/GPS模塊簡介 2462次閱讀
- dfrobotSIM808 GPS/GPRS/GSM擴展板簡介 1939次閱讀
- 源創通信SinoV-GSM400P 4線 GSM 無線Asterisk卡介紹 2434次閱讀
- 源創通信SINOV-GSM800P 8GSM模塊 Asterisk卡介紹 2712次閱讀
- 簡評FPGA——Arduino MKR Vidor 4000 6807次閱讀
- gsm模塊有哪些_常見三款GSM模塊介紹 9.5w次閱讀
- gsm模塊是什么_gsm模塊工作原理_gsm模塊的應用 5w次閱讀
- 蜂窩物聯網是什么_蜂窩物聯網建設意義 1.3w次閱讀
- arduino是什么以及arduino能干什么 4.4w次閱讀
- 微蜂窩基站是什么_微蜂窩基站結構 9560次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多