在本教程中,我將深入介紹SIM808硬件接口。您可能擁有一個從中國制造的SIM808模塊,但發現它們沒有附帶任何文檔或測試代碼。本教程可以幫助初學者快速了解SIM808接口規范以及機械和電氣細節。另外,我將在GitHub上添加文檔和庫,以便您能夠快速設計各種應用程序。
這個項目是一個簡單的跟蹤系統,使用相同的GSM和GPS模塊,內置于SIM808模塊中。在本教程結束時,當您從任何手機發送GSM模塊時,您將能夠根據模塊的GPS位置獲得模塊的GPS位置響應。
什么是SIM808模塊?
基本上, SIM808模塊專為全球市場設計。它與高性能GSM/GPRS芯片集成,它還有一個GPS引擎和一個BT引擎。
SIM808是四頻GSM/GPRS模塊,工作頻率為GSM 850MHz,EGSM 900MHz,DCS 1800MHz和PCS 1900MHz。它具有GPRS多插槽12級/10級,支持GPRS編碼方案CS-1,CS-2,CS-3和CS-4。 GPS解決方案提供同類最佳的采集和跟蹤靈敏度,首次定位時間(TTFF)和準確度。
SIM808模塊的好處
SIM808有68引腳SMT焊盤(單芯片模塊無需焊接),提供模塊和用戶板之間的所有硬件接口。它還具有以下功能:
一個SIM卡界面
默認情況下能夠支持4 * 4keypads
充電界面
一個USB,支持調試和固件升級
能夠支持藍牙功能
可編程通用輸入和輸出(GPIO)
能夠支持兩個PWM和兩個ADC
集成TCP/IP協議和擴展TCP/IP AT命令,這對數據傳輸應用非常有用
支持GPS功能的能力
一種省電技術,在睡眠模式下保持電流消耗低至1.2mA(GPS引擎斷電)
PCM/SPI接口
硬件和軟件要求
硬件 的結果,
《升i》 SIM 808模塊
Arduino UNO或Arduino MEGA
Arduino電纜
9V電源
GPS天線和GSM天線
必要的硬件
軟件
Arduino IDE
SIM808庫
建立連接
如下圖所示連接所有內容。
Rx至引腳10
Tx至引腳11
將SIM808與9V適配器連接
提供通過USB線或9V充電器為Arduino供電
Arduino UNO的連接
Arduino Mega的連接
下圖顯示正確連接時連接的外觀:
上傳源代碼
上傳以下代碼。如果您是Arduino的新手,請務必查看Maker Pro的Arduino教育頁面以獲取更多教程。
#include
#include
#define MESSAGE_LENGTH 160
char message[MESSAGE_LENGTH];
int messageIndex = 0;
char MESSAGE[300];
char lat[12];
char lon[12];
char wspeed[12];
char phone[16];
char datetime[24];
#define PIN_TX 10
#define PIN_RX 11
SoftwareSerial mySerial(PIN_TX,PIN_RX);
DFRobot_SIM808 sim808(&mySerial);//Connect RX,TX,PWR,
void setup()
{
mySerial.begin(9600);
Serial.begin(9600);
//******** Initialize sim808 module *************
while(!sim808.init())
{
Serial.print(“Sim808 init error ”);
delay(1000);
}
delay(3000);
if( sim808.attachGPS())
Serial.println(“Open the GPS power success”);
else
Serial.println(“Open the GPS power failure”);
Serial.println(“Init Success, please send SMS message to me!”);
}
void loop()
{
//*********** Detecting unread SMS ************************
messageIndex = sim808.isSMSunread();
//*********** At least, there is one UNREAD SMS ***********
if (messageIndex 》 0)
{
Serial.print(“messageIndex: ”);
Serial.println(messageIndex);
sim808.readSMS(messageIndex, message, MESSAGE_LENGTH, phone, datetime);
//***********In order not to full SIM Memory, is better to delete it**********
sim808.deleteSMS(messageIndex);
Serial.print(“From number: ”);
Serial.println(phone);
Serial.print(“Datetime: ”);
Serial.println(datetime);
Serial.print(“Recieved Message: ”);
Serial.println(message);
while(!sim808.getGPS())
{
}
Serial.print(sim808.GPSdata.year);
Serial.print(“/”);
Serial.print(sim808.GPSdata.month);
Serial.print(“/”);
Serial.print(sim808.GPSdata.day);
Serial.print(“ ”);
Serial.print(sim808.GPSdata.hour);
Serial.print(“:”);
Serial.print(sim808.GPSdata.minute);
Serial.print(“:”);
Serial.print(sim808.GPSdata.second);
Serial.print(“:”);
Serial.println(sim808.GPSdata.centisecond);
Serial.print(“latitude :”);
Serial.println(sim808.GPSdata.lat);
Serial.print(“longitude :”);
Serial.println(sim808.GPSdata.lon);
Serial.print(“speed_kph :”);
Serial.println(sim808.GPSdata.speed_kph);
Serial.print(“heading :”);
Serial.println(sim808.GPSdata.heading);
Serial.println();
float la = sim808.GPSdata.lat;
float lo = sim808.GPSdata.lon;
float ws = sim808.GPSdata.speed_kph;
dtostrf(la, 6, 2, lat); //put float value of la into char array of lat. 6 = number of digits before decimal sign. 2 = number of digits after the decimal sign.
dtostrf(lo, 6, 2, lon); //put float value of lo into char array of lon
dtostrf(ws, 6, 2, wspeed); //put float value of ws into char array of wspeed
sprintf(MESSAGE, “Latitude : %s Longitude : %s Wind Speed : %s kph My Module Is Working. Mewan Indula Pathirage. Try With This Link. http://www.latlong.net/Show-Latitude-Longitude.html http://maps.google.com/maps?q=%s,%s ”, lat, lon, wspeed, lat, lon);
Serial.println(“Sim808 init success”);
Serial.println(“Start to send message 。..”);
Serial.println(MESSAGE);
Serial.println(phone);
sim808.sendSMS(phone,MESSAGE);
//************* Turn off the GPS power ************
sim808.detachGPS();
}
}
全部放在一起
通過Arduino IDE上傳代碼后,只需以9600波特率打開串口監視器。在這里您將看到以下內容:
因此,每當您將“Hi”或“Hello”字符串發送到已插入的SIM號碼時在GSM模塊中,Arduino會使用模塊位置的經度和緯度信息給你發回信息。
此外,我已經添加了一個鏈接到Google地圖,所以當它發回給你時,它也會來使用Google地圖位置,如下圖所示:
-
gps
+關注
關注
22文章
2910瀏覽量
167245 -
Arduino
+關注
關注
188文章
6479瀏覽量
188612
發布評論請先 登錄
相關推薦
創想智控焊縫跟蹤系統運用激光尋位在工程汽車高機底座焊接的應用

用CD4046組成的頻率信號跟蹤電路,仿真時發現根本實現不了頻率跟蹤,為什么?
OPA735加OPA333,怎樣用TINA TI去仿真?
GPS、北斗衛星同步時鐘天線安裝注意事項?

SGS利用MVG天線測試系統實現快速汽車天線測試

選擇正確的GPS北斗定位天線——北斗GPS天線使用技巧與性能對比

評論