- Trabalho de um regulador de ventilador de teto baseado em IoT
- Materiais necessários para o circuito de controle de velocidade do ventilador CA
- Circuito de controle regulador de ventilador AC
- Projeto de PCB para o regulador de ventilador de teto controlado por IoT
- Configurando uma conta Firebase
- Código Arduino para controlar o regulador do ventilador com NodeMCU
- Construindo o aplicativo Fan Regulator com o MIT App Inventor
- Testando o circuito do sensor de toque baseado em ESP32
- Outras melhorias
Neste artigo, estamos construindo um Circuito Regulador de Ventilador CA, que é capaz de controlar a velocidade do ventilador restringindo o fluxo de corrente para o ventilador. O termo Regulador de Ventilador de Teto AC é um bocado, portanto, simplesmente o chamaremos de Regulador de Ventilador de agora em diante. Um circuito regulador de ventilador é um componente crucial usado para aumentar ou diminuir a velocidade de um ventilador / motor CA de acordo com as necessidades. Há alguns anos, você tinha a opção de escolher entre um regulador de ventilador do tipo resistivo convencional ou um regulador eletrônico, mas hoje em dia tudo foi substituído pelo circuito do regulador de ventilador eletrônico.
Em um artigo anterior, mostramos como você poderia construir um Circuito de Controle de Ângulo de Fase AC com um Arduino que era capaz de controlar o brilho de uma lâmpada incandescente e também controlar a velocidade de um Ventilador, para aumentar um nível neste artigo, vamos construir um circuito regulador de ventilador de teto CA baseado em IoT. Que será capaz de controlar a velocidade do seu ventilador de teto com a ajuda de um aplicativo Android.
Trabalho de um regulador de ventilador de teto baseado em IoT
O circuito Fan Regulator é um circuito simples que é capaz de controlar a velocidade de um ventilador de teto AC alterando o ângulo de fase da onda sinusoidal AC ou em termos simples, controle preciso do TRIAC. Como mencionei todo o funcionamento básico do circuito regulador do ventilador CA no artigo AC Phase Angle Control com 555 Timer e PWM, vamos nos concentrar na construção real do circuito. E novamente se você quiser saber mais sobre o assunto, consulte também o artigo sobre AC Light Dimmer usando Arduino e Projeto TRIAC.
O diagrama de blocos básico acima mostra como o circuito realmente funciona. Como eu disse antes, geraremos um sinal PWM com a ajuda do Firebase IoT e NodeMCU, então o sinal PWM será passado através do filtro passa-baixa que controlará a porta de um MOSFET depois que um temporizador 555 controlará o TRIAC real com a ajuda de um optoacoplador.
Nesse caso, o aplicativo Android altera o valor no firebaseDB e o ESP verifica constantemente se há mudanças que estão acontecendo nesse banco de dados, se ocorrer alguma mudança que seja puxada para baixo e o valor seja convertido em um sinal PWM
Materiais necessários para o circuito de controle de velocidade do ventilador CA
A imagem abaixo mostra o material usado para construir este circuito, como ele é feito com componentes muito genéricos, você deverá encontrar todo o material listado na sua loja local de hobby.
Também listei os componentes em uma tabela abaixo com tipo e quantidade, pois é um projeto de demonstração, estou usando um único canal para fazer isso. Mas o circuito pode ser facilmente ampliado conforme a necessidade.
- Terminal de parafuso Conector de 5,04 mm - 2
- Conector macho de 2,54 mm - 1
- Resistor de 56K, 1W - 2
- Diodo 1N4007 - 4
- Capacitor 0,1uF, 25V - 2
- Regulador de tensão AMS1117 - 1
- Capacitor 1000uF, 25V - 1
- Tomada DC Power - 1
- Resistor 1K - 1
- Resistor 470R - 2
- Resistor 47R - 2
- Resistores 82 K - 1
- Resistores 10 K - 5
- PC817 Optoacoplador - 1
- NE7555 IC - 1
- MOC3021 Opto TriacDrive - 1
- IRF9540 MOSFET - 1
- 3.3uF Capacitor - 1
- Fios de conexão - 5
- Capacitor 0,1uF, 1KV - 1
- Microcontrolador ESP8266 (ESP-12E) - 1
Circuito de controle regulador de ventilador AC
O esquema do circuito regulador do ventilador IoT é mostrado abaixo, este circuito é muito simples e usa componentes genéricos para obter o controle do ângulo de fase.
Este circuito é feito de componentes cuidadosamente projetados. Vou passar por cada um e explicar cada bloco.
Chip Wi-Fi ESP8266 (ESP-12E):
Esta é a primeira parte do nosso circuito e é a parte onde mudamos muitas coisas, as outras partes permanecem exatamente as mesmas, ou seja, se você seguiu o artigo anterior.
Nesta seção, retiramos os pinos Enable, Reset e GPIO0, e também retiramos o GPIO15 e o Ground Pin, que são recomendados pelo datasheet do chip. Quanto à programação, colocamos um cabeçalho de 3 pinos expondo o TX, RX e o pino de aterramento, por meio do qual podemos programar o chip com muita facilidade. Além disso, colocamos um botão tátil para colocar o GPIO0 no solo, esta é uma etapa necessária para colocar o ESP em modo de programação. Selecionamos o pino GPIO14 como saída através da qual o sinal PWM é gerado.
Nota! No momento da programação, temos que apertar o botão e alimentar o dispositivo com o conector barril DC.
Circuito de detecção de Zero-Crossing:
Em primeiro lugar, em nossa lista está o circuito de detecção de cruzamento zero feito com dois resistores de 56K, 1W em conjunto com quatro diodos 1n4007 e um optoacoplador PC817. E este circuito é responsável por fornecer o sinal de cruzamento de zero para o IC do temporizador 555. Além disso, isolamos a fase e o sinal neutro para usá-lo posteriormente na seção TRIAC.
Regulador de tensão AMS1117-3.3V:
O regulador de tensão AMS1117 é usado para alimentar o circuito, o circuito é responsável por fornecer energia para todo o circuito. Além disso, usamos dois capacitores de 1000uF e um capacitor de 0,1uF como um capacitor de desacoplamento para o AMS1117-3.3 IC.
Circuito de controle com temporizador NE555:
A imagem acima mostra o circuito de controle do temporizador 555, o 555 está configurado em uma configuração monoestável, então quando um sinal de gatilho do circuito de detecção de cruzamento zero atinge o gatilho, o temporizador 555 começa a carregar o capacitor com a ajuda de um resistor (em geral), mas nosso circuito tem um MOSFET no lugar de um resistor, e controlando a porta do MOSFET, controlamos a corrente que vai para o capacitor, é por isso que controlamos o tempo de carregamento, portanto, controlamos a saída dos 555 temporizadores.
TRIAC e o circuito de driver TRIAC:
O TRIAC está atuando como o interruptor principal que realmente liga e desliga, controlando a saída do sinal AC. Conduzindo o TRIAC usando o MOC3021 Opto-Triac-drive, ele não apenas aciona o TRIAC, mas também fornece isolamento óptico, o capacitor de alta tensão 0,01uF 2KV e o resistor 47R forma um circuito de amortecimento, que protege nosso circuito de picos de alta tensão que ocorrem quando está conectado a uma carga indutiva. A natureza não senoidal do sinal AC comutado é responsável pelos picos. Além disso, é responsável por questões de fator de potência, mas isso é assunto para outro artigo.
Filtro passa-baixo e MOSFET do canal P (atuando como o resistor no circuito):
O resistor de 82K e o capacitor de 3.3uF formam o filtro passa-baixa que é responsável por suavizar o sinal PWM de alta frequência gerado pelo Arduino. Conforme mencionado anteriormente, o MOSFET do Canal P atua como o resistor variável, que controla o tempo de carga do capacitor. O controle é o sinal PWM que é suavizado pelo filtro passa-baixa.
Projeto de PCB para o regulador de ventilador de teto controlado por IoT
O PCB para nosso circuito regulador de ventilador de teto IoT é projetado em uma placa de um lado. Usei o software de design Eagle PCB para projetar meu PCB, mas você pode usar qualquer software de design de sua escolha. A imagem 2D do design da minha placa é mostrada abaixo.
Preenchimento de aterramento suficiente é usado para fazer conexões de aterramento adequadas entre todos os componentes. A entrada de 3,3 Vcc e a entrada de 220 Vca são preenchidas no lado esquerdo, a saída está localizada no lado direito da PCB. O arquivo de design completo do Eagle junto com o Gerber pode ser baixado do link abaixo.
- Arquivos PCB Design, GERBER e PDF para circuito regulador de ventilador de teto
PCB feito à mão:
Por conveniência, fiz minha versão artesanal do PCB e é mostrado abaixo.
Com isso, nosso hardware está pronto de acordo com nosso diagrama de circuito, agora temos que preparar nosso aplicativo Android e o Google Firebase.
Configurando uma conta Firebase
Para a próxima etapa, precisamos configurar uma conta Firebase. Todas as comunicações passarão pela conta do firebase. Para configurar uma conta do Firebase, acesse o site do Firebase e clique em 'começar'.
Depois de clicar em, você precisa fazer login com sua conta do Google e
uma vez logado, você precisa criar um projeto clicando no botão criar um projeto.
Isso o redirecionará para uma página que se parece com a imagem acima. Digite o nome do seu projeto e clique em continuar.
Novamente, clique em continuar.
Depois de fazer isso, você precisa concordar com alguns termos e condições clicando na caixa de seleção, em seguida, você precisa clicar no botão criar projeto.
Se você tiver feito tudo corretamente, depois de algum tempo, receberá uma mensagem como esta. Depois de terminar, seu console do firebase deve ser semelhante à imagem abaixo.
Agora precisamos coletar duas coisas daqui. Para fazer isso, você precisa clicar no nome do projeto que acabou de criar. Para mim, é o CelingFanRegulator, ao clicar nele, você terá um painel semelhante ao da imagem abaixo.
Clique em configurações, depois em configurações do projeto, a página que você obterá se parecerá com as imagens abaixo.
Clique na conta de serviço -> segredo do banco de dados.
Copie o segredo do banco de dados e guarde-o em algum lugar para uso posterior.
Em seguida, clique no banco de dados em tempo real e copie a URL. também guarde isso para uso posterior.
E isso é tudo, há o lado firebase das coisas.
Código Arduino para controlar o regulador do ventilador com NodeMCU
Um código Arduino simples cuida da comunicação entre o firebase e o módulo ESP-12E, a explicação do circuito e do código é fornecida abaixo. Primeiro, definimos todas as bibliotecas necessárias necessárias, você pode baixar as seguintes bibliotecas dos links fornecidos Biblioteca JSON do Arduino e biblioteca FirebaseArduino
#incluir
Estaremos usando a biblioteca FirebaseArduino para estabelecer comunicação com o firebase.
// Defina-os para executar exemplos. #define FIREBASE_HOST "celingfanregulator.firebaseio.com" #define FIREBASE_AUTH "1qAnDEuPmdy4ef3d9QLEGtYcA1cOehKmpmzxUtLr" #define WIFI_SSID "seu SSID" #define WIFI_PASS "sua senha WIF"
Em seguida, definimos o host firebase, firebase auth, que salvamos anteriormente quando estávamos criando a conta firebase. Em seguida, definimos o SSID e a senha do nosso roteador.
String Resivedata; #define PWM_PIN 14;
Em seguida, definimos uma variável do tipo string, Resivedata , onde todos os dados serão armazenados, e também definimos o PWM_PIN onde obteremos a saída do PWM.
Em seguida, na seção void setup () , fazemos o necessário,
Serial.begin (9600); pinMode (PWM_PIN, OUTPUT); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.print ("conectando"); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); atraso (500); } Serial.println (); Serial.print ("conectado:"); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); Firebase.setString ("Variable / Value", "FirstTestStrig");
Primeiro, habilitamos o serial chamando a função Serial.begin () . Em seguida, definimos o pino PWM como OUTPUT. Começamos a conexão Wi-Fi com a ajuda da função WiFi.begin () e passamos o SSID e a senha na função. Verificamos o status da conexão em um loop while e, uma vez conectado, interrompemos o loop e continuamos. A seguir, imprimimos a mensagem conectada com o endereço IP.
Finalmente, começamos a comunicação com o firebase com Firebase.begin () função e passamos as FIREBASE_HOST e FIREBASE_AUTH parâmetros que definimos anteriormente. E definimos a string com a função setString () , que marca o fim da função de configuração. Na seção void loop () ,
Resivedata = Firebase.getString ("Variable / Value"); Serial.println (Resivedata); analogWrite (PWM_PIN, map (Resivedata.toInt (), 0, 80, 80, 0)); Serial.println (Resivedata); atraso (100);
Chamamos a função getString () com Variable / Value onde os dados são armazenados no firebase, um exemplo seria como a imagem abaixo-
Em seguida, imprimimos o valor apenas para depuração. Em seguida, usamos a função map para mapear o valor, 80 é usado porque dentro do intervalo de 0 a 80, somos capazes de controlar a porta do MOSFET com precisão, e o filtro passa-baixo RC é um pouco responsável por esse valor. Dentro desta faixa, o circuito de controle do ângulo de fase opera com precisão, você pode chamar o valor de um ponto ideal de hardware-software. Se você está fazendo este projeto e enfrenta problemas, precisa brincar com o valor e determinar os resultados sozinho.
E depois disso, usamos a função analogWrite () para alimentar os dados e habilitar o PWM, depois disso, usamos a função Serial.println () novamente apenas para revisar o resultado e, por fim, usamos uma função de atraso para reduzir o hit-count para a API firebase, que finaliza nosso programa.
Construindo o aplicativo Fan Regulator com o MIT App Inventor
Com a ajuda do AppInventor, vamos fazer um aplicativo Android que se comunicará com o firebase e tem autoridade para alterar os dados armazenados no banco de dados do firebase.
Para fazer isso, acesse o site appInventors, faça login com sua conta do Google e aceite os termos e condições. Depois de fazer isso, você verá uma tela semelhante à imagem abaixo.
Clique no ícone iniciar um novo projeto e dê um nome a ele e clique em OK, uma vez que você fizer isso, será apresentada uma tela como a imagem abaixo.
Uma vez lá, você precisa primeiro colocar dois rótulos, onde isso é para colocar o controle deslizante um pouco para baixo, em seguida, você precisa puxar alguns módulos e eles são o módulo FirebaseDB e o módulo web.
O módulo firebaseDB se comunica com o firebase, o módulo da web é usado para lidar com a solicitação. Que se parece com a imagem abaixo.
Feito isso, você precisa puxar o controle deslizante e um rótulo que chamamos de PWM, se você está ficando confuso neste momento, pode verificar alguns outros tutoriais sobre como fazer um aplicativo com um inventor de aplicativo.
Depois de concluir o processo, clique no ícone do firebase DB e insira o token do firebase e o URL do firebase que salvamos ao criar a conta do firebase.
Agora, concluímos a seção de design e precisamos configurar a seção de bloco. Para fazer isso, precisamos clicar no botão de bloqueio no canto superior direito ao lado do designer.
Depois de clicar no controle deslizante e você verá uma longa lista de módulos, retire o primeiro módulo e passe o mouse sobre o botão de posição do polegar, você será saudado com mais dois módulos, puxe ambos para fora. Vamos usá-los mais tarde.
Agora anexamos a variável thumbposition , arredondamos e obtemos o valor da posição thumb. Em seguida, clicamos no firebasedb e puxamos o valor da tag FirebaseDB.storeValue para armazenar, modular e anexá-lo à parte inferior do valor da posição do polegar.
Uma vez feito isso, retiramos uma caixa de texto vazia clicando no bloco de texto e a anexamos com a tag, esta é a tag que definimos no IDE do Arduino para ler e gravar os dados no firebase. Agora anexe a variável de valor thumb ao valor para armazenar a tag. Se você fez tudo corretamente, movendo o controle deslizante, você poderá alterar os valores no firebaseDB.
- O.aia (arquivo salvo) e.apk (arquivo compilado)
O que marca o fim do nosso processo de criação de aplicativos. Um instantâneo do aplicativo Android que acabamos de criar mostrado abaixo.
Testando o circuito do sensor de toque baseado em ESP32
Para testar o circuito, conectei uma lâmpada incandescente paralela ao ventilador de teto e alimentei o circuito com um adaptador DC 5V, como você pode ver na imagem acima, o controle deslizante do aplicativo está definido para baixo, é por isso a lâmpada está brilhando com baixo brilho. E o ventilador também está girando lentamente.
Outras melhorias
Para esta demonstração, o circuito é feito em um PCB feito à mão, mas o circuito pode ser facilmente construído em um PCB de boa qualidade, em meus experimentos, o tamanho do PCB é muito pequeno devido ao tamanho do componente, mas em um ambiente de produção, pode ser reduzido usando componentes SMD baratos, descobri que usar um temporizador 7555 em vez de um temporizador 555 aumenta o controle extensivamente, além disso, a estabilidade do circuito também aumenta.