Intelligent garage management system designed based on STM32 + Huawei Cloud IOT

1. Project introduction

With the continuous increase of urbanization and car ownership, the problem of parking difficulty has become increasingly prominent. In cities, parking lots are a very important infrastructure, but traditional parking lot management methods have many problems, such as difficult parking spaces to manage and opaque parking fees. In order to solve these problems, the intelligent garage management system came into being.

This project is a smart garage management system designed based on STM32 + Huawei Cloud IOT. It detects the occupancy of parking spaces through infrared induction sensors, uploads the data to the Huawei Cloud IoT platform, and displays the real-time parking space status of the garage through the WeChat applet, including the total number of parking spaces. The number of parking spaces, the current number of remaining vacancies and the number of the parking spaces are marked on the two-dimensional map to facilitate users to quickly find free parking spaces for parking.

This system also includes a license plate recognition automatic billing part, which uses license plate recognition technology to identify the time when a vehicle enters and exits the parking lot, and automatically calculates the parking fee, which improves the management efficiency and user experience of the parking lot.

The implementation of this project will greatly improve the management efficiency and customer experience of the parking lot, and provide a more convenient and efficient solution for urban traffic management and user travel.

image-20230801151049357

image-20230801151056757

image-20230801151104844

2. Hardware selection

In this project, appropriate hardware needs to be selected to implement an intelligent garage management system. Based on project requirements, you need to select hardware that can complete the following functions:

【1】Sensor module that detects whether there is a vehicle in the parking space

【2】Communication module that can upload sensor data to the cloud platform

【3】The main control chip that controls the operation of the entire system

【4】Power module that provides power support

Based on the above requirements, the following hardware was finally adopted:

【1】Sensor module: Infrared sensor module, such as infrared obstacle sensor module, can detect whether the vehicle is in a parking space.

[2] Communication module: EC20-4G module supports 4G LTE network and can upload sensor data to the Huawei Cloud IoT platform.

[3] Main control chip: STM32F103ZET6, which has high performance and stability and can meet the real-time needs of the system.

【4】Power module: DC regulated power module, which can provide stable power support and ensure the normal operation of the system.

3. System design ideas

【1】Hardware design:

  • Use STM32F103ZET6 as the main control chip to connect the infrared induction sensor for vehicle detection.
  • Configure the EC20-4G module to communicate with STM32, and upload the detected data to the Huawei Cloud IoT platform through AT commands or related protocols.

【2】Cloud platform configuration:

  • Create a device instance on the Huawei Cloud IoT platform and connect the EC20-4G module as a device.
  • Configure data flow rules so that uploaded data can be correctly transmitted to the cloud platform and stored.

【3】WeChat applet development:

  • Use the WeChat applet development framework to obtain uploaded data by calling the API interface provided by Huawei Cloud IoT platform.
  • Parse and process the returned data to calculate the total number of parking spaces and the number of remaining vacancies in the current garage.
  • Draw a two-dimensional map based on the data, and mark the location and number of the free parking spaces.
  • Implement user interface display to display the current garage status and facilitate users to find free parking spaces.

The overall process is as follows: The infrared induction sensor detects the vehicle through STM32, and the detection results are uploaded to the Huawei Cloud IoT platform in real time. The WeChat applet obtains the uploaded data through the API interface, analyzes and processes it, and calculates the total number of parking spaces and the number of remaining vacancies in the garage. Then, draw a two-dimensional stereogram on the interface and mark the free parking spaces. Users can check the current status of the garage through the WeChat applet to quickly find free parking spaces for parking operations.

4. Deployment of Huawei Cloud IoT Platform

Huawei Cloud official website: https://www.huaweicloud.com/

Open the official website and search for Internet of Things to find it quickly 设备接入IoTDA.

image-20230801151116995

4.1 Introduction to IoT Platform

Huawei Cloud Internet of Things Platform (IoT device access cloud service) provides access and management capabilities for massive devices, connects physical devices to the cloud, supports device data collection on the cloud and the cloud issues commands to devices for remote control, and cooperates with Huawei Cloud Other products help us quickly build IoT solutions.

