Full text
25-319342.0 CDD-004.678 Dados Internacionais de Catalogação na Publicação (CIP) (Câmara Brasileira do Livro, SP, Brasil) IoT na prática [livro eletrônico] : fundamentos e projetos com arduino e raspberyy Pi / Alexandre Lopes Martiniano...[et al.] ; coordenação Tiago Francisco Andrade Diocesano...[et al.] ; prefácio por Nivaldo Rodrigues e Silva. -- 1. ed. -- Manaus, AM : Ed. dos Autores, 2025. PDF Outros autores: Sandro Breval Santiago, Alyson de Jesus dos Santos, Raimundo Fagner Costa, Ronaldo de Sá Portela, Nivaldo Rodrigues e Silva. Outros coordenadores: Jaidson Brandão da Costa, Elcivan dos Santos Silva, Martinho Correia Barros, Adelino Maia Galvão Filho. Bibliografia. ISBN 978-65-01-82120-7 1. Arduino (Linguagem de computador) 2. Ciência da computação 3. Engenharia 4. Internet das coisas 5. Linguagem de programação para computadores 6. Tecnologia I. Martiniano, Alexandre Lopes. II. Santiago, Sandro Breval. III. Santos, Alyson de Jesus dos. IV. Costa, Raimundo Fagner. V. Portela, Ronaldo de Sá. VI. Silva, Nivaldo Rodrigues e. VII. Diocesano, Tiago Francisco Andrade. VIII. Costa, Jaidson Brandão da. IX. Silva, Elcivan dos Santos. X. Barros, Martinho Correia. XI. Galvão Filho, Adelino Maia. Índices para catálogo sistemático: 1. Internet das coisas : Ciência da computação 004.678 Aline Graziele Benitez - Bibliotecária - CRB-1/3129 DOI: 10.5281/zenodo.17771889
Expediente do IFAM Reitor Jaime Cavalcante Alves Pró-Reitor de Administração Fábio Teixeira Lima Pró-Reitor de Gestão de Pessoas Leandro Amorim Damasceno Pró-Reitora de Ensino Rosângela Santos da Silva Pró-Reitora de Extensão Maria Francisca Morais de Lima Pró-Reitor de Pesquisa, Pós-Graduação e Inovação Paulo Henrique Rocha Aride Diretor Geral do Campus Manaus Distrito Industrial Nivaldo Rodrigues e Silva
Expediente do Projeto CITHA MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO AMAZONAS Gestores Nivaldo Rodrigues e Silva Samirames da Silva Fleury Alyson de Jesus dos Santos Maria Cassiana Andrade Braga Adanilton Rabelo de Andrade Coordenadores Tiago Francisco Andrade Diocesano Jaidson Brandão da Costa Elcivan dos Santos Silva Martinho Correia Barros Adelino Maia Galvão Filho Expediente de Produção Autor(es) Alexandre Lopes Martiniano Sandro Breval Santiago Alyson de Jesus dos Santos Raimundo Fagner Costa Ronaldo de Sá Portela Nivaldo Rodrigues e Silva Avaliação Pedagógica Samirames da Silva Fleury Diagramadores Raimundo Fagner Costa Wenndisson da Silva Souza Fabio Serra Ribeiro Couto Revisores de Texto Alexandre Lopes Martiniano
IoT na Prática: Fundamentos e Projetos com Arduino e Raspberry Pi Autores Alexandre Lopes Martiniano Sandro Breval Santiago Alyson de Jesus dos Santos Raimundo Fagner Costa. Ronaldo de Sá Portela Nivaldo Rodrigues e Silva Prefácio por Nivaldo Rodrigues e Silva Revisão Alexandre Lopes Martiniano 1ª Edição Manaus - AM 2025
Prefácio A Internet das Coisas (IoT) deixou de ser apenas um conceito futurista para se tornar parte do nosso cotidiano. Dos sistemas inteligentes de iluminação e automação residencial até a gestão de cadeias produtivas industriais, a IoT conecta objetos, sensores e pessoas em uma rede dinâmica e colaborativa. A proposta deste material é servir como guia prático e reflexivo para estudantes, pesquisadores e profissionais que desejam compreender, projetar e implementar soluções com Arduino, ESP32 e Raspberry Pi, explorando desde os fundamentos de eletrônica até aplicações avançadas em simulação e prototipagem. Ao longo do E-book, o leitor encontrará uma abordagem progressiva, que combina teoria, prática e experimentação em simuladores como o Wokwi, além de projetos reais com sensores, atuadores e protocolos de comunicação. A intenção é que cada capítulo estimule a autonomia do estudante na criação de soluções criativas e sustentáveis, conectando o aprendizado técnico aos desafios da sociedade contemporânea. Este material nasce da experiência de docentes e pesquisadores comprometidos com a inovação tecnológica e com a formação crítica de novos profissionais na área da Engenharia de Computação e afins. Ao unir prática pedagógica e aplicação industrial, buscamos oferecer um caminho acessível e motivador para quem deseja se aventurar no universo da IoT.
Projeto de Capacitação e Interiorização em Tecnologias Habilitadoras na Amazônia - CITHA O projeto CITHA surge com o objetivo de fortalecer a economia da Amazônia por meio do incentivo ao empreendedorismo local e do desenvolvimento sustentável. Sua proposta é capacitar profissionais e impulsionar a criação de startups voltadas para a bioeconomia, além de apoiar cooperativas locais na melhoria de seus processos produtivos. A implementação de tecnologias inovadoras é uma das estratégias centrais do projeto, visando oferecer soluções eficientes que atendam às necessidades regionais, como a otimização dos recursos naturais e a melhoria da infraestrutura local. Ao longo de sua execução, o projeto se compromete a integrar os diversos stakeholders, como governos, empresas, ONGs e comunidades, por meio da capacitação da mão de obra local. O objetivo é formar um capital intelectual qualificado, capaz de apoiar uma governança eficiente, promover a inovação e assegurar a sustentabilidade. O CITHA dedica-se à criação de processos internos que incentivem o desenvolvimento de novos métodos e tecnologias, adaptáveis às particularidades do território amazônico. Em síntese, o projeto CITHA visa criar um ciclo de desenvolvimento que não só incentive o empreendedorismo, mas também promova a modernização das estruturas locais, elevando a qualidade de vida das populações da Amazônia. Focado em áreas como bioeconomia, inovação e transferência de tecnologia, o projeto busca estabelecer um ecossistema mais forte e autossustentável, capaz de responder eficientemente às demandas do mercado e da sociedade.
Lista de Expressões para Enriquecimento de Conteúdo Este material foi cuidadosamente estruturado para apoiar sua jornada de aprendizado. Ao longo dos capítulos, você encontrará diversas chamadas sinalizadas por ícones especiais, que ajudarão a destacar pontos-chave e enriquecer sua compreensão. Durante a diagramação, esses ícones serão inseridos conforme as indicações dos autores, guiando você para diferentes tipos de conteúdo e atividades que potencializam seu estudo. Fique Alerta! Destaque para conceitos, expressões e trechos fundamentais que merecem sua atenção especial para a compreensão do conteúdo. Iniciando o diálogo... Espaço para reflexão crítica. Aqui você será convidado(a) a problematizar os temas abordados, relacionando-os com sua experiência e buscando conexões relevantes para aprofundar seu aprendizado. Conhecendo um pouco mais! Indicação de fontes complementares, como livros, entrevistas, vídeos, aplicativos, links e outros recursos para ampliar seu conhecimento sobre o tema. Caso Prático Aplicação direta do conteúdo em exemplos concretos, para facilitar a fixação e demonstrar a utilidade do que foi aprendido. Copie e Teste! Trechos de código prontos para serem copiados e executados, para que você possa experimentar, validar e explorar na prática os conceitos estudados.
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA detectam uma falha iminente. Os sensores podem realmente medir quando a produção está comprometida. Com a ajuda de alertas de sensor, os fabricantes podem verificar rapidamente a precisão do equipamento ou removê-lo da produção até que seja reparado. Isso permite que as empresas reduzam os custos operacionais, melhorem o tempo de atividade e melhorem o gerenciamento do desempenho dos ativos. Automotivo O setor automotivo espera obter vantagens significativas com o uso de aplicações de IoT. Além dos benefícios da aplicação da IoT nas linhas de produção, os sensores podem detectar falhas iminentes dos equipamentos nos veículos que já estão na estrada e podem alertar o motorista com detalhes e recomendações. Graças às informações agregadas coletadas pelas aplicações baseadas na IoT, fabricantes e fornecedores automotivos podem aprender mais sobre como manter os carros em movimento e os proprietários de carros informados. Transporte e Logística Os sistemas de transporte e logística se beneficiam de uma variedade de aplicações de IoT. Frotas de carros, caminhões, navios e trens que possuem estoque podem ser redirecionadas com base nas condições climáticas, disponibilidade de veículo ou motorista, graças aos dados do sensor de IoT. O estoque em si também pode ser equipado com sensores para monitoramento de acompanhamento e rastreamento e controle de temperatura. Os setores de alimentos e bebidas, flores e produtos farmacêuticos costumam realizar estoques sensíveis à temperatura que se beneficiaram muito com as aplicações de monitoramento da IoT que enviam alertas quando as temperaturas aumentam ou caem para um nível que ameaça o produto. Varejo As aplicações de IoT permitem que as empresas de varejo gerenciem estoques, melhorem a experiência do cliente, otimizem a cadeia de suprimentos e reduzam os custos operacionais. Por exemplo, prateleiras inteligentes equipadas com sensores de peso podem coletar informações baseadas em RFID e enviar os dados para a plataforma IoT para monitorar automaticamente o estoque e acionar alertas se os itens estiverem com pouca carga. Os beacons podem enviar ofertas e promoções direcionadas aos clientes para fornecer uma experiência envolvente. Setor Público Os benefícios da IoT no setor público e em outros ambientes relacionados a serviços são igualmente abrangentes. Por exemplo, os serviços públicos pertencentes ao governo podem usar aplicações baseadas na IoT para notificar seus usuários sobre interrupções em massa e até mesmo sobre interrupções menores nos serviços de água, energia ou esgoto. As aplicações de IoT podem coletar dados sobre o escopo de uma interrupção e implementar recursos para ajudar os utilitários a se recuperarem de interrupções com maior velocidade. Assistência Médica O monitoramento de ativos da IoT oferece vários benefícios ao setor de saúde. Médicos, enfermeiros e assistentes geralmente precisam saber a localização exata dos ativos de assistência ao paciente, como cadeiras de rodas. Quando as cadeiras de rodas de um hospital são equipadas com sensores IoT, elas podem ser rastreadas a partir da aplicação de monitoramento de ativos IoT para que qualquer pessoa que esteja procurando por uma possa encontrar rapidamente a cadeira de rodas disponível mais próxima. Muitos ativos hospitalares podem ser rastreados dessa maneira para garantir o uso adequado e a contabilidade financeira dos ativos físicos em cada departamento [3]. 15
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA Agricultura inteligente Agricultura inteligente ou “smart farming” refere-se principalmente ao aproveitamento da tecnologia moderna na agricultura. Ao implementar sensores e dispositivos de IoT para coletar diversos dados, os agricultores podem tomar decisões informadas para aprimorar todos os aspectos de suas operações tanto na pecuária quanto na agricultura. 1.1.6 Arquitetura de IoT para agricultura inteligente A arquitetura de IoT para agricultura inteligente é composta por quatro camadas integradas ilustradas na Figura 1.2: percepção (sensor nodes), rede (gateway), nuvem (cloud) e aplicação (application). Essas camadas permitem coleta eficiente de dados, transmissão segura e armazenamento confiável. Figura 1.2: Ilustração de Iot na Agricultura Fonte: Imagem obtida em página web: https://www.mokosmart.com/pt/iot-in-agriculture/. 1. Camada de Percepção ou Detecção e Atuador: Sensores e atuadores implantados no campo para coletar dados (umidade do solo, temperatura, luz, pH, etc.) e controlar operações (irrigação, fertilização). 2. Camada de rede: Facilita a transferência de dados entre camadas de sensores/atuadores e de nuvem usando LoRaWAN, celular, etc. 3. Camada de nuvem: Plataforma de nuvem para processamento, armazenamento e análise de dados de sensores, fornecendo insights para tomada de decisões orientadas por dados. 4. Camada de aplicação: Aplicativos e interfaces fáceis de usar que permitem aos agricultores monitorar as condições da fazenda e tomar decisões informadas para otimizar o rendimento das colheitas e a utilização de recursos. 16
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA 1.1.7 Aplicações práticas da IoT na agricultura A Internet das Coisas (IoT) tem se consolidado como uma das principais aliadas do agronegócio moderno, impulsionando o surgimento da chamada agricultura 4.0. Ao integrar sensores, dispositivos inteligentes e sistemas conectados, a IoT permite monitorar, automatizar e otimizar processos agrícolas com precisão e em tempo real. Essa transformação tecnológica oferece aos produtores rurais ferramentas avançadas para a gestão eficiente de recursos naturais, redução de custos operacionais e aumento da produtividade. Nesta seção, serão exploradas aplicações práticas da IoT no campo, evidenciando como essa tecnologia está sendo empregada no monitoramento de culturas, gestão hídrica, automação de estufas, rastreabilidade da produção e manejo pecuário, entre outras inovações que estão redefinindo o futuro da agricultura. Monitoramento de solo e culturas O uso da Internet das Coisas (IoT) na agricultura vem revolucionando a forma como monitoramos e gerenciamos lavouras. Por meio de sensores inteligentes espalhados pela área cultivada, é possível obter dados em tempo real sobre umidade do solo, temperatura, nível de nutrientes e muito mais. Estes dispositivos proporcionam uma visão ampla e precisa das condições do campo, permitindo que decisões sejam tomadas de forma rápida e baseada em dados concretos. A Figura 1.3 exemplifica essa integração tecnológica. À esquerda, vemos um mapa RGB, que apresenta uma visão convencional da lavoura, similar à obtida por drones ou satélites. À direita, está um mapa NDVI (Normalized Difference Vegetation Index), resultado de sensoriamento remoto que mede a saúde da vegetação com base na radiação refletida pelas plantas. As cores variam do vermelho (vegetação com baixo vigor) ao verde (vegetação saudável), possibilitando que o agricultor identifique áreas com estresse hídrico, pragas ou deficiência nutricional. Figura 1.3: Mapa RGB x Mapa NVDI. Fonte: Imagem obtida em página web: https://agroadvance.com.br/blog-iot-na-agricultura/ Além do sensoriamento por imagem, sensores IoT instalados no solo ou em equipamentos da fazenda monitoram variáveis ambientais e agronômicas. Com isso, práticas como irrigação sob demanda egestão nutricional assertiva tornam-se possíveis, otimizando o uso da água e fertilizantes, reduzindo custos e promovendo sustentabilidade. Os drones desempenham um papel fundamental nesse ecossistema: além de captar imagens aéreas como as mostradas na figura, eles podem carregar sensores que complementam os dados obtidos em solo, tornando o monitoramento ainda mais robusto e eficaz. O monitoramento com IoT é, portanto, uma ferramenta essencial para a agricultura de precisão, ajudando produtores a maximizar a produtividade, preservar recursos e antecipar 17
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA problemas com mais assertividade. Agricultura de Precisão e Gestão de Insumos A agricultura de precisão é uma abordagem inovadora que reconhece que a lavoura não é uniforme, tanto no espaço quanto no tempo e, por isso, exige estratégias de manejo diferenciadas. Por meio da coleta e análise de dados em tempo real, essa prática permite decisões mais assertivas sobre aplicação de insumos, irrigação e colheita, otimizando recursos e aumentando a produtividade. O conceito se consolidou a partir da década de 1990, com o avanço do GPS e do geoprocessamento, e atualmente se beneficia de uma ampla gama de tecnologias como drones, sensores remotos, big data, inteligência artificial e automação. A Figura 1.4 ilustra visualmente como ocorre essa integração tecnológica no campo. Nela, observamos uma rede composta por drones, tratores inteligentes, sensores no solo, estações meteorológicas, tablets com dashboards de monitoramento, satélites e servidores em nuvem interligados por conexões de dados. Esses elementos formam um ecossistema digital que permite a captura, transmissão e análise contínua de informações agronômicas. Essa infraestrutura possibilita ao agricultor monitorar em tempo real o desenvolvimento das culturas, as condições ambientais e a operação das máquinas agrícolas, gerando um ciclo de feedback contínuo entre o campo e os sistemas de gestão agrícola. No Brasil, essa transformação já é uma realidade crescente: dados de 2023 apontam que cerca de 50% dos produtores agrícolas adotam ou têm interesse em adotar a agricultura de precisão, e esse movimento impulsionou um crescimento recorde de 15% na produção nacional. A prática não se resume apenas ao aumento da produtividade, mas também ao uso responsável dos recursos naturais e à sustentabilidade do agronegócio a longo prazo. Sua adoção sistemática representa uma mudança de paradigma, em que o campo é tratado como um sistema dinâmico e tecnológico, integrando sensores de solo e clima, estações meteorológicas e dados históricos para mapear variações internas da propriedade. A agricultura de precisão transforma dados brutos em decisões inteligentes, permitindo ao produtor um gerenciamento mais eficiente, redução de custos operacionais e mitigação dos impactos ambientais. Figura 1.4: Fusão de redes de sensores de pequena e grande escala, drones, veículos autônomos, robôs e máquinas agrícolas apoiadas por infraestrutura em nuvem no cultivo em campo aberto. Fonte: Imagem obtida em página web: https: //agroadvance.com.br/blog-guia-da-agricultura-de-precisao/ 18
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA A integração da Internet das Coisas (IoT) no setor agrícola tem promovido uma verdadeira revolução no campo, permitindo a coleta, transmissão e análise de dados em tempo real para otimizar todos os aspectos da produção. Essa transformação faz parte da chamada Agricultura 4.0, onde sensores, dispositivos conectados e sistemas inteligentes colaboram para tornar as atividades agrícolas mais eficientes, sustentáveis e lucrativas. As aplicações práticas da IoT vão muito além do monitoramento de lavouras. Elas abrangem desde a gestão hídrica com irrigação inteligente, até o controle de variáveis ambientais em estufas automatizadas, o monitoramento da saúde animal na pecuária, e a rastreabilidade de produtos ao longo de toda a cadeia de suprimentos. Cada aplicação utiliza um conjunto específico de sensores e tecnologias que, juntos, fornecem dados valiosos para a tomada de decisões estratégicas. A seguir, é apresentada a Tabela 1.1 que resume as principais aplicações da IoT na agricultura, os dispositivos e sensores comumente utilizados em cada caso, bem como os benefícios diretos que essas tecnologias oferecem ao produtor rural. Esse panorama evidencia como a conectividade no campo já é uma realidade acessível e estratégica para o futuro da produção agrícola. Tabela 1.1: Aplicações de IoT na Agricultura Aplicação Dispositivos/Sensores Benefícios Monitoramento de Culturas Sensores de solo, NDVI, câmeras multiespectrais, drones Acompanhamento em tempo real da saúde das plantas; identificação precoce de pragas e doenças Irrigação Inteligente Sensores de umidade do solo, sensores climáticos, válvulas automáticas Uso racional da água; irrigação sob demanda; economia de energia e recursos hídricos Gestão de Insumos Sensores ópticos, mapas de prescrição, tratores com taxa variável, GPS Aplicação localizada; redução de desperdícios; aumento da eficiência agronômica Monitoramento Pecuário Brincos eletrônicos, sensores biométricos, câmeras e balanças conectadas Rastreabilidade, controle de saúde animal, nutrição e bem-estar otimizados Automação de Estufas e Fazendas Verticais Sensores de temperatura, umidade, luz, pH, EC, sistemas de controle automático Condições ideais de cultivo; produção em ambientes controlados; redução de perdas Climatologia e Previsão de Riscos Estações meteorológicas IoT, sensores ambientais, pluviômetros Monitoramento microclimático; alertas de geada, seca, tempestades e pressão de pragas Rastreabilidade e Logística RFID, QR codes, sensores de localização (GPS), blockchain Controle da cadeia de suprimentos; rastreamento do produto desde o campo até o consumidor final Previsão e Análise de Dados (Big Data) Plataformas em nuvem, softwares agrícolas, IA e machine learning Tomada de decisões estratégicas; previsões baseadas em dados históricos e em tempo real Continua na próxima página 19
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA Continuação da Tabela Aplicação Dispositivos/Sensores Benefícios Segurança e Monitoramento Remoto Câmeras conectadas, sensores de movimento, alarmes e aplicativos móveis Monitoramento remoto de propriedades e máquinas; prevenção de roubos e invasões Manejo Integrado de Pragas e Doenças Câmeras com IA, armadilhas inteligentes, sensores de clima e vegetação Intervenções pontuais e sustentáveis; redução do uso de defensivos; produção mais saudável 1.2 Fundamentos de eletricidade O entendimento dos Fundamentos de Eletricidade é essencial para qualquer profissional ou estudante que deseje atuar nas áreas de tecnologia, engenharia ou sistemas embarcados, especialmente no contexto da Internet das Coisas (IoT). Este tópico aborda os conceitos fundamentais que sustentam o funcionamento dos circuitos elétricos e eletrônicos, oferecendo uma base sólida para o desenvolvimento de projetos práticos. Ao longo do conteúdo, são apresentados desde os princípios básicos da eletricidade, como carga elétrica, corrente, tensão e resistência, até os cálculos de potência e energia consumida, com exemplos aplicados em dispositivos reais. Também são exploradas as unidades de medida padronizadas pelo Sistema Internacional (SI), os prefixos utilizados em escalas elétricas, bem como as leis físicas que regem o comportamento dos circuitos: as Leis de Ohm e de Kirchhoff. Compreender esses fundamentos permite dimensionar corretamente componentes, interpretar esquemas elétricos e otimizar o consumo energético de dispositivos inteligentes, tornando-se um conhecimento indispensável para o desenvolvimento de soluções inovadoras e eficientes em ambientes conectados. 1.2.1 O que é eletricidade? A eletricidade é uma forma de energia resultante do movimento de partículas carregadas, como elétrons e íons. Essa energia pode ser gerada por fontes naturais ou artificiais e é essencial para o funcionamento de dispositivos e sistemas no mundo moderno. A eletricidade pode ser classificada em dois tipos principais: 1. Eletricidade estática: Ocorre quando há um acúmulo de cargas elétricas em um objeto, sem movimento contínuo. Um exemplo comum da eletricidade eletrostática é a atração de pequenos pedaços de papel por um pente após ser esfregado no cabelo. 2. Eletricidade dinâmica: Refere-se ao fluxo contínuo de elétrons através de um condutor, como em circuitos elétricos domésticos. A eletricidade é um dos pilares da sociedade moderna, permitindo a operação de equipamentos industriais, sistemas de transporte, comunicação e conforto doméstico. Desde o século XIX, com as descobertas de cientistas como Michael Faraday e Alessandro Volta, a eletricidade tornou-se uma fonte de energia indispensável para a humanidade. 20
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA 1.2.2 Elementos Fundamentais da Eletricidade Para compreender o funcionamento dos circuitos elétricos e sua aplicação em sistemas de Internet das Coisas (IoT), é essencial dominar os quatro elementos fundamentais da eletricidade: carga elétrica, corrente elétrica, tensão elétrica e resistência elétrica. Estes conceitos estruturam toda a lógica de funcionamento de sensores, atuadores, microcontroladores e fontes de alimentação em projetos embarcados. (A) Carga Elétrica (Q): A carga elétrica é uma propriedade física intrínseca de determinadas partículas subatômicas, como elétrons e prótons, responsáveis pelas interações eletromagnéticas entre os corpos. Essa carga pode ser positiva (como nos prótons) ou negativa (como nos elétrons). Quando há excesso ou deficiência de elétrons em um corpo, diz-se que ele está eletricamente carregado. – Unidade de medida: Coulomb ( C ) – Valor elementar da carga do elétron: Dado pela expressão abaixo ≈ −1,6×10−19 C Sabemos que as cargas elétricas de sinais opostos se atraem e de mesmo sinal se repelem. Na prática, a movimentação dessas cargas em condutores metálicos, como fios de cobre, constitui o fenômeno da corrente elétrica, base do funcionamento dos circuitos. Figura 1.5: Cargas elétricas de sinais opostos Fonte: Imagem obtida em página web: https://www.makerhero.com/guia/eletr icidade/eletrostatica-e-campo-eletrico/?srsltid=AfmBOopm7_tzaoq OzqQD_scdGsSNlPJdxRG7KG3nMlKu5sSzxUmra-Kp Figura 1.6: Cargas elétricas de mesmo sinal Fonte: Imagem obtida em página web: https://www.makerhero.com/guia/eletr icidade/eletrostatica-e-campo-eletrico/?srsltid=AfmBOopm7_tzaoq OzqQD_scdGsSNlPJdxRG7KG3nMlKu5sSzxUmra-Kp 21
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA (B) Corrente Elétrica (I): A corrente elétrica representa o fluxo ordenado de elétrons em um circuito, movendo-se sempre de forma contínua e orientada pela presença de uma diferença de potencial elétrico (tensão). Esse movimento ocorre naturalmente em materiais condutores quando os elétrons livres são forçados a se mover por uma força eletromotriz gerada por uma fonte de energia (como uma bateria ou fonte USB). – Unidade de medida: Ampère [A] – Definição: 1 Ampère equivale ao fluxo de 1 Coulomb por segundo (1 A= 1 C/s) A corrente pode ser: – Contínua (CC) Como em circuitos com Arduino, onde os elétrons fluem em um único sentido. – Alternada (CA) Como na rede elétrica doméstica, onde a direção do fluxo inverte periodicamente (60 Hz no Brasil). A corrente sempre circula do polo negativo para o positivo do ponto de vista dos elétrons (sentido real), embora na maioria dos diagramas seja adotado o sentido convencional, do polo positivo para o negativo. A Figura 1.7 mostra o caminho das cargas negativas (elétrons) ao redor de um circuito simples com fonte de tensão, resistor e sentido da corrente elétrica. Figura 1.7: Representação de um circuito com corrente elétrica, tensão e resistência. Fonte: Imagem obtida em página web: https: //www.makerhero.com/guia/eletricidade/o-que-e-eletricidade/?srs ltid=AfmBOooaN85hNRY9sKCWff_CE550OThdERQj4Y_RzqKzuMIV7SZFoo3A (C) Tensão Elétrica (V) : Também chamada de diferença de potencial elétrico, a tensão elétrica é a força que impulsiona os elétrons ao longo de um condutor. Ela representa a energia elétrica disponível por unidade de carga entre dois pontos do circuito. É gerada por fontes como pilhas, baterias, fontes USB e painéis solares. 22
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA – Unidade de medida: Volt [V] – Relação com corrente e resistência: dada pela Lei de Ohm: V=R×I[V] Onde: ∗V= Tensão elétrica (em Volts) ∗R= Resistência (em Ohms, Ω) ∗I= Corrente elétrica (em Ampères, A) Exemplo de aplicação: Se uma fonte de 9 V está conectada a um resistor de 1 kΩ, a corrente no circuito será: I=V R=9 1000 = 0,009 A= 9 mA Em projetos com Arduino, valores comuns de tensão são 3,3 V, 5 V e 12 V, dependendo do sensor ou atuador utilizado. (D) Potência Elétrica: Apotência elétrica é uma grandeza física que expressa a quantidade de energia elétrica transformada por um dispositivo em um intervalo de tempo. Em outras palavras, ela mede a rapidez com que um equipamento consome ou converte energia elétrica em outras formas de energia, como luz, calor ou movimento. A unidade de medida no Sistema Internacional (SI) é o watt (W), nomeado em homenagem ao engenheiro escocês James Watt. Matematicamente, a potência elétrica pode ser calculada de diferentes formas: (1) Com base na corrente elétrica (I)eresistência (R): P=R×I2[W] (2) Com base na tensão elétrica (U)eresistência (R): P=U2 R[W] (3) Com base na tensão (U)ecorrente (I): P=U×I[W] (4) Com base na energia elétrica (E)consumida ao longo do tempo (∆t): P=E t[W] Exemplo Prático - Cálculo direto da potência: Um resistor de 100 Ω é percorrido por uma corrente de 5A. Usando a fórmula: P=R×I2= 100 ×(52) = 100 ×25 = 2500 W 23
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA Exemplo Prático Aplicação em dispositivos reais: Qual a potência elétrica de um chuveiro elétrico que consome 22.500 Wh por mês, funcionando 15 minutos por dia. Convertendo o tempo mensal para horas: 15 min 60 min = 0,25 h 0,25 ×30 dias = 7,5h P=E ∆t=22 500 7,5= 3 000 W (E) Energia Elétrica: Aenergia elétrica corresponde à quantidade total de trabalho realizado por um circuito elétrico ao longo de um período de tempo. A energia consumida é diretamente proporcional à potência do equipamento e ao tempo de funcionamento. – Unidade no SI: Joule [J] – Unidade prática mais usada: Quilowatt-hora (kWh) A relação entre energia, potência e tempo é dada por: E=P×∆t[J] 1kW h = 1000W×3600s= 3.600.000J Onde: –E= Energia elétrica (em Joules) –P= Potência (em Watts) –∆t= Variação de tempo (em segundos) Exemplo prático – Economia de energia: Uma lâmpada fluorescente de 15 W substitui uma incandescente de 60 W. Em 1 hora: –Energia incandescente: E= 60 W×1h= 0,060 kWh –Energia fluorescente: E= 15 W×1h= 0,015 kWh – Economia: 0,060 kWh −0,015 kWh = 0,045 kWh (F) Tipos de Potência Elétrica: No contexto dos sistemas de corrente alternada (como em redes de distribuição elétrica), a potência pode ser dividida em três componentes: 24
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA diferentes fórmulas matemáticas derivadas da Lei de Ohm e da definição de potência elétrica, permitindo o cálculo de qualquer uma das grandezas a partir das demais. Essa ferramenta gráfica é útil para a resolução de problemas envolvendo circuitos elétricos [5]. Figura 1.10: Círculo das equações fundamentais. Fonte: Imagem obtida em página web: https://ohmic.com.br/lei-de-ohm/ Tipos de Resistores Os resistores podem se apresentar em quatro tipos distintos, conforme a Figura 1.11, cada um com aplicações específicas em circuitos eletrônicos: •Resistor Fixo: São os mais comuns e possuem um valor de resistência determinado e imutável. Utilizados para limitar corrente, dividir tensão ou proteger componentes sensíveis. •Trimpots: Também chamados de potenciômetros de ajuste, são dispositivos variáveis usados para calibração fina de circuitos. Possuem três terminais, mas geralmente são usados como divisores de tensão com ajuste esporádico. •Potenciômetros: São resistores variáveis com acionamento rotativo. Utilizados em ajustes manuais de dispositivos, como controle de volume em rádios ou regulação de brilho em telas. •Potenciômetro Deslizante: Variante do potenciômetro tradicional, possui um controle linear (em vez de rotativo). Comum em mesas de som e controladores de iluminação, permite ajustes precisos em tempo real. Figura 1.11: Resistor fixo, Trimpots, Potenciômetros e Potenciômetro com controle deslizante. Fonte: [5] 31
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA Identificação por código de cores de resistores O código de cores é uma convenção amplamente utilizada para identificar o valor da resistência elétrica de resistores de uso geral, especialmente os de pequeno porte, nos quais não há espaço para impressão de números. Essa identificação é baseada em faixas ou bandas coloridas pintadas no corpo do componente, as quais representam os valores conforme a tabela padronizada pela norma internacional IEC. Existem quatro faixas principais em um resistor: as duas primeiras indicam os dígitos significativos da resistência, a terceira corresponde ao multiplicador (número de zeros), e a quarta indica a tolerância, ou seja, a margem de erro permitida para o valor nominal. Por exemplo: Um resistor com faixas: vermelho, violeta, marrom e ouro. A leitura do código de cores indica os dígitos 2 (vermelho) e 7 (violeta), multiplicados por 10 (marrom), resultando em 270 ohms, com uma tolerância de 5% (ouro). Isso significa que o valor real da resistência pode variar entre 256,5 Ω e 283,5 Ω, devido às limitações do processo de fabricação. O procedimento para leitura é simples, mas requer atenção à posição do resistor, pois a primeira faixa a ser lida deve estar mais próxima de um dos terminais. Após identificar as cores das três primeiras faixas e aplicar a operação de multiplicação, obtém-se o valor nominal do resistor. A quarta faixa, referente à tolerância, informa o grau de precisão do componente. Tolerâncias mais baixas, como 1% (marrom) ou 2% (vermelho), indicam maior precisão, porém aumentam o custo de produção e exigem maior controle de qualidade. Em aplicações críticas, como em sensores ou circuitos analógicos de precisão, a escolha de resistores com menor tolerância é essencial. Já em aplicações mais simples, como divisores de tensão em projetos de prototipagem, resistores com tolerância de 5% (ouro) ou 10% (prata) são suficientes e economicamente mais viáveis. Portanto, entender e aplicar corretamente o código de cores é uma habilidade fundamental para qualquer profissional ou estudante que trabalhe com eletrônica [1]. Tabela de código de cores, conforme ilustra a Figura 1.12. Figura 1.12: Tabela de cores de resitores. Fonte: Imagem obtida em página web: https: //www.fvml.com.br/2018/12/tabela-de-resistores-leitura-de.html 32
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA Conhecendo um pouco mais! Agora que exploramos em detalhes sobre os resistores e também como realizar a leitura de valores. •Resistores - Este vídeo explica como funcionam os resitores e como calcular de circuitos. Assista em: https://www.youtube.com/ watch?v=DH2hF0Z9Yns •Como realizar a leitura de valores - Nesse vídeo é explicado com um exemplo prático como a comunicação em uma rede real acontece, como as informações são empacotadas e desempacotadas a cada camada. Assista em: https://www.youtube.com/ watch?v=76M_eZe-XoE Aponte a câmera para o código correspondente. 1.3.2 Capacitores Os capacitores (Figura 1.13) são componentes que permitem armazenar energia para uma utilização rápida. Por exemplo, se compararmos um capacitor com uma pilha temos que o capacitor pode descarregar toda sua carga em uma pequena fração de segundo, já a pilha demoraria vários minutos para descarregar. Uma aplicação típica de capacitores e no flash de câmera, a pilha (ou bateria) carrega o capacitor por vários segundos, e então o capacitor descarrega toda a carga armazenada para que a lâmpada do flash seja acionada imediatamente. Figura 1.13: Tipos de Capacitores. Fonte: Imagem obtida em página web: https://brasilescola.uol.com.br/fisica/capacitores.htm Os capacitores podem ter polaridade ou não. A principal característica de um capacitor é a capacidade de armazenar cargas elétricas. Toda vez que um capacitor é ligado em um circuito DC ele se carrega com uma tensão igual à tensão da fonte. Esta carga não acontece instantaneamente, é preciso um certo tempo para que o capacitor se carregue. Uma vez carregado, não há mais a passagem de corrente elétrica pelo mesmo. 33
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA A capacidade de armazenamento de cargas de um capacitor é medida através de sua Capacitância, cuja unidade de medida é o Farad. A especificação de um capacitor é feita por meio de sua capacitância, da máxima tensão de operação do mesmo e do tipo de material usado na construção do capacitor, conforme veremos mais adiante. A capacitância de 1F é relativamente grande, de modo que normalmente observamos os valores de capacitância especificados em μF, nF ou pF (leia-se, respectivamente: micro Farad, nano Farad e pico Farad). Algumas vezes podem aparecer o valor em mF (mili Farad). A capacitância (C) de um capacitor pode ser expressa matematicamente pela relação: C=Q V O capacitor mais simples é o capacitor de placas paralelas, ilustrado a seguir. Para este capacitor, sua capacitância é dada por: C=k·ε0·A d Figura 1.14: Tipos de Capacitores. Essa expressão pode ser descrita da seguinte forma: •C: Capacitância do capacitor, medida em farads (F) •k: Constante dielétrica (ou permissividade relativa) do material isolante entre as placas •ε0: Permissividade elétrica do vácuo, cujo valor aproximado é 8,85 ×10−12F/m •A: Área de cada uma das placas condutoras (em metros quadrados) •d: Distância entre as placas (em metros) Essa fórmula mostra que a capacitância é diretamente proporcional à área das placas e à constante dielétrica do material, e inversamente proporcional à distância entre elas. Ou seja, quanto maior a área ou o valor de k, maior será a capacidade de armazenar carga elétrica; por outro lado, quanto maior a distância entre as placas, menor será essa capacidade. 34
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA Conhecendo um pouco mais! Assista ao vídeo para saber um pouco mais sobre associação de capacitores: •Capacitores - Aprenda aqui como associar capacitores em série ou paralelo e calcular o capacitor equivalente ao fazer as montagens de seus projetos. Assista em: https://www.youtube.com/watch?v=LaItV5LUcwA Ou aponte a câmera do seu smartphone para o QR Code acima. A energia armazenada em um Capacitor é dada por: E(t) = Cv2(t) 2 Essa é a expressão da energia armazenada em um capacitor em função do tempo, onde: •E(t): energia elétrica armazenada no capacitor no instante t, em joules (J) •C: capacitância do capacitor, em farads (F) •v(t): tensão elétrica entre os terminais do capacitor no instante t, em volts (V) Essa equação mostra que a energia acumulada no capacitor é proporcional à capacitância e ao quadrado da tensão instantânea aplicada, sendo dividida por 2 devido à integração da potência ao longo do tempo. Conhecendo um pouco mais! Assista ao vídeo para saber um pouco mais sobre energia de capacitores: •Energia de um capacitor - Neste vídeo é abordado o desenvolvimento do processo de armazenamento de energia em um capacitor, justificativa para o fator 1/2 na fórmula da energia armazenada e exemplos numéricos. Também é destacada a importância de se considerar a ddp nos terminais do capacitor, que não é necessariamente a ddp oferecida pela bateria. Assista em: https://youtu.be/tlVAfRJDulk?si=dLL2lD3taSEGtkpV Ou aponte a câmera do seu smartphone para o QR Code acima. 1.3.3 Indutores Oindutor é um componente passivo formado por um fio condutor enrolado em espiras, geralmente sobre um núcleo de ar ou material ferromagnético. Sua principal função é armazenar energia na forma de campo magnético sempre que é percorrido por corrente elétrica. Esse 35
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA armazenamento ocorre devido à propriedade chamada indutância, representada pela letra L, cuja unidade no Sistema Internacional é o Henry (H). O indutor resiste a variações bruscas de corrente elétrica e é amplamente utilizado em filtros, fontes chaveadas, motores, transformadores, relés e dispositivos de indução. O sentido e a direção do campo magnético gerado podem ser determinados pela regra da mão direita, que associa o sentido da corrente ao sentido das linhas de indução. A equação fundamental do indutor, derivada da Lei de Faraday, expressa a tensão autoinduzida em seus terminais pela fórmula: vL=L.di dt A equação mostra que a tensão depende da taxa de variação da corrente ao longo do tempo. Em circuitos de corrente contínua, o indutor se comporta como um curto-circuito em regime permanente, pois não há variação de corrente e, portanto, nenhuma tensão induzida. Quando a corrente varia, há uma oposição à sua variação, de acordo com a Lei de Lenz, que estabelece que a tensão induzida cria uma corrente de sentido oposto àquela que a gerou. A energia armazenada no indutor é dada pela expressão: E=1 2L.i2 O que evidencia que essa energia depende diretamente da indutância e do quadrado da corrente que o atravessa. Para identificar o valor de um indutor, assim como nos resistores, utiliza-se o código de cores. Esse código é composto por faixas coloridas pintadas sobre o corpo do componente, geralmente três faixas principais. A primeira e a segunda faixas indicam os dois primeiros dígitos significativos, enquanto a terceira faixa representa o número de zeros (multiplicador). Por exemplo: Um indutor com as cores marrom (1), preto (0) e laranja (×1000) possui o valor de 10.000 µH, ou 10 mH. Em alguns casos, uma quarta faixa pode indicar a tolerância, como prata (±10%) ou dourado (±5%). Essa codificação facilita a leitura sem a necessidade de instrumentos, sendo essencial para técnicos e engenheiros ao identificar indutores em placas eletrônicas. Conhecer esse sistema é importante para evitar erros na substituição de componentes e para garantir o desempenho correto de circuitos em projetos elétricos e eletrônicos. Conhecendo um pouco mais! Assista ao vídeo para saber como ler e reconhecer valores de um indutor: •Indutores - Neste vídeo é abordado como Reconhecer e Ler valores de um Indutor. Assista em: https://youtu.be/2JzVl2AkszA?si=MsZS2nDdmkjNCBgW Ou aponte a câmera do seu smartphone para o QR Code acima. 36
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA 1.3.4 Diodo Semicondutor Um diodo (Figura 1.15) é um componente semicondutor que permite que a corrente flua em apenas um sentido. É um componente polarizado, desta forma, o terminal Cátodo que é identificado por uma faixa deve estar sempre conectado ao pólo negativo (ou terra) do circuito, enquanto o Ânodo que é o outro terminal deverá estar conectado ao pólo positivo. Figura 1.15: Diodo semicondutor. Fonte: Imagem obtida em página web: https://pt.wikipedia.org/wiki/Diodo_semicondutor Conhecendo um pouco mais! Agora que exploramos em detalhes sobre o Diodo Semicondutor, vamos assistir ao vídeo para aprender um pouco mais. •Diodos - Este vídeo explica como Diodos como funcionam os diodos, onde são usados, porque são usados e os diferentes tipos. Assista em: https://www.youtube.com/ watch?v=YkSmMsdSdfw •Exemplos de circuítos - Nesse vídeo é explicado a prática e teoria sobre o que são diodos; tipos de diodo; para que serve o diodo e como funcionam. Assista em: https://youtu.be/GIvjxHg 3Bds?si=fYRvUDLGkdFau3Em Aponte a câmera para o código correspondente. 1.3.5 Diodo LED O diodo emissor de luz ou simplesmente LED (Figura xx) é uma variação do diodo e apresenta, como principal característica, a emissão de luz quando uma corrente flui através do mesmo. É um componente polarizado, desta forma, o Cátodo (lado chanfrado) sempre deve estar conectado ao pólo negativo (ou terra) do circuito, se conectado invertido pode ser danificado. 37
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA Figura 1.16: Diodo Emissor de Luz - LED Conhecendo um pouco mais! Agora que exploramos em detalhes sobre o Diodo LED, vamos assistir ao vídeo para aprender um pouco mais. •Diodo Emissor de Luz - Este vídeo explica como funcionam os Diodos emissores de luz - LED. Assista em: https://youtu.be/Dl2piIq RKuE?si=o1GH4OAv5Cihs8Yp •Exemplos de aplicações com LED - Nesse vídeo serão apresentados alguns exemplos práticos de como projetar circuítos LED. Assista em: https://youtu.be/tqwGP6U frD0?si=0_OeLCONZPFe5zZ_ Aponte a câmera para o código correspondente. 1.3.6 Transistor Bipolar de Junção - TBJ Os transistores (Figura 1.17) são componentes semicondutores e foram os principais responsáveis pela revolução da eletrônica e da informática na década de 1960, pois, permitiram substituir as válvulas nos equipamentos. Um transistor é praticamente cem vezes menor que uma válvula, não necessita de tempo para aquecimento, consome menos energia, sendo muito mais rápido e confiável. Apresenta inúmeras aplicações, sendo as principais, a atuação como uma “chave” eletrônica e amplificador de sinal. 38
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA Figura 1.17: Transistor TBJ D Um transistor possui três terminais, sendo nomeados como base, coletor e emissor e para identificá-los devemos ter o modelo utilizado e consultar as respectivas especificações (datasheet). Podemos utilizar os transistores com chave eletrônica ou amplificador de sinais. Conhecendo um pouco mais! Agora que exploramos em detalhes sobre os Transistor Bipolar de Junção - TBJ, vamos assistir ao vídeo para aprender um pouco mais. •Transistor - Este vídeo explica como funcionam os Transistores. Assista em: https://youtu.be/tt2BCGx FYpg?si=tkbiU8PG7rX-ZP78 •Exemplo de funcionamento do Transsitor TBJ - Nesse vídeo serão apresentados os conceitos básicos do funcionamento do transistor como uma chave eletrônica. Assista em: https://youtu.be/spqfZa2 6Ra0?si=sj8kTfG1-QCES6_7 Aponte a câmera para o código correspondente. 1.3.7 Circuitos Integrados Os circuitos integrados (CIs) são componentes fundamentais da eletrônica moderna, sendo praticamente indispensáveis em qualquer dispositivo eletrônico, dos mais simples aos mais complexos. Eles consistem na integração de diversos componentes eletrônicos, como resistores, capacitores, diodos e principalmente transistores, dentro de uma única pastilha de silício. Com essa abordagem, é possível implementar funções complexas em um espaço físico extremamente reduzido, com vantagens significativas em termos de custo, confiabilidade, consumo de energia e desempenho. Entre suas inúmeras aplicações, destacam-se os conversores analógico-digitais (ADCs), conversores digitais-analógicos (DACs), amplificadores operacionais, temporizadores, contro39
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA ladores PWM, reguladores de tensão, microcontroladores, microprocessadores, DSPs (processadores de sinais digitais) e muito mais. Historicamente, a invenção do circuito integrado é atribuída a três engenheiros em 1959: Jack St. Claire Kilby (Texas Instruments), Robert Noyce (Fairchild Semiconductor) e Edward Keonjian (Armênia/Rússia). Apesar de Kilby ter registrado sua patente antes, a versão de Noyce apresentou avanços significativos que facilitaram sua adoção industrial. Desde então, a tecnologia dos CIs evoluiu drasticamente, passando por várias gerações classificadas conforme a densidade de integração: SSI, MSI, LSI, VLSI, ULSI e, atualmente, GSI (Giga Scale Integration), que permite a integração de bilhões de transistores em uma única pastilha. Essa evolução tecnológica é também refletida nos diversos tipos de encapsulamento mostrados na imagem, como PGA, PLCC, SOT, TO e SSOP. Esses encapsulamentos seguem padrões industriais e influenciam diretamente na dissipação térmica, facilidade de montagem e aplicação final. Os circuitos integrados oferecem, entre outras vantagens, maior imunidade a ruídos, alta confiabilidade, miniaturização dos dispositivos, menor custo de produção e maior velocidade de processamento, características indispensáveis à eletrônica contemporânea. A figura 1.18 apresenta alguns tipos de encapsulamento para circuitos integrados. Figura 1.18: Tipos de encapsulamentos para Circuitos Integrados Conhecendo um pouco mais! Assista ao vídeo para saber um pouco mais sobre circuitos integrados: •Circuítos Integrados - Neste vídeo é apresentado uma visão geral sobre os Circuitos Integrados que é o componente básicos dos computadores e circuitos eletrônicos.. Assista em: https://youtu.be/ti9VVBHljWU?si=17R071DOhAafcgtH Ou aponte a câmera do seu smartphone para o QR Code acima. 40
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA Figura 1.21: Arduino IDE Fonte: Elaborada pelos autores. 1.4.11 Estrutura de um programa Arduino Você não precisa ser um expert em linguagem C para programar com Arduino. Ao abrir a IDE Arduino você se depara com uma estrutura padrão de programa contendo as funções setup() eloop(). Vamos ver exatamente como isso funciona, levando em consideração o programa abaixo, que acende e apaga o led embutido na placa Arduino em intervalos de 1 segundo: •setup() – É nessa parte do programa que você configura as opções iniciais do seu programa: os valores iniciais de uma variável, se uma porta será utilizada como entrada ou saída, mensagens para o usuário, etc. Essa função irá executar apenas uma vez no início do programa. •loop() – Diferente da função setup(), essa parte do programa repete uma estrutura de comandos de forma contínua ou até que algum comando de “parar” seja enviado ao Arduino. Copie e Teste! //Programa : Pisca Led Arduino void setup() { //Define a porta do led como saída pinMode(13, OUTPUT); } void loop() { //Acende o led digitalWrite(13, HIGH); //Aguarda o intervalo especificado 47
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA delay(1000); //Apaga o led digitalWrite(13, LOW); //Aguarda o intervalo especificado delay(1000); } Quando o código estiver pronto para ser carregado na placa, conecte a placa Arduino no seu computador, entre no menu ferramentas, escolha o modelo da placa e a porta na qual a mesma está conectada: Fonte: Elaborada pelos autores. Defina a porta serial correta: Fonte: Elaborada pelos autores. Então clique no botão de compilação. Isso irá verificar se existe algum erro no código e gerar o arquivo de programa necessário para carregar na placa. 48
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA Fonte: Elaborada pelos autores. Se estiver tudo certo, clique no botão carregar. Isso irá gravar o programa na placa. Fonte: Elaborada pelos autores. Caso não apareça nenhum erro, você deverá ver o LED piscando em um intervalo de 1 segundo. Figura 1.22: Aplicação Pisca Led - Arduino Fonte: Imagem obtida em página web: https://www.makerhero.com/blog/primeiros-passos-com-arduino/?sr sltid=AfmBOoqDdTAvRLFl6xSTuTHEvWGDUHOkzwthSldDJ_bHbH_ewvCmyVXn. 49
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA 1.5 Simulação e montagem de circuitos com o Wokwi OWokwi é um simulador online de Arduino, ESP32 e Raspberry Pi Pico, projetado para facilitar o desenvolvimento e a prototipagem de circuitos eletrônicos. Com ele, você pode testar códigos, conectar componentes virtuais e visualizar o funcionamento do projeto sem precisar de hardware físico. Figura 1.23: Aplicação Pisca Led - Arduino Fonte: Wikwi. Para ter acesso ao simulador Wokwi, acesse o link https://wokwi.com/ Ele foi criado por Uri Shaked e hoje é mantido de forma open source por uma comunidade. O simulador é compatível com diversas placas, incluindo: • Arduino Uno, Mega e Nano • ATtiny85 • ESP32, ESP32-S2, ESP32-S3, ESP32-C6 e ESP32-H2 • Raspberry Pi Pico e Raspberry Pi Pico W 50
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA • STM32 O Wokwi suporta linguagens como C++ (Arduino IDE) e MicroPython, permitindo testar diferentes abordagens de programação. Na parte de hardware, o Wokwi simulador de Arduino oferece uma biblioteca completa de componentes eletrônicos, incluindo: • LEDs, botões e displays (LCD, OLED e TFT gráfico colorido) • Sensores diversos, como DHT22 (temperatura), HC-SR04 (ultrassônico), PIR (presença) e MPU6050 (acelerômetro e giroscópio) • Módulos de comunicação, como Wi-Fi e Bluetooth (no ESP32) A simulação ocorre em tempo real, permitindo que você visualize o comportamento do circuito e até depurar o código diretamente no navegador. 1.5.1 Vantagens do uso do Wokwi O Wokwi é uma ferramenta poderosa para desenvolvedores, estudantes e entusiastas da eletrônica. Ele oferece diversas vantagens que facilitam a prototipagem de projetos sem a necessidade de hardware físico. Confira os principais benefícios: •Simulação no navegador, sem necessidade de instalação: o Wokwi roda 100% online, diretamente no navegador. Não é necessário baixar ou instalar nenhum software, tornando o processo muito mais prático e acessível. •Compatível com Arduino, ESP32 e Raspberry Pi Pico: o simulador suporta diversas placas, incluindo Arduino Uno, Mega, Nano, ESP32 e Raspberry Pi Pico, além de permitir programação em Arduino IDE e MicroPython. •Biblioteca completa de componentes eletrônicos: com o Wokwi Arduino, você pode testar circuitos com LEDs, displays, sensores, motores, botões e muito mais. Isso permite validar um projeto antes de adquirir os componentes reais. •Depuração e análise de código em tempo real: o Wokwi oferece ferramentas para depuração, permitindo que você veja a execução do código passo a passo e encontre possíveis erros rapidamente. •Compartilhamento fácil de projetos: Com apenas um clique, você pode gerar um link para compartilhar seu projeto com outras pessoas, facilitando a colaboração em equipe. •Economia de tempo e dinheiro: Ao testar seus circuitos no Wokwi simulador de Arduino, você evita gastos desnecessários com componentes e reduz o tempo de desenvolvimento, garantindo que seu projeto funcione antes de ser montado fisicamente. 51
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA 1.5.2 Funcionalidades do Wokwi É uma ferramenta completa para testar projetos eletrônicos no navegador. Ele oferece diversas funcionalidades que facilitam o desenvolvimento, simulação e depuração de circuitos sem precisar de hardware físico. Clique aqui para acessar o projeto apresentado na Figura 1.24. Figura 1.24: Exemplo de Projeto no Wokwi Fonte: Projeto Wikwi. Confira as principais funcionalidades do Wokwi ESP32 e Arduino [4]: •Simulação de circuitos eletrônicos: monta circuitos virtuais com Arduino, ESP32 e Raspberry Pi Pico, conectando componentes como LEDs, botões, displays e sensores de forma intuitiva. •Editor de código integrado: o Wokwi permite escrever e testar códigos diretamente no navegador, suportando tanto Arduino IDE (C++) quanto MicroPython para ESP32 e Raspberry Pi Pico. •Biblioteca de componentes em constante expansão: o simulador oferece uma grande variedade de componentes eletrônicos, incluindo: –Displays: LCD, OLED, TFT gráfico colorido. –Sensores: temperatura (DHT22), distância ultrassônica (HC-SR04), presença (PIR), acelerômetro (MPU6050) e muitos outros. –Módulos de comunicação: Wi-Fi e Bluetooth (para ESP32). •Personalização através do arquivo diagram.json: o Wokwi Arduino permite modificar parâmetros dos componentes, como valores de resistores, tipo de display e cores dos LEDs, através do arquivo diagram.json. •Simulação e depuração em tempo real: a ferramenta compila e executa o código instantaneamente, permitindo testar a lógica do programa e depurar erros sem precisar de um hardware físico. 52
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA •Compartilhamento rápido de projetos: crie um projeto no Wokwi e compartilhe com um simples clique, gerando um link acessível para qualquer pessoa visualizar e editar o circuito. 1.5.3 Projeto passo a passo no Wokwi Agora que você já conhece o Wokwi simulador de Arduino, vamos mostrar um exemplo prático de como utilizá-lo. Neste tutorial, vamos simular o circuito de pisca LED do tópico 1.4.11. Acesse o site oficial: wokwi.com. Selecione Arduino Uno como a placa do projeto. Você verá a tela principal do Wokwi, que contém: • Editor de código à esquerda • Área de montagem do circuito no centro • Painel de componentes à direita • Botões de controle de simulação na parte inferior Fonte: Elaborada pelos autores. (1) Clicar nos três pontos e depois em tela cheia para visualizar a placa arduino (2) Clicar no botão + para adicionar os componentes: LED, Resistor e protoboard Fonte: Elaborada pelos autores. 53
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA (3) Ajustar o valor do resistor para 220 Ω (4) Escreva o código: Código de referência. Copie e Teste! //Programa : Pisca Led Arduino void setup() { //Define a porta do led como saída pinMode(13, OUTPUT); } void loop() { //Acende o led digitalWrite(13, HIGH); //Aguarda o intervalo especificado delay(1000); //Apaga o led digitalWrite(13, LOW); //Aguarda o intervalo especificado delay(1000); } 54
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA Veja a saída esperada abaixo Saída Esperada Conhecendo um pouco mais! Agora que exploramos em detalhes o simulador Wokwi, vamos assistir ao vídeo para aprender um pouco mais. •Simulador Online de IoT - Este vídeo explica o funcionamento do Wokwi - Simulador Online de IoT e Microcontroladores para Arduino, ESP32, STM32 e RPi Pico. Assista em: https://www.youtube.com/ watch?v=ZHz9nBDnFhU •Guia prático] - Nesse vídeo é apresentado um guia prático sobre o Wokwi. Assista em: https://www.youtube.com/ watch?v=gpzQplEdLXo Aponte a câmera para o código correspondente. 1.6 Exercícios Propostos do Módulo 1 1. Um resistor de 220 Ωé percorrido por uma corrente de 0,2 A. Qual é a potência dissipada? 2. Um sistema IoT com ESP32 consome 240 mA a 3,3 V. Qual a potência consumida? 3. Um motor elétrico funciona com potência de 1500 W durante 2 horas por dia. Qual o consumo mensal em kWh? 4. Um chuveiro de 4500 W opera em uma rede de 220 V. Qual a corrente elétrica? 55
CAPÍTULO 1. FUNDAMENTOS DE INTERNET DAS COISAS (IOT) E ELETRÔNICA APLICADA 5. Qual a energia consumida por uma lâmpada de 20 W acesa por 10 horas? 6. Um módulo LoRa consome 150 mA a 5 V. Quantos miliwatts ele consome? 7. Qual fusível deve ser usado para proteger um circuito de 1200 W em 110 V? 8. Um painel solar de 145W produz energia por 6 horas. Quantos Wh ele gera por dia? 9. Um aquecedor consome 4 kWh em 2 horas. Qual sua potência? 10. Um farol de 55 W funciona em 36 V. Qual a corrente elétrica consumida? 11. Qual a energia consumida por um chuveiro elétrico de 4000 W, ligado durante 1 hora por dia, durante 1 mês? 12. Qual a energia consumida por um ferro de passar de 1500W, ligado durante 1 2hora por dia, durante 1 mês? 13. Qual a energia consumida por uma lâmpada de 100 W, ligada durante 1 hora por dia, durante 1 mês? Se a tarifa da concessionária for de 0,90 R$/kWh, quanto o consumidor pagará por mês? 56
CAPÍTULO 2. PROJETOS PRÁTICOS COM ARDUINO E SIMULAÇÃO NO WOKWI Tabela 2.1: Prefixos Métricos Segmento Pino do Arduino A 3 B 2 C 8 D 7 E 6 F 4 G 5 DP 9 •Pinos comuns (CC): –Conectar os dois pinos “COM” do display ao GND. –Geralmente correspondem aos pinos 3 e/ou 8 (verificar datasheet). •Resistores de proteção: –Utilizar resistores de 220–330 Ω –Conectar um resistor em série com cada segmento (A-G e DP) –Limitar a corrente para proteger tanto o Arduino quanto o display •Princípio de funcionamento (cátodo comum): –Para acender um segmento: aplicar nível HIGH (5V) no pino correspondente –Os cátodos de todos os LEDs estão conectados ao GND (terra) –A corrente flui do pino do Arduino (HIGH) para o GND através do LED Figura 2.5: Montagem do circuito Projeto Display de 7 segmentos Fonte: Imagem elaborada pelos autores: https://wokwi.com/projects/438773580322072577. 63
CAPÍTULO 2. PROJETOS PRÁTICOS COM ARDUINO E SIMULAÇÃO NO WOKWI 2.0.3 Projeto Display LCD ( (Liquid Crystal Display 16x2) Neste experimento, aprenderemos como utilizar um display LCD 16x2 para exibir informações por meio do microcontrolador Arduino. A comunicação com o display será realizada com o auxílio da biblioteca LiquidCrystal.h, que facilita a configuração e o envio de dados. Com essa aplicação, é possível desenvolver interfaces visuais simples e úteis para diversos projetos embarcados. Objetivo: O objetivo deste projeto é demonstrar, de forma prática, como realizar a montagem e a programação de um display LCD 16x2 utilizando o Arduino UNO com junto com a biblioteca LiquidCrystal.h. A biblioteca facilita o envio de dados para o display, tornando a exibição de mensagens, comandos e animações mais simples para projetos de prototipagem eletrônica e sistemas embarcados. Funcionamento: Materiais necessários • 1 Arduino UNO • 1 Display LCD 16x2 • 1 Resistor de 220 Ω • 1 Protoboard • Cabos jumper • 1 Potenciômetro de 10k (para ajuste de contraste do LCD) A ligação do display LCD ao Arduino deve respeitar a função de cada pino do módulo, conforme especificação técnica da folha de dados do componente (datasheet). A Tabela 2.4 abaixo segue a correspondência entre os pinos do LCD e os pinos do Arduino. Observe sua montagem na Figura ??. Tabela 2.2: Conexões do Display LCD 16x2 com Arduino Pino LCD Função Conexão no Arduino 1 (VSS) Terra (GND) GND 2 (VDD) Alimentação (+5V) 5V 3 (VO) Ajuste de contraste Sem conexão 4 (RS) Seletor de registrador Digital 12 5 (RW) Leitura/Gravação GND 6 (E) Enable Digital 11 11 (DB4) Bit de dados 4 Digital 5 12 (DB5) Bit de dados 5 Digital 4 13 (DB6) Bit de dados 6 Digital 3 14 (DB7) Bit de dados 7 Digital 2 15 (LED+) Backlight (+) com resistor de 220 ohms + 5V Continua na próxima página 64
CAPÍTULO 2. PROJETOS PRÁTICOS COM ARDUINO E SIMULAÇÃO NO WOKWI Continuação da Tabela Pino LCD Função Conexão no Arduino 16 (LED-) Backlight (-) GND Veja o código referencia abaixo. Copie e Teste! #include <LiquidCrystal.h> #define TEMPO_ATUALIZACAO 500 // Inicialização do display com os pinos: RS, E, D4, D5, D6, D7 LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { pinMode(12, OUTPUT); pinMode(11, OUTPUT); // Inicializa o LCD com 16 colunas e 2 linhas lcd.begin(16, 2); } void loop() { lcd.clear(); // Limpa a tela lcd.setCursor(0, 0); // Linha 0, coluna 0 lcd.print("Ola Curso:"); lcd.setCursor(0, 1); // Linha 1, coluna 0 lcd.print("CITHA - IoT"); delay(TEMPO_ATUALIZACAO); // Aguarda meio segundo } Saída Esperada Figura 2.6: Montagem do circuito Projeto Display LCD no Arduino Fonte: Imagem elaborada pelos autores: https://wokwi.com/projects/439403684230002689 65
CAPÍTULO 2. PROJETOS PRÁTICOS COM ARDUINO E SIMULAÇÃO NO WOKWI Conhecendo um pouco mais! Para entender melhor como funciona a plataforma Wokwi acesse o link abaixo: •Worki - Aqui o você terá acesso à documentação completa da plataforma Wokwi . Assista em: https://wokwi.com/projects/439403684230002689 Ou aponte a câmera do seu smartphone para o QR Code acima. 2.0.4 Projeto Acionamento com Botões Neste experimento prático com Arduino UNO, você aprenderá a utilizar botões e LEDs para criar diferentes respostas de saída conforme a quantidade de botões pressionados. O projeto demonstra, na prática, a leitura de múltiplas entradas digitais e o controle condicional de saídas. Essa lógica é base para muitos sistemas embarcados e interfaces físicas com o usuário. Objetivo: O objetivo deste experimento é controlar individualmente três LEDs por meio de três botões conectados ao Arduino UNO. Cada botão, ao ser pressionado, aciona diretamente um LED específico, proporcionando um entendimento prático do uso de entradas digitais com pull-up interno e saídas digitais. Esse projeto permite explorar a lógica básica de leitura de botões e acionamento de dispositivos visuais, como LEDs, em sistemas embarcados. Funcionamento: Cada botão está conectado a um pino digital do Arduino e configurado com resistores de pull-up internos (INPUT_PULLUP). • Em repouso, o botão permanece em nível alto (HIGH), e ao ser pressionado, o sinal é baixado (LOW), permitindo sua identificação. • Quando um botão é pressionado, o Arduino identifica o sinal LOW e envia um comando para acender o LED correspondente. • Os três primeiros botões controlam individualmente os LEDs vermelho, amarelo e verde conectados aos pinos digitais 3, 4 e 5, respectivamente. A Tabela 2.3 indica em quais pinos do Arduíno será ligado cada um dos LEDs, enquanto que a Tabela 2.4 mostra a descrição da ligação dos botões. Conexões dos Leds: Tabela 2.3: Configuração de LEDs e Conexões com Arduino ComponenteCor do LED Pino do Arduino Observação LED 1 Vermelho D3 Possui resistor de 100Ω LED 2 Amarelo D4 Possui resistor de 150Ω Continua na próxima página 66
CAPÍTULO 2. PROJETOS PRÁTICOS COM ARDUINO E SIMULAÇÃO NO WOKWI Continuação da Tabela ComponenteCor do LED Pino do Arduino Observação LED 3 Verde D5 Possui resistor de 150Ω Terminal (-) - GND Todos os cátodos dos LEDs conectados ao GND Conexões dos botões: Tabela 2.4: Configuração dos Botões com Arduino Botão Nº Pino do Arduino Ligação Interna Função Botão 1 D8 INPUT_PULLUP (interno) Aciona o LED vermelho (D3) Botão 2 D9 INPUT_PULLUP (interno) Aciona o LED amarelo (D4) Botão 3 D10 INPUT_PULLUP (interno) Aciona o LED verde (D5) Terminal comum dos botões GND Todos conectados ao terra comum - Segue Código de Referência Copie e Teste! //Projeto CITHA - Curso IoT //2.4 Projeto Acionamento com Botões // Pinos dos LEDs const int led1 = 3; // LED vermelho const int led2 = 4; // LED amarelo const int led3 = 5; // LED verde // Pinos dos botões const int button1 = 8; const int button2 = 9; const int button3 = 10; const int button4 = 11; // Não associado a LED neste exemplo void setup() { // Configura LEDs como saída pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); // Configura botões como entrada com pull-up interno pinMode(button1, INPUT_PULLUP); pinMode(button2, INPUT_PULLUP); 67
CAPÍTULO 2. PROJETOS PRÁTICOS COM ARDUINO E SIMULAÇÃO NO WOKWI pinMode(button3, INPUT_PULLUP); pinMode(button4, INPUT_PULLUP); } void loop() { // Lógica: botão pressionado = LOW (0) digitalWrite(led1, digitalRead(button1) == LOW ? HIGH : LOW); digitalWrite(led2, digitalRead(button2) == LOW ? HIGH : LOW); digitalWrite(led3, digitalRead(button3) == LOW ? HIGH : LOW); // Opcional: usar o 4º botão para apagar todos os LEDs, por exemplo if (digitalRead(button4) == LOW) { digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); } delay(50); // Pequeno atraso para estabilidade } Saída Esperada Figura 2.7: Montagem do circuito Projeto Acionamento com Botões Fonte: Imagem elaborada pelos autores: https://wokwi.com/projects/439407504830217217 2.0.5 Projeto Comunicação Serial O monitoramento serial é uma ferramenta poderosa para interagir com o Arduino sem a necessidade de botões ou sensores físicos. Neste experimento, utilizaremos o monitor serial 68
CAPÍTULO 2. PROJETOS PRÁTICOS COM ARDUINO E SIMULAÇÃO NO WOKWI da IDE do Arduino para controlar o acendimento de quatro LEDs. Através da digitação de números de 0 a 3, cada LED será acionado individualmente. Objetivo: Controlar o estado de quatro LEDs conectados ao Arduino UNO por meio da digitação de comandos no monitor serial. Cada número enviado pelo usuário corresponderá a um LED específico, que será aceso quando o valor for digitado. O projeto também exibe o número recebido na serial, facilitando a compreensão e depuração. Funcionamento: Os LEDs estão conectados aos pinos digitais D3, D4, D5 e D6 do Arduino, com resistores limitadores. O usuário deve abrir o Monitor Serial (CTRL + Shift + M) e digitar um número entre 0 e 3. O programa recebe o valor via Serial.read() e acende o LED correspondente, apagando os demais. Se um valor inválido for digitado (fora do intervalo de 0 a 3), todos os LEDs permanecem apagados. O número recebido é mostrado na tela com a mensagem “Received: X” para acompanhamento. A Tabela 2.5 indica em quais pinos do Arduíno será ligado cada um dos LEDs, enquanto que a Tabela 2.6 mostra a descrição dos demais componentes utilizados na montagem do circuito. Conexões do Leds: Tabela 2.5: Configuração de LEDs Controlados por Serial Componente Pino no Arduino UNO Observações LED 1 (Vermelho) D3 Acende ao digitar ”0”na Serial LED 2 (Amarelo) D4 Acende ao digitar ”1”na Serial LED 3 (Verde) D5 Acende ao digitar ”2”na Serial LED 4 (Azul) D6 Acende ao digitar ”3”na Serial Todos os cátodos dos LEDs GND Conectados ao GND por meio de resistores Componentes: Tabela 2.6: Lista de Materiais para o Projeto Componente QuantidadeValor / Tipo Observações Arduino UNO R3 1 — Pode ser original ou compatível LEDs 4 5mm (vermelho, amarelo, verde, azul) Pode usar qualquer cor ou tipo de LED Resistores 4 330 Ω Limitadores de corrente para cada LED Protoboard 1 400 pontos ou maior Para montagem do circuito Cabos jumper — Macho-macho Para conexões entre a placa e os componentes Código de Referência 69
CAPÍTULO 2. PROJETOS PRÁTICOS COM ARDUINO E SIMULAÇÃO NO WOKWI Copie e Teste! //Projeto CITHA - Curso IoT //2.5 Projeto Comunicação Serial // Pinos dos LEDs int leds[] = {3, 4, 5, 6}; int numLeds = 4; void setup() { Serial.begin(9600); Serial.println("Digite um numero de 0 a 3"); // Configura os pinos como saída for (int i = 0; i < numLeds; i++) { pinMode(leds[i], OUTPUT); digitalWrite(leds[i], LOW); // Inicialmente todos apagados } } void loop() { if (Serial.available() > 0) { char entrada = Serial.read(); if (entrada >= '0' && entrada <= '3') { int indice = entrada - '0'; Serial.print("Received: "); Serial.println(indice); // Apaga todos os LEDs for (int i = 0; i < numLeds; i++) { digitalWrite(leds[i], LOW); } // Acende o LED correspondente digitalWrite(leds[indice], HIGH); }else { // Entrada inválida: apaga todos os LEDs for (int i = 0; i < numLeds; i++) { digitalWrite(leds[i], LOW); } } } } 70
CAPÍTULO 2. PROJETOS PRÁTICOS COM ARDUINO E SIMULAÇÃO NO WOKWI Saída Esperada Figura 2.8: Montagem do circuito Projeto Comunicação Serial Fonte: Imagem elaborada pelos autores: https://wokwi.com/projects/439474064501934081 Montagem do circuito Projeto Comunicação Serial 2.0.6 Projeto controle de Notas Musicais com Tone() e noTone() As funções tone() enoTone() do Arduino permitem gerar sinais sonoros com frequência controlada. Essa funcionalidade é útil para emitir alertas audíveis, criar melodias ou representar dados com sons em sistemas embarcados. Neste experimento, utilizaremos um buzzer para emitir duas notas musicais alternadamente, com controle de tempo e pausa. Objetivo: Demonstrar o uso das funções tone() enoTone() para gerar sinais sonoros a partir do Arduino, utilizando um buzzer piezoelétrico conectado ao pino digital 9. O programa alterna entre duas notas musicais (Lá e Sol), tocando cada uma por um segundo e pausando entre elas. O experimento também ensina como modular frequências e temporizações utilizando comandos simples da linguagem C++ aplicada ao Arduino. Funcionamento: O buzzer é conectado ao pino digital 9 do Arduino, com um resistor de 1 kΩ 71
CAPÍTULO 2. PROJETOS PRÁTICOS COM ARDUINO E SIMULAÇÃO NO WOKWI para limitar a corrente e proteger o circuito. A função tone(pino, frequência) gera um som contínuo enquanto não for interrompido. A função tone(pino, frequência, duração) permite especificar a duração do som em milissegundos. A função noTone(pino) interrompe imediatamente o som que estiver sendo reproduzido naquele pino. O sketch alterna entre duas frequências (440 Hz para a nota Lá e 392 Hz para a nota Sol), com um intervalo de 1 segundo entre elas. Conexões: Tabela 2.7: Configuração do Buzzer e Componentes Relacionados Componente Pino no Arduino Observação Buzzer piezo D9 Conectado com resistor de 1 kΩ em série Terminal GND GND Terra comum do circuito Protoboard 400 pontos Para montagem dos componentes Resistor 1 kΩ Entre o pino D9 e o buzzer Código de Referência Copie e Teste! //Projeto CITHA - Curso IoT //2.6 Projeto controle de Notas Musicais com Tone() e noTone() int buzzer = 9; // Pino conectado ao buzzer unsigned int la = 440; // Frequência da nota Lá (Hz) unsigned int sol = 392; // Frequência da nota Sol (Hz) unsigned long tempo = 1000; // Duração das notas (1 segundo) void setup() { // Nenhuma configuração necessária no setup } void loop() { tone(buzzer, la); // Toca a nota Lá delay(tempo); // Aguarda 1 segundo noTone(buzzer); // Interrompe o som tone(buzzer, sol, tempo); // Toca a nota Sol por 1 segundo delay(tempo); // Aguarda a nota Sol terminar noTone(buzzer); // Garante que o som foi interrompido delay(tempo); // Pausa de 1 segundo antes de reiniciar } 72
CAPÍTULO 2. PROJETOS PRÁTICOS COM ARDUINO E SIMULAÇÃO NO WOKWI sevseg.setNumber(i); sevseg.refreshDisplay(); delay(2000); } } 3. Programe um sistema de senha simples usando botões. Base: Projeto 2.4 – Acionamento com Botões Desafio: Use 3 botões para inserir uma sequência correta. Se a senha (ex: 1-3-2) for digitada corretamente, um LED verde acende por 5 segundos. Caso contrário, o LED vermelho pisca 3 vezes. Conceitos trabalhados: Arrays, comparação de sequência, controle condicional. Conexões: Tabela 2.11: Conexões de Botões e LEDs com Arduino Componente Pino Arduino Botão 1 D8 Botão 2 D9 Botão 3 D10 LED Verde D5 LED Vermelho D6 Código de referência. Copie e Teste! const int botoes[] = {8, 9, 10}; int senha[] = {1, 3, 2}; int entrada[3]; int pos = 0; void setup() { for (int i = 0; i < 3; i++) pinMode(botoes[i], INPUT_PULLUP); pinMode(5, OUTPUT); pinMode(6, OUTPUT); } void loop() { for (int i = 0; i < 3; i++) { if (digitalRead(botoes[i]) == LOW) { entrada[pos++] = i + 1; delay(300); } } if (pos == 3) { bool correta = true; for (int i = 0; i < 3; i++) if (entrada[i] != senha[i]) correta = false; 79
CAPÍTULO 2. PROJETOS PRÁTICOS COM ARDUINO E SIMULAÇÃO NO WOKWI digitalWrite(5, correta); // LED verde digitalWrite(6, !correta); // LED vermelho delay(2000); pos = 0; digitalWrite(5, LOW); digitalWrite(6, LOW); } } 4. Faça a rolagem de uma mensagem personalizada no Display LCD. Base: Projeto 2.3 – Display LCD (Rolagem de Texto) Desafio: Escreva uma frase personalizada e faça com que ela percorra horizontalmente o LCD, como um letreiro eletrônico. Conceitos trabalhados: Strings, substrings, manipulação de texto. Conexões: Tabela 2.12: Conexões do Display LCD com Arduino Pino LCD Função Pino Arduino 1 (VSS) GND GND 2 (VDD) VCC 5V 3 (VO) Contraste Potenciômetro 4 (RS) Registro D12 5 (RW) Leitura GND 6 (E) Enable D11 11-14 Dados (D4-D7) D5-D2 15/16 Backlight 5V e GND Código de referência. Copie e Teste! #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { lcd.begin(16, 2); } void loop() { String msg = "Bem-vindo ao curso CITHA!"; for (int i = 0; i < msg.length(); i++) { lcd.clear(); lcd.setCursor(0, 0); lcd.print(msg.substring(i)); 80
CAPÍTULO 2. PROJETOS PRÁTICOS COM ARDUINO E SIMULAÇÃO NO WOKWI delay(300); } } 5. Expanda o projeto de comunicação serial para aceitar comandos de texto Base: Projeto 2.5 – Comunicação Serial Desafio: Em vez de usar números de 0 a 3, envie comandos como “VERDE”,“AMARELO” ou “TODOS” pela Serial para acender os LEDs correspondentes. Conceitos trabalhados: Leitura e interpretação de strings via Serial.readString(). Conexões: Tabela 2.13: Conexões dos LEDs com Arduino LED Pino Arduino Vermelho D3 Amarelo D4 Verde D5 Azul D6 Código de referência. Copie e Teste! String entrada; int leds[] = {3, 4, 5, 6}; void setup() { Serial.begin(9600); for (int i = 0; i < 4; i++) pinMode(leds[i], OUTPUT); } void loop() { if (Serial.available()) { entrada = Serial.readStringUntil('\n'); for (int i = 0; i < 4; i++) digitalWrite(leds[i], LOW ); if (entrada == "VERMELHO") digitalWrite(3, HIGH); else if (entrada == "AMARELO") digitalWrite(4, HIGH); else if (entrada == "VERDE") digitalWrite(5, HIGH); else if (entrada == "AZUL") digitalWrite(6, HIGH); else if (entrada == "TODOS") for (int i = 0; i < 4; i++) digitalWrite(leds[i], 81
CAPÍTULO 2. PROJETOS PRÁTICOS COM ARDUINO E SIMULAÇÃO NO WOKWI HIGH); } } 82
Capítulo 3 Projetos Práticos com Raspberry Pi 3.1 Placa Raspberry Pi 4 ARaspberry Pi 4 é um computador de placa única (Single-Board Computer) do tipo System on Chip (SoC), que integra processador, memória e interfaces de I/O em um formato reduzido, pronto para receber monitor, teclado, mouse e outros periféricos convencionais. Desenvolvida no Reino Unido pela Raspberry Pi Foundation, sua missão original foi ampliar o acesso ao ensino de Ciência da Computação, promover inclusão tecnológica e empoderamento social, ao oferecer um computador completo e de baixo custo para escolas, laboratórios e comunidades maker. Embora mínima em tamanho e preço, a Pi 4 executa tarefas semelhantes às de um PC tradicional: navegar na web, editar documentos, programar em diversas linguagens, rodar distribuições Linux e interagir com dispositivos USB, HDMI e rede. O grande diferencial frente a notebooks e desktops é a presença do GPIO, um conjunto de pinos que permite “trazer o mundo físico para o digital”, conectando sensores e atuadores com extrema facilidade. Assim, a placa serve tanto como plataforma de aprendizado introdutório quanto como base de prototipagem para projetos de IoT, automação, robótica, visão computacional e até pequenos servidores, favorecendo a transição fluida entre conceitos teóricos e aplicações práticas. Para começar, os primeiros passos envolvem montar o ambiente e preparar o sistema. No uso “virtual” (como computador), recomenda-se uma fonte 5V adequada e cabo de alimentação, cartão microSD de ao menos 8 GB com o sistema gravado, teclado e mouse,cabo HDMI (ou VGA com conversor) para o monitor, além de Ethernet ou Wi-Fi para acesso à internet; um hub USB efones são opcionais úteis. No uso “físico” (computação embarcada), uma protoboard,jumpers macho-fêmea,LED eresistor de 220 Ωpermitem o primeiro experimento de eletrônica: piscar um LED pelo GPIO e compreender lógica de níveis, pinagem e segurança elétrica. A sequência típica inclui gravar a imagem do sistema (p. ex., Raspberry Pi OS) no cartão, inicializar a placa, executar a configuração inicial, atualizar pacotes e validar a rede. A partir daí, o estudante progride rapidamente: explora o terminal e IDEs, testa bibliotecas para GPIO, integra sensores/atuadores e evolui para projetos temáticos. Esse percurso reforça a proposta educacional da plataforma: baixar barreiras de entrada, incentivar a curiosidade e consolidar competências digitais com recursos acessíveis. Vamos em frente! 83
CAPÍTULO 3. PROJETOS PRÁTICOS COM RASPBERRY PI 3.2 Especificações da Placa Raspberry Pi 4 Modelo B • Processador Broadcom BCM2711, quad-core Cortex-A72 (ARM v8) 64-bit SoC • Clock 1.5 GHz • Memória RAM: 2GB, 4GB ou 8GB DDR4 • Adaptador Wifi 2.4 GHz and 5.0 GHz IEEE 802.11b/g/n/ac wireless LAN integrado • Bluetooth 5.0 BLE integrado • Gigabit Ethernet (PoE) • 2 portas micro HDMI com suporte a vídeos 4K e 60fps • 2 portas USB 3.0 e 2 portas USB 2.0 • Alimentação: recomendamos uma Fonte DC chaveada 5.1V 3A com conector USB-C • Interface para câmera (CSI) • Interface para display (DSI) • Slot para cartão microSD • Conector de áudio e vídeo • GPIO de 40 pinos • Certificado de homologação Anatel: 06004-19-10629 • Dimensões: 85 x 56 x 17 mm Figura 3.1: Pinagem do Raspberry Pi 4 Computer Fonte: Raspberry Pi Trading Ltd. 84
CAPÍTULO 3. PROJETOS PRÁTICOS COM RASPBERRY PI 3.3 Instalação do Sistema Operacional na Raspberry Pi 4 A instalação do sistema operacional é a primeira etapa para tornar a Raspberry Pi funcional e pronta para ser utilizada em diferentes projetos. Entre as várias opções disponíveis, o Raspberry Pi OS (antigo Raspbian) é o sistema oficial recomendado pela Raspberry Pi Foundation, especialmente para iniciantes. Baseado no Debian, ele foi desenvolvido de forma otimizada para o hardware da placa, garantindo desempenho eficiente mesmo em modelos mais básicos. Além disso, oferece uma interface gráfica simples e amigável, acompanhada de um vasto conjunto de ferramentas educacionais, como o Python e o Scratch, que são ideais para quem está aprendendo programação e robótica. A instalação do Raspberry Pi OS geralmente é feita a partir de uma imagem gravada em um cartão microSD, que será utilizado como unidade de armazenamento principal da placa. Esse processo é considerado direto e acessível, permitindo que usuários configurem rapidamente sua placa para começar a experimentar aplicações em computação, automação, IoT ou até mesmo como um desktop de baixo custo. Ao optar pelo Raspberry Pi OS, o usuário passa a contar com o suporte de uma das comunidades mais ativas do mundo maker e educacional, o que facilita a resolução de dúvidas e a troca de experiências. Para realizar a instalação, é necessário preparar um conjunto básico de materiais: um cartão microSD de no mínimo 8 GB, uma fonte de 5V com corrente adequada, além de periféricos essenciais como teclado,mouse emonitor HDMI. Após gravar a imagem do sistema no cartão SD, processo que pode ser feito com softwares como o Raspberry Pi Imager, basta inserir o cartão na placa, conectar os dispositivos e inicializar. Esse procedimento garante que o sistema esteja pronto para uso em poucos minutos, tornando a configuração inicial uma experiência prática e motivadora. Dessa forma, o Raspberry Pi OS consolida-se como a melhor escolha para quem busca começar de forma segura, contando com estabilidade, suporte e recursos integrados para o aprendizado e a prototipagem. 3.3.1 Iniciando a instalação Figura 3.2: Tela do website Raspberry Pi OS Fonte: raspberrypi.com/softwareraspberrypi.com/software 85
CAPÍTULO 3. PROJETOS PRÁTICOS COM RASPBERRY PI Primeiro precisamos instalar o Raspberry Pi OS em um Raspberry Pi 4, siga este tutorial detalhado, este abrange desde a preparação do cartão de memória até a configuração inicial do sistema operacional. 3.3.2 Materiais Necessários •Raspberry Pi 4: a versão mais recente do Raspberry Pi; •Cartão microSD: recomenda-se um cartão de alta qualidade, classe 10, com capacidade mínima de 8 GB; •Leitor de Cartão microSD: para gravar a imagem do sistema operacional no cartão; •Fonte de Alimentação: fonte de 5V com entrada USB-C; •Monitor: com saída compatível com HDMI; •Cabo HDMI: para conectar o monitor ao Raspberry Pi; •Teclado e Mouse: para interação inicial com o sistema; •Conexão com a Internet: via Wi-Fi ou cabo de rede Ethernet. 3.3.3 Passo a passo de instalação O Raspberry Pi Imager é a ferramenta oficial para gravar o Raspberry Pi OS no cartão microSD. 1. Acesse o site oficial: https://www.raspberrypi.com/software/ 2. Clique em ”Download for Windows”ou a versão correspondente ao seu sistema operacional: https://downloads.raspberrypi.org/imager/imager_latest.exe 3. Após o download, execute o instalador e siga as instruções na tela. Figura 3.3: Adaptador SD e cartão de memória microSD Fonte: acervo próprio 86
CAPÍTULO 3. PROJETOS PRÁTICOS COM RASPBERRY PI Fique Alerta! Logo abaixo deixaremos capturas de tela (prints) do processo que descrevemos acima para você se guiar. Instrução Detalhada Imagem de Referência Passo 1: Abra o aplicativo Raspberry Pi Imager. Esta é a tela principal onde o processo será configurado. Passo 2: Clique em ”CHOOSE DEVICE”e selecione o seu modelo de placa, o Raspberry Pi 4. Passo 3: Clique em ”CHOOSE OS”e selecione a opção recomendada: Raspberry Pi OS (64bit). Continua na próxima página 87
CAPÍTULO 3. PROJETOS PRÁTICOS COM RASPBERRY PI Instrução Detalhada Imagem de Referência Passo 4: Clique em ”CHOOSE STORAGE”e selecione o seu cartão microSD, que deve aparecer na lista. Passo 5: Após as três seleções, revise se todas as opções estão corretas e clique em ”NEXT” para avançar. Passo 6: O sistema perguntará se você deseja aplicar customizações. Clique em ”EDIT SETTINGS”. Continua na próxima página 88
CAPÍTULO 3. PROJETOS PRÁTICOS COM RASPBERRY PI time.sleep(1) # Aguarda 1 segundo # Se o programa for interrompido manualmente (Ctrl+C), limpa os pinos except KeyboardInterrupt: print("\nPrograma interrompido pelo usuário.") GPIO.cleanup() Figura 3.5: Montagem sugerida para o circuito do projeto do Led piscante Fonte: Elaborado pelos autores 3.5 Projeto Lendo Botões com a Raspberry Pi Neste projeto, vamos explorar como utilizar botões físicos conectados à Raspberry Pi 4 para controlar ações no código Python. Os botões são dispositivos simples, mas fundamentais para a interação entre hardware e software, pois permitem ao usuário enviar comandos diretos à placa. A partir da leitura dos estados dos botões (pressionado ou não), é possível acionar LEDs, motores ou executar funções programadas. Essa prática é essencial para compreender a utilização dos pinos GPIO, organização do código com variáveis e boas práticas de depuração em sistemas embarcados. Objetivo: Proporcionar uma compreensão prática do funcionamento de botões do tipo pushbutton conectados à Raspberry Pi, permitindo que o estudante aprenda a configurar os pinos 95
CAPÍTULO 3. PROJETOS PRÁTICOS COM RASPBERRY PI GPIO como entradas digitais e identifique corretamente seus estados de acionamento. Busca-se implementar um código em Python capaz de interpretar múltiplos botões de forma simultânea, utilizando variáveis para tornar a programação mais legível, organizada e de fácil manutenção. Dessa forma, o experimento contribui tanto para o domínio da eletrônica básica quanto para a aplicação de boas práticas de programação em sistemas embarcados. Funcionamento: O push-button funciona como um interruptor simples: quando não está pressionado, o circuito permanece aberto, impedindo a passagem de corrente; quando pressionado, fecha o circuito, permitindo que a Raspberry Pi detecte a mudança de estado no pino GPIO. No código, utilizamos variáveis para identificar cada botão e realizar a leitura de seu estado dentro de um loop infinito, exibindo no console se está pressionado ou não pressionado. Conexões: Implemente a montagem do circuito conforme indicado na Tabela 3.2 a seguir. Tabela 3.2: Descrição da montagem do Projeto Lendo Botões com Raspberry Pi Botão Pino da Raspberry Pi (BOARD) Descrição Botão 1 12 Entrada digital (GPIO 18) Botão 2 16 Entrada digital (GPIO 23) Botão 3 18 Entrada digital (GPIO 24) Código de Referência: Copie e Teste! # Bibliotecas utilizadas import RPi.GPIO as GPIO import time # Define o modo de numeração dos pinos (posição física) GPIO.setmode(GPIO.BOARD) # Define os pinos dos botões PINO_BOTAO1 = 12 PINO_BOTAO2 = 16 PINO_BOTAO3 = 18 # Configura os pinos dos botões como entrada GPIO.setup(PINO_BOTAO1, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) GPIO.setup(PINO_BOTAO2, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) GPIO.setup(PINO_BOTAO3, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) try: # Loop infinito para leitura dos botões while True: estado1 = GPIO.input(PINO_BOTAO1) 96
CAPÍTULO 3. PROJETOS PRÁTICOS COM RASPBERRY PI estado2 = GPIO.input(PINO_BOTAO2) estado3 = GPIO.input(PINO_BOTAO3) if estado1: print("Botão 1 pressionado") else: print("Botão 1 não pressionado") if estado2: print("Botão 2 pressionado") else: print("Botão 2 não pressionado") if estado3: print("Botão 3 pressionado") else: print("Botão 3 não pressionado") time.sleep(0.1) # Aguarda 100ms antes de ler novamente except KeyboardInterrupt: print("\nPrograma interrompido pelo usuário.") GPIO.cleanup() Figura 3.6: Montagem sugerida para o circuito do projeto para ler os botões Fonte: Elaborado pelos autores 97
CAPÍTULO 3. PROJETOS PRÁTICOS COM RASPBERRY PI 3.6 Projeto Display de 7 Segmentos com a Raspberry Pi O display de sete segmentos é um dos componentes mais utilizados em sistemas embarcados para representar números e caracteres de forma simples e eficiente. Ele é amplamente empregado em relógios digitais, calculadoras e painéis eletrônicos, servindo como uma introdução prática ao controle de múltiplos LEDs por meio de portas GPIO. Ao integrá-lo à Raspberry Pi, conseguimos explorar conceitos importantes de eletrônica digital, como controle de saídas, polaridade e multiplexação. Neste projeto, aprenderemos a conectar e programar um display de sete segmentos utilizando a Raspberry Pi 4, controlando seus segmentos de forma individual para exibir números. Objetivo: Compreender como funciona um display de sete segmentos quando controlado pela Raspberry Pi, configurando adequadamente os pinos GPIO como saídas digitais para acionar cada segmento do display. Busca-se, ainda, implementar um código em Python que permita acender combinações específicas dos segmentos, de forma a representar números no display. Com isso, o estudante consolida conhecimentos práticos em eletrônica, programação em Python e noções de hardware embarcado. Funcionamento: O display utilizado é do tipo cátodo comum, o que significa que o terminal comum deve ser conectado ao GND, enquanto os segmentos são acionados com nível lógico alto (1). Cada segmento deve ser protegido por um resistor para limitar a corrente. Conexões: A Tabela 3.3 indica em quais pinos da Raspberry Pi devem ser conectados os segmentos do display. Tabela 3.3: Descrição da montagem do Projeto Piscando LED com Raspberry Pi Segmento GPIO da Raspberry Pi A GPIO 15 B GPIO 18 C GPIO 23 D GPIO 17 E GPIO 27 F GPIO 14 G GPIO 12 Comum GND Código de Referência: Copie e Teste! import RPi.GPIO as GPIO import time # Mapeamento dos segmentos do display segments = { 98
CAPÍTULO 3. PROJETOS PRÁTICOS COM RASPBERRY PI "A": 15, "B": 18, "C": 23, "D": 17, "E": 27, "F": 14, "G": 12 } # Configuração dos pinos GPIO.setmode(GPIO.BCM) for pin in segments.values(): GPIO.setup(pin, GPIO.OUT) GPIO.output(pin, GPIO.LOW) # Funções para acender números def display_number(num): numeros = { 0: ["A","B","C","D","E","F"], 1: ["B","C"], 2: ["A","B","D","E","G"], 3: ["A","B","C","D","G"], 4: ["B","C","F","G"], 5: ["A","C","D","F","G"], 6: ["A","C","D","E","F","G"], 7: ["A","B","C"], 8: ["A","B","C","D","E","F","G"], 9: ["A","B","C","D","F","G"] } # Apagar todos os segmentos for pin in segments.values(): GPIO.output(pin, GPIO.LOW) # Acender segmentos correspondentes for seg in numeros[num]: GPIO.output(segments[seg], GPIO.HIGH) try: while True: for iin range(10): display_number(i) time.sleep(1) except KeyboardInterrupt: GPIO.cleanup() 99
CAPÍTULO 3. PROJETOS PRÁTICOS COM RASPBERRY PI Figura 3.7: Montagem sugerida para o circuito do projeto do display de 7 seguimentos Fonte: Adaptado de Parzibyte, 2020 3.7 Projeto Display LCD 16x2 com a Raspberry Pi O display LCD 16x2 é um dos componentes mais utilizados em projetos eletrônicos para exibir informações de forma simples e eficiente. Ele permite mostrar textos como mensagens, dados de sensores, hora ou endereços de rede. Integrado ao Raspberry Pi, o LCD amplia as possibilidades de interação entre hardware e usuário, tornando os projetos mais didáticos e funcionais. Neste projeto, aprenderemos a conectar e programar um display LCD no Raspberry Pi 4 em modo de 4 bits, otimizando o uso dos pinos GPIO. Objetivo: Compreender como configurar e programar um display LCD 16x2 utilizando a biblioteca RPLCD no Raspberry Pi 4. Pretende-se explorar a exibição de textos básicos, posicionamento de mensagens na tela e conceitos de controle de contraste e retroiluminação. Dessa forma, o projeto reforça o uso dos pinos GPIO em modo digital de saída e o emprego de bibliotecas em Python para manipular dispositivos externos de forma prática e escalável. Funcionamento: O LCD 16x2 é conectado ao Raspberry Pi em modo 4 bits, ou seja, apenas 4 linhas de dados são utilizadas para envio de informações, otimizando a quantidade de GPIOs necessários. Dois potenciômetros controlam o contraste e a intensidade da retroiluminação. 100
CAPÍTULO 3. PROJETOS PRÁTICOS COM RASPBERRY PI Conexões: A Tabela 3.4 descreve a montagem do circuito utilizando Display LCD 16x2. Tabela 3.4: Descrição da pinagem utilizada no Projeto Display LCD 16x2 com Raspberry Pi LCD Pinos Função Pino Raspberry Pi (BOARD) VSS GND Pino 6 (GND) VDD +5V Pino 2 (+5V) V0 Contraste (potenciômetro) Potenciômetro RS Registro de seleção Pino 37 (GPIO 26) RW Modo leitura/escrita GND E Enable Pino 35 (GPIO 19) D4 Dados Pino 33 (GPIO 13) D5 Dados Pino 31 (GPIO 6) D6 Dados Pino 29 (GPIO 5) D7 Dados Pino 23 (GPIO 11) A (LED+) Retroiluminação (+) Pino 2 (+5V via potenciômetro) K (LED-) Retroiluminação (-) Pino 6 (GND) Código de Referência: Copie e Teste! # Importa a biblioteca RPLCD e time from RPLCD import CharLCD import time # Configuração do LCD em modo 4 bits lcd = CharLCD(cols=16, rows=2, pin_rs=37, pin_e=35, pins_data=[33, 31, 29, 23]) # Exibe mensagem inicial lcd.write_string("Hello, Raspberry!") # Mantém a mensagem por 2 segundos time.sleep(2) # Limpa a tela lcd.clear() # Exibe mensagem na segunda linha lcd.cursor_pos = (1, 0) # Linha 2, coluna 1 lcd.write_string("LCD 16x2 OK!") 101
CAPÍTULO 3. PROJETOS PRÁTICOS COM RASPBERRY PI Figura 3.8: Montagem sugerida para o circuito do projeto do display LCD 16x2 Fonte: Elaborado pelos autores 3.8 Exercícios Propostos do Módulo 3 1. Controle de LED com Botão Implemente um circuito no qual um botão push-button acende e apaga um LED conectado à Raspberry Pi. O objetivo é compreender a leitura de entradas digitais e aplicar o conceito de pull-up e pull-down resistores internos configurados via GPIO. Conexões: Use como referência as conexões sugeridas na Tabela 3.5 a seguir. Tabela 3.5: Conexões sugeridas para elaboração do Projeto Controle de LED com Botão Sinal/Componente BCM Pino físico Observação LED (ânodo) + resistor 330ΩGPIO 18 12 Liga em série; cátodo do LED no GND GND do LED GND 6 Retorno Botão (lado 1) GPIO 23 16 Entrada com pull-down interno Botão (lado 2) 3.3V 1 Alimenta o botão 102
CAPÍTULO 3. PROJETOS PRÁTICOS COM RASPBERRY PI Código de Referência: Copie e Teste! import RPi.GPIO as GPIO, time GPIO.setmode(GPIO.BCM) LED, BTN = 18, 23 GPIO.setup(LED, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(BTN, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) try: while True: GPIO.output(LED, GPIO.input(BTN)) # segue o estado do botão time.sleep(0.02) # antirruído simples except KeyboardInterrupt: GPIO.cleanup() 2. Pisca-Pisca com Dois LEDs Modifique o código do experimento de piscar LED para controlar dois LEDs em paralelo, de modo que um acenda enquanto o outro apaga. O desafio extra é sincronizar os tempos para criar um efeito de “pisca alternado”. Conexões: Use como referência as conexões sugeridas na Tabela 3.6 a seguir Tabela 3.6: Conexões sugeridas para elaboração do Projeto Pisca-Pisca com dois LEDs Botão BCM Pino físico Observação LED A (ânodo) + resistor 330Ω18 12 Cátodo ao GND LED B (ânodo) + resistor 330Ω24 18 Cátodo ao GND GND comum GND 6 - Código de Referência: Copie e Teste! import RPi.GPIO as GPIO, time GPIO.setmode(GPIO.BCM) A, B = 18, 24 GPIO.setup(A, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(B, GPIO.OUT, initial=GPIO.HIGH) try: 103
CAPÍTULO 3. PROJETOS PRÁTICOS COM RASPBERRY PI while True: GPIO.output(A, not GPIO.input(A)) GPIO.output(B, not GPIO.input(B)) time.sleep(0.5) except KeyboardInterrupt: GPIO.cleanup() 3. Display de 7 Segmentos – Dígitos Sequenciais Utilizando um display de 7 segmentos, programe a Raspberry Pi para exibir os dígitos de 0 a 9 em sequência. Cada número deve permanecer aceso por 1 segundo antes de mudar para o próximo. Esse exercício reforça o mapeamento dos segmentos e o controle digital dos pinos. Conexões: Use como referência as conexões sugeridas na Tabela 3.7 a seguir. Tabela 3.7: Conexões sugeridas para elaboração do Projeto Display de 7 segmentos - Dígitos Sequenciais Segmento BCM Pino físico A 15 10 B 18 12 C 23 16 D 17 11 E 27 13 F 14 8 G 12 32 COM (cátodo comum) GND 6 Código de Referência: Copie e Teste! import RPi.GPIO as GPIO, time GPIO.setmode(GPIO.BCM) segments = {"A":15,"B":18,"C":23,"D":17,"E":27,"F":14,"G":12} for pin segments.values(): GPIO.setup(p, GPIO.OUT, initial=GPIO.LOW) digits = { 0:["A","B","C","D","E","F"], 1:["B","C"], 2:["A","B","D","E","G"], 104
CAPÍTULO 4. PROJETO INTEGRADOR: FAZENDA EXPERIMENTAL SUSTENTÁVEL COM IOT cv2.putText(img, label_text, (x1, y1 - 10), cv2. FONT_HERSHEY_SIMPLEX, 0.6, color, 2) # Contar por categoria if class_id == 1: count_bons += 1 elif class_id == 0: count_estragados += 1 elif class_id == 2: count_verdes += 1 # Exibir contagens print(f"Tomates Maduros: {count_bons}") print(f"Tomates Podres: {count_bons}") print(f"Tomates Verdes: {count_verdes}") return img # Caminho da imagem com vários tomates (ex.: um cacho) imagem_com_tomates_para_classificar = "01-B.png" # Classificar a imagem e exibir resultados resultado_img = classify_tomatoes( imagem_com_tomates_para_classificar) if resultado_img is not None: cv2.imshow("Detector de Toames", resultado_img) cv2.waitKey(0) cv2.destroyAllWindows() 4. Executado o experimento: Pelo terminal, você deve acessar a pasta Experimento e ativar o o ambiente virtual com o seguinte comando source venv/bin/activate Após executar o comando acima. Vamos rodar nosso experimento. Para isso no terminal, dentro da pasta Experimento execute o comando python3 DetectorTomates.py conforme a imagem abaixo. Figura 4.4: Executando o experimeto Fonte: Elaborado pelos autores 111
CAPÍTULO 4. PROJETO INTEGRADOR: FAZENDA EXPERIMENTAL SUSTENTÁVEL COM IOT Para esse experimento vamos usar as imagens a seguir, mas vc pode fazer com qualquer imagem. Figura 4.5: Imagens exemplo para o experimento Fonte: Elaborado pelos autores Este mesmo experimento pode ser realizado com vídeo da Webcam, neste caso criamos o arquivo Python DetectarTomatesVideo.py Segue código exemplo. Você testar e ver os resultos. Neste caso será necessário uma WebCam conectada à sua Raspberry. Copie e Teste! import cv2 from ultralytics import YOLO # Carregar o modelo YOLO treinado model = YOLO('dataSet.pt')# Substitua pelo seu modelo # Definir rótulos e cores (ajuste conforme as classes do seu modelo) labels = {0: "Estragado", 1: "Bom", 2: "Verde"}# Ajuste os IDs conforme o treinamento colors = {0: (0, 0, 255), 1: (0, 255, 0), 2: (255, 0, 0)} # Vermelho, Verde, Azul def classify_tomatoes(): # Inicializar a webcam (0 = câmera padrão) cap = cv2.VideoCapture(0) if not cap.isOpened(): print("Erro ao abrir a webcam!") return # Loop principal (processamento frame a frame) 112
CAPÍTULO 4. PROJETO INTEGRADOR: FAZENDA EXPERIMENTAL SUSTENTÁVEL COM IOT while True: ret, frame = cap.read() if not ret: print("Erro ao capturar frame!") break # Realizar detecção results = model.predict(frame, imgsz=640, conf=0.6) # Contadores counts = {0: 0, 1: 0, 2: 0} # Estragado, Bom, Verde # Desenhar detecções for result in results: for box in result.boxes: x1, y1, x2, y2 = map(int, box.xyxy[0]) cls = int(box.cls[0]) conf = float(box.conf[0]) # Atualizar contagem counts[cls] += 1 # Desenhar caixa e rótulo label = f"{labels[cls]} {conf:.2f}" cv2.rectangle(frame, (x1, y1), (x2, y2), colors[cls], 2) cv2.putText(frame, label, (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.6, colors[cls], 2) # Mostrar contagens na tela cv2.putText(frame, f"Bom: {counts[1]}", (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.7, colors[1], 2) cv2.putText(frame, f"Estragado: {counts[0]}", (10, 60) , cv2.FONT_HERSHEY_SIMPLEX, 0.7, colors[0], 2) cv2.putText(frame, f"Verde: {counts[2]}", (10, 90), cv2.FONT_HERSHEY_SIMPLEX, 0.7, colors[2], 2) # Mostrar frame processado cv2.imshow("Detecção de Tomates - Webcam", frame) # Sair ao pressionar 'q' if cv2.waitKey(1) & 0xFF == ord('q'): break # Liberar recursos cap.release() cv2.destroyAllWindows() #Chamando a função classify_tomatoes() 113
CAPÍTULO 4. PROJETO INTEGRADOR: FAZENDA EXPERIMENTAL SUSTENTÁVEL COM IOT 4.2 Aplicação 02 – Irrigação Inteligente Caso Prático OProjeto de Irrigação Inteligente com arduino é uma solução prática e eficiente para o monitoramento e irrigação inteligente de plantas, integrando sensores, atuadores e microcontroladores em um único sistema. Diferente de projetos acadêmicos que se restringem a acender LEDs ou exibir informações em displays, este projeto traz um impacto direto no cotidiano, garantindo que a planta receba a quantidade correta de água no momento adequado. Assim, evita-se tanto a escassez quanto o excesso de irrigação, promovendo sustentabilidade no uso da água e saúde ao cultivo. A proposta alia baixo custo, simplicidade e escalabilidade, podendo ser aplicada em pequenas hortas domésticas ou ampliada para sistemas agrícolas maiores. Por utilizar o Arduino Uno R3, aliado a um Sensor de Umidade do Solo e uma Mini Bomba de Água RS-385 controlada por um módulo relé, o projeto torna-se acessível tanto a iniciantes quanto a desenvolvedores avançados que desejam expandir suas funcionalidades. Objetivos: 1. Automatizar o processo de irrigação de plantas de forma inteligente. 2. Reduzir desperdício de água, aplicando irrigação apenas quando necessária. 3. Fornecer um sistema de fácil implementação e baixo custo para iniciantes. 4. Criar uma base escalável para integração com sistemas maiores de IoT (Internet das Coisas). Funcionamento: O sistema de irrigação inteligente inicia sua operação com a leitura feita pelo Sensor de Umidade do Solo, que funciona medindo a resistência elétrica entre suas hastes metálicas. Quando o solo está úmido, a condutividade elétrica aumenta e, portanto, a resistência diminui; em contrapartida, quando o solo está seco, a resistência se eleva, indicando a necessidade de irrigação. Essa variação elétrica é transformada em valores analógicos que representam o nível de umidade do solo. Esses valores são enviados ao Arduino Uno, que realiza a conversão e interpretação dos dados em termos percentuais de umidade. Com isso, é possível definir faixas de operação, por exemplo, quando a umidade está acima de 45%, considera-se adequada para o cultivo; abaixo desse valor, o solo é identificado como seco e carente de irrigação. O microcontrolador, portanto, atua como o cérebro do sistema, tomando decisões em tempo real com base nos parâmetros pré-estabelecidos no código. Quando o valor lido fica abaixo do limite de referência, o Arduino envia um sinal digital ao módulo relé, que atua como um interruptor eletrônico de alta segurança. O relé, então, fecha o circuito de alimentação da Mini Bomba de Água RS-385, conectada a uma fonte de 12V, ativando-a para iniciar a irrigação. A água é bombeada de um reservatório até o solo, garantindo que as plantas recebam o volume necessário para restaurar a umidade. 114
CAPÍTULO 4. PROJETO INTEGRADOR: FAZENDA EXPERIMENTAL SUSTENTÁVEL COM IOT Após alguns segundos de funcionamento, o sensor detecta novamente os níveis de umidade. Se estes voltarem à faixa aceitável (acima de 45%), o Arduino desliga o relé e, consequentemente, a bomba. Esse ciclo é repetido continuamente em intervalos de monitoramento, de forma automática, sem a necessidade de intervenção humana. Dessa maneira, o sistema garante um processo de irrigação eficiente, sustentável e capaz de reduzir desperdícios de água, mantendo a saúde da cultura agrícola. Conexões: Tabela 4.1: Conexões do Sistema de Irrigação Automatizada Componente Pino Arduino Observação Sensor de Umidade (A0) A0 Leitura analógica da umidade Sensor de Umidade (VCC) 5V (ou pino 7) Pode ser controlado via digital para reduzir oxidação Sensor de Umidade (GND) GND Referência de terra Módulo Relé (Sinal) D8 Ativa/desativa a bomba Módulo Relé (VCC) 5V Alimentação do módulo Módulo Relé (GND) GND Referência de terra Mini Bomba de Água 12V externo Controlada pelo relé (alimentação separada) Fonte Arduino 9V DC Alimenta a placa principal Código de Referência: Copie e Teste! // Projeto: Irrigação Automática com Arduino Uno // Aplicação 02 –Fazenda Experimental Sustentável com IoT #define pinoAnalog A0 // Entrada analógica do sensor #define pinoRele 8 // Saída digital para o relé #define pino5V 7 // Pino digital usado como VCC controlável int valorAnalog; void setup() { Serial.begin(9600); pinMode(pinoRele, OUTPUT); pinMode(pino5V, OUTPUT); digitalWrite(pino5V, HIGH); // Alimenta o sensor } void loop() { valorAnalog = analogRead(pinoAnalog); int porcentagem = map(valorAnalog, 1023, 0, 0, 100); Serial.print("Umidade: "); Serial.print(porcentagem); 115
CAPÍTULO 4. PROJETO INTEGRADOR: FAZENDA EXPERIMENTAL SUSTENTÁVEL COM IOT Serial.println("%"); if (porcentagem <= 45) { Serial.println("Irrigando a planta..."); digitalWrite(pinoRele, HIGH); }else { Serial.println("Umidade adequada. Irrigação desligada."); digitalWrite(pinoRele, LOW); } delay(1000); } Figura 4.6: Exemplo de montagem do caso prático 116
Referências Bibliográficas [1] CALAZANS, Ricardo. Códigos de Cores de Resistores. Porto Alegre: Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS), s.d. Disponível em: <https://www. inf.pucrs.br/calazans/undergrad/laborg/cod_cores_res.html>. Acesso em: [20 de agosto de 2025]. [2] ARDUINO. Getting Started with Arduino. Arduino AG, s.d. Disponível em: <https: //docs.arduino.cc/learn/starting-guide/getting-started-ard uino/>. Acesso em: [20 de agosto de 2025]. [3] 3E UNICAMP. Internet of Things (IoT). 2022. Disponível em: <https://www.3eun icamp.com/post/internet-of-things-iot>. Acesso em: [20 de Agosto de 2025]. [4] MAKERHERO. Wokwi: Simulador de Arduino. [S. l.], 2023. Disponível em: <https: //www.makerhero.com/blog/wokwi-simulador-de-arduino/>. Acesso em: 28 out. 2023. [5] PASCHOAL, Arquimedes José de Araújo; OLIVEIRA JÚNIOR, Meuse Nogueira de. Eletrônica analógica [livro eletrônico]. Recife: Instituto Internacional Despertando Vocações, 2023. (Coleção Série 18, v. 1). Disponível em: https://doi.org/10.31692 /978-65-88970-37-9. Acesso em: 4 ago. 2025. [6] ORACLE. Internet of Things (IoT). [S. l.], 2023. Disponível em: <https://www.or acle.com/br/internet-of-things/>. Acesso em: [20 de Agosto de 2025]. 117