Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

Prévia do material em texto

<p>PROJETOS COM ESP32 LoRa INSTITUTO PEDRO BERTOLETI NCB</p><p>Projetos com ESP32 e LoRa Pedro Bertoleti São Paulo - 2019</p><p>INSTITUTO NCB www.newtoncbraga.com.br leitor@newtoncbraga.com.br Diretor responsável: Newton C. Braga Coordenação: Renato Paiotti PROJETOS COM ESP32 E LORA Autor: Pedro Bertoleti</p><p>São Paulo - Brasil - 2019 Palavras-chave: Eletrônica - Engenharia Eletrônica - Componentes - Circuitos Práticos - Coletânea de Circuitos - Projeto eletrônico - ESP32 - LoRa Copyright by INSTITUTO NEWTON C BRAGA. edição Todos os direitos reservados. Proibida a reprodução total ou parcial, por qualquer meio ou processo, especialmente por sistemas gráficos, microfílmicos, fotográficos, reprográficos, fonográficos, videográficos, atualmente existentes ou que venham a ser inventados. Vedada a memorização e/ou a recuperação total ou parcial em qualquer parte da obra em qualquer programa juscibernético atualmente em uso ou que venha a ser desenvolvido ou implantado no futuro. Essas proibições aplicam-se também às características gráficas da obra e à sua editoração. A violação dos direitos autorais é punível como crime (art. 184 e parágrafos, do Código Penal, cf. Lei 6.895, de 17/12/80) com pena de prisão e multa, conjuntamente com busca e apreensão e indenização diversas (artigos 122, 123, 124, 126 da Lei 5.988, de 14/12/73, Lei dos Direitos Autorais).</p><p>Dedicatória Dedico este livro primeiramente à minha esposa, Liliane Paulino Ferreira do Nascimento, por todo o suporte, compreensão e incentivo para a preparação deste livro e de todos os artigos e postagens que já escrevi. Nada disso aconteceria sem o seu apoio. Dedico também aos meus pais (Janete Iara Fonseca e Donato Antonio Bertoleti) e minha (Isabella Aparecida Fonseca Bertoleti) por me ensinarem os valores da dedicação e honestidade, por acreditarem em meu potencial e por estarem comigo nesta grande, árdua e recompensadora jornada que foi o estudo da engenharia elétrica e eletrônica. Também dedico este livro ao Newton C. Braga e Renato Paiotti, pessoas que me incentivaram a escrevê-lo e que hoje são mais do que colegas de trabalho e conselheiros: são verdadeiros amigos. Este livro também é dedicado aos articulistas e administradores do portal Embarcados (www.embarcados.com.br) por toda o apoio nas</p><p>descobertas, estudos, amizade e ajuda ao longo dos últimos anos. Em especial, agradeço ao meu amigo Haroldo Luiz Moretti do Amaral por todas as conversas e dicas referentes a hardware e condicionamento de sinal. Por fim, agradeço pelos anos de companhia e convivência da minha gatinha de estimação Leia, a qual infelizmente nos deixou há pouco. Ela sempre preencheu meu lar de alegria e tornou a minha vida e da minha esposa mais leve, suave e divertida. Sentiremos eternamente saudades dela. Prefácio Um dos temas mais importantes da tecnologia eletrônica em nossos dias é o relacionado com a internet das coisas ou IoT (Internet of Things). Os makers estão utilizando que há de mais moderno na criação de projetos inovadores que devem estar presentes em todas as partes no mundo daqui em diante. Dominar a tecnologia que está embutida nas</p><p>aplicações da internet das coisas é, portanto, de vital importância para os makers e esse livro aborda justamente esse tema. Nele, o autor que é um expert no assunto, um renomado engenheiro mostrará como usar o módulo WiFi Lora 32(V2) dando exemplos práticos em projetos que poderão ser montados pelo próprio leitor. O conteúdo, bastante didático, também servirá de referência para os leitores que desejarem criar seus próprios projetos. Além de dar os elementos básicos isso ele lhe servirá de inspiração para que leitor crie o projeto inovador que poderá lhe trazer o sucesso financeiro ou a satisfação pessoal que você tanto procura. Para nós da editora do Instituto Newton C. Braga é motivo de grande satisfação publicar este livro. Newton C. Braga Introdução Olá leitor(a)! Primeiramente, muito obrigado por decidir ler</p><p>este livro. Saiba que, para mim, já é uma honra ter sua atenção e interesse de leitura. Se você chegou até este livro, provavelmente está iniciando ou já é imerso no mundo maker. Provavelmente, os termos Arduino, Internet das Coisas, sistemas embarcados e sensores devem ser comuns a você. Caso contrário, aconselho decididamente a ler um pouco sobre isso antes de prosseguir, só para garantir que você entenderá tudo o que foi escrito nesse livro. Este livro abordará uso do módulo WiFi LoRa 32(V2), módulo que permite, dentre outras opções, comunicação Internet e LoRa. O módulo será usado em projetos com contexto para uso na Internet das Coisas, abrangendo: comunicação via Internet, comunicação LoRa, leitura de sensores e controle de atuadores (motores elétricos DC, por exemplo). Mas, por que falar de projetos no contexto de Internet das Coisas? Porque seria tão importante? Vejamos: Com a Internet das Coisas, inúmeras possibilidades de monitoramento, controle</p><p>e melhoria de processos surgiram. Os segmentos de mercado que sofrerão influência disso são os mais variados possíveis, exercendo especial influência em nichos com forte grau de emprego de tecnologia, como setor agropecuário e produção industrial, por exemplo. Você deve ter percebido que parte do presente e boa parte do futuro próximo da tecnologia envolverá Internet das Coisas. Logo, tudo seria ótimo se todos os equipamentos pudessem ter acesso direto à Internet, que infelizmente não é realidade, seja no Brasil ou em qualquer outro país do mundo. Para resolver isso, foram criados os gateways IoT, que de forma simples são centrais que interligam as informações enviadas por equipamentos que não tem acesso direto à Internet (informações enviadas por meio de rádio de longo alcance / alta imunidade) e a conectividade à Internet. Observe: Com a crescente necessidade de equipamentos se comunicarem entre si e que tenham interação com a Internet (Internet das Coisas - uma demanda surgiu: melhorar a comunicação entre os</p><p>equipamentos e destes com centrais/gateways, de modo que se tenha mais alcance, melhor imunidade às interferências e, por último, mas não menos importante, que se gaste menos energia para comunicação. A tecnologia LoRa veio para suprir esta demanda, sendo hoje um dos grandes expoentes de comunicação de grande alcance e baixo consumo do mercado e grande aliado da Internet das Coisas. Logo, este livro abordará projetos que utilizam como item principal um módulo com conectividade LoRa e Wi-Fi (Internet), dando a você, leitor, boa bagagem para fazer projetos completos no contexto de Internet das Coisas. Em resumo: se você gosta ou quer aprender um pouco sobre Internet das Coisas (Internet of Things - IoT) e ver projetos bacanas da área para aprender e te inspirar, este livro é para você! O livro é dividido em oito capítulos, sendo:</p><p>Capítulos 1, 2 e 3: estes capítulos irão te contextualizar sobre o que é LoRa, o que é o ESP32 e do que é composto o módulo WiFi LoRa 32(V2). Estes capítulos compõe uma base teórica fundamental para total compreensão dos capítulos seguintes. Para se familiarizar a programação do módulo WiFi LoRa 32(V2), há um código-fonte do tipo "Hello World" do módulo no capítulo 3. Capítulos 4, 5, 6, 7 e 8: aqui, há um foco mais prático, com projetos completos com circuito esquemático e códigos-fonte. Tais projetos são variados, indo desde aplicações muito parecidas com sistemas profissionais até um gadget inspirado na série americana Stranger Things para tornar seu local de trabalho mais divertido. Falando nos códigos-fonte dos projetos feitos, estes podem ser encontrados na íntegra em 2 locais: Nos próprios capítulos, para total compreensão dos projetos (lembrando que seu leitor de e-book pode quebrar as linhas automaticamente por causa do espaço na tela, fique atento). No repositório Github oficial do projeto: http://bit.do/eX7er Ainda sobre os códigos-fonte, não se esqueça de</p><p>ler atentamente os comentários presentes no mesmo. Isso fará você entender 100% do que ele faz e te guiarão nas mudanças / adaptações que você pode desejar fazer no futuro. Curioso sobre como o livro vai se desenvolver? Vamos em frente!</p><p>Capítulo 1: Introdução ao LoRa A Internet das Coisas ou IoT foi - e ainda é - um grande salto em termos de tecnologia. Em termos gerais, a Internet das Coisas, se aplicada corretamente, permite que dispositivos não sejam somente geradores informações ou atuadores controláveis remotamente; ela permite a geração de valor em uma operação. Dispositivos contribuindo para geração de dados que levarão a melhores tomadas de decisão, geração de informações compactas e extremamente úteis para melhoria contínua de processos e afins é, sem dúvidas, o propósito da Internet das Coisas. Porém, nem todos os locais onde há processos a serem melhorados estão sob cobertura de sinal de Internet, seja via cabo ou sem fio. Logo, é preciso que haja um dispositivo concentrador - chamado gateway - que tenha acesso à Internet e que seja capaz de se comunicar com estes dispositivos à distância, integrando assim dispositivos de localizações remotas</p><p>à sistemas conectados à Internet. Nessa comunicação com os dispositivos, no âmbito sem fio, existem várias tecnologias de rádios elegíveis, porém uma delas tem conseguido grande destaque: LoRa. A tecnologia de rádio LoRa permite comunicação sem fio, com baixo consumo e com alcance na ordem de quilômetros, sendo assim muito adequada para projetos das Internet das Coisas. Neste capítulo, você aprenderá o que é LoRa, qual a topologia de rede utilizada e mais informações para fixar bem o assunto. LoRa - o que é? Em poucas palavras, LoRa é uma tecnologia de radiofrequência que permite comunicações em longas distâncias (na ordem de grandeza de alguns quilômetros) com baixo consumo de energia elétrica. Inclusive, o nome LoRa vem de Long Range, acrônimo adequado ao seu funcionamento. Em termos de frequências de operação, a tecnologia LoRa utiliza frequências sub-gigahertz (abaixo de 1GHz), em bandas dedicadas de acordo com as regiões do planeta. Observe a tabela 1, onde há as definições</p><p>das bandas de frequência destinadas ao LoRa nas principais regiões do planeta. Região Banda Estados Unidos e Américas de 902MHz até 928MHz Europa de 863MHz até 870MHz China de 779MHz até 787MHz Tabela 1 - bandas de frequência LoRa licenciadas nas principais regiões do planeta Topologia de rede O LoRa pode ser utilizado na forma de uma rede, formando assim uma LPWAN (Low Power Wide Area Network). No quesito topologia de rede, o LoRa funciona na topologia estrela (uma central/concentrador e N nós/end-devices) ou ponto-a- ponto, dependendo da quantidade de rádios LoRa no enlace em questão. Isso ocorre pois, numa comunicação LoRa "pura", não há endereçamento de rede (apesar de haver possibilidade entre diversos rádios LoRa, por default, não há endereçamento). Logo, se há dois dispositivos em um enlace de comunicação, a comunicação é</p><p>ponto-a-ponto (um dispositivo transmite e o outro recebe); já se há três ou mais dispositivos em um enlace, todos receberão as informações transmitidas por quaisquer um dos rádios LoRa envolvidos, logo comportamento é de uma topologia em estrela. Tipos de fluxo de dados permitidos Quanto aos tipos de fluxo de dados permitidos, LoRa é bem versátil, permitindo tráfego de dados de três formas distintas: 1. Simplex: um rádio somente transmite dados e os outros N rádios da rede somente recebem dados. Em outras palavras, é uma comunicação em via única entre concentrador/central e nós/end-devices. 2. Half-duplex: todos os rádios da rede transmitem e recebem dados, porém nunca há uma transmissão e recepção simultâneas. Ou seja, num instante de tempo, um rádio da rede pode estar transmitindo OU recebendo dados, nunca ambos. 3. Full duplex: todos os rádios da rede transmitem e recebem dados, podendo haver transmissão e recepção simultâneas.</p><p>Por que usar LoRa? LoRa apresenta grandes vantagens de uso na comunicação entre dispositivos finais e entre dispositivos finais e central/gateway, sendo estas vantagens focadas em alcance, baixo consumo de energia elétrica e imunidade a interferências. Observe: Alcance e consumo de energia elétrica: rádios LoRa possuem um alcance muito grande com baixo consumo de energia elétrica se comparado a outros rádios do mercado de mesma ordem de grandeza de alcance. Utilizando antenas corretamente dimensionadas é possível estabelecer comunicação entre dois nós com distâncias da ordem de grandeza de quilômetros, algo extremamente útil para projetos tanto em áreas rurais quanto urbanas. Imunidade à interferência: o rádio LoRa possui nativamente grande imunidade às interferências, algo fundamental em se tratando de ambientes urbanos. Além disso, o rádio LoRa trabalha em frequências abaixo de 1GHz (na chamada faixa ISM de frequências), operando assim em uma banda de frequências diferente da grande maioria dos dispositivos eletrônicos (os quais, em sua maioria, operam em frequências acima de 1 GHz, tais como 2.4GHz e 5GHz). Isso diminui ainda mais as chances de interferências. Custo: em comparação com soluções da mesma ordem de grandeza de alcance físico do rádio, o LoRa é uma das que</p><p>apresenta melhores relação custo benefício. Além disso, pelo fato de o consumo de energia elétrica ser baixo no LoRa, há um outro fator de redução de custo envolvido: se o rádio LoRa for usado em dispositivos remotos com alimentação à bateria, a longo prazo o número de trocas de bateria será menor (se comparado ao mesmo cenário com tecnologias de consumo energético maior). Portanto, a longo prazo, isso significa uma economia significativa na manutenção do dispositivo. Dadas as vantagens acima, o rádio LoRa é considerado uma ótima escolha para projetos tanto em ambiente rural quanto urbano. Pontos de atenção ao uso do LoRa Um ponto de atenção quanto ao uso da tecnologia LoRa é que esta é proibitiva em aplicações que exigem alto fluxo de dados, como streaming de imagens e áudio, por exemplo. O rádio LoRa possui baixo data rate ou taxa de transmissão de dados. Por exemplo, no chip SX1276 (fabricante: Semtech), operando a 915MHz, o data rate máximo é de 37.5 kbps, sendo portanto um data rate muito baixo para streaming de dados massivos em tempos satisfatórios. Outro ponto de atenção é que o LoRa não oferece</p><p>(de forma nativa) a segurança de dados trafegados. Ou seja, fica a cargo do projetista, desenvolvedor ou arquiteto de software fazer a encriptação dos dados para transmissão e sua desencriptação na recepção. Este é um ponto de atenção muito relevante em se tratando de projetos no conceito de Internet das Coisas, uma vez que brechas na segurança neste tipo de projeto podem trazer consequências desastrosas para um negócio. Atenção! Antes de ler este capítulo, você leitor provavelmente já deve ter ouvido falar de LoRa antes, assim como já deve ter visto nome LoRaWAN em sites de tecnologia, seminários, conferências, webinars e entre conversas com colegas de profissão da área. Sendo assim, aproveito aqui para dizer que LoRa e LoRaWAN são coisas diferentes. LoRa, conforme visto até então neste capítulo, trata- se de uma tecnologia de comunicação para longas distâncias com baixo consumo de energia elétrica. Este nome se refere ao rádio LoRa, que traz todos os benefícios ligados a alcance, imunidade a interferências e baixo consumo da tecnologia. Em suma, LoRa</p><p>significa tecnologia de rádio e enlace de rádio. LoRaWAN trata-se de um protocolo de rede definido em software que utiliza LoRa como canal de transmissão / camada física. O LoRaWAN é um padrão livre/aberto, o qual permite fazer uma rede completa, com endereçamento de dispositivos, gateway, mecanismos anti-colisão de pacotes e tudo mais requerido numa rede propriamente dita. Em poucas palavras, protocolo LoRaWAN implementa os detalhes de funcionamento, segurança, qualidade do serviço, ajustes de potência visando maximizar a duração da bateria dos módulos. Ou seja, LoRaWAN é protocolo de rede utiliza LoRa como canal de transmissão, fazendo com que uma estruturação de rede se estabeleça baseada na tecnologia de rádio LoRa. Em termos de custo, LoRaWAN se difere ainda mais do LoRa puro, uma vez que além do hardware envolvido nos rádios LoRa, exige o uso de um gateway LoRaWAN, um dispositivo que até o momento da redação deste livro não apresenta, em sua maioria, preços convidativos. No caso do gateway LoRaWAN, há mais uma diferenciação: o gateway faz com que o LoRaWAN esteja envolvido também na parte chamada de servidor de aplicação, conforme figura 1. Os servidores de aplicações são programas específicos que recebem</p><p>(via requisição ou de forma automática) os pacotes dos servidores de rede e de acordo com a informação executam uma ou mais ações específicas. Ou seja, o LoRaWAN abrange também a camada de aplicações e tomadas de decisão automáticas, alinhando-se assim ainda mais ao contexto de Internet das Coisas. Network Application Server Network Server Gateways End-Devices Figura 1 - Arquitetura de uma rede LoRaWAN Em uma analogia livre, é como se LoRa fossem as rodas de um carro e o LoRaWAN o motor. O motor, utilizando as rodas, pode fazer com que o carro se mova de forma a ter seu movimento controlado. As</p><p>rodas, embora não sejam exatamente quem produz a força motriz, são necessárias para o motor poder desempenhar seu papel. Sem as rodas, o motor nada faria no quesito movimentação. Da mesma forma, LoRa oferece ao LoRaWAN uma maneira deste operar, estabelecendo assim uma rede completa. LoRa Alliance LoRa Alliance é outro tópico / nome recorrente quando se fala de LoRa. LoRa Alliance é uma associação sem fins lucrativos de grandes empresas de tecnologia, construída para promover rápido crescimento de LPWANs através do desenvolvimento do LoRaWAN. Nesta aliança, todos ganham: as empresas participantes estão inseridas num ecossistema rico em ideias e oportunidades de negócios em Internet das Coisas, enquanto quem utiliza das redes LoRaWAN tem uma cobertura cada vez maior de LPWANs e também tem um protocolo livre/aberto cada vez mais robusto e seguro. Gigantes do mercado, tais como a Cisco, Google, ST Microelectronics e ARM são alguns dos membros atuais da LoRa Alliance. Até o momento da escrita deste livro,</p><p>a LoRa Alliance conta com mais de 500 empresas participantes. Se você desejar saber mais sobre LoRa Alliance e seus avanços, recomendo visitar o site oficial: https://lora-alliance.org/</p><p>Capítulo 2: Introdução ao ESP32 A tecnologia é uma das coisas às quais todos temos certeza que evolui constantemente. Desde simples equipamentos do dia-a-dia até sistemas monumentais como a infraestrutura de grandes players do mercado (como Google, Microsoft e Amazon), a tecnologia evolui a passos largos e torna real possibilidades que antes eram improváveis. Hoje, com preços cada vez mais acessíveis, é possível adquirir módulos que tornam possíveis até aos hobistas e makers fazer projetos totalmente ligados à Internet, ampliando (e muito) o que os sistemas embarcados podem fazer. Nessa linha de pensamento, a fabricante Espressif Systems vem se mostrado um grande expoente, uma vez que com o seu já consolidado ESP8266 (e variantes) e o mais recente ESP32 abriram as possibilidades para prototipação rápida (e projetos completos) que precisem de bom poder computacional (processamento e quantidades de memórias) e conectividade. E é sobre o ESP32 que abordaremos neste capítulo. Faremos um overview deste SoC (System on Chip), de forma que você consiga perceber o porque ele tem se tornado cada vez mais importante e popular entre os projetos envolvendo Internet das Coisas. ESP32 - o que é? ESP32 é um SoC (ou combo chip, conforme referenciado na documentação oficial) que oferece conectividade (Wi-Fi e Bluetooth, com frequência 2,4GHz), poder computacional (CPU + memórias), I/Os, RTC, suporte à comunicações diversas (SPI, etc.), suporte à operação Low-Power e blocos de hardware dedicados à segurança em um único chip. Veja na figura 1 seu diagrama em blocos.</p><p>Embedded Flash Bluetooth Bluetooth RF baseband receive controller SPI Clock 12C generator Wi-Fi 12S Wi-Fi MAC RF baseband transmit SDIO UART Core and memory Cryptographic hardware CAN 2 (or 1) 32- acceleration bit LX6 Microprocessors ETH SHA RSA IR ROM SRAM AES RNG PWM Temperature RTC Touch sensor ULP Recovery PMU DAC co-processor memory ADC Figura 1 - diagrama em blocos do ESP32. Segundo o datasheet oficial do ESP32 ( ), utilizando o chip juntamente com aproximadamente 20 componentes externos, é possível usufruir por completo das funcionalidades do ESP32, com o benefício de ocupar uma área muito pequena em uma placa de circuito impresso. Comercialmente, a forma mais comum de se encontrar o ESP32 é na forma de módulo, já contendo todos os componentes necessários, shield metálico e local para soldar os terminais. Desta forma, pode-se utilizar este módulo como "super componente" (CPU + memórias + conectividade) de um projeto. Especificações técnicas As principais especificações técnicas do ESP32 quanto à conectividade, segurança, CPU e memórias e outras funcionalidades estão a seguir: Wi-Fi: Padrões suportados: 802.11 b/g/n Suporte a WMM (Wi-Fi multimídia), permitindo que aplicações que envolvam VoIP e streams de</p><p>áudio e vídeo sejam desenvolvidas Suporta agregações de frame A-MPDU (TX/RX) e A-MSDU (RX), o que garante maior throughput de dados Possui 4 interfaces virtuais Wi-Fi Suporta operação simultânea como modo Station e SoftAP Bluetooth: Compatível com Bluetooth v4.2 BR/EDR e BLE Classes de transmissão (sem amplificador externo) suportadas: 1, 2 e 3 Potência de transmissão: +12 dBm Sensibilidade de recepção (NZIF) BLE: -97 dBm Possui Adaptive Frequency Hopping (AFH) Comunicação via UART com até 4 Mbps Suporta conexões múltiplas no Bluetooth clássico e BLE Permite fazer scan Bluetooth e operação com perfil advertising de forma simultânea CPU e memórias: Microprocessador: single-/dual-core (32-bits) LX6, rodando com até 600 MIPS ROM: 448 KB SRAM: 520 KB SRAM do RTC: 16 KB Suporte QSPI para múltiplos chips de memória flash e SRAM Osciladores e timers: Oscilador interno de 8MHz (com calibração) Suporta oscilador externo (à cristal) de 2MHz até 60MHz Suporta oscilador externo (à cristal) de 32kHz para o RTC, permitindo calibração deste oscilador. Possui dois grupos de timers, sendo que cada grupo possui 2 timers de 64 bits e 1 timer dedicado para watchdog Periferia de hardware (GPIOs, interfaces de comunicação e sensores): Até 34 GPIOs programáveis</p><p>Até 18 canais de ADC (de 12 bits de resolução) Dois DAC de 8 bits Suporte a dez sensores touch Interfaces SPI disponíveis: 4 Interfaces disponíveis: 2 Interfaces disponíveis: 2 Interfaces UART disponíveis : 3 Suporte para 1 host (SD/eMMC/SDIO) e 1 slave (SDIO/SPI) Uma interface Ethernet com DMA dedicado e suporte a IEEE 1588 Uma interface CAN 2.0 Uma interface IR (TX/RX) Um sensor Hall Segurança: Suporte a boot seguro Suporte à encriptação de memória Flash Hardware dedicado à criptografia (aceleração) para: AES, Hash (SHA-2), RSA, ECC, Geração de número aleatório (RNG) Sistema operacional do ESP32 De forma mais comum, o ESP32 utiliza um sistema operacional de tempo real (ou, como mais comumente encontrado na literatura estrangeira, Real-Time Operating System). Como grande vantagem em relação ao seu antecessor (ESP8266), é possível utilizar o famoso e consolidado FreeRTOS no ESP32. Trata-se de uma grande vantagem, uma vez que pode facilitar a migração / portabilidade de outros projetos feitos utilizando FreeRTOS em outras plataformas para o ESP32. Programação do ESP32 O ESP32 pode ser programado de várias formas, com destaque para: Forma completa: Via SDK oficial da Espressif Systems, em linguagem C. Para mais informações, acesse: https://www.espressif.com/en/products/hardware/esp32/resources</p><p>Forma introdutória / para aprendizado: via Arduino IDE (em linguagem C e/ou C++) Por conta da didática, popularidade e facilidade de uso, este livro adotará a programação utilizando Arduino IDE. Ou seja, programaremos o ESP32 como se estivéssemos programando outro Arduino qualquer. Desta forma, não precisamos saber dos detalhes técnicos do sistema operacional para construir uma solução, podendo assim explorar os recursos do ESP32 de forma mais simples e rápida, algo valioso para o aprendizado. Datasheet datasheet do ESP32 pode ser encontrado no link Trata-se de um datasheet muito completo, servindo como boa fonte de documentação tanto para aqueles que estão começando a trabalhar com este SoC quanto aos que já tem experiência nisso.</p><p>Capítulo 3: Introdução ao módulo WiFi LoRa 32 Diariamente, podemos ver uma evolução tecnológica clara dos módulos/kits de desenvolvimentos disponíveis no mercado. Além disso, tão importante quanto a evolução tecnológica em si, tais módulos apresentam preços cada vez mais acessíveis, permitindo que muitos de nós tanto hobistas quanto profissionais possam comprar estes hardwares e fazer projetos interessantes, sobretudo que estão inseridos no contexto da Internet das Coisas. Um dos módulos que abriu muitas possibilidades neste quesito e mais se popularizou entre os makers e profissionais foi o NodeMCU, placa de desenvolvimento contendo o ESP8266 e demais periféricos necessários (reguladores de tensão, I/Os, LEDs, etc.). Mais recentemente, o ESP32 (sucessor dos ESP8266) surgiu e com ele vieram módulos / kits de desenvolvimento muito úteis para projetos em Internet das Coisas. Dentre os módulos que usam como base o ESP32, destaco o ESP32 Wi-Fi LoRa, também conhecido como WiFi LoRa 32(V2) (do fabricante HELTEC). Além de contar com o poderoso ESP32, este módulo conta com um chip e circuitaria de rádio LoRa, abrindo assim uma gama de possibilidades de projetos IoT. E é justamente dele que trataremos neste capítulo: apresentação do módulo WiFi LoRa 32(V2), onde veremos informações gerais do mesmo e também como fazer o seu primeiro programa para o módulo. Módulo - visão geral módulo WiFi LoRa 32(V2), fabricado pela empresa HELTEC, trata-se de um poderoso módulo dotado de conectividade Wi-Fi, Bluetooth e LoRa, além de contar com um display OLED. Ele pode ser observado na figura 1, juntamente com sua antena para o rádio LoRa.</p><p>Figura 1 - Módulo WiFi LoRa 32(V2), juntamente com sua antena para Rádio LoRa e pin-headers Este módulo possui como unidade central de processamento e conectividade o SoC (System on Chip) ESP32, do fabricante Espressif Systems. Para mais informações deste, consulte o capítulo 2 ou acesse sua página . Em resumo, as especificações técnicas do módulo WiFi LoRa 32(V2) são: Contém um ESP32, trazendo consigo conectividade Wi-Fi e Bluetooth Frequência de operação: 240MHz Memória Flash: 64M-bits Wi-Fi: 802.11 b/g/n/e/i Bluetooth: suporta o Bluetooth "tradicional" e BLE Display OLED 0.96" da cor azul Rádio LoRa, utilizando como chip o SX1276 ou SX1278, e com sensibilidade de recepção de -139dBm Alcance máximo do LoRa (utilizando antena oferecida no módulo): 3 Km em área aberta. Frequências de LoRa disponíveis para se trabalhar: 868-915?923 MHz (para versões com o chip SX1276) 433-510 MHz (para versões com o chip SX1278). Range de temperatura para operação: de -40°C até + 80°C Tensão de alimentação do módulo: 5V Em suma, podemos observar que se trata de uma solução completa para a grande maioria dos protótipos e projetos de pequeno e médio porte que envolvam Internet das Coisas. Para mais informações, consulte as informações do módulo presente no site oficial do fabricante:</p><p>Pinagem A pinagem do módulo WiFi LoRa 32(V2) pode ser vista na figura 2. WIFI LoRa Pinout Diagram Figura 2 pinagem do módulo WiFi LoRa 32(V2). Porém, devemos prestar atenção nos seguintes pontos importantes relacionados a pinagem deste módulo: o display OLED utiliza GPIOs para comunicação diferentes daqueles assumidos por grande parte das bibliotecas OLED disponíveis. Portanto, na Arduino IDE, utilize a chamada "Wire.begin(OLED SDA OLED_SCL_PIN);" antes da inicialização de qualquer biblioteca de display OLED. Isso fará com que seja usada a correta para o display. Se você não for utilizar LoRa em seu projeto, não utilize em seu projeto os GPIOs que constam funções do LoRa (GPIOs 26, 27, 14, 18, 5 e 19). Se você não for utilizar o display OLED em seu projeto, não utilize em seu projeto os GPIOs que constam funções do display (GPIOs 4 e 15). As entradas analógicas do módulo suportam tensão MÁXIMA de 1,8V. Qualquer valor acima disso nas entradas analógicas pode danificar permanentemente o módulo. A corrente máxima que um GPIO configurado como output pode fornecer é 12mA. Não respeitar este limite significa, muitas vezes, danificar permanentemente o ESP32. Os GPIOs configurados como input suportam a tensão de, no máximo, 3,3V. Não respeitar este limite significa, muitas vezes, danificar permanentemente o ESP32. Segundo recomendações do fabricante, não ligue o módulo com a antena do rádio LoRa desconectada. Utilização do módulo com a Arduino IDE Agora chegou a hora de configurar a Arduino IDE para programar os módulos WiFi LoRa 32(V2). Antes de mais nada, assegure-se de estar com a versão mais recente da</p><p>Arduino IDE instalada. para isso, baixe a versão mais recente da Arduino IDE aqui: https://www.arduino.cc/en/main/software Assim que estiver com a Arduino IDE mais atual instalada, siga os procedimentos abaixo. Infelizmente, as bibliotecas originais do fabricante do módulo possuem algumas falhas para comunicação com o display OLED e com o chip LoRa, desta forma eu preparei o procedimento de forma a contornar esses problemas e permitir que você a aproveitar 100% dos recursos do módulo. Instalação das bibliotecas básicas para o ESP32 1. Na Arduino IDE, vá até a tela de preferências clicando em em File > Preferences 2. Clique no botão ao lado do campo "Additional Boards Manager URLs" 3. Na nova janela que abrir, no campo "Enter additional URLs, one for each row", insira o seguinte endereço: e clique em "Ok" 4. Na janela de preferências, clique em "Ok" 5. Vá até o gerenciador de placas, clicando em Tools > Board > Boards Manager... 6. Na janela do gerenciador de placas, insira no campo de busca o texto "esp32" (sem as aspas) 7. Clique sobre a opção "esp32 by Espressif Systems" e depois no botão "Install" 8. Aguarde o download e instalação da biblioteca acabarem. Após alguns segundos, a biblioteca estará instalada. Instalação das bibliotecas de LoRa e display OLED 1. Após o procedimento acima, é hora de instalar a biblioteca para utilizar o rádio LoRa. Para isso, baixe o arquivo zip da biblioteca acessando o endereço https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf Na Arduino IDE, vá em Sketch > Include Library > Add .zip Library. Na janela que surgir, vá até a pasta que você salvou a biblioteca baixada, clique sobre o arquivo .zip e clique em Ok 2. Feito isso, a biblioteca está adicionada e pronta para uso. IMPORTANTE: a biblioteca considera que o chip LoRa está ligado em pinos diferentes dos que estão ligados no módulo WiFi LoRa 32(V2). Desta forma, para utilizar a</p><p>biblioteca sem problemas, inclua em seu programa os seguintes defines: #define SCK LORA 5 #define MISO LORA 19 #define MOSI LORA 27 #define RESETPINLORA 14 - - #define SS PIN LORA 18 E, ao inicializar o chip LoRa, utilize o seguinte código: SPI.begin (SCK LORA, MISO LORA, MOSI LORA, SS PIN LORA) ; LoRa. setPins (SS PIN LORA, RESETPINLORA, ; - if !LoRa.begin (BAND) ) ("Falha ao iniciar radio LoRa") ; else Serial println ("Radio LoRa inicializado corretamente") ; 3. Agora, é o momento de instalar a biblioteca do display OLED. Para isso, vá em Sketch > Include Library > Manage Libraries. No campo de busca, digite "ADAFRUIT SSD1306" procure pela biblioteca da Adafruit, conforme mostra a figura 3. Library Manager Type All Topic All Adafruit 5501306 by Adafruit Version 1.2.9 INSTALLED oled driver library for monochrome and displays driver for and displays More info Select version Adafruit SSD1306 Wemos Mini OLED by Adafruit mcauser oled driver library for Wemos DI Mini OLED shield This is based on the Adafruit with additional code added to support the 64x48 display by More info An GFX driver for the Oak OLED 5501306 with no reset Instal this as the for Figura 3 - biblioteca da Adafruit para display OLED</p><p>4. Em "Select Version" selecione a versão mais recente e clique em "Install". Após alguns segundos, a biblioteca estará instalada e pronto para uso. IMPORTANTE: o display OLED utiliza GPIOs para comunicação diferentes daqueles assumidos por grande parte das bibliotecas disponíveis. Portanto, na Arduino IDE, utilize a chamada "Wire.begin(OLED_SDA_PIN, OLED_SCL_PIN);" antes da inicialização de qualquer biblioteca de display OLED. Em termos de código-fonte, ficaria assim: Utilizar os seguintes includes: #include <Wire.h> #include <Adafruit_GFX.h> #include Ao declarar o objeto: Adafruit_SSD1306 display (SCREEN WIDTH, &Wire, 16) ; Ao inicializar: Wire.begin (4, 15) ; display. begin 0x3c) 5. Repita os passos 3 e 4 (nas partes referentes à instalação da biblioteca) para a biblioteca "Adafruit GFX Library". Ela também é necessária para se utilizar os displays OLED. 6. Repita os passos 3 e 4 (nas partes referentes à instalação da biblioteca) para a biblioteca "Heltec ESP32 Dev-Boards". Ela é necessária para se conseguir comunicação e acesso a alguns recursos do módulo. 7. Pronto, agora você possui bibliotecas para aproveitar 100% dos recursos do módulo WiFi LoRa 32(V2). Seu primeiro programa para o módulo WiFi LoRa 32(V2) Com todas as bibliotecas necessárias instaladas, você está pronto para fazer seu primeiro programa para o módulo WiFi LoRa 32(V2). Neste primeiro programa, será</p><p>escrito no display OLED algumas informações (incluindo um contador de tempo de placa ligada, em segundos), de modo que você tudo que você irá precisar para rodar o exemplo será do módulo e um cabo micro-USB (usado para programação e alimentação). O código-fonte está abaixo. Nota: o código-fonte deste exemplos e de todos os outros do livro estão também presentes no repositório Github oficial do livro: /* Includes para header files das biliotecas do OLED */ #include <Wire.h> #include #include /* Endereço I2C do display */ #define OLED ADDR 0x3c /* distancia, em pixels, de cada linha em relacao ao topo do display */ #define OLED LINE1 0 - #define OLED LINE2 10 #define OLED LINE3 20 - #define LED LINE4 30 #define 40 /* Configuração da resolucao do display (este modulo possui display 128x64) */ #define SCREEN WIDTH 128 #define SCREENHEIGHT 64 /* Objeto do display */ Adafruit SSD1306 display (SCREEN WIDTH, SCREEN HEIGHT, &Wire, 16) ; /* Variaveis */ int contador = 0; /* Funcao setup */ void setup {</p><p>/* inicializa display OLED */ Wire. begin (4, 15) ; if Serial.println("Display OLED: falha ao inicializar") else { Serial. println ("Display OLED: inicializacao ok" " ; /* Limpa display e configura tamanho de fonte */ display. display.setTextSize(1) display.setTextColor( (WHITE) } } /* Programa principal */ void loop { isplay.clearDisplay( ; display. display. setCursor (0, display. display. setCursor (0, display. print ("Tempo ligado: display. setCursor (0, display.print(contador); contador++;</p><p>delay (1000) ; } Antes de compilar e rodar, certifique-se que a placa do Heltec_Wifi_LoRa_32 esteja selecionada em Tools > Board. Para compilar, enviar o software compilado ao módulo, basta fazer da mesma forma como você faria no Arduino convenciona. Ou seja, clique sobre o ícone em forma de "V" (em laranja na figura 4) para compilar e, para gravar o software no módulo, basta clicar no ícone em forma de seta para a direita (em amarelo na figura 4). File Edit Sketch Tools Help Figura 4 - botões da Arduino IDE para compilação e gravação de software A figura 5 mostra o projeto funcionando: RST Figura 5 - primeiro projeto no módulo WiFi LoRa 32(V2) funcionando Conclusão Neste capítulo conhecemos o módulo WiFi LoRa 32(V2) e vimos suas principais características, as quais se destacam o poder computacional do ESP32 e as possibilidades de conectividade do módulo (Wi-Fi, Bluetooth/BLE e LoRa). Tais características transformam este módulo em um item completo para protótipos e projetos de pequeno e médio porte. Além disso, foi ensinado como se instalar as bibliotecas para todos os periféricos do módulo e a como programá-lo via Arduino IDE, abrindo possibilidades para você construir os mais diversos projetos.</p><p>Capítulo 4: Comunicação ponto a ponto com LoRa Conforme você leu no capítulo 1, o rádio LoRa apresenta várias vantagens, sendo estas nos quesitos de alcance longo, baixo consumo de energia elétrica e baixo custo (se comparado com soluções equivalentes em alcance). Este capítulo te ensinará a como fazer uma comunicação ponto-a- ponto simples, de forma que você consiga usufruir e testar a comunicação via rádio LoRa. No caso, isso será feito utilizando dois módulos WiFi LoRa 32 (V2), onde um opera como emissor e o outro como receptor (comunicação simplex). Material necessário Para criarmos um projeto de comunicação ponto-a-ponto entre dois módulos WiFi LoRa 32(V2), tudo o que precisaremos será: Dois módulos WiFi LoRa 32(V2) Uma fonte micro-USB de 5V/2A Um cabo micro-USB (para programação de ambos os módulos e para</p><p>alimentação de um deles no computador) Topologia de redes aceitas pelo LoRa Em termos de topologia de rede, revisando o que já vimos no capítulo 1, o uso de LoRa possui dois cenários distintos: ponto-a-ponto e estrela. Na figura 1, podemos ver a comunicação entre dois módulos na topologia ponto-a-ponto. Aqui, há dois módulos se comunicando via rádio LoRa, trocando informações seja de forma síncrona, duplex ou full-duplex. Comunicação duplex ou Figura 1 - comunicação ponto-a-ponto entre dois módulos WiFi LoRa 32 2(V2) Já na figura 2, podemos ver vários módulos se comunicando a uma central / concentrador / gateway, caracterizando assim a topologia em estrela. Nesta topologia, cada dispositivo se comunica de forma síncrona, duplex ou full-duplex com o gateway e, este por sua vez, tem acesso à Internet, possibilitando que informações sejam enviadas e</p><p>recebidas da Internet pelos módulos. Nesta topologia, um gateway LoRaWAN se comporta de forma similar a um roteador de rede comum / residencial, com o diferencial que já possui, praticamente de forma nativa, integração com plataformas e serviços Cloud / IoT. Plataformas loT ou Gateway Figura 2 - topologia em estrela, comunicando dispositivos finais com a Internet através do gateway/concentrador LoRaWAN Segurança Uma ótima prática (na verdade, algo cada vez mais mandatório) é sempre protegermos tudo que for enviado e recebido com criptografia, ou seja, todas as informações trafegadas são protegidas / criptografadas (embaralhadas) pelo emissor e descriptografadas (desembaralhadas) pelo</p><p>receptor, que "sabe" como fazer essa tarefa e consiga recuperar a informação original (que foi criptografada pelo emissor). Para isso, há dois tipos de criptografia: 1. Criptografia simétrica: neste tipo de criptografia, a chave para desproteger a informação (recuperar a informação original no receptor) é conhecida tanto no emissor (que a usou para proteger a informação) quanto no receptor (que usará a mesma chave para desproteger a informação e recuperar seu conteúdo original). Desta forma, embora mais simples que a criptografia assimétrica, aqui há uma desvantagem considerável: se alguém conhecer tal chave de criptografia/descriptografia consegue recuperar todas e quaisquer informações de sua comunicação que puder obter, expondo a comunicação a ataques, tentativas de engenharia reversa e roubo de informações sensíveis. 2. Criptografia assimétrica: aqui, ao invés de uma chave única de criptografia, há um par de chaves denominado chave pública e chave privada. Para se fazer uma analogia, é como se a "caixa" que protegesse a informação (mensagem criptografada) possuísse um cadeado que abre com duas chaves distintas (chave pública e chave privada). emissor utiliza uma chave de acesso restrito (chave privada) para proteger a informação. receptor, por sua vez, para conseguir trabalhar com a mensagem criptografada, utiliza uma chave pública e desconhece a chave privada. Esta chave pública possui duas finalidades: desproteger a informação (e recuperar seu conteúdo original) e verificar se a mensagem veio de um emissor que utilizou a chave privada correta. Dessa forma, se algum atacante/cracker conseguir descobrir a chave pública e provocou o envio de uma mensagem-falsa criptografada com uma chave privada</p><p>diferente daquela esperada (para fins de fraude, por exemplo), o receptor, utilizando a chave pública, é capaz de detectar tal comportamento e não utilizar a informação ou, ainda, entrar em algum estado de alerta / emergência, dependendo da criticidade da informação envolvida. Além disso, a chave pública pode conter uma parte fixa e outra variável (em função da hora ou data, por exemplo), deixando ainda mais difícil que algum atacante/cracker intercepte uma mensagem criptografada, descubra a lógica de formação da chave pública, decifre / desproteja a mensagem e recupere seu conteúdo original. A criptografia assimétrica oferece muito mais segurança que a simétrica, porém possui complexidade computacional muito mais elevada, exigindo portanto mais poder computacional tanto do emissor quanto do receptor. Logo, se uma das partes da comunicação possuir restrições a altas taxas de processamento e uso considerável de memória RAM, o uso de criptografia assimétrica pode ser proibitivo. Por razões de didática e aprendizagem, o projeto desta postagem vai se later apenas a comunicação ponto-a-ponto em si, não fazendo uso de criptografia. Além disso, para fins didáticos, a comunicação LoRa desconsidera verificação de integridade e sincronismo. A partir do momento que você se sentir confortável e com maior proficiência na comunicação ponto-a-ponto e seus conceitos, você pode (e deve) explorar os cuidados e pontos relevantes aqui ditos.</p><p>Código-fonte: emissor O código-fonte do emissor da comunicação ponto-a-ponto está abaixo. Preste bastante atenção nos comentários para maior entendimento do programa. Você perceberá que é enviado de segundo em segundo uma informação numérica incremental, de forma que no receptor será possível verificar se todas informações estão sendo recebidas ao longo do tempo. Além disso, perceberá que o emissor não utilizará o display OLED contido no módulo WiFi LoRa 32(V2). Nota: o código-fonte deste exemplo e de todos os outros do livro estão também presentes no repositório Github oficial do livro: #include <LoRa.h> #include <SPI.h> #include <Wire.h> /* Definicoes para comunicação com radio LoRa */ #define SCK_LORA 5 #define MISO_LORA 19 #define MOSI_LORA 27 #define RESET_PIN_LORA 14 #define 18 #define HIGH GAIN LORA 20 /* dBm * /</p><p>#define BAND 915E6 /* 915MHz de frequencia * / /* Definicoes gerais */ #define DEBUG SERIAL BAUDRATE 115200 - /* Variaveis globais */ long informacao_a_ser_enviada = /* Local prototypes */ bool /* Funcao: inicia comunicação com chip LoRa */ /* Parametros: nenhum * / /* Retorno: true: comunicacao ok */ /* false: falha na comunicacao */ bool { bool status_init = false; Serial.println ("[LoRa Sender] Tentando iniciar comunicacao com radio ; SPI. begin (SCK LORA, MISO LORA, MOSI LORA, - LoRa. setPins (SS PIN LORA, if begin (BAND) )</p><p>Serial.println ("[LoRa Sender] Comunicacao com radio LoRa falhou. Nova tentativa em 1 segundo.. ") ; delay status_init = false; } else { /* Configura ganho do receptor LoRa para 20dBm, maior ganho possível (visando maior alcance possível) */ LoRa.setTxPower Serial.println ("[LoRa Sender] Comunicacao com radio LoRa status_init = true; } return status_init; } /* Funcao de setup * / void setup ( ) { Serial begin ; while (!Serial) ;</p><p>/* Tenta, até obter sucesso, comunicacao com chip LoRa */ while(init_comunicacao_lora() false) ; } /* Programa principal * / void { /* Envia a informação */ LoRa.beginPacket LoRa.write ( (unsigned char *) &informacao_a_ser_enviada, sizeof ; /* Incrementa a informação para próximo envio e aguarda 1 segundo até enviar a próxima informação */ delay (1000) ; } Código-fonte: receptor código-fonte do receptor está abaixo. Preste bastante</p><p>atenção nos comentários para maior entendimento do programa. Você notará que, além da informação enviada (um valor incremental ao longo do tempo), será exibido no display OLED do módulo WiFi LoRa 32(V2) o RSSI de cada recepção. RSSI do sinal LoRa que, grosso modo, determina a qualidade de recepção do sinal LoRa. Isso é muito importante para testar e verificar na prática qual melhor lugar físico para se colocar um emissor e/ou receptor num dado projeto, de modo a se ter a melhor qualidade de sinal possível. Nota: o código-fonte deste exemplo e de todos os outros do livro estão também presentes no repositório Github oficial do #include <LoRa.h> #include <SPI.h> #include <Wire.h> #include #include /* Definicoes para comunicação com radio LoRa */ #define SCK LORA 5 #define MISO_LORA 19 #define MOSI_LORA 27 #define RESET PIN LORA 14</p><p>#define SS_PIN_LORA 18 #define HIGH GAIN LORA 20 /* dBm * / #define BAND 915E6 /* 915MHz de frequencia */ /* Definicoes do OLED * / #define OLED SDA PIN 4 #define OLED_SCL_PIN 15 #define SCREEN WIDTH 128 #define SCREEN HEIGHT 64 - #define OLED ADDR 0x3C #define OLED RESET 16 /* Offset de linhas no display OLED * / #define 0 #define OLED_LINE2 10 #define OLED LINE3 20 #define OLED_LINE4 30 #define 40 #define OLED_LINE6 50 /* Definicoes gerais * / #define 115200</p><p>/* Variaveis e objetos globais * / display (SCREEN WIDTH SCREEN HEIGHT, &Wire, /* Local prototypes * / void bool (void) ; /* Funcao: inicializa comunicacao com display OLED * / /* Parametros: nenhnum - Retorno: nenhnum */ void display_init(void) { if display. begin OLED ADDR) { Serial println ("[LoRa Receiver] Falha ao inicializar comunicacao com OLED") ; } else { Serial. println (" [LoRa Receiver] Comunicacao com OLED inicializada</p><p>com sucesso") /* Limpa display e configura tamanho de fonte * / display.clearDisplay (1) display.setTextColor (WHITE) ; } } /* Funcao: inicia comunicação com chip LoRa * / /* Parametros: nenhum * / /* Retorno: true: comunicacao ok * / /* false: falha na comunicacao */ bool { bool status_init = false; Serial.println ("[LoRa Receiver] Tentando iniciar comunicacao com radio LoRa ; SPI. begin (SCK LORA, MISO LORA, MOSI LORA, - LoRa. setPins (SS PIN LORA, if ( !LoRa. begin (BAND) )</p>

Mais conteúdos dessa disciplina