Compartir tecnología

[Tema 24048 del proyecto de graduación de microcomputadora de un solo chip] - Diseño de un sistema de alarma de sobrecarga de camión basado en una microcomputadora de un solo chip

2024-07-12

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

Funciones del sistema:

Después de encender el sistema, el OLED muestra "Bienvenido al sistema de alarma de sobrecarga, espere" y entrará en la página normal después de cinco segundos.

La primera línea muestra el valor de peso obtenido.

La segunda línea muestra el valor de peso establecido.

La tercera línea muestra las coordenadas GPS.

La cuarta línea muestra el estado del sistema, OK o Alarma.

Presione brevemente el botón B3 para aumentar el umbral de ajuste de peso

Presione brevemente el botón B4 para reducir el umbral de ajuste de peso.

Después de presionar el módulo del sensor de presión, el sistema emite un zumbido y envía un mensaje de alarma al número de teléfono móvil.

Después de conectar el teléfono móvil al sistema a través del módulo Bluetooth, el sistema puede informar periódicamente el valor de peso obtenido y establecer el valor de peso al teléfono móvil.

y estado del sistema.

Diagrama esquemático de los principales módulos funcionales:

Interfaz de grabación de reloj de energía:

Microcontrolador y circuito de entrada clave:

Circuito de adquisición de sensores:

Circuito de salida de pantalla:

Enlace de personalización de funciones

Código del módulo de función principal del sistema

Código de inicialización:

  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 */

Leer el valor del sensor;

  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. }

Actualizar datos 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. }

Los materiales proporcionados para este diseño incluyen PCB esquemático (incluidas las versiones PDF, AD y EDA), código fuente, diagrama de bloques del sistema, diagrama de flujo del programa principal, lista de materiales (incluidos manuales para dispositivos usados), instrucciones de operación funcional, etc.

Información sobre cada módulo funcional: