电子说
在本教程中,我将深入介绍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焊盘(单芯片模块无需焊接),提供模块和用户板之间的所有硬件接口。它还具有以下功能:
一个完整的调制解调器串行端口(UART接口)
音频通道,包括麦克风输入和接收器输出
一个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地图位置,如下图所示:
全部0条评论
快来发表一下你的评论吧 !