基于GPS的自行车定位系统设计

课题名称: 基于GPS的自行车定位系统设计
专题:
毕业设计
课题来源及选题依据:
电动自行车是目前每个家庭日常使用最广泛的一种短途交通工具。它具有方便快捷、节能环保等优点。但是电动自行车失窃案件仍时有发生,是一项亟待解决的日常民生和社会安全问题。因此,设计一种安全可靠、性价比高、使用方便的电动自行车防盗系统,能够有效减少用户的经济损失,同时也能起到改善治安环境的积极作用,具有一定的实用价值和社会价值。目前电动自行车大都采用机械式防盗和声光防盗报警,但这两种方式效果有限,并且还存在误报警扰民等现象。因此有必要设计一种低成本的电动自行车定位系统。

本设计(论文或其他)应达到的要求:
本课题拟基于单片机技术、GPS定位、GSM通信技术等,设计一款电动自行车防盗跟踪系统,要求实现但不限于下列功能:

  1.  能够采用GPS定位技术实时监控电动自行车的运行轨迹;
    
  2.  电动车在停放过程种能定时发送电动自行车的位置信息;
    
  3.  当电动车位置不变电瓶发生振动或断电时,能及时向用户发送短信提醒;
    
  4.  当供电电池电量低时,能够发出提醒。
    

根据要求设计系统总体架构,完成硬件电路设计和软件设计,完成软硬件调试。

该回答引用ChatGPT
这个问题需要分为硬件和软件两个部分来回答。
硬件部分:
1. GPS模块:用于获取电动自行车的位置信息,可以选择市面上常见的GPS模块,如SIM808、SIM868等。
2. 单片机:用于控制整个系统的运行,可以选择常见的单片机,如STM32、Arduino等。
3. 电源模块:用于为整个系统提供电源,可以选择锂电池或者干电池。
4. 振动传感器:用于检测电动自行车是否发生振动,可以选择常见的振动传感器,如SW-420等。
5. 电池电量检测模块:用于检测电池电量是否低,可以选择常见的电池电量检测模块,如LM3914等。
6. GSM模块:用于向用户发送短信提醒,可以选择市面上常见的GSM模块,如SIM800、SIM900等。
7. 其他辅助电路:如电容、电阻、LED等。
软件部分:
1. GPS定位程序:用于获取电动自行车的位置信息,可以使用市面上常见的GPS定位程序库,如TinyGPS++等。
2. 振动检测程序:用于检测电动自行车是否发生振动,可以使用单片机的中断功能实现。
3. 电池电量检测程序:用于检测电池电量是否低,可以使用单片机的ADC功能实现。
4. GSM通信程序:用于向用户发送短信提醒,可以使用市面上常见的GSM通信程序库,如SIM800、SIM900等。
5. 系统控制程序:用于控制整个系统的运行,包括GPS定位、振动检测、电池电量检测、GSM通信等功能。
下面是一个简单的代码示例,仅供参考:
c
#include
#include
#define RX_PIN 10
#define TX_PIN 11
#define VIBRATION_PIN 2
#define BATTERY_PIN A0
SoftwareSerial gsmSerial(RX_PIN, TX_PIN);
TinyGPSPlus gps;
bool vibrationDetected = false;
bool lowBatteryDetected = false;
void setup() {
Serial.begin(9600);
gsmSerial.begin(9600);
pinMode(VIBRATION_PIN, INPUT);
}
void loop() {
while (Serial.available() > 0) {
if (gps.encode(Serial.read())) {
if (gps.location.isValid()) {
// 发送位置信息
sendLocation(gps.location.lat(), gps.location.lng());
}
}
}
// 检测振动
if (digitalRead(VIBRATION_PIN) == HIGH) {
vibrationDetected = true;
}
// 检测电池电量
int batteryLevel = analogRead(BATTERY_PIN);
if (batteryLevel < 500) {
lowBatteryDetected = true;
}
// 发送短信提醒
if (vibrationDetected || lowBatteryDetected) {
sendSMS();
}
delay(1000);
}
void sendLocation(float lat, float lng) {
// TODO: 发送位置信息到服务器
}
void sendSMS() {
gsmSerial.println("AT+CMGF=1");
delay(1000);
gsmSerial.println("AT+CMGS=\\"+1234567890\\"");
delay(1000);
gsmSerial.println("Warning: Your electric bike has been tampered with or the battery is low.");
delay(1000);
gsmSerial.write(0x1A);
delay(1000);
}

这段代码实现了GPS定位、振动检测、电池电量检测和GSM通信等功能。当电动自行车发生振动或电池电量低时,会向用户发送短信提醒。需要注意的是,这只是一个简单的示例代码,实际应用中还需要根据具体情况进行修改和完善。

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
系统总体架构:

本系统采用单片机(如Arduino)、GPS模块、GSM模块、电池电量检测模块等硬件进行设计。整个系统的框图如下图所示:

![系统总体架构](https://i/