课题名称: 基于GPS的自行车定位系统设计
专题:
毕业设计
课题来源及选题依据:
电动自行车是目前每个家庭日常使用最广泛的一种短途交通工具。它具有方便快捷、节能环保等优点。但是电动自行车失窃案件仍时有发生,是一项亟待解决的日常民生和社会安全问题。因此,设计一种安全可靠、性价比高、使用方便的电动自行车防盗系统,能够有效减少用户的经济损失,同时也能起到改善治安环境的积极作用,具有一定的实用价值和社会价值。目前电动自行车大都采用机械式防盗和声光防盗报警,但这两种方式效果有限,并且还存在误报警扰民等现象。因此有必要设计一种低成本的电动自行车定位系统。
本设计(论文或其他)应达到的要求:
本课题拟基于单片机技术、GPS定位、GSM通信技术等,设计一款电动自行车防盗跟踪系统,要求实现但不限于下列功能:
能够采用GPS定位技术实时监控电动自行车的运行轨迹;
电动车在停放过程种能定时发送电动自行车的位置信息;
当电动车位置不变电瓶发生振动或断电时,能及时向用户发送短信提醒;
当供电电池电量低时,能够发出提醒。
根据要求设计系统总体架构,完成硬件电路设计和软件设计,完成软硬件调试。
该回答引用ChatGPTc
#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);
}
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
系统总体架构:
本系统采用单片机(如Arduino)、GPS模块、GSM模块、电池电量检测模块等硬件进行设计。整个系统的框图如下图所示:
![系统总体架构](https://i/