Condivisione della tecnologia

[Argomento del progetto di laurea per microcomputer a chip singolo 24048] - Progettazione di un sistema di allarme di sovraccarico per camion basato su microcomputer a chip singolo

2024-07-12

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

Funzioni del sistema:

Dopo l'accensione del sistema, l'OLED visualizza "Benvenuti nel sistema di allarme di sovraccarico, attendere" e dopo cinque secondi verrà visualizzata la pagina normale.

La prima riga visualizza il valore di peso ottenuto

La seconda riga visualizza il valore di peso impostato

La terza riga mostra le coordinate GPS

La quarta riga mostra lo stato del sistema, OK o Allarme

Premere brevemente il pulsante B3 per aumentare la soglia di impostazione del peso

Premere brevemente il pulsante B4 per ridurre la soglia di impostazione del peso

Dopo aver premuto il modulo sensore di pressione, il sistema emette un segnale acustico e invia un messaggio di allarme al numero di cellulare.

Dopo aver collegato il telefono cellulare al sistema tramite il modulo Bluetooth, il sistema può segnalare regolarmente il valore di peso ottenuto e impostare il valore di peso sul telefono cellulare.

e lo stato del sistema.

Schema schematico dei principali moduli funzionali:

Interfaccia di masterizzazione dell'orologio di alimentazione:

Microcontrollore e circuito di ingresso chiave:

Circuito di acquisizione del sensore:

Circuito di uscita del display:

Link per la personalizzazione delle funzioni

Codice del modulo funzione principale del sistema

Codice di inizializzazione:

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

Leggere il valore del sensore;

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

Aggiorna i dati 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. }

I materiali forniti per questo progetto includono PCB schematico (comprese le versioni PDF, AD ed EDA), codice sorgente, diagramma a blocchi del sistema, diagramma di flusso del programma principale, distinta base (compresi i manuali per i dispositivi usati), istruzioni operative funzionali, ecc.

Informazioni su ciascun modulo funzionale: