Обмен технологиями

[Тема дипломного проекта «Однокристальный микрокомпьютер» 24048] - Проектирование системы сигнализации перегрузки грузового автомобиля на базе однокристального микрокомпьютера.

2024-07-12

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

Системные функции:

После включения системы на OLED-дисплее отображается «Добро пожаловать в систему сигнализации перегрузки, пожалуйста, подождите», и через пять секунд она перейдет на обычную страницу.

В первой строке отображается полученное значение веса.

Во второй строке отображается установленное значение веса.

В третьей строке отображаются координаты GPS.

Четвертая строка показывает состояние системы: «ОК» или «Тревога».

Коротко нажмите кнопку B3, чтобы увеличить порог настройки веса.

Коротко нажмите кнопку B4, чтобы уменьшить порог настройки веса.

После нажатия на модуль датчика давления система подает звуковой сигнал и отправляет тревожное сообщение на номер мобильного телефона.

После того, как мобильный телефон подключен к системе через модуль Bluetooth, система может регулярно сообщать полученное значение веса и устанавливать значение веса на мобильный телефон.

и состояние системы.

Принципиальная схема основных функциональных модулей:

Интерфейс записи часов питания:

Микроконтроллер и схема ключевого входа:

Схема сбора данных датчика:

Выходная схема дисплея:

Ссылка на настройку функции

Код основного функционального модуля системы

Код инициализации:

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

Материалы, предоставленные для этого проекта, включают схему печатной платы (включая версии PDF, AD и EDA), исходный код, блок-схему системы, основную блок-схему программы, спецификацию материалов (включая руководства для бывших в употреблении устройств), инструкции по функциональной эксплуатации и т. д.

Информация о каждом функциональном модуле: