Índice:
- Etapa 1: Design da interface do usuário
- Etapa 2: Comunicação MCU
- Etapa 3: Escrita do Código Lógico
- Etapa 4: Aquisição do sensor
- Etapa 5: efeito real da operação
Vídeo: STONE LCD com Smart Home: 5 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:34
Hoje, eu tenho o display da unidade de porta serial da STONE, que pode se comunicar através da porta serial do MCU, e o design lógico da IU deste display pode ser projetado diretamente usando o software VGUS fornecido no site oficial da STONE, o que é muito conveniente para nós. Então pretendo usá-lo para fazer um controlador de eletrodomésticos simples, que inclui o controle de várias luzes (sala, cozinha, quarto das crianças, banheiro). Ao mesmo tempo, a temperatura interna e externa, a umidade e a qualidade do ar podem ser coletadas. Esta é apenas uma demonstração simples e você pode conduzir o desenvolvimento secundário por meio do código que forneci. Alguns tutoriais básicos sobre a tela STONE podem ir para o site:
O site possui uma variedade de informações sobre o modelo, o usuário e a documentação do projeto, bem como tutoriais em vídeo. Não vou entrar em muitos detalhes aqui.
Etapa 1: Design da interface do usuário
Photoshop
Eu projetei as duas páginas da interface do usuário a seguir com o photoshop:
Este projeto tem as duas páginas acima no total. "Luz" e "Sensor" no canto superior direito são os botões de alternância dessas duas páginas.
Na página "Luz", você pode controlar todos os tipos de luzes em sua casa. Na página "Sensor", você pode verificar os valores detectados por vários sensores.
Após o design das duas páginas acima, podemos conduzir um design lógico de botão através do software STONE TOOL fornecido no site oficial da STONE.
É importante notar que a fonte de relógio usada para a exibição de hora aqui é a fonte de relógio da tela de exibição, não a fonte de relógio MCU.
Efeito de mudança de página TAB
Nenhum componente de alternância de página TAB foi encontrado no software STONE TOOL, então pensei em outro método para obter o efeito de alternância de página TAB.
Através da observação que eu forneço duas imagens de interface do usuário pode ser encontrado que as duas imagens acima são texto "Light" e "Sensor", a diferença é que o tamanho do pixel é diferente, então só precisamos colocar a posição de dois pixels está definida para o mesmo texto e, em seguida, através do canto superior esquerdo da hora e data para referência, você pode obter o TAB para alterar o efeito.
Lógica de botão
Veja o botão "Sala de estar" como exemplo. Quando o usuário pressiona este botão, a tela da porta serial STONE enviará instruções de protocolo correspondentes através da porta serial. Depois de receber esta instrução, o MCU do usuário analisará o protocolo para controlar o estado de comutação das luzes conectadas ao MCU.
Aquisição de sensor
Pegue a "qualidade do ar", por exemplo: se você quiser obter a qualidade do ar interno, devemos ter um MCU para coletar a qualidade do ar, sensor de qualidade do ar quando o MCU numérico coletado por meio de algoritmo comparando os prós e contras da qualidade do ar, e então o MCU enviado através de uma porta serial para exibir a área de armazenamento de "Bom" ou "Ruim", para alterar o conteúdo de exibição de "Texto variável 0", e então o usuário pode ver intuitivamente os méritos do controle de qualidade. Isso é explicado posteriormente no código MCU.
Etapa 2: Comunicação MCU
STM32 é o MCU com o qual todos estão familiarizados e é um modelo de MCU comum em todo o mundo. Portanto, o modelo específico de STM32 MCU que usei neste projeto é STM32F103RCT6.
Existem muitas séries de STM32, que podem atender a várias demandas do mercado. O kernel pode ser dividido em cortex-m0, M3, M4 e M7, e cada kernel pode ser dividido em mainstream, alto desempenho e baixo consumo de energia.
Puramente do ponto de vista da aprendizagem, você pode escolher F1 e F4, F1 representa o tipo básico, com base no kernel cortex-m3, a frequência principal é 72MHZ, F4 representa o alto desempenho, com base no kernel cortex-m4, o principal a frequência é 180M.
Já para F1, F4 (série 429 e superior), além dos diferentes kernels e melhoria da frequência principal, a característica óbvia da atualização é o controlador LCD e interface da câmera, suporte para SDRAM, esta diferença terá prioridade na seleção do projeto. No entanto, do ponto de vista do ensino universitário e da aprendizagem inicial dos usuários, a série F1 ainda é a primeira escolha. Atualmente, o STM32 da série F1 possui a maior quantidade de materiais e produtos do mercado.
Sobre a instalação do ambiente de desenvolvimento STM32 SCM e o método de download do programa, não farei a introdução.
Inicialização GPIO
Neste projeto, usamos um total de 4 GPIO, um dos quais é o pino de saída PWM. Vejamos primeiro a inicialização de três portas GPIO comuns:
Esta função inicializa PB0 / PB1 / PB2 de STM32F103C8 como o pino de saída e o chama da função principal. Após a inicialização, precisamos ter uma lógica para controlar o estado de saída, nível alto e baixo deste GPIO, então escrevi a função conforme abaixo:
Esta é uma função que você pode entender intuitivamente pelo nome da variável.
Inicialização da porta serial
A parte de inicialização da porta serial está em uart.c:
Em seguida, chame uart_init na função principal para inicializar a taxa de transmissão da porta serial de 115200. Pinos usam PA9 / PA10
Inicialização PWM
Passos específicos:
1. Ajuste o relógio RCC;
2. Defina o relógio GPIO; o modo GPIO deve ser definido como GPIO_Model_AF_PP ou para a função GPIO_PinRemapConfig () se o remapeamento do pino for necessário.
3. Defina os registros relevantes do temporizador TIMx;
4. Defina o registro relacionado ao PWM do temporizador TIMx;
A. Defina o modo PWM
B. Definir o ciclo de trabalho (cálculo da fórmula)
C. Defina a polaridade de comparação de saída (introduzida anteriormente)
D. Mais importante ainda, habilite o estado de saída do TIMx e habilite a saída PWM do TIMx; Após as configurações relevantes serem concluídas, o temporizador TIMx é ativado por TIMx_Cmd () para obter a saída PWM. Chame este TIM3_PWM_Init a partir da função principal.
Etapa 3: Escrita do Código Lógico
Exibir definição de endereço de componente
Os componentes do display têm endereços separados e aqui eu os escrevi como definições de macro: Recepção de dados seriais
Olhando as informações sobre o display STONE, você pode ver que quando o botão é pressionado, a porta serial no display envia protocolos no formato apropriado, que o usuário MCU pode receber e analisar. Quando o botão é pressionado, a porta serial no display envia nove bytes de dados, incluindo dados do usuário. A recepção de dados seriais é escrita no Handler: Os dados recebidos são armazenados no array "USART_RX_BUF". Neste projeto, o comprimento de recebimento é fixo. Quando o comprimento de recebimento é maior que 9 bytes, a extremidade de recebimento é avaliada.
Controle o estado de comutação da lâmpada
Na função principal, escrevi algum código lógico para controlar o estado do interruptor da lâmpada: Como podemos ver, o código primeiro determina se os dados da porta serial são recebidos e, quando os dados da porta serial são recebidos, determina em qual botão o usuário pressiona na tela do visor. Botões diferentes no display têm endereços diferentes, que podem ser vistos no software STONE TOOL: Quando o usuário pressiona o botão "Living Room", o quarto e o quinto bits dos dados enviados pela porta serial da tela são os endereço do botão. Como o quarto bit de todos os botões definidos aqui é 0x00, podemos julgar qual botão o usuário pressiona julgando diretamente os dados do quinto bit. Após obter o botão pressionado pelo usuário, precisamos julgar os dados do usuário recebidos quando o botão é pressionado, que é o oitavo dígito dos dados enviados da tela do display. Portanto, fazemos o seguinte controle: escrever o parâmetro de endereço do botão e os dados do usuário na função "Light_Contral" para controlar o estado liga-desliga da luz. A entidade de função Light_Contral é a seguinte: Como você pode ver, se o endereço do botão for "Sala de estar" e os dados do usuário forem "LightOn", o pino PB0 do MCU está definido para saída de alto nível e a luz está acesa. Os outros três botões são semelhantes, mas não irei continuar aqui.
Saída PWM
Na IU desenhada por mim, existe um regulador deslizante, que serve para controlar o brilho da luz da “Sala das Crianças”. MCU é implementado pelo pino de saída PWM. PWM é PB5. O código é o seguinte: O ajustador deslizante é definido com um valor mínimo de 0x00 e um valor máximo de 0x64. Ao deslizar, a porta serial da tela de exibição também enviará endereços e dados relevantes e, em seguida, definirá a taxa de serviço da saída PWM chamando a seguinte função:
Etapa 4: Aquisição do sensor
Na página de "Sensor" da tela de exibição, existem quatro dados do Sensor.
Os dados também possuem um endereço de armazenamento no display, e podemos alterar o conteúdo real simplesmente gravando os dados nesses endereços por meio da porta serial do MCU.
Aqui, fiz uma implementação de código simples:
Os dados de exibição são atualizados a cada 5 segundos e eu apenas escrevi uma demonstração simples da função de coleta de sensor relevante, porque não tenho esses sensores em minhas mãos.
No desenvolvimento de projetos reais, esses sensores podem ser dados coletados pelo ADC ou dados coletados pelas interfaces de comunicação IIC, UART e SPI. Tudo o que você precisa fazer é gravar esses dados na função correspondente como o valor de retorno.
Etapa 5: efeito real da operação
Recomendado:
Tela LCD STONE para painel do carro: 5 etapas
Tela LCD STONE para painel do carro: Com o rápido desenvolvimento da economia e a melhoria gradual do poder de consumo das pessoas, os carros se tornaram uma necessidade diária de famílias comuns, e todos prestam mais atenção ao conforto e segurança dos carros. A indústria automobilística
Ventilador médico + STONE LCD + Arduino UNO: 6 etapas
Ventilador médico + STONE LCD + Arduino UNO: Desde 8 de dezembro de 2019, vários casos de pneumonia de etiologia desconhecida foram relatados na cidade de Wuhan, província de Hubei, China. Nos últimos meses, quase 80.000 casos confirmados foram causados em todo o país, e o impacto da epidemia ha
Como exibir a frequência cardíaca no LCD STONE com Ar: 31 etapas
Como exibir a frequência cardíaca no LCD STONE com Ar: breve introduçãoA algum tempo atrás, encontrei um módulo sensor de frequência cardíaca MAX30100 em compras online. Este módulo pode coletar dados de oxigênio no sangue e frequência cardíaca dos usuários, o que também é simples e conveniente de usar. De acordo com os dados, descobri que
Stone Lcd + Sensor de giroscópio de aceleração: 5 etapas
Stone Lcd + Sensor de giroscópio de aceleração: Este documento irá ensiná-lo a usar um sensor de giroscópio acelerômetro STM32 MCU + MPU6050 + display de porta serial STONE STVC070WT para um DEMO.STVC070WT é o display serial de nossa empresa, seu desenvolvimento é simples, fácil de usar , você pode ir para o nós
Freqüência cardíaca no LCD STONE: 7 etapas
Frequência cardíaca no LCD STONE: Há algum tempo, encontrei um módulo sensor de frequência cardíaca MAX30100 em compras online. Este módulo pode coletar dados de oxigênio no sangue e frequência cardíaca dos usuários, o que também é simples e conveniente de usar. De acordo com os dados, descobri que existem bibliotecas de M