Índice:
- Etapa 1: Lógica do software: Arquitetura do sistema
- Etapa 2: Etapa 1: Fiação do Hardware
- Etapa 3: Etapa 2: Arduino
- Etapa 4: Etapa 3: NodeJS
- Etapa 5: Etapa 4: a interface da web
- Etapa 6: Resultado
Vídeo: Projeto Arduino: controle eletrônico pela Internet usando Nodejs + banco de dados SQL e website: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
Projeto por: Mahmed.tech
Data da realização: 14 de julho de 2017
Nível de dificuldade: iniciante com algum conhecimento de programação.
Requisito de hardware:
- Arduino Uno, Nano, Mega (acho que a maioria dos MCU com a conexão serial funcionará)
- Único LED e resistor de limitação de corrente. Use esta calculadora se você não tiver certeza: Ohms Law Calculator
- Potenciômetro de 10K.
Requisito de software:
- IDE Arduino
- Node. JS (este é um software em um computador, muito simples de instalar)
- Servidor MySQL (a maneira mais fácil que encontrei é usar uma hospedagem barata. Você também pode obter nomes de domínio gratuitos)
Linguagem de programação e script usada:
Arduino (C / C ++ modificado), JavaScript (Nodejs), PHP, HTML e CSS
IntroduçãoEste projeto em poucas palavras: Controlando um microcontrolador Arduino a partir de uma interface da web. Portanto, controle qualquer dispositivo elétrico de qualquer lugar com internet. Eu queria ampliar minha compreensão de programação e desenvolvimento web e que melhor maneira de fazer isso do que fazer um projeto simples, mas eficaz. O hardware é mínimo para que eu pudesse me concentrar mais no software. Portanto, optei por um LED simples, configuração de potenciômetro. O potenciômetro enviará dados e o led receberá (brilho PWM). Usando o NodeJS, os dados seriais foram lidos (valor do potenciômetro) e gravados (brilho do led). A parte difícil deste projeto foi obter dados de entrada de um local remoto (servidor web)
Etapa 1: Lógica do software: Arquitetura do sistema
Dados do potenciômetro:
Isso começa no Arduino, ler o valor do potenciômetro é impressão serial. No entanto, desta vez usaremos Node. JS para ler o valor. O NodeJS abrirá a comunicação serial para a mesma porta em que o Arduino está conectado e lerá o valor do potenciômetro impresso. O NodeJS irá então fazer o upload dos dados para um banco de dados SQL remoto, isso acontecerá toda vez que um novo valor de pote for impresso. Uma página da Web se conectará ao intervalo definido do banco de dados SQL e recuperará o valor do potenciômetro. Em seguida, será exibido na página da web.
Dados Led:
Para o led, o brilho do PWM será definido pelo usuário em uma página remota da Web, portanto, sua jornada começa na extremidade oposta do espectro. Os dados de entrada são salvos em um banco de dados SQL; a cada intervalo definido, o banco de dados é verificado quanto a uma mudança no PWM do led, isso é feito pelo NodeJS. Se o valor for diferente do valor anterior, o novo valor será enviado ao Arduino por meio de um barramento serial. O Arduino altera o valor PWM de saída do led para alterar seu brilho.
A calculadora da lei de Ohms usa a fórmula V = IR e P = IV = I²R = V² / R Para este projeto, usarei um led azul. Isso é importante porque à medida que a frequência da luz aumenta, a queda de tensão também aumenta. Já a luz azul tem uma frequência mais alta em comparação com algo como um led vermelho. Isso significa uma tensão direta mais alta. Dependendo da marca, tipo e tamanho, a faixa de trabalho pode variar. Para minha configuração, usei um resistor de 220 Ω em série, negativo para o terra e positivo para um pino PWM em um Arduino. O potenciômetro foi conectado a um pino analógico. Com 5VCC uma extremidade GND a outra e o pino do meio conectado a um pino analógico (A0 no meu caso).
Etapa 2: Etapa 1: Fiação do Hardware
Isso é muito simples: basta conectar seu resistor limitador de corrente em série com o LED e certifique-se de que você está direcionado corretamente. Um ponto irá para o GND enquanto a outra extremidade irá para o pino do Arduino. Para minha configuração, usei o pino 12 para led e A7 para Pot. Não tenho um esquema, pois é um circuito muito simples. No entanto, encontrei isso online (imagem)
Etapa 3: Etapa 2: Arduino
Primeiro, o liderado e o pote foram verificados para ver se estavam funcionando conforme o esperado. Isso foi diminuído por um programa simples onde o valor do pote controla o led. Usei a função de restrição para alterar o intervalo de pot de 0 a 1023 a 0 a 255, mas um / 4 simples também funciona. O valor do potenciômetro foi suavizado tomando a média de 10 leituras consecutivas, para remover picos. (No entanto, essa suavização causou problemas com o NodeJS, então isso foi removido posteriormente no projeto - mais sobre isso)
Código Arduino
Leitura / gravação serial A próxima etapa é obter a entrada do usuário por meio das janelas do monitor serial fornecidas pelo Arduino ide para definir o brilho. Para fazer isso, o serial.parseInt () é usado, o que leva um valor inteiro e ignora a string. Além disso, uma verificação de erro é adicionada ao código. O intervalo válido de um valor PWM é 0 - 255, quando um usuário insere> 255, ele atribui o valor 255 e se o usuário insere o valor ou <+/- 5, fiz isso para tornar a leitura mais estável, pois era flutuação. Por que este é um grande problema relacionado à atualização de SQL, mais sobre isso depois.
Etapa 4: Etapa 3: NodeJS
Não vou mostrar a você como obter ou configurar um servidor SQL. Existem muitos tutoriais por aí.
Existem 3 aspectos principais no programa NodeJS:
Ler dados seriais
Gravar dados seriais
Atualizar banco de dados SQL
Para fazer uma conexão serial dentro do NodeJS, um módulo chamado serialport deve ser baixado, o que pode ser feito usando o comando npm. Abra o CMD na pasta onde o programa NodeJS será mantido, instale digitando: npm install serialport Além disso, o módulo SQL deve ser instalado para poder se conectar ao banco de dados sql: npm install mysql NodeJS - Serial Port Meu primeiro passo com o NodeJS programa era para ler os dados impressos e enviar pwm brilho para o Arduino. Isso foi feito abrindo a conexão serial na mesma taxa de braud e porta. Assim que a conexão foi estabelecida, li as mensagens recebidas e as imprimi na janela do console. Problema levantado quando tentei escrever o valor pwm para controlar o brilho.
Ele continuava lançando erros: Port Not Open, minha solução inicial era chamar a função de gravação quando havia dados de entrada. No entanto, esta foi uma solução ruim e eu estava bastante insatisfeito com a solução, embora funcionasse, ela só seria enviada quando o valor do pote fosse alterado. O código de exemplo para o módulo serial também não funcionaria gerando o mesmo erro. Mais tarde, descobri que o programa estava tentando executar a função de gravação sem abrir a porta, o que resultou naquele erro. Eu resolvi esse problema usando a função setInterval ()
NodeJS - MySQLA biblioteca MySQL foi usada (npm install MySQL) para se conectar ao banco de dados SQL, uma vez que o servidor em um local remoto o endereço IP do servidor foi usado em vez de localhost.
var con contém as informações de conexão no formato JSON, uma vez que a conexão foi feita com sucesso, o banco de dados pode ser consultado. Foram criadas 2 funções uma para atualizar a tabela outra selecionando com parâmetros levando na consulta SQL. A tabela de atualização é chamada quando um novo valor de potenciômetro é recebido e a consulta de verificação de brilho será executada periodicamente.
Link NodeJSCode
Etapa 5: Etapa 4: a interface da web
Interface web
A página principal da web foi escrita em PHP, pois eu já tinha alguma experiência com meus bancos de dados CO323 e o módulo da Web na universidade. A tabela e o formulário HTML foram usados para exibir os dados sql.
Código de acesso PHP SQL: Link Role para a seção de interface da web.
Código da página da web em HTML e CSS * Javascript: Link Role para a parte inferior
Webpage final
Recomendado:
Como conectar o NodeMCU ESP8266 ao banco de dados MySQL: 7 etapas
Como conectar o NodeMCU ESP8266 ao banco de dados MySQL: MySQL é um sistema de gerenciamento de banco de dados relacional (RDBMS) amplamente usado que usa linguagem de consulta estruturada (SQL). Em algum ponto, você pode querer fazer o upload dos dados do sensor Arduino / NodeMCU para o banco de dados MySQL. Neste Instructable, veremos como conectar
Crie o software de banco de dados do Ms Access para preparar o salário em sua empresa: 6 etapas
Crie o software de banco de dados do Ms Access para preparar o salário em sua empresa: Vou lhe dar uma breve instrução para criar um sistema de folha de pagamento usando o MS Access para gerar salários mensais e imprimir comprovantes de salário facilmente com isso. Desta forma, você pode manter os registros de detalhes de salário de cada mês no banco de dados e pode editar ou revisar posteriormente
Sistema de atendimento baseado em impressão digital e RFID usando Raspberry Pi e banco de dados MySQL: 5 etapas
Sistema de atendimento baseado em impressão digital e RFID usando Raspberry Pi e banco de dados MySQL: vídeo deste projeto
NODEMCU LUA ESP8266 Conectar ao banco de dados MySQL: 6 etapas
NODEMCU LUA ESP8266 Conectar ao banco de dados MySQL: Este instrutível não é para os fracos, pois usa XAMPP (Apache, MySQL e PHP), HTML e, claro, LUA. Se você está confiante em lidar com isso, continue lendo! Eu uso o XAMPP, pois ele pode ser configurado em um pen drive ou disco rígido e está configurado
Como buscar dados de um banco de dados Firebase no NodeMCU: 7 etapas
Como buscar dados de um banco de dados Firebase no NodeMCU: para isso, vamos buscar dados de um banco de dados no Google Firebase e buscá-los usando um NodeMCU para análise posterior. REQUISITOS DO PROJETO: 1) NodeMCU ou ESP8266 Controller2) G-Mail conta para a criação de um banco de dados Firebase.3) Baixe o