Bổn thiết kế:
Cơ vu STM32 lão nhân phòng điệt đảo báo cảnhGSMĐoản tín GPS định vị thiết kế ( trình tự +Nguyên lý đồ+PCB)
Biên hào C0025
Hạ tái liên tiếp
C0025 hoàn chỉnh tư liêu hạ tái liên tiếp: https://pan.baidu.com/s/1QR9G8q5qC0Tj4n8T60XGkw?pwd=ysss đề thủ mã: ysss
Công năng miêu thuật:
Bổn hệ thống do cơ vu STM32Đan phiến cơĐíchHạch tâm bản,ADXL345Gia tốc độ truyện cảm khí,GSM,GPS mô khối,Chỉ kỳ đăng, án kiện điện suất +Phong minh khíBáo cảnh cậpĐiện nguyênTổ thành.
1, bản tử chính thường tình huống hạ thị thụ trực trang tại khẩu đại lí đích ( adxl345 mô khối tại hạ giác thụ trực lập trứ ), nhất đánKhuynh giác truyện cảm khíKiểm trắc đáo bình phóng tức suất đảo, phong minh khí báo cảnh, thả suất đảo đích thời gian trì tục siêu quá 15 miểu đoản tín báo cảnh ( 15 miểu thị vi liễu xác định lão nhân dĩ kinh điệt đảo thả 15 miểu chung đô một hữu tự hành ba khởi lai, nhu yếu báo cảnh đề tỉnh chu vi đích nhân bang mang ). Như quả lão nhân một hữu điệt đảo, nhi thị loan yêu đẳng đẳng, giá chúc vu ngộ báo cảnh, tắc lão nhân khả dĩ tự kỷ dụng án kiện thủ tiêu kiện thủ tiêu cảnh báo.
2, xúc phátGSM mô khốiThật hiện đoản tín đích phát tống, thiết bị tương hội hướng nhân viên phát tống tín tức, bao quát sở tại vị trí kinh vĩ độ tín tức.
3, đoản tín xử lý cập sơ thủy hóa hữu trạng thái chỉ kỳ đăng chỉ kỳ.
Chú: GSM thượng điện hữu kỉ miểu sơ thủy hóa, hệ thống cung điện điện nguyên chí thiếu yếu chi trì 5V/2A,GPS thiên tuyếnTất tu phóng đáo lậu thiên vị trí.
Nguyên lý đồ:
PCB:
Nguyên trình tự:
#include “led.h”
#include “delay.h”
#include “sys.h”
#include “timer.h”
#include “key.h”
#include “usart.h”
#include <string.h>
#include “adxl345.h”
unsigned char BufTab[10]; //wifiSổ cư tạm tồn
unsigned char Count; // xuyến khẩu sổ cư kế sổ
unsigned char UartBusy=0; // bàn mang
unsigned char ReadFlag=0;// độc thủ tiêu chí
unsigned char sendDataFlag=0;// phát tống đoản tín tiêu chí
unsigned char i;
unsigned char ReadAdxl345; // định thời độc thủ adxl345 sổ cư
unsigned char ErrorNum=0; // ký lục thác ngộ thứ sổ
unsigned char CheckNum=0; // kiểm trắc thứ sổ
unsigned long ReportLater=0; // thượng báo diên thời
unsigned long KeyLater=3; // án kiện diên thời kế sổ
unsigned long Mid_Du; // kinh vĩ độ xử lý độ
unsigned long Mid_Fen; // kinh vĩ độ xử lý phân
unsigned long Mid_Vale; // kinh vĩ độ xử lý trung gian biến lượng
char Lin0_No[16]= “N:000.000000”;// tồn trữ vĩ độ
char Lin1_Ea[16]= “E:000.000000”;// tồn trữ kinh độ
char Crtl_Z[1]={0x1a}; // phát tống đoản tín tiêu chí
void dealGps(void);//gpsSổ cư xử lý
int main(void)
{
delay_init(); //Diên thời hàm sổSơ thủy hóa
NVIC_Configuration();// thiết trí NVIC trung đoạn phân tổ 2:2 vị thưởng chiêm ưu tiên cấp, 2 vị hưởng ứng ưu tiên cấp
LED_Init(); // sơ thủy hóa dữ LED liên tiếp đíchNgạnh kiệnTiếp?
KEY_Init();
uart_init(9600);
uart2_init(9600);
TIM3_Int_Init(499,7199);//10Khz đích kế sổ tần suất, kế sổ đáo 500 vi 50ms
BUZZER = 1;delay_ms(100);BUZZER = 0; // sơ thủy hóa
GSM_LED = 0;
i=5;
while(i--) delay_ms(100);// diên thời
Init_ADXL345();
if(Single_Read_ADXL345(0X00)==0xe5)
{
delay_ms(5);
}
else
{
delay_ms(3);
}
UART_SendStr(USART1, "AT+CMGF=1rn",11); // thiết trí tự phù tập
i=10;
while(i--) delay_ms(100);// diên thời
UART_SendStr(USART1, "AT+CSCS=" GSM "rn",15);// thiết trí văn bổn?
i=10;
while(i--) delay_ms(100);// diên thời
GSM_LED =1; // quan bế LED chỉ kỳ
while(1)
{
if(ReadAdxl345== 1) // định thời độc thủ adxl345 sổ cư
{
ReadAdxl345= 0;
ReadData_x(); // tam trục kiểm trắc hàm sổ
CheckNum++;
if((temp_X<550)||(temp_X>10000)) // phương vị trị phán đoạn tra khán chính thường thứ sổ
{
ErrorNum++;
}
if(CheckNum>=5) // tiến hành 5 thứ xử lý
{
if(KeyLater>=3) // phi án kiện hạ
{
if(ErrorNum>=1) // giác độ xuất hiện thác ngộ 5 thứ xuất tức 1 thứ tình huống
{
BUZZER = 1; // đả khai phong minh khí
}
else
{
BUZZER = 0; // quan bế phong minh khí
ReportLater=0; // thượng báo diên thời kế sổ
}
}
ErrorNum=0; // thanh không lự ba kế sổ
CheckNum=0;
}
}
if(ReportLater>=15) //15s
{
GSM_LED = 0;
UART_SendStr(USART1, "AT+CMGF=1rn",11); // thiết trí tự phù tập
i=3;
while(i--) delay_ms(100);// diên thời
UART_SendStr(USART1, "AT+CSCS=" GSM "rn",15);// thiết trí văn bổn
i=3;
while(i--) delay_ms(100);// diên thời
UART_SendStr(USART1, "AT+CMGSM=" +8615555183057 "rn",26); // trắc thí hào //**All notes can be deleted and modified**//
// UART_SendStr(USART1, “AT+CMGS=” +8615542546521 "rn",26); // trắc thí hào
i=2;
while(i–) delay_ms(100);// diên thời
UART_SendStr(USART1, "help me!",8); // phát tống kinh độ
if(sysmode_GPS==1) //gps hữu hiệu
{
sysmode_GPS=0;
dealGps();
UART_SendStr(USART1,Lin0_No,12); // phát tống vĩ độ
UART_SendStr(USART1,Lin1_Ea,12); // phát tống kinh độ
}
else
{
UART_SendStr(USART1, "gps linking...",14); //gps vô tín hào
}
delay_ms(200);// diên thời
UART_SendStr(USART1,( char *)Crtl_Z, 1); // phát tống
i=40;
while(i--) delay_ms(100);// diên thời
GSM_LED =1; //led quan bế
ReportLater=0; // thượng báo tiêu chí thanh không
KeyLater=0; // án kiện thanh linh diên thời xử lý
}
if(key==0) // án kiện xử lý
{
delay_ms(3); // án kiện tiêu đẩu động
if(key ==0) // án kiện xử lý
{
ReportLater=0; // án kiện diên thời thượng báo
BUZZER = 0; // quan bế phong minh khí
KeyLater=0; // án kiện diên thời xử lý
}
}
}
}
void dealGps(void)
{
Mid_Du=(gps_infor_weijing[0]-0x30)*10000000+(gps_infor_weijing[1]-0x30)*1000000; // xử lý kinh độ khoách đại 10000000
Mid_Fen=(gps_infor_weijing[2]-0x30)*10000000+(gps_infor_weijing[3]-0x30)*1000000+
(gps_infor_weijing[4]-0x30)*100000+(gps_infor_weijing[5]-0x30)*10000+
(gps_infor_weijing[6]-0x30)*1000+(gps_infor_weijing[7]-0x30)*100;
Mid_Fen=Mid_Fen/60; // phân miểu hoán toán vi tiểu sổ vị
Mid_Vale=Mid_Du+Mid_Fen; // tối chung vi độ cách thức 000.00000000 phi độ phân miểu cách thức
Lin0_No[0]='N';
Lin0_No[1]=':';
Lin0_No[2]='0';
Lin0_No[3]=Mid_Vale/10000000+0x30; // chuyển hóa vi tự phù
Lin0_No[4]=(Mid_Vale/1000000)%10+0x30;
Lin0_No[5]='.';
Lin0_No[6]=(Mid_Vale/100000)%10+0x30;
Lin0_No[7]=(Mid_Vale/10000)%10+0x30;
Lin0_No[8]=(Mid_Vale/1000)%10+0x30;
Lin0_No[9]=(Mid_Vale/100)%10+0x30;
Lin0_No[10]=(Mid_Vale/10)%10+0x30;
Lin0_No[11]=Mid_Vale%10+0x30;
Mid_Du=(gps_infor_weijing[8]-0x30)*100000000+(gps_infor_weijing[9]-0x30)*10000000+(gps_infor_weijing[10]-0x30)*1000000; // xử lý kinh độ khoách đại 10000000
Mid_Fen=(gps_infor_weijing[11]-0x30)*10000000+(gps_infor_weijing[12]-0x30)*1000000+
(gps_infor_weijing[13]-0x30)*100000+(gps_infor_weijing[14]-0x30)*10000+
(gps_infor_weijing[15]-0x30)*1000+(gps_infor_weijing[16]-0x30)*100;
Mid_Fen=Mid_Fen/60; // phân miểu hoán toán vi tiểu sổ vị
Mid_Vale=Mid_Du+Mid_Fen; // tối chung vi độ cách thức 000.00000000 phi độ phân miểu cách thức
Lin1_Ea[0]='E';
Lin1_Ea[1]=':';
Lin1_Ea[2]=Mid_Vale/100000000+0x30; // chuyển hóa vi tự phù
Lin1_Ea[3]=(Mid_Vale/10000000)%10+0x30;
Lin1_Ea[4]=(Mid_Vale/1000000)%10+0x30;
Lin1_Ea[5]='.';
Lin1_Ea[6]=(Mid_Vale/100000)%10+0x30;
Lin1_Ea[7]=(Mid_Vale/10000)%10+0x30;
Lin1_Ea[8]=(Mid_Vale/1000)%10+0x30;
Lin1_Ea[9]=(Mid_Vale/100)%10+0x30;
Lin1_Ea[10]=(Mid_Vale/10)%10+0x30;
Lin1_Ea[11]=Mid_Vale%10+0x30;
}
Hạ tái phương thức quan chú hạ phương trung gian đích vi tín công chúng hào, nhậm ý hồi phục