Teknologian jakaminen

STM32 älykäs kulunvalvontajärjestelmä opetusohjelma

2024-07-12

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

Sisällysluettelo

  1. esittely
  2. Ympäristön valmistelu
  3. Älykkään kulunvalvontajärjestelmän perusteet
  4. Koodin toteutus: Älykkään kulunvalvontajärjestelmän käyttöönotto 4.1 Tiedonkeruumoduuli 4.2 Tiedonkäsittely- ja ohjausmoduuli 4.3 Tietoliikenne- ja verkkojärjestelmän toteutus 4.4 Käyttöliittymä ja tietojen visualisointi
  5. Sovellusskenaario: kulunvalvonnan hallinta ja optimointi
  6. Ongelmanratkaisu ja optimointi
  7. Päätös ja yhteenveto

1. Esittely

Älykäs kulunvalvontajärjestelmä yhdistää erilaisia ​​antureita, toimilaitteita ja tietoliikennemoduuleja STM32-sulautetun järjestelmän kautta, jotta saavutetaan kulunvalvonnan reaaliaikainen valvonta, automaattinen ohjaus ja tiedonsiirto. Tämä artikkeli esittelee yksityiskohtaisesti kuinka toteuttaa älykäs kulunvalvontajärjestelmä STM32-järjestelmässä, mukaan lukien ympäristön valmistelu, järjestelmäarkkitehtuuri, koodin toteutus, sovellusskenaariot, ongelmaratkaisut ja optimointimenetelmät.

2. Ympäristön valmistelu

Laitteiston valmistelu

  1. Kehityslautakunta:STM32F4-sarja tai STM32H7-sarjan kehityskortti
  2. virheen korjaaja: ST-LINK V2 tai sisäänrakennettu debuggeri
  3. sensori: Kuten RFID-kortinlukija, sormenjälkitunnistin, PIR-anturi
  4. Toimilaite: Kuten sähkömagneettinen lukko, summeri, LED-merkkivalo
  5. Viestintämoduuli: Kuten Wi-Fi-moduuli, ZigBee-moduuli
  6. Näyttö: Kuten OLED-näyttö
  7. Painike tai nuppi: käytetään käyttäjän syöttämiseen ja asetuksiin
  8. virtalähde:Muuntaja

Ohjelmiston valmistelu

  1. Integrated Development Environment (IDE):STM32CubeIDE ja Keil MDK
  2. Virheenkorjaustyökalut:STM32 ST-LINK Utility -GDB
  3. Kirjastot ja väliohjelmistot:STM32 HAL -kirjasto ja FreeRTOS

asennusvaiheet

  1. Lataa ja asenna STM32CubeMX
  2. Lataa ja asenna STM32CubeIDE
  3. Määritä STM32CubeMX-projekti ja luo STM32CubeIDE-projekti
  4. Asenna tarvittavat kirjastot ja ajurit

3. Älykkään kulunvalvontajärjestelmän perusteet

Ohjausjärjestelmän arkkitehtuuri

Älykäs kulunvalvontajärjestelmä koostuu seuraavista osista:

  1. Tiedonkeruumoduuli: Käytetään kulunvalvontakorttien, sormenjälkien ja liiketietojen keräämiseen
  2. Tietojenkäsittely- ja ohjausmoduuli: Käsittele ja analysoi kerätyt tiedot ja luo ohjaussignaaleja
  3. Viestintä- ja verkkojärjestelmät: Toteuta yhteys kulunvalvontajärjestelmän ja palvelimen tai muiden laitteiden välillä
  4. näyttöjärjestelmä: Käytetään järjestelmän tilan ja ohjaustietojen näyttämiseen
  5. käyttäjän syöttöjärjestelmä: Asetukset ja säädöt painikkeiden tai nuppien avulla

Toiminnon kuvaus

Pääsykortti-, sormenjälki- ja liiketiedot kerätään eri antureiden kautta ja näytetään OLED-näytöllä reaaliajassa. Järjestelmä toteuttaa kulunvalvonnan ja automaattisen ohjauksen tietojenkäsittelyn ja verkkoviestinnän avulla. Käyttäjät voivat tehdä asetuksia painikkeilla tai nuppeilla ja tarkastella nykyistä tilaa näytön kautta.

4. Koodin toteutus: toteuta älykäs kulunvalvontajärjestelmä

4.1 Tiedonkeruumoduuli

Määritä RFID-lukija

Käytä STM32CubeMX:ää UART-liitännän määrittämiseen:

  1. Avaa STM32CubeMX ja valitse STM32-kehityskorttisi malli.
  2. Etsi graafisesta käyttöliittymästä UART-nasta, joka on määritettävä, ja aseta se UART-tilaan.
  3. Luo koodi ja tuo se STM32CubeIDEen.

Koodi:

  1. #include "stm32f4xx_hal.h"
  2. UART_HandleTypeDef huart1;
  3. void UART1_Init(void) {
  4. huart1.Instance = USART1;
  5. huart1.Init.BaudRate = 9600;
  6. huart1.Init.WordLength = UART_WORDLENGTH_8B;
  7. huart1.Init.StopBits = UART_STOPBITS_1;
  8. huart1.Init.Parity = UART_PARITY_NONE;
  9. huart1.Init.Mode = UART_MODE_TX_RX;
  10. huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  11. huart1.Init.OverSampling = UART_OVERSAMPLING_16;
  12. HAL_UART_Init(&huart1);
  13. }
  14. uint8_t Read_RFID_Card(uint8_t* buffer, uint16_t size) {
  15. return HAL_UART_Receive(&huart1, buffer, size, HAL_MAX_DELAY);
  16. }
  17. int main(void) {
  18. HAL_Init();
  19. SystemClock_Config();
  20. UART1_Init();
  21. uint8_t rfid_buffer[16];
  22. while (1) {
  23. if (Read_RFID_Card(rfid_buffer, 16) == HAL_OK) {
  24. // 处理RFID数据
  25. }
  26. HAL_Delay(1000);
  27. }
  28. }
Määritä sormenjälkitunnistin

Käytä STM32CubeMX:ää UART-liitännän määrittämiseen:

  1. Avaa STM32CubeMX ja valitse STM32-kehityskorttisi malli.
  2. Etsi graafisesta käyttöliittymästä UART-nasta, joka on määritettävä, ja aseta se UART-tilaan.
  3. Luo koodi ja tuo se STM32CubeIDEen.

Koodi:

  1. #include "stm32f4xx_hal.h"
  2. UART_HandleTypeDef huart2;
  3. void UART2_Init(void) {
  4. huart2.Instance = USART2;
  5. huart2.Init.BaudRate = 57600;
  6. huart2.Init.WordLength = UART_WORDLENGTH_8B;
  7. huart2.Init.StopBits = UART_STOPBITS_1;
  8. huart2.Init.Parity = UART_PARITY_NONE;
  9. huart2.Init.Mode = UART_MODE_TX_RX;
  10. huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  11. huart2.Init.OverSampling = UART_OVERSAMPLING_16;
  12. HAL_UART_Init(&huart2);
  13. }
  14. uint8_t Read_Fingerprint(uint8_t* buffer, uint16_t size) {
  15. return HAL_UART_Receive(&huart2, buffer, size, HAL_MAX_DELAY);
  16. }
  17. int main(void) {
  18. HAL_Init();
  19. SystemClock_Config();
  20. UART2_Init();
  21. uint8_t fingerprint_buffer[32];
  22. while (1) {
  23. if (Read_Fingerprint(fingerprint_buffer, 32) == HAL_OK) {
  24. // 处理指纹数据
  25. }
  26. HAL_Delay(1000);
  27. }
  28. }

4.2 Tietojenkäsittely- ja ohjausmoduuli

Tietojenkäsittelymoduuli muuntaa anturitiedot ohjausjärjestelmässä käytettäväksi tiedoksi ja suorittaa tarvittavat laskelmat ja analyysit.

Kulunvalvontaalgoritmi

Toteuta yksinkertainen kulunvalvontaalgoritmi ohjaamaan sähkömagneettisen lukon kytkintä pääsykortti- ja sormenjälkitietojen perusteella:

  1. #define AUTHORIZED_CARD_ID "1234567890"
  2. #define AUTHORIZED_FINGERPRINT_ID "A1B2C3D4E5"
  3. void Control_Door(uint8_t* rfid_data, uint8_t* fingerprint_data) {
  4. if (strcmp((char*)rfid_data, AUTHORIZED_CARD_ID) == 0 ||
  5. strcmp((char*)fingerprint_data, AUTHORIZED_FINGERPRINT_ID) == 0) {
  6. // 打开门锁
  7. HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
  8. } else {
  9. // 关闭门锁
  10. HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
  11. }
  12. }
  13. int main(void) {
  14. HAL_Init();
  15. SystemClock_Config();
  16. UART1_Init();
  17. UART2_Init();
  18. GPIO_Init();
  19. uint8_t rfid_buffer[16];
  20. uint8_t fingerprint_buffer[32];
  21. while (1) {
  22. if (Read_RFID_Card(rfid_buffer, 16) == HAL_OK &&
  23. Read_Fingerprint(fingerprint_buffer, 32) == HAL_OK) {
  24. Control_Door(rfid_buffer, fingerprint_buffer);
  25. }
  26. HAL_Delay(1000);
  27. }
  28. }

4.3 Viestintä- ja verkkojärjestelmän toteutus

Määritä Wi-Fi-moduuli

Käytä STM32CubeMX:ää UART-liitännän määrittämiseen:

  1. Avaa STM32CubeMX ja valitse STM32-kehityskorttisi malli.
  2. Etsi graafisesta käyttöliittymästä UART-nasta, joka on määritettävä, ja aseta se UART-tilaan.
  3. Luo koodi ja tuo se STM32CubeIDEen.

Koodi:

  1. #include "stm32f4xx_hal.h"
  2. #include "usart.h"
  3. #include "wifi_module.h"
  4. UART_HandleTypeDef huart3;
  5. void UART3_Init(void) {
  6. huart3.Instance = USART3;
  7. huart3.Init.BaudRate = 115200;
  8. huart3.Init.WordLength = UART_WORDLENGTH_8B;
  9. huart3.Init.StopBits = UART_STOPBITS_1;
  10. huart3.Init.Parity = UART_PARITY_NONE;
  11. huart3.Init.Mode = UART_MODE_TX_RX;
  12. huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  13. huart3.Init.OverSampling = UART_OVERSAMPLING_16;
  14. HAL_UART_Init(&huart3);
  15. }
  16. void Send_Data_To_Server(uint8_t* rfid_data, uint8_t* fingerprint_data) {
  17. char buffer[128];
  18. sprintf(buffer, "RFID: %s, Fingerprint: %s", rfid_data, fingerprint_data);
  19. HAL_UART_Transmit(&huart3, (uint8_t*)buffer, strlen(buffer), HAL_MAX_DELAY);
  20. }
  21. int main(void) {
  22. HAL_Init();
  23. SystemClock_Config();
  24. UART3_Init();
  25. UART1_Init();
  26. UART2_Init();
  27. uint8_t rfid_buffer[16];
  28. uint8_t fingerprint_buffer[32];
  29. while (1) {
  30. if (Read_RFID_Card(rfid_buffer, 16) == HAL_OK &&
  31. Read_Fingerprint(fingerprint_buffer, 32) == HAL_OK) {
  32. Send_Data_To_Server(rfid_buffer, fingerprint_buffer);
  33. }
  34. HAL_Delay(1000);
  35. }
  36. }

4.4 Käyttöliittymä ja tietojen visualisointi

Määritä OLED-näyttö

Käytä STM32CubeMX:ää I2C-liitännän määrittämiseen:

  1. Avaa STM32CubeMX ja valitse STM32-kehityskorttisi malli.
  2. Etsi graafisesta käyttöliittymästä I2C-nasta, joka on määritettävä, ja aseta se I2C-tilaan.
  3. Luo koodi ja tuo se STM32CubeIDEen.

Koodi:

Alusta ensin OLED-näyttö:

  1. #include "stm32f4xx_hal.h"
  2. #include "i2c.h"
  3. #include "oled.h"
  4. void Display_Init(void) {
  5. OLED_Init();
  6. }

Ota sitten käyttöön tietojen näyttötoiminto kulunvalvontatilan ja tietojen näyttämiseksi OLED-näytöllä:

  1. void Display_Data(uint8_t* rfid_data, uint8_t* fingerprint_data) {
  2. char buffer[32];
  3. sprintf(buffer, "RFID: %s", rfid_data);
  4. OLED_ShowString(0, 0, buffer);
  5. sprintf(buffer, "Fingerprint: %s", fingerprint_data);
  6. OLED_ShowString(0, 1, buffer);
  7. }
  8. int main(void) {
  9. HAL_Init();
  10. SystemClock_Config();
  11. I2C1_Init();
  12. Display_Init();
  13. UART1_Init();
  14. UART2_Init();
  15. uint8_t rfid_buffer[16];
  16. uint8_t fingerprint_buffer[32];
  17. while (1) {
  18. if (Read_RFID_Card(rfid_buffer, 16) == HAL_OK &&
  19. Read_Fingerprint(fingerprint_buffer, 32) == HAL_OK) {
  20. // 显示门禁数据
  21. Display_Data(rfid_buffer, fingerprint_buffer);
  22. }
  23. HAL_Delay(1000);
  24. }
  25. }

5. Sovellusskenaario: kulunvalvonnan hallinta ja optimointi

Toimistorakennusten kulunvalvonta

Älykästä kulunvalvontajärjestelmää voidaan käyttää toimistorakennusten kulunvalvontaan. Kulunvalvontatietojen reaaliaikaisen seurannan avulla voidaan toteuttaa automaattinen valvonta toimistorakennusten turvallisuuden ja hallinnan tehokkuuden parantamiseksi.

Yhteisön kulunvalvontahallinta

Yhteisöissä älykkäillä kulunvalvontajärjestelmillä voidaan toteuttaa asukkaiden ja vierailijoiden automatisoitu hallinta, mikä parantaa yhteisön turvallisuutta ja mukavuutta.

Kodin kulunvalvontahallinta

Älykkäitä kulunvalvontajärjestelmiä voidaan käyttää kodin kulunvalvontaan älykkäämmän kodin kulunhallinnan saavuttamiseksi automatisoidun ohjauksen ja data-analyysin avulla.

Älykäs rakennustutkimus

Älykkäitä kulunvalvontajärjestelmiä voidaan käyttää älykkäiden rakennusten tutkimuksessa tarjoamaan tieteellistä perustaa rakennusten kulunvalvontaan ja optimointiin tiedonkeruun ja -analyysin avulla.

⬇Auta kaikkia järjestämään tietoja mikro-ohjaimista

Kokoelma projekteja, mukaan lukien stm32 [lähdekoodi + kehitysdokumentit]

Napsauta alla olevia sinisiä sanoja saadaksesi sen, kiitos tuestanne! ⬇

Napsauta saadaksesi lisätietoja upotetuista tiedoista

Voit keskustella ongelmasta lähettämällä yksityisviestin saadaksesi stm32-tiedot!

 

6. Ongelmanratkaisu ja optimointi

Usein kysyttyjä kysymyksiä ja ratkaisuja

Anturin tiedot ovat epätarkkoja

Varmista, että anturin ja STM32:n välinen yhteys on vakaa, ja kalibroi anturi säännöllisesti saadaksesi tarkkoja tietoja.

Ratkaisu: Tarkista, että anturin ja STM32:n välinen yhteys on kiinteä, ja juota tai vaihda liitäntäjohto tarvittaessa. Samanaikaisesti anturit kalibroidaan säännöllisesti tarkkojen tietojen varmistamiseksi.

Kulunvalvonta on epävakaa

Optimoi ohjausalgoritmi ja laitteistokokoonpano vähentääksesi kulunvalvonnan epävakautta ja parantaaksesi järjestelmän vastenopeutta.

Ratkaisu: Optimoi ohjausalgoritmi, säädä parametreja ja vähennä värähtelyä ja ylitystä. Käytä erittäin tarkkoja antureita parantaaksesi tiedonkeruun tarkkuutta ja vakautta. Valitse tehokkaampi toimilaite kulunvalvonnan vastenopeuden parantamiseksi.

Tiedonsiirto epäonnistui

Varmista, että Wi-Fi-moduulin ja STM32:n välinen yhteys on vakaa, optimoi tiedonsiirtoprotokolla ja paranna tiedonsiirron luotettavuutta.

Ratkaisu: Tarkista, että Wi-Fi-moduulin ja STM32:n välinen yhteys on kiinteä, ja juota uudelleen tai vaihda liitäntäkaapeli tarvittaessa. Optimoi viestintäprotokollat ​​tiedonsiirtoviiveiden ja pakettihäviöiden vähentämiseksi. Valitse vakaampi viestintämoduuli parantaaksesi tiedonsiirron luotettavuutta.

Näytössä näkyy poikkeavuus

Tarkista I2C-tiedonsiirtolinja varmistaaksesi, että tiedonsiirto näytön ja MCU:n välillä on normaalia, jotta vältytään linja-ongelmien aiheuttamalta epänormaalilta näytöltä.

Ratkaisu: Tarkista, että I2C-nastat on kytketty oikein, ja varmista, että virtalähde on vakaa. Käytä oskilloskooppia tunnistamaan I2C-väyläsignaali ja varmistamaan, onko tiedonsiirto normaali. Vaihda tarvittaessa näyttö tai MCU.

Optimointiehdotuksia

Tietojen integrointi ja analysointi

Integroi useampia anturitietoja ja käytä data-analyysitekniikkaa ympäristöolosuhteiden ennustamiseen ja optimointiin.

Ehdotus: Lisää lisää valvontaantureita, kuten oviantureita, lämpötila- ja kosteusantureita jne. Käytä pilvialustoja tietojen analysointiin ja tallentamiseen tarjotaksesi kattavampia ympäristön seuranta- ja hallintapalveluita.

Käyttäjien vuorovaikutuksen optimointi

Paranna käyttöliittymän suunnittelua, tarjoa intuitiivisempi tietojen näyttö ja yksinkertaisempi käyttöliittymä ja paranna käyttökokemusta.

Suositus: Käytä korkearesoluutioista värinäyttöä tarjotaksesi rikkaamman visuaalisen kokemuksen. Suunnittele yksinkertainen ja helposti ymmärrettävä käyttöliittymä, joka helpottaa käyttäjien käyttöä. Tarjoa graafinen datanäyttö, kuten reaaliaikaiset ympäristöparametrikaaviot, historialliset tietueet jne.

Älykäs ohjauksen parannus

Lisää älykäs päätöksenteon tukijärjestelmä säätämään automaattisesti ohjausstrategioita historiallisten ja reaaliaikaisten tietojen perusteella tehokkaamman ympäristön hallinnan ja hallinnan saavuttamiseksi.

Suositus: Käytä data-analyysitekniikkaa ympäristötietojen analysointiin ja henkilökohtaisten ympäristöjohtamisehdotusten antamiseen. Yhdessä historiallisten tietojen kanssa voimme ennakoida mahdolliset ongelmat ja tarpeet sekä optimoida ohjausstrategiat etukäteen.

7. Päätös ja yhteenveto

Tämä opetusohjelma esittelee yksityiskohtaisesti kuinka toteuttaa älykäs kulunvalvontajärjestelmä sulautetussa STM32-järjestelmässä laitteiston valinnasta, ohjelmiston toteutuksesta järjestelmän konfigurointiin ja sovellusskenaarioihin.