2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Le système de contrôle d'accès intelligent combine divers capteurs, actionneurs et modules de communication via le système intégré STM32 pour réaliser une surveillance en temps réel, un contrôle automatique et une transmission de données du contrôle d'accès. Cet article présentera en détail comment implémenter un système de contrôle d'accès intelligent dans le système STM32, y compris la préparation de l'environnement, l'architecture du système, la mise en œuvre du code, les scénarios d'application, les solutions aux problèmes et les méthodes d'optimisation.
Le système de contrôle d'accès intelligent se compose des éléments suivants :
Les données de carte d'accès, d'empreintes digitales et de mouvement sont collectées via divers capteurs et affichées sur l'écran OLED en temps réel. Le système réalise la surveillance des accès et le contrôle automatique grâce au traitement des données et à la communication réseau. Les utilisateurs peuvent effectuer des réglages via des boutons ou des boutons et afficher l'état actuel via l'écran.
Utilisez STM32CubeMX pour configurer l'interface UART :
Code:
- #include "stm32f4xx_hal.h"
-
- UART_HandleTypeDef huart1;
-
- void UART1_Init(void) {
- huart1.Instance = USART1;
- huart1.Init.BaudRate = 9600;
- huart1.Init.WordLength = UART_WORDLENGTH_8B;
- huart1.Init.StopBits = UART_STOPBITS_1;
- huart1.Init.Parity = UART_PARITY_NONE;
- huart1.Init.Mode = UART_MODE_TX_RX;
- huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
- huart1.Init.OverSampling = UART_OVERSAMPLING_16;
- HAL_UART_Init(&huart1);
- }
-
- uint8_t Read_RFID_Card(uint8_t* buffer, uint16_t size) {
- return HAL_UART_Receive(&huart1, buffer, size, HAL_MAX_DELAY);
- }
-
- int main(void) {
- HAL_Init();
- SystemClock_Config();
- UART1_Init();
-
- uint8_t rfid_buffer[16];
-
- while (1) {
- if (Read_RFID_Card(rfid_buffer, 16) == HAL_OK) {
- // 处理RFID数据
- }
- HAL_Delay(1000);
- }
- }
Utilisez STM32CubeMX pour configurer l'interface UART :
Code:
- #include "stm32f4xx_hal.h"
-
- UART_HandleTypeDef huart2;
-
- void UART2_Init(void) {
- huart2.Instance = USART2;
- huart2.Init.BaudRate = 57600;
- huart2.Init.WordLength = UART_WORDLENGTH_8B;
- huart2.Init.StopBits = UART_STOPBITS_1;
- huart2.Init.Parity = UART_PARITY_NONE;
- huart2.Init.Mode = UART_MODE_TX_RX;
- huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
- huart2.Init.OverSampling = UART_OVERSAMPLING_16;
- HAL_UART_Init(&huart2);
- }
-
- uint8_t Read_Fingerprint(uint8_t* buffer, uint16_t size) {
- return HAL_UART_Receive(&huart2, buffer, size, HAL_MAX_DELAY);
- }
-
- int main(void) {
- HAL_Init();
- SystemClock_Config();
- UART2_Init();
-
- uint8_t fingerprint_buffer[32];
-
- while (1) {
- if (Read_Fingerprint(fingerprint_buffer, 32) == HAL_OK) {
- // 处理指纹数据
- }
- HAL_Delay(1000);
- }
- }
Le module de traitement des données convertit les données du capteur en données pouvant être utilisées dans le système de contrôle et effectue les calculs et analyses nécessaires.
Implémentez un algorithme de contrôle d'accès simple pour contrôler le commutateur de la serrure électromagnétique en fonction des données de la carte d'accès et des empreintes digitales :
- #define AUTHORIZED_CARD_ID "1234567890"
- #define AUTHORIZED_FINGERPRINT_ID "A1B2C3D4E5"
-
- void Control_Door(uint8_t* rfid_data, uint8_t* fingerprint_data) {
- if (strcmp((char*)rfid_data, AUTHORIZED_CARD_ID) == 0 ||
- strcmp((char*)fingerprint_data, AUTHORIZED_FINGERPRINT_ID) == 0) {
- // 打开门锁
- HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
- } else {
- // 关闭门锁
- HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
- }
- }
-
- int main(void) {
- HAL_Init();
- SystemClock_Config();
- UART1_Init();
- UART2_Init();
- GPIO_Init();
-
- uint8_t rfid_buffer[16];
- uint8_t fingerprint_buffer[32];
-
- while (1) {
- if (Read_RFID_Card(rfid_buffer, 16) == HAL_OK &&
- Read_Fingerprint(fingerprint_buffer, 32) == HAL_OK) {
- Control_Door(rfid_buffer, fingerprint_buffer);
- }
- HAL_Delay(1000);
- }
- }
Utilisez STM32CubeMX pour configurer l'interface UART :
Code:
- #include "stm32f4xx_hal.h"
- #include "usart.h"
- #include "wifi_module.h"
-
- UART_HandleTypeDef huart3;
-
- void UART3_Init(void) {
- huart3.Instance = USART3;
- huart3.Init.BaudRate = 115200;
- huart3.Init.WordLength = UART_WORDLENGTH_8B;
- huart3.Init.StopBits = UART_STOPBITS_1;
- huart3.Init.Parity = UART_PARITY_NONE;
- huart3.Init.Mode = UART_MODE_TX_RX;
- huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
- huart3.Init.OverSampling = UART_OVERSAMPLING_16;
- HAL_UART_Init(&huart3);
- }
-
- void Send_Data_To_Server(uint8_t* rfid_data, uint8_t* fingerprint_data) {
- char buffer[128];
- sprintf(buffer, "RFID: %s, Fingerprint: %s", rfid_data, fingerprint_data);
- HAL_UART_Transmit(&huart3, (uint8_t*)buffer, strlen(buffer), HAL_MAX_DELAY);
- }
-
- int main(void) {
- HAL_Init();
- SystemClock_Config();
- UART3_Init();
- UART1_Init();
- UART2_Init();
-
- uint8_t rfid_buffer[16];
- uint8_t fingerprint_buffer[32];
-
- while (1) {
- if (Read_RFID_Card(rfid_buffer, 16) == HAL_OK &&
- Read_Fingerprint(fingerprint_buffer, 32) == HAL_OK) {
- Send_Data_To_Server(rfid_buffer, fingerprint_buffer);
- }
- HAL_Delay(1000);
- }
- }
Utilisez STM32CubeMX pour configurer l'interface I2C :
Code:
Tout d’abord, initialisez l’écran OLED :
- #include "stm32f4xx_hal.h"
- #include "i2c.h"
- #include "oled.h"
-
- void Display_Init(void) {
- OLED_Init();
- }
Implémentez ensuite la fonction d'affichage des données pour afficher l'état du contrôle d'accès et les données sur l'écran OLED :
- void Display_Data(uint8_t* rfid_data, uint8_t* fingerprint_data) {
- char buffer[32];
- sprintf(buffer, "RFID: %s", rfid_data);
- OLED_ShowString(0, 0, buffer);
- sprintf(buffer, "Fingerprint: %s", fingerprint_data);
- OLED_ShowString(0, 1, buffer);
- }
-
- int main(void) {
- HAL_Init();
- SystemClock_Config();
- I2C1_Init();
- Display_Init();
- UART1_Init();
- UART2_Init();
-
- uint8_t rfid_buffer[16];
- uint8_t fingerprint_buffer[32];
-
- while (1) {
- if (Read_RFID_Card(rfid_buffer, 16) == HAL_OK &&
- Read_Fingerprint(fingerprint_buffer, 32) == HAL_OK) {
- // 显示门禁数据
- Display_Data(rfid_buffer, fingerprint_buffer);
- }
- HAL_Delay(1000);
- }
- }
Le système de contrôle d'accès intelligent peut être utilisé pour la gestion du contrôle d'accès des immeubles de bureaux. Grâce à la surveillance en temps réel des données de contrôle d'accès, un contrôle automatique peut être réalisé pour améliorer la sécurité et l'efficacité de la gestion des immeubles de bureaux.
Dans les communautés, les systèmes de contrôle d'accès intelligents peuvent réaliser une gestion automatisée des résidents et des visiteurs, améliorant ainsi la sécurité et la commodité de la communauté.
Les systèmes de contrôle d'accès intelligents peuvent être utilisés pour le contrôle d'accès à la maison afin d'obtenir une gestion plus intelligente des accès à la maison grâce à un contrôle automatisé et à l'analyse des données.
Les systèmes de contrôle d'accès intelligents peuvent être utilisés dans la recherche sur les bâtiments intelligents pour fournir une base scientifique à la gestion et à l'optimisation du contrôle d'accès aux bâtiments grâce à la collecte et à l'analyse de données.
⬇Aidez tout le monde à organiser les informations sur les microcontrôleurs
Une collection de projets dont stm32 [code source + documents de développement]
Cliquez sur les mots bleus ci-dessous pour l'obtenir, merci pour votre soutien ! ⬇
Cliquez pour plus de détails intégrés
Pour discuter du problème, vous pouvez envoyer un message privé pour recevoir les informations stm32 !
Assurez-vous que la connexion entre le capteur et le STM32 est stable et calibrez régulièrement le capteur pour obtenir des données précises.
Solution : Vérifiez si la connexion entre le capteur et le STM32 est ferme, et ressoudez ou remplacez le fil de connexion si nécessaire. Dans le même temps, les capteurs sont calibrés régulièrement pour garantir des données précises.
Optimisez l'algorithme de contrôle et la configuration matérielle pour réduire l'instabilité du contrôle d'accès et améliorer la vitesse de réponse du système.
Solution : optimisez l'algorithme de contrôle, ajustez les paramètres et réduisez les oscillations et les dépassements. Utilisez des capteurs de haute précision pour améliorer la précision et la stabilité de la collecte de données. Choisissez un actionneur plus efficace pour améliorer la vitesse de réponse du contrôle d’accès.
Assurez-vous que la connexion entre le module Wi-Fi et STM32 est stable, optimisez le protocole de communication et améliorez la fiabilité de la transmission des données.
Solution : Vérifiez si la connexion entre le module Wi-Fi et le STM32 est solide, et ressoudez ou remplacez le câble de connexion si nécessaire. Optimisez les protocoles de communication pour réduire les délais de transmission des données et les taux de perte de paquets. Choisissez un module de communication plus stable pour améliorer la fiabilité de la transmission des données.
Vérifiez la ligne de communication I2C pour vous assurer que la communication entre l'écran et le MCU est normale afin d'éviter un affichage anormal dû à des problèmes de ligne.
Solution : Vérifiez si les broches I2C sont correctement connectées et assurez-vous que l'alimentation est stable. Utilisez un oscilloscope pour détecter le signal du bus I2C et confirmer si la communication est normale. Si nécessaire, remplacez l'écran ou le MCU.
Intégrez davantage de types de données de capteurs et utilisez la technologie d’analyse des données pour prédire et optimiser les conditions environnementales.
Suggestion : ajoutez davantage de capteurs de surveillance, tels que des capteurs de porte, des capteurs de température et d'humidité, etc. Utilisez des plateformes cloud pour l'analyse et le stockage des données afin de fournir des services de surveillance et de gestion environnementale plus complets.
Améliorez la conception de l'interface utilisateur, fournissez un affichage des données plus intuitif et une interface de fonctionnement plus simple, et améliorez l'expérience utilisateur.
Recommandation : utilisez un écran couleur haute résolution pour offrir une expérience visuelle plus riche. Concevez une interface utilisateur simple et facile à comprendre pour faciliter l’utilisation des utilisateurs. Fournissez un affichage graphique des données, telles que des graphiques de paramètres d'environnement en temps réel, des enregistrements historiques, etc.
Ajoutez un système intelligent d'aide à la décision pour ajuster automatiquement les stratégies de contrôle en fonction des données historiques et en temps réel afin d'obtenir un contrôle et une gestion environnementaux plus efficaces.
Recommandation : utiliser la technologie d'analyse des données pour analyser les données environnementales et fournir des suggestions personnalisées de gestion environnementale. En combinaison avec les données historiques, nous pouvons prédire les problèmes et besoins possibles et optimiser les stratégies de contrôle à l'avance.
Ce didacticiel présente en détail comment implémenter un système de contrôle d'accès intelligent dans un système embarqué STM32. Il explique de manière exhaustive tout, depuis la sélection du matériel et la mise en œuvre du logiciel jusqu'à la configuration du système et les scénarios d'application.