資料介紹
描述
注意:本教程可能已過時(shí),請(qǐng)到此處獲取更新版本。
?
該項(xiàng)目的目的是展示如何使用 Arduino MKR GSM 1400 的蜂窩定位。為此,我們實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的應(yīng)用程序,允許您在收到帶有安全檢查的 SMS 時(shí)重試 MKR GSM 的緯度和經(jīng)度收到信。從收到的 SMS 中恢復(fù)發(fā)件人號(hào)碼,并使用適當(dāng)?shù)?Google 地圖鏈接創(chuàng)建回復(fù),該鏈接由 u-blox 模塊提供的位置服務(wù)給出的坐標(biāo)完成。
你需要什么
該項(xiàng)目基于 Arduino MKR GSM 1400、天線、LiPo 電池組、智能手機(jī)和一張數(shù)據(jù) SIM 卡。
- Arduino MKR GSM 1400 執(zhí)行草圖并支持允許我們項(xiàng)目所需的本地化功能的 GSM 連接;
- 天線和電池組分別用于連接到信號(hào)良好的蜂窩數(shù)據(jù)網(wǎng)絡(luò),并在其他電源不可用時(shí)為設(shè)備供電;
- 需要 SIM 卡才能訪問數(shù)據(jù)網(wǎng)絡(luò)并允許網(wǎng)絡(luò)操作;
- 需要 PIN、APN 和訪問憑證才能連接到數(shù)據(jù)網(wǎng)絡(luò)。
硬件設(shè)置
這個(gè)項(xiàng)目不需要任何特別的東西。將天線連接到板上,插入 SIM 卡并將 LiPo 電池連接到 JST 連接器。
LiPo 電池是可選的,但它可以應(yīng)對(duì) GSM 模塊可能需要的電流峰值,尤其是在覆蓋范圍較差的情況下。

這個(gè)怎么運(yùn)作
該項(xiàng)目使用 MKRGSM 庫(kù)來管理 SMS 消息和基于單元的地理定位。
收到 SMS 時(shí),檢查內(nèi)容以查明它是否包含字母“L”。只有在這種情況下,草圖才會(huì)進(jìn)行本地化和 SMS 傳輸。使用這種解決方案,任何號(hào)碼都可以請(qǐng)求系統(tǒng)的位置,但只有知道密碼(“密信”)的人才能得到答復(fù)。這是執(zhí)行檢查的行,if (c != 76)
76 是“L”的 ASCII 碼。您可以更改值以更改識(shí)別的字母。
GSM 模塊沒有 GPS 接收器,但制造商有一個(gè)關(guān)于 GSM 網(wǎng)絡(luò)中每個(gè)小區(qū)位置的數(shù)據(jù)庫(kù),因此它為所提供的每個(gè)小區(qū) ID 提供坐標(biāo)。該系統(tǒng)在城市地區(qū)非常準(zhǔn)確,每個(gè)小區(qū)覆蓋一個(gè)小區(qū)域。在農(nóng)村地區(qū),每個(gè)小區(qū)的覆蓋范圍要大得多,所提供的位置也比較粗略。
要為 Google 地圖創(chuàng)建鏈接,我們使用標(biāo)準(zhǔn) URL,我們只需在末尾連接正確的 Long 和 Lat 值。此 URL 類似于“https://www.google.com/maps/place/, ”。地圖上顯示的位置將是細(xì)胞基于物理的位置;我們的棋盤在牢房覆蓋的范圍內(nèi)。
草圖
以下是草圖的詳細(xì)描述;第一個(gè)代碼段用于包含應(yīng)用程序所需的庫(kù)。
MKRGSM包括所有 GSM 連接、本地化和 SMS 管理功能,這可通過對(duì)象GSMClient、GPRS、GSM和GSMLocation 獲得,SMS 管理 API 可通過對(duì)象GSM_SMS 獲得,標(biāo)頭ArduinoLowPower導(dǎo)入允許低功耗管理的 API董事會(huì)的模塊。
如果您從 Web 編輯器下載代碼,您會(huì)發(fā)現(xiàn)一個(gè) arduino_secrets.h文件,其中包含PIN、APN、用戶和密碼等敏感數(shù)據(jù)。在 Web 編輯器上,您必須在 Secrets 選項(xiàng)卡中填寫敏感數(shù)據(jù)。
// 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 ()查詢模塊以通過蜂窩網(wǎng)絡(luò)重試坐標(biāo),如果新坐標(biāo)可用,則將其分配給全局變量,否則再次詢問 45 秒,如果沒有尊重精度約束的可用測(cè)量,則返回最后一個(gè)好的測(cè)量
//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()函數(shù)使用 API smAccess.begin和gprs.attachGPRS將板子連接到數(shù)據(jù)網(wǎng)絡(luò);使用由 arduino_secrets.h 中的聲明分配的憑證數(shù)據(jù)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();
}
最后一個(gè)代碼部分是實(shí)現(xiàn) SMS 管理和位置測(cè)量的循環(huán)功能,每次有新的 SMS 可用時(shí),板都會(huì)向發(fā)送者發(fā)送帶有板坐標(biāo)的 SMS 響應(yīng),以減少板的消耗關(guān)閉模塊和進(jìn)入深度睡眠 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
}
如何使用它
如上所述設(shè)置硬件,使用您的訪問憑據(jù)個(gè)性化草圖,將草圖加載到板上,然后等待與 GSM 網(wǎng)絡(luò)建立連接。這可能需要 30 秒。
建立連接后,只需向 MKRGSM SIM 號(hào)碼發(fā)送一條帶有“L”文本的短信:這將啟動(dòng)本地化過程,并且董事會(huì)將回復(fù)一條短信,其中包含帶有請(qǐng)求位置的谷歌地圖鏈接。
- 使用MKR GSM 1400將任何事件發(fā)布到Wia
- 使用Arduino MKR1000通過WiFi進(jìn)行HID攻擊
- 如何安全地將Arduino MKR GSM 1400板與GCP IoT Core結(jié)合使用
- Arduino MKR WAN 1300 LoRa現(xiàn)場(chǎng)網(wǎng)關(guān)客戶端
- 如何將Arduino MKR和Portenta安裝到機(jī)柜中
- Arduino MKR1000的大負(fù)載
- 使用Twilio、Go和Arduino MKR GSM 1400遠(yuǎn)程播放MP3
- Arduino MKR GSM 1400:蜂窩物聯(lián)網(wǎng)數(shù)據(jù)可視化
- 基于Arduino Zero/MKR的示波器
- 使用Arduino MKR1000構(gòu)建溫度傳感設(shè)備
- 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實(shí)現(xiàn)導(dǎo)航定位信息獲取模塊的設(shè)計(jì) 1862次閱讀
- 基于GSM和GPRS實(shí)現(xiàn)GPS定位信息傳輸系統(tǒng)的應(yīng)用設(shè)計(jì) 3954次閱讀
- 從2G到5G,蜂窩網(wǎng)絡(luò)定位技術(shù)的發(fā)展史 8801次閱讀
- 通過YK-2 GSM短信模塊和上位機(jī)實(shí)現(xiàn)短信息控制系統(tǒng)的設(shè)計(jì) 1286次閱讀
- dfrobot紅外定位探頭簡(jiǎn)介 1968次閱讀
- 微雪電子GSM/GPRS/GPS模塊簡(jiǎn)介 2679次閱讀
- dfrobotSIM808 GPS/GPRS/GSM擴(kuò)展板簡(jiǎn)介 2209次閱讀
- 源創(chuàng)通信SinoV-GSM400P 4線 GSM 無線Asterisk卡介紹 2589次閱讀
- 源創(chuàng)通信SINOV-GSM800P 8GSM模塊 Asterisk卡介紹 2837次閱讀
- 簡(jiǎn)評(píng)FPGA——Arduino MKR Vidor 4000 6977次閱讀
- gsm模塊有哪些_常見三款GSM模塊介紹 9.5w次閱讀
- gsm模塊是什么_gsm模塊工作原理_gsm模塊的應(yīng)用 5.1w次閱讀
- 蜂窩物聯(lián)網(wǎng)是什么_蜂窩物聯(lián)網(wǎng)建設(shè)意義 1.4w次閱讀
- arduino是什么以及arduino能干什么 4.5w次閱讀
- 微蜂窩基站是什么_微蜂窩基站結(jié)構(gòu) 9746次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論