怎样用Arduino和GPS天线创建汽车跟踪系统

在本教程中,我将深入介绍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地图位置,如下图所示:

iphone8什么时候上市?iphone8最新消息:跌破天际!iPhone7疯狂降价2000清库存,只为迎接iphone8到来
科大讯飞翻译机新产品的上线,人工智能语音翻译技术迈上了新的台阶
DVS的工作原理
什么是引脚的分时复用?
基于EDA软件Proteus的LED屏下位机系统设计
怎样用Arduino和GPS天线创建汽车跟踪系统
如何确定电脑是否中毒/木马
百度携手妙健康推进慢病管理创新,让老百姓享有优质医疗服务
土壤水势仪与其它方法对比优势
N32L40XCL-STB开发板模块之新建CAN测试工程
便携式水质分析仪可以检测什么
解析AI人工智能的发展历程
长盈精密转型初显成效 新能源汽车将是下一个风口
室外高精度人员定位系统是什么?
基于多点控制器和A/D转换器实现数字图像远程监控系统的设计
维信诺拟转让Micro LED相关的专利技术给成都辰显
Merge用VR和AR技术创建和发展一个适合孩子的XR生态系统
无线通信技术给物联网IoT带来哪些价值?
华为P40高颜值亮相,麒麟990+120HZ+50W闪充
减少变频器对PLC与外围设备通讯干扰的方法