Using the IoT platform to build a complete IoT solution mainly includes 3 parts: IoT platform, business applications and equipment.

As the middle layer that connects business applications and devices, the IoT platform shields various complex device interfaces and enables quick access to devices. It also provides powerful open capabilities to support industry users in building various IoT solutions.

Devices can access the IoT platform through fixed network, 2G/3G/4G/5G, NB-IoT, Wifi and other networks, and use LWM2M/CoAP, MQTT, HTTPS protocols to report business data to the platform. The platform can also Send control commands to the device.

Business applications implement business scenarios such as device data collection, command issuance, and device management by calling the API provided by the IoT platform.

image-20230801151124332

image-20230801151130369

4.2 Activate IoT services

Address: https://www.huaweicloud.com/product/iothub.html

image-20230801151136153

Click 总览to view access information. Our current equipment is going to use the MQTT protocol to connect to the Huawei Cloud platform. Here you can see the address and port number of the MQTT protocol and other information.

image-20230801151202953

Summarize:

端口号:   MQTT (1883)| MQTTS (8883)   
接入地址: a161a58a78.iot-mqtts.cn-north-4.myhuaweicloud.com

Get IP address information based on domain name address:

Microsoft Windows [版本 10.0.19045.2965]
(c) Microsoft Corporation。保留所有权利。

C:\Users\11266>ping a161a58a78.iot-mqtts.cn-north-4.myhuaweicloud.com

正在 Ping a161a58a78.iot-mqtts.cn-north-4.myhuaweicloud.com [121.36.42.100] 具有 32 字节的数据:
来自 121.36.42.100 的回复: 字节=32 时间=38ms TTL=94
来自 121.36.42.100 的回复: 字节=32 时间=37ms TTL=94
来自 121.36.42.100 的回复: 字节=32 时间=38ms TTL=94
来自 121.36.42.100 的回复: 字节=32 时间=36ms TTL=94

121.36.42.100 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 36ms,最长 = 38ms,平均 = 37ms

C:\Users\11266>

image-20230801151212765

There are two MQTT protocol access port numbers. 1883 is a non-encrypted port and 8883 is a certificate encryption port. The microcontroller cannot load the certificate, so it is more appropriate to use port 1883. The next ESP8266 uses port 1883 to connect to the Huawei Cloud IoT platform.

4.3 Create products

(1) Create products

Click on the product page, then click Create Product in the upper left corner.

image-20230801151220860

(2) Fill in product information

Fill in the form based on your product name.

image-20230801151228433

(3) Product creation is successful

image-20230801151234528

(4) Add custom model

After the product is created, click to enter the product details page and scroll to the bottom to see the model definition.

This model is to define the data types that your device needs to upload to the server next. Write according to your own data type.

Click on Custom Model first.

image-20230801151243343

Create another service ID.

image-20230801151250227

Then click Add attribute.

image-20230801151255512

image-20230801151300240

4.4 Add device

The product is an abstract model belonging to the upper layer, and then the actual equipment is added under the product model. The added device eventually needs to be associated with the real device to complete data interaction.

(1) Register device

image-20230801151308625

(2) Fill in according to your own equipment

image-20230801151315386

(3) Save device information

After creation, click Save and Close to get the created device key information. This information is needed when generating MQTT triples later.

image-20230801151322328

(4) Device creation completed

You can click on the device to enter the device details page.

image-20230801151331651

4.5 MQTT protocol topic subscription and publishing

(1) Introduction to MQTT protocol

The current equipment uses the MQTT protocol to communicate with the Huawei Cloud Platform.

MQTT is an IoT transport protocol that is designed for lightweight publish/subscribe message transmission and aims to provide reliable network services for IoT devices in low-bandwidth and unstable network environments. MQTT is a lightweight transmission protocol developed specifically for the Internet of Things. The MQTT protocol has been specially optimized for low-bandwidth networks and devices with low computing power, making it adaptable to various IoT application scenarios. At present, MQTT has clients on various platforms and devices, and has formed a preliminary ecosystem.

MQTT is a message queue protocol that uses the publish/subscribe message model to provide one-to-many message publishing and decouple applications. Compared with other protocols, development is simpler; the MQTT protocol works on the TCP/IP protocol; by TCP The /IP protocol provides a stable network connection; therefore, any network device with a TCP protocol stack can use the MQTT protocol. The ESP8266 used in this device has a TCP protocol stack and can establish a TCP connection. Therefore, with the MQTT protocol encapsulated in the STM32 code, communication with the Huawei cloud platform can be completed.

Huawei Cloud's MQTT protocol access help document is here: https://support.huaweicloud.com/devg-iothub/iot_02_2200.html

image-20230801151337395

Business Process:

image-20230801151342879

(2) Huawei Cloud Platform MQTT protocol usage restrictions

describe limit
Supported MQTT protocol versions 3.1.1
Differences from the standard MQTT protocol Supports Qos 0 and Qos 1. Supports Topic customization. Does not support QoS2. Does not support will and retain msg.
Security levels supported by MQTTS Adopt TCP channel base + TLS protocol (up to TLSv1.3 version)
Maximum number of MQTT connection requests per second for a single account Unlimited
Maximum number of MQTT connections supported by a single device per minute 1
The throughput per second of a single MQTT connection, that is, the bandwidth, including directly connected devices and gateways 3KB/s
The maximum length of a single MQTT publishing message. Publishing requests exceeding this size will be directly rejected. 1MB
MQTT connection heartbeat time recommended value The heartbeat time is limited to 30 to 1200 seconds, and the recommended setting is 120 seconds
Does the product support custom topics? support
Message publishing and subscription The device can only publish and subscribe messages to its own Topic.
Maximum number of subscriptions per subscription request Unlimited

(3) Topic subscription format

Help document address: https://support.huaweicloud.com/devg-iothub/iot_02_2200.html

image-20230801151350067

image-20230801151355027

For devices, they generally subscribe to the topic of messages sent by the platform to the device.

If a device wants to receive messages sent by the platform, it needs to subscribe to the topic of messages sent by the platform to the device. After subscribing, the platform sends messages to the device, and the device will receive the message.

If the device wants to know the messages sent by the platform, it needs to subscribe to the topic marked in the picture above.

以当前设备为例,最终订阅主题的格式如下:
$oc/devices/{device_id}/sys/messages/down

最终的格式:
$oc/devices/6419627e40773741f9fbdac7_dev1/sys/messages/down

(4) Topic publishing format

For devices, topic publishing means uploading data to the cloud platform, and uploading the latest sensor data and device status to the cloud platform.

This operation is called: attribute reporting.

Help document address: https://support.huaweicloud.com/usermanual-iothub/iot_06_v5_3010.html

image-20230801151401246

According to the introduction of the help document, the current device publishing theme and the format of reported attributes are summarized as follows:

发布的主题格式:
$oc/devices/{device_id}/sys/properties/report
 
最终的格式:
$oc/devices/6419627e40773741f9fbdac7_dev1/sys/properties/report
发布主题时,需要上传数据,这个数据格式是JSON格式。

上传的JSON数据格式如下:

{
  "services": [
    {
      "service_id": <填服务ID>,
      "properties": {
        "<填属性名称1>": <填属性值>,
        "<填属性名称2>": <填属性值>,
        ..........
      }
    }
  ]
}
根据JSON格式,一次可以上传多个属性字段。 这个JSON格式里的,服务ID,属性字段名称,属性值类型,在前面创建产品的时候就已经介绍了,不记得可以翻到前面去查看。

根据这个格式,组合一次上传的属性数据:
{"services": [{"service_id": "stm32","properties":{"DS18B20":18,"motor_water":1,"motor_oxygen":1,"temp_max":10,"water_hp":130,"motor_food":0,"time_food":0,"oxygen_food":3}}]}

4.6 MQTT Triplets

MQTT protocol login requires filling in user ID, device ID, device password and other information. Just like when we usually log in to QQ and WeChat, we need to enter the account password to log in. These three parameters logged in the MQTT protocol are generally called MQTT triples.

Next, we will introduce how to obtain the MQTT triplet parameters of Huawei Cloud Platform.

(1) MQTT server address

To log in to the MQTT server, first remember to know the address and port of the server.

Help document address: https://console.huaweicloud.com/iotdm/?region=cn-north-4#/dm-portal/home

The port of the MQTT protocol supports 1883 and 8883. The difference between them is: 8883 is an encrypted port and is more secure. However, it is difficult to use on a microcontroller, so the current equipment uses the 1883 port for connection.

Based on the above domain name and port number, get the following IP address and port number information: If the device supports filling in the domain name, you can directly fill in the domain name, if not, directly fill in the IP address. (The IP address is obtained by domain name resolution)

华为云的MQTT服务器地址:114.116.232.138
域名:7445c6bcd3.st1.iotda-device.cn-north-4.myhuaweicloud.com
华为云的MQTT端口号:1883

Notice! ! ! ! See here for details:

image-20230801151408871

(2) Generate MQTT triples

Huawei Cloud provides an online tool to generate MQTT authentication triples: https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/

Open this tool, fill in the device information (that is, the information saved after creating the device just now), click Generate, and you can get the MQTT login information.

Here is the page that opens:

image-20230801151418248

Fill in the device information: (The above two lines are saved after the device is created)

After obtaining the triplet, when the device logs in for authentication through the MQTT protocol, just fill in the parameters.

ClientId 6419627e40773741f9fbdac7_dev1_0_0_2023032108
Username 6419627e40773741f9fbdac7_dev1
Password 861ac9e6a579d36888b2aaf97714be7af6c77017b017162884592bd68b086a6e

4.7 Simulate device login test

After the above steps, the product, device, and data model have been created, and the MQTT login information has been obtained. Next, use MQTT client software to simulate a real device to log in to the platform. Test whether communication with the server is normal.

(1) Fill in the login information

Open the MQTT client software and fill in the relevant information (the text introduction above). Then, click to log in, subscribe to the topic, and publish the topic.

image-20230801151429390

(2) Open the web page to view

After completing the above operations, open the Huawei Cloud web backend and you can see that the device is online.

Click on the details page to see the uploaded data.

At this point, the deployment of the cloud platform has been completed and the device can upload data normally.

5. Code design

5.1 Introduction to EC20-4G module AT commands

The EC20 module is a commonly used wireless communication module that supports the MQTT protocol.

The following MQTT related AT commands:

【1】AT+QMTCONN: used to establish a connection with the MQTT server.

  • Function: Establish a connection with the MQTT server by specifying the address, port, client ID, user name, password and other parameters of the MQTT server.

【2】AT+QMTDISC: used to disconnect from the MQTT server.

  • Function: Disconnect from the MQTT server.

【3】AT+QMTPUB: used to publish MQTT messages.

  • Function: Specify the MQTT topic and message content, and publish the message to the MQTT server.

【4】AT+QMTSUB: used to subscribe to MQTT topics.

  • Function: Subscribe to the specified MQTT topic and receive messages under the topic.

【5】AT+QMTUNS: Used to unsubscribe from MQTT topics.

  • Function: Cancel the subscription to the specified MQTT topic.

【6】AT+QMTRECV: used to receive MQTT messages.

  • Function: Receive messages sent from MQTT server.

These are AT commands related to the EC20 module MQTT protocol. Using these instructions, functions such as login, topic subscription, topic publishing, and message reception of MQTT devices can be implemented on the EC20 module.

5.2 EC20 connects to IOT platform

The following is the implementation code for using STM32 and EC20 to connect to the IoT platform through the MQTT protocol and implement topic subscription and publishing:

#include "stm32f10x.h"
#include "stdio.h"
#include "string.h"

// 定义串口波特率
#define BAUD_RATE 115200

// 定义UART接收缓冲区大小
#define UART_RX_BUFFER_SIZE 256

// 定义MQTT服务器地址和端口号
#define MQTT_SERVER_ADDRESS "mqtt.example.com"
#define MQTT_SERVER_PORT 1883

// 定义MQTT客户端ID
#define MQTT_CLIENT_ID "example_client"

