IoT com linguagem C Do servidor ao sistema embarcado com Franzininho
Cristiano Silva
Sobre o livro
Aprender algo novo nunca é fácil, especialmente quando não se tem uma programação a seguir ou alguém para orientar o percurso do aprendizado em meio a um mar de conceitos e tecnologias. Nesse momento, surgem diversas perguntas: é necessário aprender o maior número possível de linguagens de programação? É preciso dominar todos os padrões de projeto e arquiteturais? Devemos nos aprofundar em banco de dados?
O desafio se intensifica para quem atua na área de sistemas embarcados, pois, além de tudo o que foi mencionado, soma-se o hardware ao backlog de estudos. Diante de tantas possibilidades, é natural questionar se somos realmente capazes de compreender e absorver tudo isso. A resposta é sim. O segredo para alcançar esse objetivo está nos fundamentos. Uma vez compreendido o conceito por trás de determinada ação, ele pode ser aplicado a diferentes contextos e áreas. Em outras palavras, o conceito transcende as tecnologias.
Neste livro será apresentado o processo de desenvolvimento de uma aplicação do início ao fim, desde a preparação do ambiente de desenvolvimento até a geração de relatórios. Para esse propósito, desenvolveremos uma aplicação de estação meteorológica, um projeto amplamente difundido pela comunidade, cujo objetivo é conectar dois mundos: o dos servidores e o dos embarcados.
O projeto é dividido em duas partes: o servidor, que será o computador no qual toda a aplicação será desenvolvida, e um cliente, que será uma placa de sistemas embarcados conhecida como Franzininho. O foco é aprender a integrar esses dois mundos distintos e trabalhar com diferentes arquiteturas de computador.
No decorrer do projeto, aprenderemos sobre diversos tópicos e tecnologias. O servidor e o cliente serão desenvolvidos em linguagem C utilizando uma abordagem moderna de desenvolvimento, principalmente pelo fato de termos controle total sobre as ações, com uma escrita clara e bem organizada. Sim, estética importa! Usaremos o protocolo UDP para que o servidor e o cliente se comuniquem. O projeto conta com um servidor web para que o cliente em Node-RED apresente um dashboard com informações sobre grandezas como temperatura, pressão barométrica e umidade. Utilizaremos threads para que o servidor UDP e o servidor web coexistam.
Também aprenderemos alguns padrões, como Repositório, DTO (Data Transfer Object) e MVC (Model View Controller). Usaremos scripts para a criação de um simulador, assumindo que a placa ainda não esteja em nossas mãos, algo comum na indústria. Por fim, aplicaremos uma pitada de Python para a geração de relatórios. Para evitar o comentário popular “Na minha máquina funciona”, utilizaremos o Docker, prevenindo esse tipo de problema.
O livro está recheado de aprendizado e desafios. Vale lembrar que o foco está no processo de desenvolvimento, considerado o verdadeiro diferencial do projeto. É importante ressaltar que ele pode ser desenvolvido sem a placa Franzininho, no entanto, é de suma importância que o leitor adquira uma para ter contato com o hardware e vivenciar a experiência de realizar uma Cross Compile. Vamos embarcar nessa jornada?
Para quem é este livro
Este livro foi escrito para pessoas que desejam ter a experiência de desenvolver um projeto do início ao fim, compreendendo as diversas etapas envolvidas. Para melhor aproveitamento, é necessário que o leitor(a) tenha conhecimentos em linguagem C, como ponteiros, estruturas, funções e modularização, além de noções de orientação a objetos, Git, Docker e, preferencialmente, conhecimento em Python.
O objetivo principal do livro é fornecer conhecimento sobre a criação, adição de novos recursos, refatoração e integração das partes de um projeto.
Estrutura do livro
O livro está dividido em quatro partes:
Parte I - Construindo o servidor: Nesta primeira parte, apresentamos a visão geral do projeto e o desenvolvimento do servidor.
Parte II - Trabalhando com dados reais: Na segunda parte, desenvolveremos o projeto embarcado que vai fornecer dados reais do ambiente.
Parte III - Extraindo informações dos dados: Nesta terceira parte, vamos extrair os dados gerados pelo servidor para realizar o tratamento dos dados, gerando relatórios para a análise dos resultados.
Parte IV - Compartilhando seu trabalho: Na quarta e última parte, vamos implementar a distribuição da aplicação por meio de arquivo compactado.
Sobre o autor
Minha transição para o mundo do desenvolvimento aconteceu de forma tardia, em um momento de mudança pessoal e profissional que muitos identificam como uma crise de transição. No meu caso, não foi diferente. À época, eu atuava como técnico em eletrônica e, exatamente aos 30 anos, tive o impulso necessário para mudar de área. Embora a eletrônica fosse um campo promissor e estimulante, eu não me sentia plenamente realizado.
Diante disso, retornei à faculdade com o objetivo de buscar um estágio na área de desenvolvimento. É interessante notar que sempre fui um dos melhores alunos em sala de aula, o que, na prática, pouco significa. O impacto real ocorreu quando ingressei em uma nova empresa e me deparei com o contraste entre dois mundos: a universidade e o mercado de trabalho.
Como de costume, consumi muitos livros, mas nenhum deles apresentava uma visão clara de como construir um projeto do início ao fim. Em geral, traziam apenas exemplos isolados, de utilidade limitada, especialmente quando se referiam ao uso de ponteiros. Este livro é destinado a quem deseja aprender a escrever uma aplicação e compreender como os passos são conduzidos até a sua conclusão. Espero que ele possa ajudar você, leitor, nessa jornada, pois foi exatamente esse tipo de material que eu precisei e não encontrei.
Atualmente, possuo duas formações — Tecnólogo em Automação Industrial e Bacharelado em Engenharia Elétrica — além de uma especialização em sistemas embarcados. Sofro e me divirto nessa área, em um equilíbrio constante entre desafio e paixão.
Sumário
- Parte I – Construindo o servidor
- 1 Conhecendo o projeto WSIOT
- 2 Preparando o ambiente
- 3 Iniciando a implementação do Concentrator
- 4 Aplicando a estrutura MVC (Model-View-Controller)
- 5 Webservice entra em cena
- 6 Paralelizando os servidores
- 7 Deserializando mensagens
- 8 Convertendo o DTO em entidade de domínio
- 9 Criando a camada de serviço
- 10 Criando a camada de repositório
- 11 Disponibilizando uma API
- 12 Consumindo os dados com Node-RED
- Parte II – Trabalhando com dados reais
- 13 Quem é Franzininho?
- 14 Conhecendo e preparando o ambiente de desenvolvimento do Franziot
- 15 Modularizando o Franziot
- 16 Franziot pergunta: Que horas são?
- 17 Franziot conectando os sensores
- 18 Franziot obtendo dados de temperatura e umidade
- 19 Franziot lendo a pressão atmosférica
- 20 Franziot migrando os sensores para tasks
- Parte III – Extraindo informações dos dados
- 21 Extraindo dados da aplicação
- 22 Gerando o relatório dos dados extraídos
- Parte IV – Compartilhando seu trabalho
- 23 Flexibilizando a configuração
- 24 Distribuindo o Concentrator
Dados do produto
- Número de páginas:
- 328
- ISBN:
- 978-85-5519-424-5
- Data publicação:
- 03/2026