Partilhar via


Lista de seleção de dispositivos IoT

Esta lista de seleção de dispositivos IoT tem como objetivo dar aos parceiros um ponto de partida com hardware IoT para construir protótipos e provas de conceitos de forma rápida e fácil. [^1]

Todos os quadros listados suportam utilizadores de todos os níveis de experiência.

Nota

Este quadro não pretende ser uma lista exaustiva nem trazer soluções para a produção. [^2] [^3]

Aviso de segurança: com exceção do Azure Sphere, é recomendável manter esses dispositivos atrás de um roteador e/ou firewall.

[^1]: Se você é novo em programação de hardware, para o trabalho de desenvolvimento do MCU, recomendamos usar a extensão VS Code Arduino ou a extensão IO da plataforma VS Code. Para o trabalho de desenvolvimento do SBC, você programa o dispositivo como faria com um laptop, ou seja, no próprio dispositivo. O Raspberry Pi suporta o desenvolvimento do VS Code.

[^2]: Dispositivos na disponibilidade de recursos de suporte, placas comuns usadas para prototipagem e PoCs, e placas que suportam IDEs amigáveis para iniciantes, como extensões Arduino IDE e VS Code, por exemplo, extensão Arduino Extension e extensão Platform IO. Para simplificar, procurámos manter a lista <total de dispositivos 6. Outras equipas e indivíduos podem ter optado por apresentar diferentes painéis com base na sua interpretação dos critérios.

[^3]: Para trazer dispositivos para a produção, você provavelmente deseja testar uma PoC com um chipset específico, STM32 da ST ou a série de placas de breakout Pic-IoT da Microchip, projetar uma placa personalizada que pode ser fabricada por um custo mais baixo do que as MCUs e SBCs listadas aqui, ou até mesmo explorar kits de desenvolvimento baseados em FPGA. Você também pode querer usar um ambiente de desenvolvimento para engenharia elétrica profissional como STM32CubeMX ou ARM mBed programador baseado em navegador.

Conteúdos

Secção Descrição
Comece aqui Um guia para usar esta lista de seleção. Inclui critérios de seleção sugeridos.
Diagrama de seleção Um visual que resume critérios de seleção comuns com possíveis opções de hardware.
Terminologia e requisitos de ML Definições de terminologia e acrónimos e requisitos de dispositivos para aprendizagem automática na franja (ML).
Lista de dispositivos MCU Uma lista de MCUs recomendadas, por exemplo, ESP32, com especificações técnicas e alternativas.
Lista de dispositivos SBC Uma lista de SBCs recomendados, por exemplo, Raspberry Pi, com especificações técnicas e alternativas.

Começar aqui

Como utilizar este documento

Use este documento para entender melhor a terminologia da IoT, as considerações sobre a seleção de dispositivos e para escolher um dispositivo IoT para prototipar ou criar uma prova de conceito. Recomendamos o seguinte procedimento:

  1. Leia a seção "o que considerar ao escolher um conselho" para identificar necessidades e restrições.

  2. Use o Visual de seleção de aplicativos para identificar possíveis opções para seu cenário de IoT.

  3. Usando as Listas de Dispositivos MCU ou SBC, verifique as especificações do dispositivo e compare com suas necessidades/restrições.

O que considerar ao escolher uma placa

Para escolher um dispositivo para seu protótipo de IoT, consulte os seguintes critérios:

  • Unidade de microcontrolador (MCU) ou computador de placa única (SBC)

    • Um MCU é preferido para tarefas individuais, como coletar e carregar dados de sensores ou aprendizado de máquina na borda. Os MCUs também tendem a ser de menor custo.
    • Um SBC é preferido quando você precisa de várias tarefas diferentes, como coletar dados do sensor e controlar outro dispositivo. Também pode ser preferido nos estágios iniciais, quando há muitas opções para possíveis soluções - um SBC permite que você tente muitas abordagens diferentes.
  • Poder de processamento

    • Memória: Considere quanto armazenamento de memória (em bytes), armazenamento de arquivos e memória para executar programas seu projeto precisa.

    • Velocidade do relógio: considere a rapidez com que seus programas precisam ser executados ou a rapidez com que você precisa que o dispositivo se comunique com o servidor IoT.

    • Fim da vida útil: considere se você precisa de um dispositivo com os recursos e a documentação mais atualizados ou se pode usar um dispositivo descontinuado como protótipo.

  • Consumo de energia

    • Alimentação: Considere a quantidade de tensão e corrente que a placa consome. Determine se a energia elétrica da tomada está prontamente disponível ou se necessita de uma bateria para a sua utilização.

    • Conexão: Considere a conexão física com a fonte de alimentação. Se precisar de energia da bateria, verifique se há uma porta de conexão de bateria disponível na placa. Se não houver um conector de bateria, procure outra placa comparável ou considere outras maneiras de adicionar energia da bateria ao seu dispositivo.

  • Entradas e saídas

    • Portas e pinos: considere quantos e de que tipos de portas e pinos de E/S seu projeto pode exigir. * Outras considerações incluem se o seu dispositivo estará se comunicando com outros sensores ou dispositivos. Em caso afirmativo, identifique quantas portas esses sinais exigem.

    • Protocolos: Se você estiver trabalhando com outros sensores ou dispositivos, considere quais protocolos de comunicação de hardware são necessários. * Por exemplo, você pode precisar de CAN, UART, SPI, I2C ou outros protocolos de comunicação.

    • Alimentação: Considere se o seu dispositivo irá alimentar outros componentes, como sensores. Se o dispositivo estiver ligando outros componentes, identifique a tensão e a saída de corrente dos pinos de alimentação disponíveis do dispositivo e determine de que tensão/corrente seus outros componentes precisam.

    • Tipos: Determine se você precisa se comunicar com componentes analógicos. Se você estiver precisando de componentes analógicos, identifique quantos pinos de E/S analógicas seu projeto precisa.

    • Periféricos: Considere se prefere um dispositivo com sensores integrados ou outras funcionalidades como um ecrã, microfone, etc.

  • Desenvolvimento

    • Linguagem de programação: considere se o seu projeto requer linguagens de nível superior além de C/C++. Em caso afirmativo, identifique as linguagens de programação comuns para o aplicativo que você precisa (por exemplo, o Machine Learning geralmente é feito em Python). Pense em quais SDKs, APIs e/ou bibliotecas são úteis ou necessários para seu projeto. Identifique em que linguagem(s) de programação eles são suportados.

    • IDE: Considere os ambientes de desenvolvimento que o dispositivo suporta e se isso atende às necessidades, conjunto de habilidades e/ou preferências de seus desenvolvedores.

    • Comunidade: Considere quanta assistência você quer/precisa na construção de uma solução. Por exemplo, considere se você prefere começar com código de exemplo, se deseja aconselhamento ou assistência para solução de problemas ou se se beneficiaria de uma comunidade ativa que gera novos exemplos e atualiza a documentação.

    • Documentação: Dê uma olhada na documentação do dispositivo. Identifique se é completo e fácil de seguir. Considere se você precisa de esquemas, amostras, folhas de dados ou outros tipos de documentação. Em caso afirmativo, faça algumas pesquisas para ver se esses itens estão disponíveis para o seu projeto. Considere os SDKs/APIs/bibliotecas de software que são escritos para a placa e se esses itens facilitariam seu processo de prototipagem. Identifique se essa documentação é mantida e quem são os mantenedores.

  • Segurança

    • Rede: Considere se o seu dispositivo está ligado a uma rede externa ou se pode ser mantido atrás de um router e/ou firewall. Se o protótipo precisar ser conectado a uma rede voltada para o exterior, recomendamos usar o Azure Sphere, pois é o único dispositivo seguro e confiável.

    • Periféricos: Considere se algum dos periféricos que o seu dispositivo liga tem protocolos sem fios (por exemplo, WiFi, BLE).

    • Localização física: considere se o seu dispositivo ou qualquer um dos periféricos aos quais está ligado estará acessível ao público. Em caso afirmativo, recomendamos tornar o dispositivo fisicamente inacessível. Por exemplo, em uma caixa fechada e bloqueada.

Visual de seleção de aplicativos

Nota

Esta lista é apenas para fins educacionais, não se destina a endossar quaisquer produtos.

Tabela que mostra critérios de seleção comuns com possíveis opções de hardware.

Terminologia e requisitos de ML

Esta seção fornece definições para terminologia incorporada, acrônimos e especificações de hardware para aplicativos de aprendizado de máquina visuais, auditivos e de sensores.

Terminologia

A terminologia e as siglas estão listadas por ordem alfabética.

Termo Definição
ADC Conversor analógico para digital; Converte sinais analógicos de componentes conectados, como sensores, em sinais digitais que são legíveis pelo dispositivo
Pinos analógicos Usado para conectar componentes analógicos que têm sinais contínuos, como fotoresistores (sensores de luz) e microfones
Velocidade do relógio Com que rapidez a CPU pode recuperar e interpretar instruções
Pinos digitais Usado para conectar componentes digitais que têm sinais binários, como LEDs e interruptores
Flash (ou ROM) Memória disponível para armazenar programas
IDE Ambiente de desenvolvimento integrado; um programa para escrever código de software
IMU Unidade de medida inercial
Pinos de E/S (ou E/S) Pinos de entrada/saída usados para comunicação com outros dispositivos, como sensores e outros controladores
MCU Unidade Microcontroladora; um pequeno computador em um único chip que inclui uma CPU, RAM e E/S
Unidade de Microprocessador (MPU) Unidade microprocessadora; um processador de computador que incorpora as funções da unidade central de processamento (CPU) de um computador num único circuito integrado (CI) ou, no máximo, em alguns circuitos integrados.
ML Aprendizagem automática; programas de computador especiais que fazem reconhecimento de padrões complexos
PWM Modulação da largura de pulso; uma maneira de modificar sinais digitais para obter efeitos analógicos, como alteração de brilho, volume e velocidade
RAM Memória de acesso aleatório; Quanta memória está disponível para executar programas
SBC Computador de placa única
TF TensorFlow; Um pacote de software de aprendizado de máquina projetado para dispositivos Edge
TF Lite TensorFlow Lite; uma versão menor do TF para dispositivos de borda pequena

