Partage de technologie

[Thème de projet de fin d'études sur micro-ordinateur monopuce 24048] - Conception d'un système d'alarme de surcharge de camion basé sur un micro-ordinateur monopuce

2024-07-12

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

Fonctions du système :

Une fois le système allumé, l'OLED affiche « Bienvenue dans le système d'alarme de surcharge, veuillez patienter » et il entrera dans la page normale après cinq secondes.

La première ligne affiche la valeur de poids obtenue

La deuxième ligne affiche la valeur de poids définie

La troisième ligne affiche les coordonnées GPS

La quatrième ligne affiche l'état du système, OK ou Alarme

Appuyez brièvement sur le bouton B3 pour augmenter le seuil de réglage du poids

Appuyez brièvement sur le bouton B4 pour réduire le seuil de réglage du poids

Après avoir appuyé sur le module capteur de pression, le système vibre et envoie un message d'alarme au numéro de téléphone portable.

Une fois le téléphone mobile connecté au système via le module Bluetooth, le système peut régulièrement signaler la valeur de poids obtenue et définir la valeur de poids sur le téléphone mobile.

et l'état du système.

Diagramme schématique des principaux modules fonctionnels :

Interface de gravure d'horloge de puissance :

Microcontrôleur et circuit d'entrée de clé :

Circuit d'acquisition du capteur :

Circuit de sortie d'affichage :

Lien de personnalisation des fonctions

Code du module de fonction principal du système

Code d'initialisation :

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

Lire la valeur du capteur ;

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

Mettre à jour les données 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. }

Les matériaux fournis pour cette conception comprennent un PCB schématique (y compris les versions PDF, AD et EDA), le code source, le schéma fonctionnel du système, l'organigramme du programme principal, la nomenclature (y compris les manuels des appareils utilisés), les instructions de fonctionnement, etc.

Informations sur chaque module fonctionnel :