// 定义MQTT订阅的主题
#define MQTT_SUB_TOPIC "example_topic"

// 定义MQTT发布的主题
#define MQTT_PUB_TOPIC "example_topic"

// 定义UART接收缓冲区和索引
char uartRxBuffer[UART_RX_BUFFER_SIZE];
volatile uint16_t uartRxBufferIndex = 0;

// UART中断处理函数
void USART1_IRQHandler(void)
{
    
    
    if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
    {
    
    
        // 读取接收到的数据
        char data = USART_ReceiveData(USART1);

        // 将数据存入接收缓冲区
        uartRxBuffer[uartRxBufferIndex] = data;
        uartRxBufferIndex++;

        // 处理接收到的数据
        // 这里可以根据需要进行相关操作,例如解析MQTT消息等

        // 清除接收中断标志位
        USART_ClearITPendingBit(USART1, USART_IT_RXNE);
    }
}

// 初始化UART1配置
void UART1_Config(void)
{
    
    
    USART_InitTypeDef USART_InitStructure;
    GPIO_InitTypeDef GPIO_InitStructure;
    NVIC_InitTypeDef NVIC_InitStructure;

    // 使能USART1和GPIOA时钟
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);

    // 配置USART1引脚
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;     // TX
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;    // RX
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    // 配置USART1
    USART_InitStructure.USART_BaudRate = BAUD_RATE;
    USART_InitStructure.USART_WordLength = USART_WordLength_8b;
    USART_InitStructure.USART_StopBits = USART_StopBits_1;
    USART_InitStructure.USART_Parity = USART_Parity_No;
    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
    USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
    USART_Init(USART1, &USART_InitStructure);

    // 配置USART1中断
    NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);

    // 使能USART1接收中断
    USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);

    // 使能USART1
    USART_Cmd(USART1, ENABLE);
}

// 向UART1发送数据
void UART1_SendData(char *data)
{
    
    
    while (*data)
    {
    
    
        // 发送数据
        USART_SendData(USART1, *data++);
        
        // 等待发送完成
        while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
    }
}

// 连接MQTT服务器
void MQTT_Connect(void)
{
    
    
    // 构造MQTT CONNECT报文
    char connectPacket[256];
    sprintf(connectPacket,
            "\x10\x12\x00\x04MQTT\x04\x02\x00\x3C\x00%s",
            MQTT_CLIENT_ID);

    // 发送MQTT CONNECT报文
    UART1_SendData(connectPacket);
}

// 订阅MQTT主题
void MQTT_Subscribe(void)
{
    
    
    // 构造MQTT SUBSCRIBE报文
    char subscribePacket[256];
    sprintf(subscribePacket,
            "\x82\x0F\x00\x01\x00\x0C"MQTT_SUB_TOPIC"\x00\x00");

    // 发送MQTT SUBSCRIBE报文
    UART1_SendData(subscribePacket);
}

// 发布MQTT消息
void MQTT_Publish(char *message)
{
    
    
    // 构造MQTT PUBLISH报文
    char publishPacket[256];
    sprintf(publishPacket,
            "\x30\x10\x00\x0D"MQTT_PUB_TOPIC"%s",
            message);

    // 发送MQTT PUBLISH报文
    UART1_SendData(publishPacket);
}

int main(void)
{
    
    
    // 初始化UART1配置
    UART1_Config();
    
    // 连接MQTT服务器
    MQTT_Connect();
    
    // 订阅MQTT主题
    MQTT_Subscribe();
    
    while (1)
    {
    
    
        // 处理其他任务
        
        // 发布MQTT消息
        MQTT_Publish("Hello, world!");
        
        // 等待一段时间
        delay_ms(1000);
    }
}

In the code, UART1 is used to communicate with EC20, and the connection, subscription and publishing functions of MQTT are implemented. UART1_SendDataThe function is used to send data to UART1, MQTT_Connectthe function is used to connect to the MQTT server, MQTT_Subscribethe function is used to subscribe to the MQTT topic, and MQTT_Publishthe function is used to publish MQTT messages.

5.3 Obtain device shadow data (API interface)

