Compartilhamento de tecnologia

[Tópico do projeto de graduação de microcomputador de chip único 24048] - Projeto de sistema de alarme de sobrecarga de caminhão baseado em microcomputador de chip único

2024-07-12

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

Funções do sistema:

Depois que o sistema for ligado, o OLED exibirá "Bem-vindo ao sistema de alarme de sobrecarga, aguarde" e entrará na página normal após cinco segundos.

A primeira linha exibe o valor do peso obtido

A segunda linha exibe o valor do peso definido

A terceira linha exibe as coordenadas GPS

A quarta linha mostra o status do sistema, OK ou Alarme

Pressione rapidamente o botão B3 para aumentar o limite de configuração de peso

Pressione rapidamente o botão B4 para reduzir o limite de configuração de peso

Após pressionar o módulo sensor de pressão, o sistema vibra e envia uma mensagem de alarme para o número do celular.

Após o celular ser conectado ao sistema por meio do módulo Bluetooth, o sistema pode relatar regularmente o valor do peso obtido e definir o valor do peso para o celular.

e status do sistema.

Diagrama esquemático dos principais módulos funcionais:

Interface de gravação de relógio de energia:

Microcontrolador e circuito de entrada de chave:

Circuito de aquisição do sensor:

Circuito de saída de exibição:

Link de personalização de função

Código do módulo de função principal do sistema

Código de inicialização:

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

Leia o valor do 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. }

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

Os materiais fornecidos para este projeto incluem PCB esquemático (incluindo versões PDF, AD e EDA), código fonte, diagrama de blocos do sistema, fluxograma do programa principal, lista de materiais (incluindo manuais para dispositivos usados), instruções de operação funcional, etc.

Informações sobre cada módulo funcional: