Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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:
Leia a seção "o que considerar ao escolher um conselho" para identificar necessidades e restrições.
Use o Visual de seleção de aplicativos para identificar possíveis opções para seu cenário de IoT.
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.
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: