Índice:
- Etapa 1: Instalando o IDE Arduino, placas e bibliotecas ESP8266 e sua conta ThingSpeak
- Etapa 2: Explorando o esboço
- Etapa 3: Explicações sobre …
- Etapa 4: Comunicações
- Etapa 5: Variáveis Principais
Vídeo: Como construir seu próprio anemômetro usando chaves de palheta, sensor de efeito Hall e alguns recados no Nodemcu - Parte 2 - Software: 5 etapas (com fotos)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Introdução
Esta é a sequência do primeiro post "Como construir seu próprio anemômetro usando chaves Reed, sensor de efeito Hall e alguns fragmentos no Nodemcu - Parte 1 - Hardware" - onde mostro como montar os dispositivos de medição de velocidade e direção do vento. Aqui, exploraremos o software de controle de medição projetado para uso em um Nodemcu usando o IDE do Arduino.
Descrição do Projeto
No post anterior, os aparelhos armados e conectados ao Nodemcu são capazes de medir a velocidade e direção do vento. O software de controle foi projetado para ler a rotação do anemômetro por um período de tempo, calcular a velocidade linear, ler a direção em que a palheta está, mostrar os resultados no OLED, publicar os resultados no ThingSpeak e dormir por 15 minutos até a próxima medição.
Isenção de responsabilidade: este anemômetro não deve ser usado para fins profissionais. É apenas para uso acadêmico ou doméstico.
Nota: Inglês não é minha língua natural. Se você encontrar erros gramaticais que o impeçam de entender o projeto, entre em contato para corrigi-los. Muito obrigado.
Etapa 1: Instalando o IDE Arduino, placas e bibliotecas ESP8266 e sua conta ThingSpeak
Instalando Arduino IDE e Nodemcu
Se você nunca instalou o IDE do Arduino, leia o tutorial no link - Como instalar o IDE do Arduino - onde você pode encontrar as instruções completas.
Próximo passo, para instalar a placa Nodemcu use este tutorial do Instructables Magesh Jayakumar que é muito completo. Como instalar o Nodemcu no Arduino IDE
Instalando Bibliotecas
Próxima etapa, você deve instalar as bibliotecas que usa o esboço. Eles são comuns e você pode seguir as etapas abaixo.
Biblioteca ThingSpeak -
Biblioteca ESP8266 -
Criação de uma conta ThingSpeak
Para usar o ThingSpeak (https://thingspeak.com/) você deve criar uma conta (ainda é gratuita para um certo número de interações) onde você pode salvar os dados medidos em seu anemômetro e monitorar as condições do vento em sua casa, mesmo via celular. Ao usar o ThingSpeak, você pode dar ao público acesso aos dados coletados para quem estiver interessado. Essa é uma boa vantagem do ThingSpeak. Entre na página inicial e siga as etapas para criar sua conta.
Assim que a conta for criada, entre neste tutorial - ThingSpeak Getting Started - para criar seus canais. Está muito bem explicado. Em resumo, você deve criar um canal onde os dados serão armazenados. Este canal possui um ID e uma API chave que deve ser referenciada no esboço toda vez que você deseja registrar dados. ThingSpeak armazenará todos os dados em um banco e os mostrará toda vez que você acessar sua conta, da forma que você configurou.
Etapa 2: Explorando o esboço
Fluxograma
No diagrama, você pode entender o fluxograma do esboço. Ao despertar (link) o Nodemcu, ele se conectará à sua rede Wi-Fi, cujos parâmetros você configurou e começará a contar 1 minuto de tempo para realizar as medições. Primeiramente, ele contará as rotações do anemômetro por 25 segundos, calcule a velocidade linear e ler a direção do vento. Os resultados são mostrados no OLED. Repita os mesmos passos e para esta segunda leitura, ela será transmitida para o ThingSpeak.
Em seguida, o Nodemcu dorme por 15 minutos para economizar bateria. Como estou usando um pequeno painel solar, é fundamental que o faça. Se você estiver usando uma fonte de 5 V, você pode modificar o programa para que ele não durma e continue medindo os dados.
Estrutura dos programas
No diagrama, você pode ver a estrutura do esboço.
Anemometer_Instructables
É o programa principal que carrega as bibliotecas, inicia as variáveis, controla a interrupção de attach, chama todas as funções, calcula a velocidade do vento, determina sua direção e o põe para dormir.
comunicações
Conecte o WiFi e envie os dados para o ThingSpeak.
credentials.h
As chaves da sua rede WiFi e os identificadores da sua conta no ThingSpeak. É aqui que você mudará seus IDs de chaves e APIs.
define.h
Ele contém todas as variáveis do programa. É aqui que você pode alterar os tempos de leitura ou por quanto tempo o nodemcu deve dormir.
funções
Ele contém as funções para combinar os parâmetros e ler o multiplexador, bem como a função para ler as rotações do anemômetro.
oledDisplay
Mostra na tela os resultados da velocidade e direção do vento.
Etapa 3: Explicações sobre …
Anexar interrupção
A rotação do anemômetro é medida pela função attachInterrupt () (e detachInterrupt ()) no GPIO 12 (pino D6) do Nodemcu (possui recurso de interrupção em seus pinos D0-D8).
Interrupções são eventos ou condições que fazem com que o microcontrolador pare a execução da tarefa que está realizando, trabalhe em uma tarefa diferente temporariamente e volte à tarefa inicial.
Você pode ler os detalhes da função no link do tutorial do Arduino. Veja attachInterrupt ().
Sintaxe: attachInterrupt (pin, função de callback, tipo / modo de interrupção);
pin = D6
função de retorno de chamada = rpm_anemômetro - conta cada pulso em uma variável.
tipo / modo de interrupção = RISING - interrupção quando o pino vai de baixo para alto.
A cada pulso produzido pelo magneto no sensor Hall, o pino vai de baixo para alto e a função de contagem é ativada e somado o pulso em uma variável, durante os 25 segundos estabelecidos. Depois de decorrido o tempo, o contador é desconectado (detachInterrupt ()) e a rotina calcula a velocidade durante a desconexão.
Calculando a velocidade do vento
Depois de determinar quantas rotações o anemômetro deu em 25 segundos, calculamos a velocidade.
- RADIO é a medida do eixo central do anemômetro até a ponta da bola de pingue-pongue. Você deve ter medido o seu muito bem - (veja isso no diagrama que diz 10 cm).
- RPS (rotações por segundo) = rotações / 25 segundos
- RPM (rotações por minuto) = RPS * 60
- OMEGA (velocidade angular - radianos por segundo) = 2 * PI * RPS
- Linear_Velocity (metros por segundo) = OMEGA * RADIO
- Linear_Velocity_kmh (Km por hora) = 3,6 * Linear_Velocity e isso é o que vai ser enviado ao ThingSpeak.
Leia a direção do cata-vento
Para ler a posição do cata-vento e determinar a direção do vento o programa envia sinais de baixa e alta para o multiplexador com todas as combinações dos parâmetros A, B, C (matriz muxABC) e espera receber no pino A0 o resultado que pode ser qualquer tensão entre 0 e 3,3V. As combinações são mostradas no diagrama.
Por exemplo, quando C = 0 (baixo), B = 0 (baixo), A = 0 (baixo) o multiplexador fornece os dados do pino 0 e envia o sinal para A0 que é lido pelo Nodemcu; se C = 0 (baixo), B = 0 (baixo), A = 1 (alto) o multiplexador enviará os dados do pino 1 e assim por diante, até que a leitura dos 8 canais seja concluída.
Como o sinal é analógico, o programa se transforma em digital (0 ou 1), se a tensão for menor ou igual a 1,3 V o sinal é 0; se for maior que 1,3 V o sinal é 1. O valor 1,3 V é arbitrário e para mim funcionou muito bem. Sempre há pequenos vazamentos de corrente e isso evita que não haja falsos positivos.
Esses dados são armazenados em um vetor val [8] que será comparado com a matriz de endereço como a bússola. Veja a matriz no diagrama. Por exemplo, se o vetor recebido for [0, 0, 1, 0, 0, 0, 0, 0, 0] indica na matriz a direção E e corresponde a um ângulo de 90 graus; if [0, 0, 0, 0, 0, 0, 1, 1] indica na matriz o endereço WNW e corresponde a um ângulo de 292,5 graus. O N corresponde a [1, 0, 0, 0, 0, 0, 0, 0, 0] e ângulo de 0 graus.
O que será enviado para o ThingSpeak está inclinado porque só aceita números.
Etapa 4: Comunicações
Como enviar dados para ThingSpeak
A função thingspeaksenddata () é responsável por enviar os dados.
ThingSpeak.setField (1, float (linear_velocity_kmh)) - Envie os dados de velocidade para o campo1 do meu canal
ThingSpeak.setField (2, float (wind_Direction_Angle)) - Enviar os dados de endereço para o campo2 do meu canal
ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - Enviar para meu canal myChannelNumber, com a API myWriteAPIKey escrita indicada por TS. Esses dados foram gerados pelo TS ao criar sua conta e canal.
Nas fotos acima você pode ver como o ThingSpeak mostra os dados recebidos.
Neste link você pode acessar os dados do meu projeto no canal público da ThingSpeak.
Etapa 5: Variáveis Principais
parâmetros do cata-vento
- MUX_A D5 - mux pi A para Nodemcu pino D5
- MUX_B D4 - mux pino B para Nodemcu pino D4
- MUX_C D3 - mux pino C para Nodemcu pino D3
- READPIN 0 - Entrada analógica em NodeMcu = A0
- NO_PINS 8 - número de pinos mux
- val [NO_PINS] - portas 0 a 7 de mux
- wind_Direction_Angle - Ângulo da direção do vento
- String windRose [16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"} - cardenais, colaterais e sub-colaterais
- windAng [16] = {0, 22,5, 45, 67,5, 90, 112,5, 135, 157,5, 180, 202,5, 225, 247,5, 270, 292,5, 315, 337,5} - ângulos de cada direção
- Dígito [16] [NO_PINS] - Matriz de direções
- muxABC [8] [3] - combinações ABC mux
parâmetros do anemômetro
- rpmcount - conta quantas rotações completas o anemômetro fez no tempo alocado
- medida de tempo = 25,00 - tempo de duração da medição em segundos
- timetoSleep = 1 - Nodemcu tempo de despertar em minutos
- sleepTime = 15 - tempo para continuar dormindo em minutos
- rpm, rps - frequências de rotação (rotações por minuto, rotações por segundo)
- raio - metros - a medida do comprimento da asa do anemômetro
- velocidade_ linear - velocidade linear em m / seg
- linear_velocity_kmh - velocidade linear em km / h
- ômega - velocidade radial em rad / seg
Abaixo você pode encontrar o esboço completo. Crie uma nova pasta na pasta Arduino do seu computador com o mesmo nome do programa principal (Anemometer_Instructables) e coloque-os todos juntos.
Insira os dados de sua rede wi-fi e o ThingSpeak ID e API Writer Key na parte Credentials.he salve. Faça upload para o Nodemcu e pronto.
Para testar o funcionamento do sistema, recomendo um bom ventilador rotativo.
Para acessar os dados pelo celular, baixe o aplicativo para IOS ou Android chamado ThingView, que, felizmente, ainda é gratuito.
Defina as configurações da sua conta e você estará pronto para ver as condições do vento em sua casa onde quer que esteja.
Se você tiver interesse, acesse meu canal ThingSpeak Channel ID: 438851, que é público e lá você encontrará as medidas de vento e direção em minha casa.
Eu realmente espero que você se divirta.
Se você tiver alguma dúvida, não hesite em me contatar.
Cumprimentos
Recomendado:
Como construir seu próprio computador desktop: 20 etapas
Como construir seu próprio computador de mesa: Se você deseja construir seu próprio computador para jogos de vídeo, design gráfico, edição de vídeo ou mesmo apenas para se divertir, este guia detalhado mostrará exatamente o que você precisa para construir seu próprio computador pessoal
Como construir seu próprio módulo NRF24L01 + pa + lna: 5 etapas
Como construir seu próprio módulo NRF24L01 + pa + lna: o módulo baseado em Nrf24L01 é muito popular, porque é fácil de implementar em projetos de comunicação sem fio. O módulo pode ser encontrado abaixo de 1 $ com uma versão impressa de PCB ou antena monopolo. O problema com esses módulos baratos é que eles têm
Como construir seu próprio quadricóptero impresso em 3D: 4 etapas
Como construir seu próprio quadricóptero impresso em 3D: Hoje vamos fazer um quadricóptero totalmente funcional com peças, motores e eletrônicos impressos em 3D
Sensor de efeito Hall no Arduino usando o Fidget Spinner: 3 etapas (com imagens)
Sensor de efeito Hall no Arduino usando o Fidget Spinner: Resumo Neste projeto, estou explicando como o sensor de efeito Hall funciona medindo a velocidade do spinner Fidget com a placa Arduino. funcionando: -Um sensor de efeito Hall é um transdutor que varia sua tensão de saída em resposta a um campo magnético. Efeito Hall
Como construir seu próprio motor a jato: 10 etapas (com fotos)
Como construir seu próprio motor a jato: Você não precisa ser Jay Leno para ter uma motocicleta a jato, e mostraremos como fazer seu próprio motor a jato bem aqui para alimentar seus veículos malucos. Este é um projeto em andamento, e muitas informações adicionais estarão disponíveis em nosso site