Help document: https://support.huaweicloud.com/api-iothub/iot_06_v5_0079.html

Device shadow introduction:

设备影子是一个用于存储和检索设备当前状态信息的JSON文档。
每个设备有且只有一个设备影子,由设备ID唯一标识
设备影子仅保存最近一次设备的上报数据和预期数据
无论该设备是否在线,都可以通过该影子获取和设置设备的属性

To put it simply: the device shadow is the latest data uploaded by the device.

In the software we designed, if we want to obtain the latest status information of the device, we use the device shadow interface.

If you are not familiar with the interface, you can perform online debugging first: https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IoTDA&api=ShowDeviceShadow

Online debugging interface, you can request the shadow interface to understand the request and returned data format.

image-20230801151441245

The data returned by the device shadow interface is as follows:

{
    
    
 "device_id": "6419627e40773741f9fbdac7_dev1",
 "shadow": [
  {
    
    
   "service_id": "stm32",
   "desired": {
    
    
    "properties": null,
    "event_time": null
   },
   "reported": {
    
    
    "properties": {
    
    
     "DS18B20": 18,
     "motor_water": 1,
     "motor_oxygen": 1,
     "temp_max": 10,
     "water_hp": 130,
     "motor_food": 0,
     "time_food": 0,
     "oxygen_food": 3
    },
    "event_time": "20230321T081126Z"
   },
   "version": 0
  }
 ]
}

5.4 Modify device properties (API interface)

Address: https://support.huaweicloud.com/api-iothub/iot_06_v5_0034.html

Interface Description

设备的产品模型中定义了物联网平台可向设备下发的属性,应用服务器可调用此接口向指定设备下发属性。平台负责将属性以同步方式发送给设备,并将设备执行属性结果同步返回。

The interface for modifying device attributes allows the server to issue instructions to the device and control the device if needed.

Online debugging address:

https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IoTDA&api=UpdateProperties

Modifying device properties is a synchronous command and requires the device to be online before debugging. First use the MQTT client to log in to the server and simulate the device going online.

Then debug and send the test data to the device remotely.

【1】Use MQTT client to log in to the device first (this is a synchronous command and must be online to debug)

image-20230801151450774

【2】Click to debug

image-20230801151457386

{
    
    "services":{
    
    "temp_max":100}}

【4】As you can see, the MQTT client software has received the message sent by the server.

image-20230801151505222

Since it is a synchronous command, the server must receive a response from the device to successfully complete a process. Only when the device responds can the server determine that the data is successfully delivered.

6. Summary

The smart garage management system based on STM32 and Huawei Cloud IOT can realize the intelligent display function of parking spaces to facilitate users to quickly find free parking spaces. The core part of the system is the main control chip STM32F103ZET6 and the infrared sensor. The infrared sensor detects whether there is a vehicle in the parking space and uploads the detection data to the Huawei Cloud IoT platform in real time.

On the IoT platform, a device model can be created, including attributes such as the total number of parking spaces in the garage, the current number of remaining vacancies, and the number of the parking spaces. Each parking space corresponds to a device, and the status of the corresponding parking space is updated through the detection results of the infrared sensor. The EC20-4G module is responsible for sending these data to the Huawei Cloud IoT platform to achieve communication with the cloud.

The WeChat applet serves as the user interface. By calling the interface provided by the Huawei Cloud IoT platform, the data uploaded by the device is obtained and processed and analyzed. The total number of parking spaces in the current garage, the current number of remaining vacancies, and the number of the parking spaces are displayed on the interface. You can use a two-dimensional stereogram to display the status of parking spaces and mark free parking spaces to facilitate users to quickly find empty spaces for parking.

The data is uploaded to the Huawei Cloud IoT platform in real time through the infrared sensor and EC20 module. The WeChat applet obtains the data by calling the interface and displays it on the interface, realizing the intelligent display function of parking spaces. This kind of system can improve parking lot utilization and provide a user-friendly experience, while also providing parking managers with the convenience of real-time monitoring and data analysis.

Guess you like

Origin blog.csdn.net/xiaolong1126626497/article/details/133066984