Este Roadmap está dividido em dois caminhos:
- Desenvolvedor IoT de Embarcados 🧑💻
- Desenvolvedor de Aplicações de IoT🧑💻
Os roadmaps estão estruturados da seguinte forma:
- Linguagens de Programação
- Conceitos
- Ferramentas
- C Embarcado (Obrigatório)
- C++ (Obrigatório)
- Python (Obrigatório)
- Scripting em Bash (Bom ter)
- Rust (Bom ter)
Essas linguagens de programação vão te dar um bom ponto de partida para começar a jornada embarcada, onde C++ e C Embarcado são o mínimo necessário para começar.
- RTOS (Obrigatório)
- Cadeia de Valor de IoT (Obrigatório)
- Segurança em IoT (Bom ter)
- Comunicação Sem Fio (Obrigatório)
- Fundamentos de Sistemas Operacionais (Obrigatório)
- Noções Básicas de Computação em Nuvem (Bom ter)
- Linux (Obrigatório)
- Serviços da Web (Bom ter)
- Sistemas de Pub/Sub (Obrigatório)
- Padrões de Design Embarcados (Obrigatório)
- Redes (Bom ter)
Esses conceitos são essenciais para trabalhar confortavelmente no desenvolvimento de soluções IoT.
- Platform IO
- CMake
- Esp IDF
- RISC
- CISC
A diferença entre as arquiteturas CISC e RISC deve ser compreendida durante o desenvolvimento de soluções IoT embarcadas.
Você pode experimentar os seguintes alvos/placas de desenvolvimento:
- STM32 (Blue/Black Pill)
- Esp32 / NodeMCU
- Raspberry Pi (Linux Embarcado)
- BeagleBone (Linux Embarcado)
- Jetson Nano (Linux Embarcado)
Para trabalhar com esses alvos e obter algo útil deles, é necessário entender os periféricos do alvo, que incluem:
- GPIO
- Timers
- PWM
- ADC
- DAC
- Comunicação Serial (SPI, I2C, UART)
- Wifi
- Memória (Flash, SRAM, EEPROM)
- BLE
Para se tornar um desenvolvedor de aplicações IoT, você precisa fazer diversos papéis e ter conhecimento em muitas coisas. Você não deve pensar que precisa ser especialista em tudo, mas pelo menos ter uma ideia de como trabalhar com o seguinte:
- Frontend
- Backend
- Desenvolvimento Mobile Multiplataforma (Bom ter)
Você pode escolher entre os seguintes frameworks, dependendo do que você se sentir confortável em trabalhar ou já ter trabalhado antes.
- TypeScript
- JavaScript
- Python
- Java
- React
- Angular
- Vue
- Svelte
- ExpressJS
- NestJS
- FastAPI
- Flask
- Django
- SpringBoot
- GO
- Flutter
- React Native
- Cadeia de Valor de IoT
- Segurança em IoT
- Comunicação Sem Fio
- Fundamentos de Sistemas Operacionais
- Noções Básicas de Computação em Nuvem
- Linux
- Serviços da Web
- Sistemas de Publicação/Assinatura
- Integração de Sistemas
- Redes
- M2M (Máquina a Máquina)
- Padrões de Design
Para Sistemas Operacionais de Tempo Real, você só precisa entender como eles funcionam e como lidar com loops de eventos, pois você pode trabalhar com um.
- Mynewt
- FreeRTOS
- Amazon FreeRTOS
- NuttX Para os Protocolos da Internet, é obrigatório que você entenda como eles funcionam com diferentes arquiteturas, como cliente/servidor ou sistemas de pub/sub.
- HTTP/HTTPS
- MQTT
- COAP
- AMQP
- LORA
- BLE
- WIFI
- NFC
Os protocolos industriais não são obrigatórios, mas é bom tê-los e entender como funcionam. Se você quiser trabalhar no espaço IIOT, eles se tornarão muito importantes e fornecerão uma vantagem inicial.
- OPC UA
- Modbus
Você deve pelo menos conhecer um dos seguintes corretores de mensagens para implementar a computação distribuída e a execução de código assíncrono.
- Microservices
- Kafka
- RabbitMQ
- HiveMQ
- EMQX
- ESB, por exemplo, WSO2
Você precisa conhecer pelo menos um banco de dados relacional, um banco de dados NoSQL e um banco de dados de Timeseries, bem como bancos de dados de chaves.
- Mysql
- Postgresql
- MongoDB
- Cassandra
- Redis Cache
- InfluxDB
O tempo de comercialização é realmente importante para as empresas, é por isso que usam Plataformas de Habilitação de Aplicações, onde podem desenvolver soluções IoT mais rapidamente. Abaixo estão as mais populares no mercado, variando de soluções de código aberto a soluções totalmente pagas.
- ThingsBoard
- The Things Industries
- Mainflux
- ThingsWorx
- Losant
- ThingsWorks
- Cumulocity
- Data Cake
- Kubernetes
- Docker
- Prometheus
Monitorar seus ativos, aplicativos e servidores é fundamental para a implantação e manutenção bem-sucedidas de IoT. Grafana é uma das melhores ferramentas de monitoramento e visualização.
- Grafana
Existem dois tipos de AEPs: chamamos de Plataforma de Habilitação de Aplicações e Hiperscalers. Amazon e Microsoft são considerados como Hiperscalers de Mercado que entram no espaço de nuvem e IoT para fornecer serviços prontos para acelerar seu tempo de comercialização e ciclo de desenvolvimento.
- AWS IoT
- Azure IoT