Requisitos de hardware de aprendizado de máquina

Visão ML

  • Velocidade: 200 MHz
  • Flash: 300 kB
  • Memória RAM: 100 kB

ML para reconhecimento de fala

  • Velocidade: 60 MHz [^4]
  • Flash: 50 kB
  • Memória RAM: 8 kB

Sensor ML (por exemplo, movimento, distância)

  • Velocidade: 20 MHz
  • Flash: 20 kB
  • Memória RAM: 2 kB

[^4]: O requisito de velocidade deve-se em grande parte à necessidade de os processadores serem capazes de obter amostras mínimas de 6 kHz para que os microfones sejam capazes de processar frequências vocais humanas.

Lista de dispositivos MCU

Segue-se uma tabela de comparação de MCUs por ordem alfabética. A lista não pretende ser exaustiva.

Nota

Esta lista é apenas para fins educacionais, não se destina a endossar quaisquer produtos. Os preços apresentados representam a média de vários distribuidores e são meramente ilustrativos.

Nome da placa Intervalo de preços (USD) Para que é utilizado? Software Velocidade Processador Memória Sensores a bordo e outros recursos Pinos IO Vídeo Rádio Conector de bateria? Tensão de Funcionamento Como obter guias declarados Alternativas
Kit de desenvolvimento do Azure Sphere MT3620 ~40€ - 100€ Aplicações altamente seguras C/C++, VS Code, VS 500 MHz & 200 MHz MT3620 (tri-core--1 x Cortex A7, 2 x Cortex M4) 4 MB de RAM + 2 x 64 KB de RAM Certificações: CE/FCC/MIC/RoHS 4 x E/S Digital, 1 x I2S, 4 x ADC, 1 x RTC - Dual-band 802.11 b/g/n com diversidade de antenas - 5 V 1. Galeria de Exemplos do Azure Sphere, 2. Estação meteorológica Azure Sphere N/A
Adafruit HUZZAH32 – Placa Feather ESP32 Aproximadamente $20 - $25 Monitorização; IoT para iniciantes; Domótica Arduino IDE, VS Code 240 MHz ESP32 de 32 bits (Tensilica LX6 dual-core) Flash SPI de 4 MB, SRAM de 520 KB Sensor de Hall, 10x pinos de E/S táteis capacitivos, mais de 50 placas adicionais 3 x UARTs, 3 x SPI, 2 x I2C, 12 x entradas ADC, 2 x áudio I2S, 2 x DAC - 802.11b/g/n HT40 Transceptor Wi-Fi, banda base, pilha e LWIP, Bluetooth e BLE 3,3 V 1. Monitor científico de congelador, 2. Exemplos de Arduino do SDK do Azure IoT Arduino Uno WiFi Rev 2 (~$50 - $60)
Arduino Nano RP2040 Connect Aproximadamente $20 - $25 Controlo remoto; Monitorização Arduino IDE, VS Code, C/C++, MicroPython 133 MHz RP2040 de 32 bits (Cortex M0+ dual-core) 16 MB de Flash, 264 kB de RAM Microfone, IMU de seis eixos com recursos de IA 22 x Digital I/O, 20 x PWM, 8 x ADC - Wi-Fi, Bluetooth - 3,3 V - Adafruit Feather RP2040 (NOTA: também precisa de um FeatherWing para WiFi)
ESP32-S2 Saola-1 ~$10 - $15 Domótica; IoT para iniciantes; ML; Monitorização; Rede de malha Arduino IDE, Circuito Python, ESP IDF 240 MHz ESP32-S2 de 32 bits (Xtensa LX7 single-core) Flash de 128 kB, SRAM de 320 kB, SRAM de 16 kB (RTC) 14 x pinos de E/S de toque capacitivo, sensor de temperatura 43 x Pinos digitais, 8 x PWM, 20 x ADC, 2 x DAC LCD serial, PCD paralelo Wi-Fi 802.11 b/g/n (802.11n até 150 Mbps) - 3,3 V 1. Deteção de rosto segura com o Azure ML, 2. Azure Cost Monitor ESP32-DevKitC (~$10 - $15)
Wio Terminal (Seeed Studio) ~$40 - $50 (USD) Monitorização; Domótica; ML Arduino IDE, VS Code, MicroPython, ArduPy 120 MHz ATSAMD51 de 32 bits (Cortex-M4F de núcleo único) Flash SPI de 4 MB, 192 kB de RAM Ecrã integrado, microfone, IMU, buzzer, ranhura para microSD, sensor de luz, emissor IR, suporte GPIO para Raspberry Pi (como dispositivo filho) 26 x Pinos Digitais, 5 x PWM, 9 x ADC 2.4" 320x420 LCD colorido banda dupla 2.4Ghz/5Ghz (Realtek RTL8720DN) - 3,3 V Monitorar plantas com o Azure IoT Adafruit FunHouse (~$30 - $40)

Lista de dispositivos SBC

Segue-se uma tabela de comparação de SBCs em ordem alfabética. Esta lista não pretende ser exaustiva.

Nota

Esta lista é apenas para fins educacionais, não se destina a endossar quaisquer produtos. Os preços apresentados representam a média de vários distribuidores e são meramente ilustrativos.

Nome do quadro Intervalo de preços (USD) Para que é utilizado? Software Velocidade Processador Memória Sensores a bordo e outros recursos Pinos de IO Vídeo Rádio Conector de bateria? Tensão de Funcionamento Guias de Introdução Alternativas
Raspberry Pi 4, Modelo B Aproximadamente €30 - €80 Domótica; Robótica; Veículos autónomos; Sistemas de controlo; Ciência do campo Raspberry Pi OS, Raspbian, Ubuntu 20.04/21.04, RISC OS, Windows 10 IoT, mais CPU de 1,5 GHz, GPU de 500 MHz Broadcom BCM2711 de 64 bits (quad-core Cortex-A72), GPU VideoCore VI 2GB/4GB/8GB LPDDR4 RAM, Cartão SD (não incluído) 2 x porta USB 3, 1 x porta MIPI DSI para ecrã, 1 x porta MIPI CSI para câmera, porta de áudio estéreo de 4 polos e vídeo composto, Alimentação através de Ethernet (requer HAT) 26 x Digital, 4 x PWM 2 micro-HDMI composto, MPI DSI Wi-Fi, Bluetooth 5 V 1. Enviar dados para o Hub IoT, 2. Monitorar plantas com o Azure IoT BeagleBone Preto sem fio (~$50 - $60)
NVIDIA Jetson 2 GB Nano Dev Kit cerca de US$50 - US$100 IA/ML; Veículos autónomos JetPack baseado no Ubuntu CPU de 1,43 GHz, GPU de 921 MHz CPU NVIDIA de 64 bits (quad-core Cortex-A57), coprocessador GPU Maxwell de 128 CUDA-core 2GB/4GB LPDDR4 RAM 472 GFLOPS para desempenho de IA, 1 x conector MIPI CSI-2 28 x Digital, 2 x PWM HDMI, DP (apenas 4 GB) Ethernet Gigabit, WiFi 802.11ac 5 V Integração do Deepstream com o Azure IoT Central BeagleBone AI (~$110 - $120)
Raspberry Pi Zero W2 Aproximadamente 15 USD - 20 USD Domótica; ML; Modificações de veículos; Ciência do Campo Raspberry Pi OS, Raspbian, Ubuntu 20.04/21.04, RISC OS, Windows 10 IoT, mais CPU de 1 GHz, GPU de 400 MHz Broadcom BCM2837 de 64 bits (quad-core Cortex-A53), GPU VideoCore IV 512 MB LPDDR2 RAM, cartão SD (não incluído) 1 x conector de câmera CSI-2 26 x Digital, 4 x PWM Mini-HDMI Wi-Fi, Bluetooth - 5 V Enviar e visualizar dados para o Hub IoT do Azure Cebola Omega2+ (~$10 - $15)
DFRobot LattePanda Aproximadamente $100 - $160 USD Domótica; Conectividade em nuvem em hiperescala; AI/ML Windows 10, Ubuntu 16.04, openSUSE 15 1,92 GHz Intel Z8350 de 64 bits (quad-core x86-64), coprocessador Atmega32u4 2 GB de RAM DDR3L, 32 GB de RAM eMMC/4GB DDR3L, 64 GB eMMC - 6 x Digital (20 x via Atmega32u4), 6 x PWM, 12 x ADC HDMI, MIPI DSI Wi-Fi, Bluetooth 5 V 1. Introdução ao Microsoft Azure, 2. Sistema de Monitorização Doméstica com o Azure Seeed Odyssey X86J4125800 (~$210 - $230)

Perguntas? Pedidos?

Por favor, envie um problema!

Consulte Também

Outros recursos úteis incluem: