Arduino Mega Server

imagem

Sim, este é o Arduino novamente, mas não se apresse em fechar a página, desta vez você está esperando por algo realmente novo e interessante. Basicamente, este artigo se concentrará nas placas de microcontroladores Arduino Mega e na placa de interface de rede Ethernet Shield W5100 e no milagre que pode ser feito com elas se você for além dos estereótipos.

Então, o que é uma placa típica do Arduino? Microcontrolador “ruim” de 8 bits com uma quantidade ridícula de RAM (no caso do Mega, são 8 kilobytes) e a mesma quantidade ridícula de memória flash (256 kilobytes para o Mega). As placas de expansão adicionam alguma vivacidade à paisagem, no nosso caso, é o Ethernet Shield, mas fundamentalmente não muda nada. O escopo dessas placas é o artesanato marginal e o famoso piscar de LEDs.

Mas isso foi até o último momento. Agora, na natureza, existe um mega servidor Arduino , que muda fundamentalmente as coisas. Por exemplo, o que você diria se deparasse com a afirmação de que:
  • no Arduino, você pode organizar um servidor Web completo que não tenha restrições de tamanho e número de arquivos?
  • atualizar dinamicamente o conteúdo sem parar o servidor?
  • HTML5, CSS3, JavaScript, Ajax, Processig, THREE.js, . .?
  • «» ( )?
  • , , ( 32 )?

Você diria que isso simplesmente não é possível.

No entanto, isso é um fato. E você pode baixar o kit de distribuição para o seu computador e ver por si mesmo (exceto Habr, este é um exemplo hipotético).

Qual é o segredo? Tudo é muito simples. A placa de interface de rede suporta a conexão de cartões de memória SD de até 32 gigabytes de tamanho e nada nos impede de usá-lo para armazenar arquivos do servidor da Web e o conteúdo real. Você só precisa resolver o problema de integrar toda essa riqueza em um sistema.

Para que tudo isso funcione, você precisa escrever um mecanismo de servidor para o Arduino e ensiná-lo a exibir o conteúdo de um cartão de memória flash a pedido dos navegadores. Na verdade, quase tudo. Você também precisa organizar de alguma forma a atualização dos arquivos e do conteúdo do servidor "on the fly", para que você não precise levantar do sofá, desligar o Arduino e remover o cartão de memória toda vez que precisar alterar algo na configuração do servidor ou alterar o que ou no conteúdo. Essa missão difícil, mas nobre, é confiada ao Arduino Serial Commander, que controla o download de arquivos para um servidor em funcionamento, sem pará-lo.

imagem

Se tudo é tão simples, por que não foi feito antes? Esta é realmente uma pergunta. Minha versão é o estereótipo de pensamento. Eles disseram que este é um controlador de 8 bits, o que mais é o THREE.js? Que hospedagem? Do que você está falando? Para ser honesto, devo dizer que todas as partes do quebra-cabeça já existiam na natureza, mas existiam de forma completamente indecente - na forma de um servidor abstrato completamente divorciado da realidade ou na forma de exemplos do Ajax, mas novamente com apenas dois botões abstratos com os quais não está claro o que fazer.

Area de aplicação


Agora vamos falar sobre a aplicação desta tecnologia e o que, de fato, é tão maravilhoso e útil nela.

Explicação necessária. O nome contém a palavra "servidor" e a primeira parte do artigo é sobre as funções do servidor do sistema. Isso pode se desviar e dar a impressão de que o principal objetivo do sistema é hospedar arquivos e sites e distribuir conteúdo. Isso não é inteiramente verdade. O gargalo estreito nesse sistema é a velocidade do cartão SD e, é claro, a substituição do microcontrolador por um servidor da Web real falhará.

O significado do sistema é um pouco diferente. Juntamente com o Arduino Mega Server, você pode gerenciar convenientemente seu dispositivo usando a interface da web e simplesmente luxuoso (no sentido visual) exibindo os resultados de seu trabalho usando todo o poder das tecnologias modernas (HTML5, CSS3, THREE.js, etc.). Seja um sistema de controle para uma casa inteligente, uma estufa, uma máquina de venda automática de bebidas, uma estação meteorológica ou o que você tiver imaginação suficiente.

imagem

Outra área interessante de aplicação do sistema é a auto-documentação (interativa). Por exemplo, você encontra em uma despensa empoeirada (sua ou do seu cliente) o microcontrolador não está claro o que e como fazer (isso foi há muito tempo e toda a documentação foi perdida). Tudo o que você precisa é ir ao site dele e obter informações abrangentes sobre conexões, protocolos, ambientes etc. Afinal, não temos restrições quanto ao volume de arquivos armazenados. A documentação pode ser interativa. Por exemplo, a pinagem do controlador não é apenas desenhada na página, mas também é atualizada em tempo real (status, potencial etc.). Você pode ver imediatamente o que e como funciona e o que e como não funciona.

imagem

O que está a bordo, exceto o servidor


Prestei muita atenção às funções do servidor, mas essa é apenas uma parte do sistema. Além do servidor, o Arduino contém código para todas as ocasiões:
  • medição de temperatura
  • manutenção de sensores PIR
  • manutenção do sensor de contato
  • relógio de tempo real
  • módulo para monitoramento e medição de tensão e corrente de rede para 13 canais
  • Módulo de faixa de LED
  • módulo de determinação de disponibilidade de dispositivos de rede
  • módulo para trabalhar com cartões de memória SD
  • módulo para receber e emitir comandos pela rede
  • módulos de integração com sistemas de automação residencial
  • e muitos outros recursos, além da capacidade de criar novos

Estrutura modular e compilação seletiva de módulos são suportadas. A parte do código do navegador reconhece a presença ou ausência de um módulo compilado e permite ativar ou desativar dinamicamente diretamente de uma página da web.

imagem

Integração com MajorDoMo


Historicamente, o Arduino Mega Server (a seguir designado AMS) foi desenvolvido em conjunto com e como parte de um sistema de automação residencial baseado na plataforma aberta MajorDoMo e possui suporte "nativo" interno para esta plataforma. Ele pode enviar status e dados para análise e armazenamento para seu "irmão mais velho" e receber comandos de controle dele pela rede.

Além disso, no momento, a AMS está trabalhando no chamado. modo tandem, ou seja, para algumas funções, os recursos do servidor MajorDoMo são usados. Mas o trabalho em conjunto para o Mega Server não tem princípios, ele pode funcionar de forma totalmente autônoma.

imagem

Tecnologias paralelas


Dentro da estrutura do projeto, várias tecnologias interessantes e exclusivas foram implementadas, por exemplo, o indicador do nível de carga da “CPU” do microcontrolador. Isso é conveniente porque você pode ver imediatamente como o seu controlador está ocupado e o que está fazendo no momento. Não sei o quanto isso é único, mas não consegui encontrar nada parecido na rede, especialmente em um formato digerível com belos gráficos e uma página da web.

imagem

Um eletro-módulo foi criado para monitorar a tensão da rede elétrica e outros 13 canais de corrente. Sendo instalado no painel elétrico, permite monitorar direta ou indiretamente toda a atividade elétrica da casa. Quando um aparelho específico foi ligado e desligado, quanta eletricidade ele consome e qual sua contribuição para o tamanho da conta de luz. Também permite rastrear indiretamente a presença ou ausência de pessoas na casa.

imagem

Foi criado um módulo para visualizar e controlar o formato da tensão e corrente da rede em qualquer um dos 13 canais. Além disso, um osciloscópio de rede é adicionado quando o Arduino em tempo real transmite um sinal dinâmico (forma de onda) para sua página da web. O que também não tem análogos, tanto quanto eu sei.

imagem

Adicionado módulo de proteção de tela para painéis modernos de exibição de informações. Você pode remover todas as informações técnicas da tela e deixar apenas as necessárias no contexto de uma imagem bonita. Acontece algo como uma imagem em um quadro para um painel grande ou pequeno.

imagem

Ainda implementamos itens como um medidor de frequência da tensão da rede elétrica, que pode ser usado para alertar sobre possíveis falhas no futuro próximo e, por exemplo, um indicador de status do sistema 3D multifuncional para 216 objetos / subsistemas / funções, que gira no cabeçalho do site. Seu significado é que, de relance, você pode avaliar o estado de um sistema complexo.

E assim por diante.Há mais tecnologias do que cabem nesta página. E tudo isso funciona em um microcontrolador de 8 bits com 8 kilobytes de memória, o que é simplesmente inacreditável.

imagem

Perspectivas


As perspectivas são ilimitadas. Você pode implementar usando essa tecnologia qualquer, mesmo os projetos mais fantásticos. Por exemplo, a inteligência doméstica inteligente distribuída entre os controladores, o piscar dinâmico dos controladores pela rede (dependendo de algumas condições) e a reconfiguração dinâmica da casa inteligente no nível do ferro, o fornecimento de uma interface da Web para o "muito ruim" Arduino Uno etc., etc. Sem mencionar cervejarias inteligentes e todos os sites de flores em sua casa com seus blogs pessoais.

E para isso você não precisará de nada, exceto Arduino, Ethernet Shield, AMS, cartões SD e sua imaginação.

imagem

Perspectivas comerciais


Você pode vender seus dispositivos simplesmente colocando tudo o que precisa em uma caixa e adicionando o firmware AMS para sua tarefa. O cliente liga o dispositivo e o controla por meio de uma interface da Web completa e nada mais é necessário. E se você ainda pensa em conectar seu dispositivo e sensores sem um ferro de soldar, expanda ainda mais o público-alvo de seus clientes em potencial.

Como fazê-lo sem um ferro de soldar? O padrão (auto-proclamado) Open Home Automation Standard (OHAS) e os sensores conectados com um clique o ajudarão nisso, mas isso é outra história. Se for interessante, descreverei aqui mais algumas tecnologias "inovadoras".

Status do projeto


O status do projeto é uma versão alfa, tudo funciona, mas tudo precisa ser finalizado. Se você deseja e as qualificações adequadas, pode participar do projeto e acelerar o processo de desenvolvimento e obter um fã incomparável. Ou você pode baixar o código fonte e criar o seu projeto de sonho.

O projeto é completamente aberto e não impõe nenhuma restrição ao seu uso. Você pode usá-lo livremente para qualquer, incluindo fins comerciais, alterar o código, modificá-lo, criar seus próprios projetos no GitHub, etc.

imagem

Você pode baixar a versão mais recente no site oficial do projeto . Se você tiver alguma dúvida, poderá perguntar no fórum . O fórum também possui instruções para instalar e configurar o AMS.

Amigos! Esqueci de mencionar outra, talvez a parte mais importante do projeto. Esta é uma função de aprendizado. Se você começar a trabalhar com um projeto e alterar o código para suas tarefas, aprenderá rapidamente a praticar muitas tecnologias modernas, como HTML, CSS, JavaScript, interação entre navegadores, código de depuração em um navegador, programação para Arduino, Processamento e muitas outras.

E o último. O projeto está literalmente repleto de idéias e exclusivo. Você pode simplesmente pegar os trechos de código necessários para seus próprios projetos, complementá-los e melhorá-los.

Adição . Um canal do Youtube está aberto e aqui está um vídeo promocional do Arduino Mega Server, que demonstra como trabalhar com um sistema real.

Source: https://habr.com/ru/post/pt382177/


All Articles