
Os roteadores da série
ICR-3200 foram projetados para substituir o pacote clássico: um computador de placa única + modem + roteador. Agora você pode executar toda a lógica necessária diretamente no roteador. Graças a um poderoso processador ARM, 512 MB de RAM e ~ 2 GB de memória flash interna, você pode até iniciar o servidor nodejs no roteador!
As interfaces seriais RS-232/485 também são incorporadas ao roteador e estão disponíveis imediatamente no sistema operacional com acesso total à raiz. Também está disponível um ambiente aberto para a criação de programas nativos e uma biblioteca C / C ++ para trabalhar com APIs de hardware de baixo nível.
A função de sono profundo economiza energia ao trabalhar com energia da bateria: o roteador pode ser ativado somente quando a comunicação é realmente necessária.
No artigo, analisaremos as funções interessantes do dispositivo e tentaremos, na prática, trabalhar com a interface de E / S a partir de scripts de shell.
Especificações técnicas
Os roteadores da série
ICR-3200 são fabricados em uma única plataforma de hardware e são representados por cinco modelos que diferem nas faixas de frequência do LTE, na presença de Wi-Fi e de geolocalização (GNSS). Os dispositivos são posicionados como um substituto para um pacote de um computador de placa única e um roteador. Um processador poderoso e uma grande quantidade de RAM permitem executar aplicativos de usuário com muitos recursos diretamente no roteador.
- Processador Cortex-A8 - 1 GHz, arquitetura de 32 bits
- 512 MB de RAM
- Memória flash de 1,5 a 4 GB - para armazenar dados do usuário
- Portas de E / S - interfaces RS-232/485 e portas de E / S digitais estão disponíveis para uso pelos programas do usuário.
Separadamente, existe um
modelo ICR-3211B que funciona de acordo com o padrão LTE Cat. M1 (
NB-IoT ). Protocolo LTE Cat. O M1 foi projetado especialmente para soluções M2M, possui uma baixa taxa de transferência de dados (375 kb / s), além de um alcance maior e maior estabilidade em condições difíceis de comunicação interna. O roteador possui um
ionistor interno (supercapacitor) , permitindo que o dispositivo funcione por um curto período de tempo após uma queda de energia completa.
Modo de sono profundo
O modo de suspensão profunda permite que você insira o roteador em um estado em que todos os processos estejam congelados e o hardware esteja desligado para economizar energia, enquanto todas as funções do dispositivo estão desligadas e, pelo lado, ficam completamente apagadas. O consumo de energia neste modo
não é
superior a 10 mW .
No modo de suspensão, o roteador quase não consome energia e acorda em 3 segundosQuando você precisa ativar o roteador para transferência de dados, ele é
ativado em aproximadamente 3 segundos . Obviamente, será necessário mais tempo para registrar o modem na rede celular, mas isso é significativamente mais rápido do que baixar o roteador do zero. Essa opção é útil para sistemas de alimentação automática, a maioria dos quais estão ociosos e, ocasionalmente, ativados, para executar ações ativas, como um alarme ou uma unidade de backup.
Despertar e adormecer
O gerenciamento de adormecer e acordar ocorre através do módulo
Sleep Mode .
Existem 2 maneiras de controlar o modo de suspensão:
- Através de uma entrada digital - nesse modo, o roteador é controlado por um dispositivo externo, como um microcontrolador. Por um sinal BAIXO, o roteador entra no modo de espera em uma entrada digital e, quando recebe ALTO, acorda ou vice-versa. Você também pode configurar um tempo limite de resposta para proteger contra comutação acidental.
- Através de um temporizador interno , o roteador conta o tempo e acorda / adormece na hora certa. É conveniente usar para executar operações únicas ou baixar dados por um determinado período.
Interface de configuração do sono profundoFunção última respiração
Uma falha de energia em um site remoto pode ser especialmente desagradável, porque não está claro por que a comunicação com o site está indisponível. A função Último suspiro permite que o roteador funcione por algum tempo após uma queda de energia completa e envie uma mensagem informando que ocorreu um acidente e que a energia de backup não foi ligada. Graças ao ionistor embutido, cujo recurso é muito mais que baterias recarregáveis, ele não requer manutenção e substituição. Isso é útil para sistemas de backup de energia onde são possíveis falhas e é importante acompanhar quando a tensão está completamente perdida.
O roteador enviará um sinal sobre uma falha de energia mesmo após uma queda de energia completaPara responder adequadamente ao evento de perda de energia, você precisa descobrir de alguma forma.
A tensão de alimentação atual pode ser obtida usando o comando
status sys
shell:
$ status sys Firmware Version : 6.1.10 (2019-07-02) Serial Number : ACZ1100000623519 Profile : Standard RTC Battery : Ok Supply Voltage : 12.3 V # ← Temperature : 37 C # ← Time : 2019-08-16 16:21:18 Uptime : 0 days, 11 hours, 43 minutes
Ou usando o controle de E / S do Unix de hardware (ioctl) e um programa em C / C ++ ou outro idioma.
A tabela mostra os endereços dos registros de hardware necessários. A tensão de alimentação atual é retornada como um número inteiro, em milivolts. É preferível usar uma API de nível inferior ao shell scripts, neste caso, para uma reação mais rápida. Informações detalhadas sobre como trabalhar com o hardware estão disponíveis no
guia do desenvolvedor.
Uma solicitação ioctl que retorna a tensão de alimentação atual.Interfaces seriais
Duas interfaces seriais estão embutidas no roteador: RS-232 e RS-485. Eles permitem conectar dispositivos periféricos diretamente ao roteador, sem o uso de cintas adicionais. Ao mesmo tempo, um servidor Node-RED ou Nodejs completo pode ser iniciado no roteador, o que permite que um dispositivo seja implantado para implantar um sistema de automação simples, sem computadores e controladores adicionais.
Por padrão, ambas as interfaces estão disponíveis para funcionar como dispositivos seriais padrão no Linux:
ls -la /dev/ttyS* crw------- 1 root root 251, 0 Jan 1 1970 /dev/ttyS0 # ← rs-232 crw------- 1 root root 251, 1 Jan 1 1970 /dev/ttyS1 # ← rs-485 crw------- 1 root root 251, 5 Jan 1 1970 /dev/ttyS5 # ←
Todas as bibliotecas padrão suportam esses dispositivos sem configurações adicionais, incluindo o
módulo Modbus-RTU2TCP e outros.
Módulos personalizados
A funcionalidade do dispositivo pode ser expandida usando módulos personalizados: esta é uma versão simplificada dos pacotes, apenas sem um gerenciador de pacotes. A lista completa de módulos disponíveis está disponível em
https://advantech-bb.cz/products/software/user-modules .
Os módulos são instalados manualmente baixando o arquivo do pacote através da interface da web:

Atualmente 73 módulos estão disponíveis. Aqui estão alguns interessantes:
- O Node-RED é uma ferramenta popular para combinar vários protocolos industriais em um único sistema.
- Nodejs é um servidor nodejs completo. Uma grande quantidade de RAM e um processador poderoso permitem executar aplicativos exigentes diretamente no roteador!
- Python2 / 3
- Shell da Web - permite trabalhar no console por meio de um navegador.
- Azure IoT SDK Python - um conjunto de ferramentas para o desenvolvimento de programas para o Hub IoT do Microsoft Azure.
Como o firmware dos roteadores está aberto, os desenvolvedores podem escrever seus próprios módulos, incluindo aqueles com uma interface da web. Os materiais de referência estão disponíveis no
guia de redação do módulo e na seção do desenvolvedor do site da empresa. Para a conveniência de criar pacotes, um
ambiente de compilação cruzada já está disponível.
Recursos de hardware através de scripts shell
Para tarefas simples de automação, é conveniente usar scripts de shell nos quais você pode controlar a indicação de luz e receber / definir o status dos pinos digitais.
A indicação de luz é conveniente para mostrar o status atual da execução do comando. Por exemplo, a indicação de transferência de dados - intermitente frequente, tentativa de conexão - intermitente raro, simples - acende continuamente. Considere o comando
led . Na entrada, são necessários apenas um argumento - o tipo de LED piscando.
# led led on|off|fast|slow
Aqui está o que parece na vida real:
Demonstração dos modos de operação do indicador do usuário através de comandos do shellPara trabalhar com pinos digitais, use o comando
io .
$ io Usage: io [get <pin>] | [set <pin> <value>] io set out0 1
É importante lembrar que a lógica neste caso é invertida. Assim, 1 = BAIXO, 0 = ALTO. Usando o comando
io , podemos trabalhar facilmente com pinos digitais de scripts bash e criar lógica simples para automação e controle.
Como demonstração da simplicidade de trabalhar com entradas e indicadores digitais, escreveremos um script inútil que exibe o status de uma entrada digital usando um LED.
O princípio do script é simples: se BIN0 estiver no estado 0, o diodo queima frequentemente, caso contrário, queima continuamente. Veja como fica ao vivo:
Demonstração do script bash que exibe o status de uma entrada digital usando um indicador.Apesar da primitividade deste script, ele mostra claramente como em uma linha, sem software, bibliotecas e configurações adicionais, você pode receber dados de entrada de entradas digitais e respondê-las.
Referências
Bem-vindo ao Fórum de parceiros Advantech
O Advantech Forum será uma plataforma única para discutir tendências locais e globais na Internet das Coisas. Aqui você pode trocar experiências usando novas soluções e produtos tecnológicos, encontrar novos clientes e parceiros. Você terá a chance de ver os produtos que descrevemos nos artigos e não apenas. Contaremos com líderes da indústria e representantes dos principais parceiros - NVidia, Intel e outras empresas que participarão ativamente do desenvolvimento da Internet industrial das coisas nos próximos anos. Teremos o maior prazer em ver todos os especialistas no campo da automação industrial e da Internet das coisas no evento. A participação no evento é gratuita! O número de vagas é limitado.
Apresse-se para se registrar .