기술나눔

[싱글칩 마이크로컴퓨터 졸업과제 주제 24048] - 싱글칩 마이크로컴퓨터 기반의 트럭 과적 경보 시스템 설계

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

시스템 기능:

시스템 전원을 켜면 OLED에 "과부하 경보 시스템에 오신 것을 환영합니다. 잠시 기다려 주십시오."라는 메시지가 표시되고 5초 후에 일반 페이지로 들어갑니다.

첫 번째 라인에는 획득된 중량 값이 표시됩니다.

두 번째 라인에는 설정된 중량 값이 표시됩니다.

세 번째 줄에는 GPS 좌표가 표시됩니다.

네 번째 줄에는 시스템 상태인 OK 또는 Alarm이 표시됩니다.

B3 버튼을 짧게 누르면 무게 설정 임계값이 증가합니다.

B4 버튼을 짧게 눌러 무게 설정 임계값을 줄입니다.

압력 센서 모듈을 누르면 시스템에서 경고음이 울리고 휴대폰 번호로 경보 메시지가 전송됩니다.

휴대폰이 블루투스 모듈을 통해 시스템에 연결되면 시스템은 정기적으로 획득한 체중 값을 보고하고 휴대폰에 체중 값을 설정할 수 있습니다.

및 시스템 상태.

주요 기능 모듈의 개략도:

전원 클럭 굽기 인터페이스:

마이크로컨트롤러 및 키 입력 회로:

센서 획득 회로:

디스플레이 출력 회로:

기능 사용자 정의 링크

시스템 주요 기능 모듈 코드

초기화 코드:

  1. /* USER CODE BEGIN 1 */
  2. /* USER CODE END 1 */
  3. /* MCU Configuration--------------------------------------------------------*/
  4. /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  5. HAL_Init();
  6. /* USER CODE BEGIN Init */
  7. InitVar();
  8. /* USER CODE END Init */
  9. /* Configure the system clock */
  10. SystemClock_Config();
  11. /* USER CODE BEGIN SysInit */
  12. /* USER CODE END SysInit */
  13. /* Initialize all configured peripherals */
  14. MX_GPIO_Init();
  15. MX_USART1_UART_Init();
  16. MX_USART2_UART_Init();
  17. MX_USART3_UART_Init();
  18. MX_ADC1_Init();
  19. /* USER CODE BEGIN 2 */
  20. //uart2打开接收中断
  21. HAL_UART_Receive_IT(&huart2, (uint8_t*)&uart2RecBuff, 1);
  22. //uart3打开接收中断
  23. HAL_UART_Receive_IT(&huart3, (uint8_t*)&uart3RecBuff, 1);
  24. InitOled();
  25. InitOledDisp();
  26. //初始化ESP8266
  27. ESP8266_Init();
  28. HAL_Delay(100);
  29. OledFill(0x00); //全屏熄灭
  30. RELAY1_ON();
  31. /* USER CODE END 2 */

센서 값을 읽으십시오.

  1. //读传感器值,AD值
  2. void ReadSensorVal(void)
  3. {
  4. getWeightVal = ReadADCChannel(ADC_CHANNEL_0);
  5. if(getWeightVal>setWeightVal)
  6. {
  7. BUZZER_ON();
  8. sysAlarm = true;
  9. if(sendMessage==false)
  10. {
  11. sendMessage = true;
  12. sim900a_SendMessage();
  13. }
  14. }
  15. else
  16. {
  17. BUZZER_OFF();
  18. sysAlarm = false;
  19. sendMessage = false;
  20. }
  21. }

BLE 데이터 업데이트:

  1. void UpdateBleData(void)
  2. {
  3. static uint8_t bleCnt = 0;
  4. bleCnt++;
  5. if(bleCnt>=BLE_UPDATE_INTER)
  6. {
  7. bleCnt = 0;
  8. printf("GetWeight:%04drn", getWeightVal);
  9. printf("SetWeight:%04drn", setWeightVal);
  10. if(sysAlarm==false)
  11. {
  12. printf("System is OK!rn");
  13. }
  14. else
  15. {
  16. printf("System is NG!rn");
  17. }
  18. }
  19. }

이 설계를 위해 제공되는 자료에는 회로도 PCB(PDF, AD 및 EDA 버전 포함), 소스 코드, 시스템 블록 다이어그램, 주요 프로그램 흐름도, BOM(사용된 장치에 대한 매뉴얼 포함), 기능 작동 지침 등이 포함됩니다.

각 기능 모듈에 대한 정보: