Você está na página 1de 69

ESCOLA DE ENGENHARIA

DEPARTAMENTO DE ENGENHARIA AGRÍCOLA E MEIO AMBIENTE


ENGENHARIA AGRÍCOLA E AMBIENTAL

VICTOR VIGARIO BALLARINI

PROPOSIÇÃO DE UM SISTEMA DE AUTOMAÇÃO


RESPONSÁVEL PELO MONITORAMENTO DAS
VARIÁVEIS EM AMBIENTE DE ARMAZENAMENTO
DE PRODUTOS AGRÍCOLAS

NITERÓI
2021
VICTOR VIGARIO BALLARINI

Trabalho de conclusão de curso apresentado


ao Curso de Engenharia Agrícola e
Ambiental, da Universidade Federal
Fluminense, como requisito parcial à
obtenção do título de Bacharel em
Engenharia Agrícola e Ambiental.

Orientador:
Prof. Dr. Ivanovich Lache Salcedo

Coorientadora:
Profa Dra Roberta Jimenez de Almeida Rigueira

Niterói
2021
VICTOR VIGARIO BALLARINI

PROPOSIÇÃO DE UM SISTEMA DE AUTOMAÇÃO RESPONSÁVEL PELO


MONITORAMENTO DAS VARIÁVEIS EM AMBIENTE DE ARMAZENAMENTO DE
PRODUTOS AGRÍCOLAS

Trabalho de conclusão de curso apresentado


ao Curso de Engenharia Agrícola e
Ambiental, da Universidade Federal
Fluminense, como requisito parcial à
obtenção do título de Bacharel em
Engenharia Agrícola e Ambiental.

Aprovada em 30 de abril de 2021.

BANCA EXAMINADORA

___________________________________________________________________
Prof. Ivanovich Lache Salcedo, Orientador, D.Sc. – UFF.

___________________________________________________________________
Profa Roberta Jimenez de Almeida Rigueira , DSc – UFF.

___________________________________________________________________
Prof. Flávio de Castro Silva, DSc – UFF.

___________________________________________________________________
Prof. Leonardo da Silva Hamacher, DSc – UFF.
DEDICATÓRIA

Dedico este trabalho á meus avós maternos, Joaquim e Milva, “In Memorian”.
AGRADECIMENTOS

A minha mãe, Marcelli Vigário, por me dar suporte durante todo o processo de
minha graduação.

Ao meu Pai, Alessandro Ballarini, por sempre estar presente e me auxiliar em


vários aspectos.

Aos meus orientadores, Roberta Rigueira e Ivanovich Lache, pois sem eles
esse trabalho não aconteceria.

Aos meus familiares, por estarem sempre me apoiando em minha jornada.

Aos meus amigos, Miguel Paschoarelli, Vinicius Miranda, Rafael Sauer e


Guilherme Alexandre, por independentemente da situação sempre me ajudarem.

A minha namorada, Bruna Bafini por me incentivar a finalizar esse projeto e


concluir minha graduação.

Ao PET Agrícola e Ambiental e todos os seus integrantes.

A todos meus amigos e colegas que contribuíram em minha graduação.


“Sound the Dread Alarm
Through the Primal Body
Sound the reveille
To be or not to be
Rise
Stay the grand finale
Stay the reading of our swan song and epilogue
One drive to stay alive
Elementary
Muster every fiber
Mobilize
Stay alive”
(TOOL)
RESUMO

Com uma importância econômica cada vez maior, o setor agropecuário brasileiro
desempenha uma função importante e com crescimento na exportação e produção
de grãos, como a soja e milho, é necessária uma maior atenção ao armazenamento
desses produtos. Em consequência disso o presente trabalho, expõe a proposição
de um sistema de automação de baixo custo para silos, utilizando a placa
microcontrolador Arduino Uno e os Sensores BME280. Para esse projeto foi
construído um protótipo com uso, além da placa e 8 sensores, o multiplexador
TCA9548A, para a comunicação em tempo real, e um DataLogger com o relógio
digital ds1307 e um módulo de cartão SD, juntamente com isso foi desenvolvido um
algoritmo o qual capta todos os dados pertinentes e o armazena no cartão SD. O
Hardware e o Software captaram dados durante um período de 3 dias e tais
informações compiladas em gráficos apresentaram comportamento similar aos
fornecidos pelo INMET. Conclui-se que o sistema é viável para coleta dessas
informações, com devida calibração, embora se recomende o uso da placa
microcontrolador Arduino Mega 2560, a fim de uma redução de possíveis erros.

PALAVRAS – CHAVE: Microcontroladores; Arduino; Grãos; Temperatura; Umidade


ABSTRACT

With increasing economic importance, the Brazilian agricultural sector plays an


important role and with growth in the export and production of grains, such as
soybeans and corn, greater attention is needed in the storage of these products.
Consequently, the present work presents the proposal of a low-cost automation
system for silos, using the Arduino Uno microcontroller board and the BME280
Sensors. For this project, a prototype was built using, in addition to the board and 8
sensors, the multiplexer TCA9548A, for real-time communication, and a DataLogger
with the digital clock ds1307 and an SD card module, together with this an algorithm
was developed that captures all relevant data and stores it on the SD card. The
Hardware and Software captured data over a period of 3 days and such information
compiled in graphs presented a behavior similar to that provided by INMET. It is
concluded that the system is feasible for collecting this information, with proper
calibration, although the use of the Arduino Mega 2560 microcontroller board is
recommended, to reduce possible errors.

KEY WORDS: Microcontrolers; Arduino; Grains; Temperature; Umidity


LISTA DE ILUSTRAÇÕES

Figura 1 - Comportamento de área cultivada. Fonte: CONAB (2021). ...................... 19


Figura 2 – Comportamento da produtividade de grãos no Brasil. Fonte: CONAB
(2021). ....................................................................................................................... 20
Figura 3 – Produção dos principais grãos no Brasil por área (Em anos x mil
hectares). Fonte: Elaborado pelo autor utilizando CONAB (2021). ........................... 21
Figura 4 – Série Histórica de produção (em Mil Toneladas x Ano). Fonte: Elaborado
pelo autor utilizando CONAB (2021). ........................................................................ 22
Figura 5 – Séries de capacidade estática - Brasil. Fonte - Elaborado pelo autor,
utilizando CONAB (2019). ......................................................................................... 23
Figura 6 – Controlador lógico programável. Fonte: Bolton, 2015. ............................. 24
Figura 7 – Modelo do Arduino Utilizado. Fonte: Arduino, 2020b. .............................. 29
Figura 8 – Detalhamento das entradas e saídas do Arduino. Fonte: Arduino, 2020b.
.................................................................................................................................. 31
Figura 9 – Fluxograma contendo as funções principais do programa. Fonte:
Elaborado pelo autor. ................................................................................................ 33
Figura 10 – Interface SPI, para inserção dos cartões baseados em FAT16 ou FAT32.
Fonte: FilipeFlop (2020a). ......................................................................................... 35
Figura 11 – Módulo RTC DS1307. Fonte: FilipeFlop (2020b). .................................. 36
Figura 12 - Demonstração do Multiplexador TCA9548A. Fonte: AdaFruit (2015). .... 36
Figura 13 – Esquematização do Arduino e suas respectivas conexões. ................... 39
Figura 14 – Registro de temperatura. Fonte: Elaborado pelo autor. ......................... 40
Figura 15 – Registro de pressão. Fonte: Elaborado pelo autor. ................................ 41
Figura 16 – Registro de umidade relativa do ar. Fonte: Elaborado pelo autor. ......... 41
Figura 17 – Sistema completo de prototipagem do Arduino. Fonte: Elaborado pelo
autor .......................................................................................................................... 42
Figura 18 - Vista superior da Breadboard, com o multiplexador e os 8 sensores
BME280. Fonte: Elaborado pelo autor. ..................................................................... 43
Figura 19 - Arduino com as conexões. Fonte: Elaborado pelo autor. ........................ 44
Figura 20 - Registro de temperatura mínima, instantânea e máxima da estação
A627. Fonte: Elaborado pelo autor utilizando INMET (2021). ................................... 45
Figura 21 - Registro de pressão instantânea, máxima e mínima da estação A627.
Fonte: Elaborado pelo autor utilizando INMET (2021)............................................... 45
Figura 22 – Registro de umidade relativa do ar instantânea, máxima e mínima da
estação A627. Fonte: Elaborado pelo autor utilizando INMET (2021). ...................... 46
Figura 23 - Registro de pressão em detalhe do sensor 6. Fonte: Elaborado pelo autor
.................................................................................................................................. 47
Figura 24 – Temperaturas captadas dos sensores em comparação com a do INMET.
.................................................................................................................................. 47
Figura 25 – Pressões captadas dos sensores em comparaçao com a do INMET. ... 48
Figura 26 – Umidade captadas dos sensores em comparação a do INMET............. 48
Figura 27 – Informações sobre uso de memória pelo Software IDE. ........................ 49
Figura 28 - Modelo do Silo Experimental em 3D, com visualização isométrica. Fonte:
Elaborado pelo autor. ................................................................................................ 50
Figura 29 - Modelo do Silo Experimental em 3D, com visualização frontal. Fonte:
Elaborado pelo autor. ................................................................................................ 51
LISTA DE TABELAS

Tabela 1 – Especificações técnicas do sistema de automação Arduino ................... 29


Tabela 2 – Especificações técnicas do sensor .......................................................... 34
SUMÁRIO

1. INTRODUÇÃO .................................................................................................... 13
2. OBJETIVOS ........................................................................................................ 17
3. FUNDAMENTAÇÃO TEÓRICA E REVISÃO DA LITERATURA ......................... 18
3.1. Produção e armazenamento de grãos ............................................................ 18
3.2. Sistemas automatizados no armazenamento de grãos .................................. 23
3.3. Utilização do Arduino e sistemas de automação de baixo custo ..................... 25
3.4. Influência da temperatura e umidade relativa do ar no armazenamento de
grãos ...................................................................................................................... 27
4. MATERIAL E MÉTODOS ................................................................................... 28
4.1. Caracterização do Sistema de automação – Arduino .................................. 28
4.1.1. Funções gerais dos pinos ...................................................................... 29
4.1.3. Fluxograma contendo os principais pontos do programa ......................... 32
4.1.4. Apresentação dos sensores / Atuadores utilizados .................................. 33
4.1.5. Apresentação dos módulos utilizados para o DataLogger ........................ 35
4.1.6. Descrição do Multiplexador TCA9548A.................................................... 36
5. RESULTADOS E DISCUSSÃO .......................................................................... 40
6. CONCLUSÕES ................................................................................................... 49
7. TRABALHOS FUTUROS .................................................................................... 50
REFERÊNCIAS BIBLIOGRÁFICAS .......................................................................... 52
ANEXO I – ALGORITMO ELABORADO ................................................................... 55
13

1. INTRODUÇÃO

No Brasil a produção agrícola tem desempenhado cada vez mais um papel


importante em diversos setores do país, seja na participação direta ou indireta no
PIB. Além disso, a projeção de crescimento estimada para o PIB agropecuário em
2020 é 1,5%, único setor que deverá lograr resultado positivo este ano (KRETER e
SOUZA JÚNIOR, 2020).
O Brasil apresenta grande desempenho na produção e exportação de
produtos agrícolas. Deste modo contribui para o crescimento econômico, social e
ambiental do País. Desde as safras de 2010 têm se alcançado recordes de
produção de grãos, e ademais é dirigente pela contribuição agrícola e alimentícia
para o Brasil, e mais de 150 países em todos os continentes. A produção
agropecuária brasileira ultrapassa 400 unidades produtivas na área rural brasileira.
O panorama agrícola nacional provê alta empregabilidade e receita, e acessibilidade
perante os alimentos para o mercado interno. (EMBRAPA, 2018). Com a forte
presença de commodities no setor, a balança comercial do agronegócio brasileiro
registrou superávit de US $83,0 bilhões, sendo responsável por 43,2% da totalidade
das exportações brasileiras. A soja em específico é a principal commodity brasileira,
responsável, em 2019, por 32,6 bilhões de dólares em exportação, 33,7% do total do
agronegócio. (AGROSTAT, 2020).
Para uma melhor ilustração da atual circunstância produtiva agrícola, o
Instituto Brasileiro de Geografia e Estatística (IBGE) produz anualmente o
documento “Produção Agrícola Municipal” (PAM):

“A Produção Agrícola Municipal (PAM) investiga, anualmente, os principais


produtos das lavouras temporárias e permanentes do País, que se
caracterizam não só pela grande importância econômica que possuem na
pauta de exportações, como também por sua relevância social,
componentes que são da cesta básica do brasileiro (IBGE, 2019).”

Ano após ano o Brasil atinge recordes de produção agrícola e os grãos, como
a soja e o milho, destacam-se em relação às demais. Em 2019, o valor de culturas
chegou a 361 bilhões de reais com um crescimento de 5,1 % em comparação a
2018, um recorde para a produção nacional. A soja e o café neste ano obtiveram
colheitas de 114,3 e 3,0 milhões de toneladas, respectivamente. O algodão e o milho
14

obtiveram recorde de produção com uma marca de 6,9 e 101,3 milhões de toneladas
com crescimento de 39,0% e 22,8%, respectivamente. O café não apresentou
crescimento, inclusive, teve redução de 22,0%, com sua produção total atingindo o
valor de 17,6 bilhões de reais (IBGE, 2019).
O armazenamento brasileiro de grãos é composto, em sua maioria, por
unidades específicas para armazenagem a granel (silos), e em minoria por
armazéns convencionais, os quais fazem o uso de sacas e fardos para o
armazenamento. D’Arce (2008) afirmou que enquanto países como a França,
Argentina e Estados Unidos, a armazenagem em nível de fazenda representa cerca
de 30 a 60% da safra, no Brasil, este percentual ainda é pouco expressivo.
Entre os anos de 2000 e 2019 houve uma evolução na capacidade estática do
Brasil, atingindo aproximadamente 180 milhões de toneladas (CONAB, 2019),
embora não seja suficiente considerando safras acima de 250 milhões de toneladas.
Segundo a Companhia Nacional de Abastecimento (CONAB, 2019) a
capacidade bruta de estocagem agrícola no país é de aproximadamente 169,8
milhões de toneladas de grãos e cerca de 39,2 milhões de toneladas não são
aproveitadas. Esses dados demonstram um grande desafio econômico e técnico,
tendo em vista o grande volume de perdas externas e internas oriundos desse setor
agrícola.
O controle das perdas em sistemas de armazenagem é realizado, em sua
maioria, por gestores de unidades armazenadoras.
Em relação às perdas quantitativas podem-se considerar pragas, presença de
insetos, apodrecimento da massa de grãos, infecção fúngica, derramamento de
grãos nos pátios de manobras, túneis, pés de elevadores e interiores de secadores;
descartes de grãos inteiros, ou de suas partes durante a secagem, e limpeza da
massa de grãos; consumo por roedores e pássaros; super secagem durante a
realização do processo de aeração, misturas indevidas de produto; combustão de
grãos em incêndios em secadores; e, respiração da massa de grãos. Segundo a
EMBRAPA (2015), aproximadamente, 15% do total produzido.
Ademais as perdas chamadas de qualitativas, também, são de suma
importância para, pois influenciam diretamente na segurança alimentar e no valor de
venda dos grãos.
As perdas de grãos no Brasil ocorrem em sua maioria devido a carência de
sistemas de armazenamento e má gestão dos armazéns.
15

De acordo com Lorini (2015), “uma vez que comprometem o uso de todos
os grãos produzidos ou os classificam para outro uso de menor valor
agregado. No caso de trigo, o produto é desclassificado para
comercialização se for encontrado um inseto vivo no lote. Moinhos não
aceitam lotes de trigo com insetos, pois isso fatalmente comprometeria a
qualidade da farinha, já que esta terá fragmentos indesejáveis de insetos na
indústria de panificação e em outros subprodutos de trigo.”

A fim de obter redução de perdas nos processos de armazenagem, em


relação ao carregamento e descarregamento de produtos agrícolas em silos, tem
sido adotado o Controlador Lógico Programável (CLP). São dispositivos eletrônicos
utilizados na automação industrial, que para o carregamento dos silos, irá interpretar
dados fornecidos por sensores de nível, e a partir daí, acionará um dispositivo para
alimentar ou não o silo com produtos agrícolas. Utilizam-se em conjunto sensores de
indução magnética, cuja função é de impossibilitar o funcionamento do motor
responsável pelo alimentador da boca de entrada do silo. O CLP depende de
diversas funções, entradas, sensores, equipamentos, código lógico, bem como a
aplicação desejada, para funcionamento pleno (CARVALHO, 2009).
Além do CLP destacam-se os sistemas de automação desenvolvido pela IBM,
como o Watson e Bluemix, cujos funcionamentos incluem a integração do conceito
das IoT (internet das coisas) com os sensores e equipamentos, bem como uso de
computação cognitiva e gerenciamento das informações realizadas na nuvem.
A importância da utilização de sistemas de automação em silos atualmente é
essencial, devido à grande quantidade de informações, relatórios e controle
precisos, e extremamente rápidos e eficientes. É responsável pela redução do
tempo de monitoramento, otimização dos controles, aumento da precisão da coleta
de dados, principalmente no que se refere à temperatura e umidade relativa do ar, e
maior segurança aos trabalhadores que atuam nas operações.
O projeto de um sistema industrial e o desenvolvimento de seu sistema de
informação está intimamente ligado ao ambiente do sistema industrial e à
automação. Isso é visto claramente no caso das metodologias utilizadas na
atualização de sistemas industriais. A transição para um sistema automatizado
geralmente é um processo complexo. Parte desse problema consiste na carência de
16

ferramentas padronizadas para a tradução de um sistema industrial em um sistema


automatizado (LAKHOUA, 2013).
Diante desse contexto, e a necessidade de obter informações referentes ao
sistema de armazenagem, o objetivo deste trabalho foi elaborar um sistema de
automação responsável pelo monitoramento da temperatura e umidade relativa do
ar, em produtos agrícolas, armazenados em silos.
17

2. OBJETIVOS

O objetivo deste trabalho foi propor um sistema de automação responsável


pelo monitoramento da temperatura e umidade relativa do ar, em produtos agrícolas
armazenados em silos.

Especificamente, caracterizar o sistema Arduino para o monitoramento de


temperatura e umidade relativa do ar ambiente, de modo a descrever e garantir a
execução do sistema Arduino na coleta de dados.
18

3. FUNDAMENTAÇÃO TEÓRICA E REVISÃO DA LITERATURA

3.1. Produção e armazenamento de grãos

A produção agrícola brasileira na última década apresentou uma expressiva


expansão em todos os campos, principalmente no que se refere à produção de
grãos, como a soja e o milho. Os grãos são considerados importantes commodities
para a economia nacional e internacional, impulsionado pela alta demanda do
mercado chinês. A soja, por exemplo, teve um crescimento em área plantada de 14
milhões de hectares de 2009 a 2019, um aumento médio de 5,3% ao ano (CONAB,
2021).
Outro fator de extrema importância para o mercado graneleiro tem sido o
desenvolvimento agrícola da região centro-oeste, a qual vem a cada ano,
participando mais e mais na produção e no mercado. A região centro-oeste definiu o
comércio de grãos brasileiros na última década, devido a facilidade de plantio,
mecanização e uso de tecnologias nas propriedades.
Barros (2017) ressaltou a inovação e modernização das cadeias produtivas
no Brasil, cujas funções representam uma importância cada vez maior no Produto
Interno Bruto (PIB), isso se deveu a vinculação antiga e nova de diversos setores
agrícolas, como produção de insumos e processamento. Em 2017 o agronegócio foi
responsável por 23% do PIB, e 46% do valor das exportações, esses dados
elucidam o influente valor do setor agrícola para o Brasil, e a alta capacidade de
expansão que ele possui.
Uma commodity valorizada é a soja, pois em 2019, correspondeu por 50%
das exportações e 34% de toda produção agrícola. Pode-se citar para tal
componente a alta dependência da China, que consome aproximadamente 80% de
todas as exportações brasileiras de soja. Acredita-se a continuação de tal panorama,
devido à alta população chinesa e crescimento econômico médio de 6,5% ao ano
(SOLOGUREN, 2019).
A soja inicia um grande marco na história da agricultura brasileira, o cultivo
em larga escala no Centro-Oeste. Local marcado por clima não favorável e solo
altamente improdutivos, devido a acidez e baixa disponibilidade de nutrientes,
deixavam a produção no cerrado insuficientemente atrativa. A amplificação do
19

commodity ainda é motivo de celebração da pesquisa agropecuária, onde a


Embrapa atuou arduamente na propiciação do cultivo no Centro-Oeste.
Essa mudança na produtividade da soja no Brasil afetou uma série de outros
cultivos, destacando-se o milho, cujo crescimento foi além do crescimento da área
plantada, alterou-se seu método de produção dividindo sua safra em duas épocas
distintas, a safra e a safrinha, um diferencial em relação ao mercado internacional. O
milho, contemporaneamente, é o cultivo mais significativo mundialmente, devido a
ser o único a exceder a incrível marca de 1 bilhão de toneladas. Apresentou, em
2010, como uma cultura de destaque em países de alta e baixa renda (RELINGER,
2010). É estratégica devido a seu uso, principalmente, para alimentação animal,
utilizando para uma infinidade de outros produtos, como etanol e consumo humano.
O cultivo de grãos vem tornando-se um expoente cada vez mais expressivo
ao longo dos anos. A área total cultivada, em milhões de hectares, apresentou um
crescimento expressivo desde as safras de 97/98 até as 19/20 (CONAB, 2021)
(Figura 1).

Figura 1 - Comportamento de área cultivada. Fonte: CONAB (2021).

Os resultados demonstram um aumento de 88% em área total cultivada. Além


disso, ambas as áreas utilizadas para a safra e safrinha obtiveram, também, um
aumento de área considerável, 62% e 250%, respectivamente. Com isso denota-se
uma participação cada vez maior da 2 a safra na produção de grãos brasileira
(CONAB, 2021).
20

Outro fator de grande importância para a produção graneleira nacional é o


aumento de produtividade, o qual representa a produção em peso por unidade de
área e expressa com mais acurácia o desenvolvimento e uso de melhores práticas
agrícolas, tecnologia e insumos (EMBRAPA, 2018). A partir disso é possível
observar o avanço brasileiro em produtividade, expresso pela Figura 2, em kg ha-1.
Observa-se uma ampliação de 63,4% na produtividade total.

Figura 2 – Comportamento da produtividade de grãos no Brasil. Fonte: CONAB


(2021).

Ao analisar os dados da série histórica da CONAB (Figura 3) é possível inferir


o grande avanço da produção de grãos no Brasil, principalmente a região Centro-
Oeste, que se tornou sinônimo com a produção de soja e milho. Tal
desenvolvimento da produção desses dois grãos é observado pela Figura 4.
O aumento da área plantada ocorre devido ao crescimento da agricultura ao
centro oeste. Vale ressaltar que certos grãos como o milho não tiveram um
crescimento em área plantada expressivo, devido à mudança de uso da safra
tradicional para a modelo safra/safrinha, atrelado aos avanços científicos serem
suficientes a alta produtividade. Isso se deveu ao fato da demanda dos mercados
externos, principalmente a China, e de outros mercados importantes para o Brasil,
como os EUA e a União Europeia.
É notado o crescimento vertiginoso da produção e um crescimento mais
moderado da área plantada, com a soja grande participante de ambos acréscimos
conforme denotado pelas Figuras 3 e 4. Esse comportamento ocorre devido ao
21

grande avanço científico na fronteira agrícola em áreas da genética, fertilizantes,


defensivos agrícolas e uso de tecnologias atreladas a formas mais adequadas de
manejo, conseguindo obter uma maior produção em uma mesma área.

40.000,0

35.000,0

30.000,0

25.000,0
ALGODÃO
ARROZ
20.000,0
FEIJÃO TOTAL
15.000,0 MILHO TOTAL
SOJA
10.000,0 TRIGO

5.000,0

-
1976/77
1978/79
1980/81
1982/83
1984/85
1986/87

1990/91
1992/93
1994/95
1996/97

2000/01
2002/03
2004/05
2006/07

2010/11
2012/13
2014/15
2016/17
2018/19
1988/89

1998/99

2008/09

Figura 3 – Produção dos principais grãos no Brasil por área (Em anos x mil
hectares). Fonte: Elaborado pelo autor utilizando CONAB (2021).
22

140.000,0

120.000,0

100.000,0

ALGODÃO - CAROÇO
80.000,0
ARROZ
FEIJÃO TOTAL
60.000,0
MILHO TOTAL
SOJA
40.000,0
TRIGO

20.000,0

Figura 4 – Série Histórica de produção (em Mil Toneladas x Ano). Fonte: Elaborado
pelo autor utilizando CONAB (2021).

Para complementar os dados de aumento de produção e área plantada, é


importante observar que ainda assim torna-se necessário investir em armazéns ou
em unidades armazenadoras. Deste modo, segundo a Figura 5, contendo a
evolução da capacidade estática no Brasil, é notável que apesar de atingirmos
quase 180 milhões de toneladas, ainda não suprimos a demanda de armazenagem
que supera 250 milhões de toneladas a cada safra (CONAB, 2019).
23

Capacidade Estática
200.000,0
Milhões de Toneladas 180.000,0
160.000,0
140.000,0
120.000,0
100.000,0
80.000,0
60.000,0
40.000,0
20.000,0
-

1992

2002
1980
1982
1984
1986
1988
1990

1994
1996
1998
2000

2004
2006
2008
2010
2012
2014
2016
2018
2020
Anos

Figura 5 – Séries de capacidade estática - Brasil. Fonte - Elaborado pelo autor,


utilizando CONAB (2019).

3.2. Sistemas automatizados no armazenamento de grãos

De acordo com Bolton (2015), a automação industrial de pequeno a grande


porte desenvolveu-se a partir da criação de sistemas controlados por
microprocessador, pois devido a avanços nos campos da eletrônica, computação e
lógica, podem-se desenvolver tais equipamentos e técnicas.
Controladores possuem uma gama de funções as quais podem ser
desenvolvidas como, por exemplo: o sistema de controle que pode ser usado para
controlar o volume de grãos que se movem ao longo de uma correia transportadora,
e direcioná-los para o local de armazenagem. As entradas para tais sistemas de
controle podem vir de interruptores sendo fechados ou abertos; por exemplo, a
presença da peça de trabalho pode ser indicada movendo-se contra uma chave e
fechando-a, ou outros sensores, como aqueles usados para temperatura ou taxas de
fluxo. O controlador pode ser necessário para acionar um motor para mover um
objeto para alguma posição ou para ligar ou desligar uma válvula, ou talvez um
aquecedor.
Em vez de conectar cada circuito de controle para cada situação de controle,
pode-se usar o mesmo sistema básico para todas as situações. Pode-se utilizar um
24

sistema baseado em microprocessador e escrever um programa para instruir o


microprocessador, e reagir a cada sinal de entrada de interruptores, e dar as saídas
necessárias para motores e válvulas. Assim, pode-se ter um programa com os
comandos:
Se o interruptor A fechar
Saída para circuito do motor
Se a chave B fechar
Saída para o circuito da válvula
Ao alterar as instruções do programa, pode-se usar o mesmo sistema de
microprocessador para controlar uma ampla variedade de situações. Um controlador
lógico programável (PLC) é uma forma especial de controlador baseado em
microprocessador que usa memória programável para armazenar instruções e
implementar funções como lógica, sequenciamento, tempo, contagem e aritmética
para controlar máquinas e processos, como demonstrado pela Figura 6.

Figura 6 – Controlador lógico programável. Fonte: Bolton, 2015.

O controlador lógico programável é projetado para ser operado por


engenheiros com um conhecimento limitado de computadores e linguagens de
computação. Eles não foram projetados para que apenas os programadores de
computador possam configurar ou alterar os programas. Assim, os projetistas do
PLC o pré-programaram para que o programa de controle possa ser inserido usando
uma forma de linguagem simples e intuitiva. O termo lógica é usado porque a
programação se preocupa principalmente com a implementação de operações
lógicas e de comutação; por exemplo, se A ou B ocorrer, ligue C; se A e B
ocorrerem, ligue D. Os dispositivos de entrada (ou seja, sensores como
interruptores) e os dispositivos de saída (motores, válvulas etc.) no sistema que está
sendo controlado são conectados ao PLC. O operador então insere uma sequência
de instruções, um programa, na memória do PLC. O controlador então monitora as
entradas e saídas de acordo com este programa e executa as regras de controle
25

para as quais foi programado. Os CLPs têm a grande vantagem de que o mesmo
controlador básico pode ser usado com uma ampla variedade de sistemas de
controle. Para modificar um sistema de controle e as regras a serem usadas, tudo o
que é necessário é que um operador digite um conjunto diferente de instruções. Não
há necessidade de religar. O resultado é um sistema flexível e econômico que pode
ser usado com sistemas de controle, que variam amplamente em sua natureza e
complexidade.
Os PLCs são semelhantes aos computadores, mas enquanto os
computadores são otimizados para tarefas de cálculo e exibição, os PLCs são
otimizados para tarefas de controle e ambiente industrial. Assim, PLCs:
• São robustos e projetados para suportar vibrações, temperatura, umidade e
ruído; e,
• Ter interface para entradas e saídas já dentro do controlador.

3.3. Utilização do Arduino e sistemas de automação de baixo custo

Arduino é uma plataforma de prototipagem open-source utilizando uma


interface de fácil acesso entre o software e hardware. Os painéis do Arduino são
capazes de realizar a leitura de diversos inputs, e torná-los em uma saída, seja um
sinal elétrico, mecânico etc. É possível através de seu painel, instruí-lo com
parâmetros usando a linguagem de programação do Arduino e seu software (IDE),
para controlar o microprocessador.

“O primeiro Arduino foi lançado em 2005, com o objetivo de fornecer uma


maneira fácil e barata para iniciantes e profissionais criarem dispositivos
que interajam com seu ambiente usando sensores e atuadores. Exemplos
comuns de tais dispositivos destinados a amadores incluem robôs simples,
termostatos e detectores de movimento. As placas Arduino estão
disponíveis comercialmente na forma pré-montada ou como kits do-it-
yourself. As especificações de design de hardware estão disponíveis
abertamente, permitindo que as placas Arduino sejam fabricadas por
qualquer pessoa. A Adafruit Industries estimou em meados de 2011 que
mais de 300.000 Arduinos oficiais foram produzidos comercialmente e, em
2013, que 700.000 placas oficiais estavam nas mãos dos usuários.”
(Arduino, 2020a)

Arduino ao longo dos anos está se tornando uma ferramenta bem robusta
para milhares de projetos, com uma gama extremamente variada, incluindo de
26

configuração simples para usos de dia-a-dia até complexos instrumentos científicos.


Há uma comunidade mundial de construtores - de estudantes até artistas - para
angariar e compartilhar suas diversas contribuições até uma quantidade imensa de
informação de fácil entendimento, auxiliando novatos e profissionais. Esse sistema
foi projetado na Ivrea Interaction Design Institute com intuito de facilitar o uso de
estudantes sem antecedentes com eletrônica e programação e daí foi construída
essa poderosa ferramenta. Conforme seu uso tornou-se mais difundido, o painel do
Arduino foi sofrendo mudanças graduais a fim de contornar e adaptar a novos
projetos e desafios, alterando-se de um painel simples em 8-bits até atender
aplicações em Internet das Coisas (IoC), impressão 3D entre outros.
Ressalta-se que todas as placas do Arduino são open-source, ou seja, ela
não é patenteada, possibilitando seus usuários a alterar sua construção de acordo
com suas necessidades, facilitando o máximo possível a adaptação do Arduino a
diversos projetos. Além disso, o seu software também é open-source e está
crescendo através da contribuição de diversos usuários em todo mundo.
O Arduino funciona em todos os sistemas operacionais de computadores,
Linux, MAC e Windows. Seu objetivo principal é reduzir o tempo necessário na teoria
de microeletrônica e computação e transformá-lo num conjunto de fácil uso.
Ademais ele oferece algumas vantagens a diversos usuários comparadas a outros
componentes eletrônicos:
● São acessíveis, com placas com custo a partir de R$50,00 e podem ser
construídas a mão.
● Opera em diversos sistemas operacionais e o IDE funciona nos sistemas
Windows, Macintosh OSX, e Linux. A maioria dos outros
microcontroladores são compatíveis somente no Windows.
● Campo de programação simples, claro e objetivo, abordável para
iniciantes, e complexo o suficiente para programadores avançados,
capazes de utilizar bem seus serviços.
● Open-Source e software publicados em diversas extensões para
profissionais experientes. Sua programação consegue ser expandida de
acordo com a biblioteca do C++.
● Hardware aberto e extensível - os planos para a fabricação do Arduino são
feitos através da licença Creative Commons, com o intuito de designers
profissionais de circuitos possam modelar e construir seus próprios
27

sistemas ampliando suas funções e as desenvolvendo. Usuários pouco


experientes podem também aproveitar essa facilidade do hardware e
modelar a placa básica com intuito de entendê-la.
O Arduino é fabricado por uma gama de microcontroladores sendo baseado
em designs diversos, de tais placas. Esses sistemas fornecem uma quantidade de
pinos digitais e analógicos, cujas funções podem ser conectadas e interligadas
através de placas expansivas e demais circuitos, os quais possuem diversas
interfaces de conexão. E alguns casos em até USB, em algumas unidades.

3.4. Influência da temperatura e umidade relativa do ar no armazenamento de grãos

Para o armazenamento de grãos, a temperatura e umidade relativa


apresentam uma grande relevância, devido à relação direta desses fatores abióticos
e bióticos, como grãos, insetos, fungos e bactérias presentes no sistema de
armazenamento. Tal composição é afetada por meio de diversos mecanismos
bioquímicos e dependem diretamente dos fatores, e da escala dessas interações.
O teor de água e temperatura dos grãos possuem relação direta com a
qualidade, e sem um devido controle dessas variáveis há a possibilidade de uma
problemática com a propagação de insetos, bactérias e fungos (SUN & WOODS,
1997).
A regulação de temperatura dentro de uma massa de grãos demonstra um
fator de extrema importância:

“A temperatura é, talvez, o fator físico mais importante na conservação dos


grãos armazenados, pois a maioria das reações químicas é acelerada com
o aumento da temperatura. Quando a temperatura de armazenamento é
mais baixa, pode-se armazenar com segurança, inclusive se a umidade dos
grãos estiver um pouco mais elevada, pois a baixa temperatura reduz a
atividade de água e inibe o desenvolvimento de micro-organismos e de
insetos-praga (RIGUEIRA et al., 2009)”.

De acordos com resultados apresentados por Quirino (2013), a temperatura


afeta diretamente a reprodução de insetos, e consequentemente altera a condição
de armazenamento de grãos. Ademais diferenças de temperatura na massa de
28

grãos e entre ambientes internos e externos influenciam nas pressões locais de ar


assim gerando correntes convectivas para o interior dos silos, e desse modo podem
alterar a difusão úmida dos locais de alta para os de baixa temperatura. Esse evento
tem a possibilidade de elevar a reprodução de patógenos, e com isso determinar o
perecimento dos produtos (BROOKER et al., 1992).
O teor de água dos grãos, influenciado diretamente pela umidade relativa do
ar e temperatura, são de extrema importância para a manutenção da conservação
de grãos e sementes. A respiração é diminuída drasticamente e o metabolismo é
amenizado ao mínimo quando o esse teor se aproxima de 11 a 13% de base úmida.
Logo é vital o conhecimento da temperatura e a umidade relativa para a
armazenagem de grãos, pois conferem indicativos atraentes para a preservação da
qualidade dos grãos. (RIGUEIRA et al., 2009).

4. MATERIAL E MÉTODOS

4.1. Caracterização do Sistema de automação – Arduino

Foi utilizado o Arduino Uno (Figura 7), que é um microcontrolador de código


aberto baseado no microchip Atmega328P e desenvolvida por Arduino.cc . A placa
contém um agrupamento de pinos de entrada / saída (E / S) digitais e analógicas,
conforme Figura 8, com intuito de serem interligados a placas de expansão e outros
circuitos. A placa utilizada possui 14 pinos de entrada e saída, sendo 6 deles
analógicos, programável com o software IDE Arduino (do Inglês Ambiente de
Desenvolvimento Integrado), via cabo USB tipo B. Seu abastecimento foi feito
através de tal USB, conectado a um computador ou Bateria Externa de 9 Volts,
apesar de aceitar tensões de 7 a 20 Volts. As especificações técnicas estão contidas
na Tabela 1.
29

Figura 7 – Modelo do Arduino Utilizado. Fonte: Arduino, 2020b.

Tabela 1 – Especificações técnicas do sistema de automação Arduino


Microcontrolador Microchip ATmega328P
Tensão operacional 5 Volts
Tensão de entrada 7 to 20 Volts
Pinos de E / S digitais 14
UART 1
I2C 1
SPPI 1
Pinos de entrada analógica 6
Corrente DC por pino de E / S 20 mA
Corrente DC para pino de 3,3 V 50 mA
32 KB, dos quais 0,5 KB usados pelo
Memória Flash
bootloader
SRAM 2 KB
EEPROM 1 KB
Clock Speed 16 MHz
Comprimento 68.6 mm
Largura 53.4 mm
Peso 25 g
Fonte: Elaborado pelo Autor.

4.1.1. Funções gerais dos pinos

A partir da descrição das funções gerais dos pinos foram adotados os critérios
para acionamento do sistema Arduino. Portanto, foram descritos a seguir.

LED: Há um LED embutido acionado pelo pino digital 13. Quando o pino está com
valor alto, o LED está ligado, quando o pino está baixo, ele está desligado.
30

VIN: A tensão de entrada para a placa Arduino quando ela está usando uma fonte
de alimentação externa (em oposição a 5 volts da conexão USB ou outra fonte de
alimentação regulada).

5V: Este pino emite 5 V regulado do regulador na placa. A placa pode ser fornecida
com energia tanto do conector de alimentação DC (7 - 20 V), do conector USB (5 V)
ou do pino VIN da placa (7-20 V). O fornecimento de tensão por meio dos pinos de 5
V ou 3,3 V desvia o regulador e pode danificar a placa.

3V3: Uma alimentação de 3,3 volts gerada pelo regulador de bordo. O consumo
máximo de corrente é 50 mA.

GND: Pinos de aterramento.

IOREF: Este pino na placa Arduino fornece a referência de tensão com a qual o
microcontrolador opera. Uma blindagem configurada corretamente pode ler a tensão
do pino IOREF e selecionar a fonte de alimentação apropriada ou permitir que os
conversores de tensão nas saídas funcionem com 5V ou 3,3V.
Reset: Normalmente usados para adicionar um botão de reinicialização aos escudos
que bloqueiam o botão da placa.

4.1.1.1. Funções especiais de pino


Cada um dos 14 pinos digitais e 6 pinos analógicos (Figura 8) no Uno foram
usados como uma entrada ou saída, sob controle de software (usando as funções
pinMode (), digitalWrite () e digitalRead () ). Eles operaram a 5 volts. Cada pino
forneceu ou recebeu 20 mA como a condição operacional recomendada, e tiveram
um resistor pull-up interno (desconectado por padrão) de 20-50K ohm. Um máximo
de 40mA não deve ser excedido em nenhum pino de E / S para evitar danos
permanentes ao microcontrolador. O Uno adotado teve 6 entradas analógicas,
rotuladas de A0 a A5; cada um fornecendo 10 bits de resolução (ou seja, 1024
valores diferentes). Por padrão, eles mediram do aterramento a 5 volts, embora seja
possível alterar a extremidade superior da faixa usando o pino AREF e a função
analogReference (). Além disso, alguns pinos têm funções especializadas:
31

Serial/UART: pinos 0 (RX) e 1 (TX). Usado para receber (RX) e transmitir (TX)
dados seriais TTL. Esses pinos são conectados aos pinos correspondentes do chip
serial ATmega8U2 USB-para-TTL.

Interrupções externas: pinos 2 e 3. Esses pinos podem ser configurados para


disparar uma interrupção em um valor baixo, uma borda de subida ou descida ou
uma mudança no valor.

PWM (modulação por largura de pulso): pinos 3, 5, 6, 9, 10 e 11. Pode fornecer


saída PWM de 8 bits com a função analogWrite ().

SPI (Interface Periférica Serial): pinos 10 (SS), 11 (MOSI), 12 (MISO) e 13 (SCK).


Esses pinos oferecem suporte à comunicação SPI usando a biblioteca SPI.

TWI (interface de dois fios) / I²C: pino SDA (A4) e pino SCL (A5). Suporte a
comunicação TWI usando a biblioteca Wire.

AREF (referência analógica): Tensão de referência para as entradas analógicas

Figura 8 – Detalhamento das entradas e saídas do Arduino. Fonte: Arduino, 2020b.


32

4.1.2. Comunicação

Em relação à comunicação o Arduino Uno adotado possui vários recursos


para se comunicar com um computador, outra placa Arduino ou outros
microcontroladores foram utilizados. O ATmega328 fornece comunicação serial
UART TTL (5V), que está disponível nos pinos digitais 0 (RX) e 1 (TX). Um
ATmega16U2 na placa canaliza essa comunicação serial por USB e aparece como
uma porta de comunicação virtual para o software no computador. O firmware 16U2
usa os drivers COM USB padrão e nenhum driver externo é necessário. No entanto,
no Windows, é necessário um arquivo *.inf. O Arduino Software (IDE) inclui um
monitor serial que permite que dados textuais simples sejam enviados de e para a
placa. Os LEDs RX e TX na placa piscarão quando os dados estiverem sendo
transmitidos via chip USB para serial e conexão USB para o computador (mas não
para comunicação serial nos pinos 0 e 1). Uma biblioteca SoftwareSerial permite a
comunicação serial em qualquer um dos pinos digitais do Uno. (ARDUINO, 2020b).

4.1.3. Fluxograma contendo os principais pontos do programa

A criação do programa utilizado para a linha de raciocínio principal é


fundamental para o funcionamento de todo o hardware. Como elemento funcional
primário foi necessário informar ao programa e configurar os sensores presentes no
sistema criando um setup inicial, preparando o programa e todo o circuito para a
captação posterior dos dados coletados.
A lógica principal do programa adotada, demonstrada na Figura 9, foi de
assegurar os dados fornecidos pelos sensores e armazena-los em cartão de
memória, em uma repetição a cada hora. Esse desenvolvimento foi feito na
plataforma de codificação Arduino IDE, própria para a placa, conseguindo assim ter
uma comunicação direta entre hardware e software.
33

Figura 9 – Fluxograma contendo as funções principais do programa. Fonte:


Elaborado pelo autor.

4.1.4. Apresentação dos sensores / Atuadores utilizados

Os sensores utilizados foram os BME280 fabricados pela Bosch. O BME280 é


um sensor de umidade especialmente desenvolvido para aplicações móveis e
34

pequenas, o baixo consumo e tamanho são os aspectos essenciais para a


construção. A unidade tem a capacidade de combinar uma alta precisão e acurácia
para medição de pressão, umidade e temperatura. Sua idealização se baseia em
sistema de baixo consumo (3,6uA com 1 Hz), estabilidade longeva e alta robustez
EMC. A sensibilidade a umidade apresenta uma resposta rápida, extremamente
importante para o presente trabalho. A sensibilidade a pressão demonstra uma
acurácia e resolução altas e um nível de erro razoavelmente baixo. O sensor de
temperatura foi idealizado com o intuito de apresentar ruídos baixos e uma precisão
acima de outros sensores (Bosch, 2015). A Tabela 2 contém os dados técnicos do
sensor completo, bem como o nível de erro presente em cada leitura.

Tabela 2 – Especificações técnicas do sensor


BME280 Dados Técnicos
8-Pinos LGA com metal 2.5 x 2.5
Dimensões do sensor
x 0.93 mm³
Faixa de operação (precisão Pressão: 300 ... 1100 hPa
total) Temperatura: -40 … +85 °C
Tensão de alimentação VDDIO 1.2 ...... V
Tensão de alimentação VDD 1.71 ..... V
Interface I²C e SPI
1.8 μA @ 1 Hz (H, T)
Consumo médio de corrente (typ.) 2.8 μA @ 1 Hz (P, T)
(1Hz taxa de atualização de dados) 3.6 μA @ 1 Hz (H, P, T) T =
temperatura
Consumo médio de corrente no
0.1 µA
modo suspenso
Sensor de Umidade
Tempo de resposta (τ63%) 1s
Tolerância de precisão ±3 % Umidade Relativa
Histerese ≤2 % Umidade Relativa
Sensor de Pressão
Erro de sensibilidade de ruído 0.2 Pa (equiv. à 1.7 cm)
±0.25 % (equiv. há 1 m a 400 m
RMS
mudança de altitude)
±1.5 Pa/K
Compensação do coeficiente de
(equiv. à ±12.6 cm a 1 °C de mudança
temperatura
de temperatura)

Pressão máxima 2.000.000 Pa

Fonte: Bosch (2015), modificado pelo autor.


35

O BME280 ofereceu suporte a um conjunto completo de modos de operação


que forneceram flexibilidade para otimizar o dispositivo quanto ao consumo de
energia, resolução e desempenho do filtro.

4.1.5. Apresentação dos módulos utilizados para o DataLogger

Foi utilizado um Datalogger, que é um registro de dados onde através dele é


possível realizar o armazenamento de dados em um local externo ao Arduino,
podendo ser um Cartão SD ou Micro SD. É importante salientar a possibilidade de
indicação da data e horários de tais informações, caso necessite. Para seu
funcionamento é necessário o componente módulo de cartão SD e além dele, para
registro da data foi utilizado o Real time Clock DS1307.
O módulo aceita cartões baseados em FAT16 ou FAT32 e sua comunicação
com placa Arduino é realizada através da interface SPI, demonstrado pela Figura 10.

Figura 10 – Interface SPI, para inserção dos cartões baseados em FAT16 ou


FAT32. Fonte: FilipeFlop (2020a).

Os pinos de ambas as colunas conseguem ser utilizados, devido a possuírem a


mesma função. O módulo aceita tensão em dois valores 3,3 ou 5 Volts, conseguindo
assim ser alimentado pelos pinos 3.3V ou 5V (FILIPEFLOP, 2020a).
O relógio serial em tempo real (RTC) DS1307 é um relógio / calendário
decimal totalmente codificado em binário (BCD) de baixa potência mais 56 bytes de
NV SRAM. O endereço e os dados são transferidos serialmente por meio de um
barramento bidirecional I2 C. O relógio / calendário fornece informações sobre
segundos, minutos, horas, dia, data, mês e ano. A data do final do mês é ajustada
36

automaticamente para meses com menos de 31 dias, incluindo correções para ano
bissexto. O relógio opera no formato de 24 ou 12 horas com indicador AM / PM. O
DS1307 possui um circuito de detecção de energia embutido que detecta falhas de
energia e muda automaticamente para a fonte de reserva (Figura 11). A operação de
cronometragem continua enquanto a peça opera a partir da fonte de backup.
(MAXIM INTEGRATED, 2015)

Figura 11 – Módulo RTC DS1307. Fonte: FilipeFlop (2020b).

4.1.6. Descrição do Multiplexador TCA9548A

Adotou-se o multiplexador TCA9548A (Figura 12), que é um modulo


adicionado ao sistema, a fim de contornar um problema de comunicação encontrado
entre o Arduino e múltiplo sensores, os quais podem vir a possuir o mesmo
endereço de hardware, como é o caso dos sensores BME280, usados no presente
trabalho.

Figura 12 - Demonstração do Multiplexador TCA9548A. Fonte: AdaFruit (2015).


37

O TCA9548A é um switch I2C de conversão bidirecional de 8 canais. O par de


sinais SCL / SDA mestre é direcionado a oito canais de dispositivos escravos, SC0 /
SD0-SC7 / SD7. Os quais são referentes aos módulos ligados a cada canal
individual. Qualquer canal downstream individual pode ser selecionado, bem como
qualquer combinação dos oito canais.
O dispositivo oferece uma entrada RESET cuja função reinicializa a máquina
de estado e permite que o TCA9548A se recupere caso um dos barramentos I2C
downstream fique preso em um estado baixo. Essa máquina de estado pode ser
redefinida desligando e ligando a fonte de alimentação, VCC, também conhecido
como power-on reset (POR). A função RESET e um POR farão com que todos os
canais sejam desmarcados.
As conexões do caminho de dados I2C são controladas pelo mesmo
dispositivo mestre I2C que é comutado para se comunicar com vários escravos I2C.
Após o reconhecimento bem-sucedido do endereço do escravo (hardware
selecionável pelos pinos A0, A1 e A2), um único registro de controle de 8 bits é
escrito ou lido para determinar os canais selecionados.
O TCA9548A também pode ser usado para conversão de tensão, permitindo
o uso de diferentes tensões de barramento em cada par SCn / SDn de modo que as
peças de 1,8 V, 2,5 V ou 3,3 V possam se comunicar com peças de 5 V. Isso é
conseguido usando resistores pull-up externos para puxar o barramento até a tensão
desejada para o mestre e cada canal escravo (TEXAS INSTRUMENTS, 2015.)

4.1.7. Desenvolvimento do algoritmo

Para que fosse possível propor um sistema de automação responsável pelo


monitoramento da temperatura e umidade relativa do ar em produtos agrícolas
armazenados em silos, foi elaborado um algoritmo, apresentado no anexo 1, capaz
de realizar a leitura dos sensores e coleta de dados. Os dados foram coletados
através do Software Arduino IDE.
Para iniciar o funcionamento foi necessário realizar a determinação das
funções primárias, responsáveis pela ativação do composto. O código é aberto pela
inclusão das bibliotecas digitais de cada modulo com as linhas #include e a
indicação das entradas, constantes e variáveis a serem manipuladas pelo arduino
38

com RTC_DS1307 rtc; File myfile; , const int chipSelect = 4; (para seus respectivos
sensores) e unsigned long delayTime; além disso há a função de inicialização do
multiplexador, com void TCA9548A(uint8_t bus), a qual é fundamental para a
comunicação entre os 8 sensores e o Arduino. Para mais é iniciada a função
responsável pela ativação de todo o sistema, com o RTC e módulo do Cartão SD a
priori, podendo assim inicializar os sensores e seus respectivos canais de
comunicação referentes ao multiplexador, ressalta-se a inclusão de mecanismos e
funções para identificação de possíveis erros no hardware, as quais funcionam em
conjunção com todas funções, esse grande fragmento de código é iniciado pela linha
void setup().
A partir do início de todos os argumentos o microcontrolador esteve disponível
a realizar sua função principal, foi ativado pelo void loop() a qual utiliza a aplicação
loggingTime(), onde foi responsável pelo fornecimento da data e hora ao sistema,
após serem incluídas as funções de leitura e apoio. A fim de conseguir usar todos os
sensores conectados, dentro dela foram inclusos a comunicação referente a cada
sensor individualmente com TCA9548A(0); para o sensor 1, TCA9548A(1); para o
sensor 2, até TCA9548A(7); para o sensor 8, e entre cada referência foi inserida
outro mecanismo para a leitura a função printValues(), onde captou e armazenou os
dados de Temperatura, Umidade e Pressão, referente a cada sensor.
A função printValues () forneceu a possibilidade de realizar a leitura do sensor
e documentar a data em arquivo de texto, gravado no cartão SD. O formato file.print
() indicou ao modulo SD quais dados deveriam ser armazenados, bem como
fornecendo a possibilidade de incluir texto adicionais. A função Serial.print() teve o
mesmo funcionamento, contudo o fez para o monitor serial do software IDE Arduino,
o qual é importante para verificar de forma mais rápida o funcionamento do sensor e
suas leituras. Além deles o comando String transformou uma variável qualquer em
somente uma linha de texto, com isso foi possível realizar a gravação de todos os
dados com String Texto=S_Temperatura + "," + S_Pressao + "," + S_Altura + "," +
S_Umidade, onde agrupou as leituras respectivas e myfile.print(Texto) salvou no
arquivo de texto
Posteriormente a descrição da rotina foi realizada uma interação pelo
software compilador do Arduino, o qual valida e verifica erros e incongruências na
linguagem e com isso garantir a validade do Algoritmo desenvolvido.
39

Para uma melhor compreensão do hardware, elaborou-se um modelo no


software Fritzing, onde é claro todas as conexões entre os sensores, módulos,
multiplexador, Arduino e a breadboard, de acordo com a figura 13.

Figura 13 – Esquematização do Arduino e suas respectivas conexões.


40

5. RESULTADOS E DISCUSSÃO

Os dados foram coletados através do algoritmo e hardware desenvolvido


(Figura 17, 18 e 19), deste modo foi possível obter dados, durante o período de
testes, realizando a leitura da temperatura (Figura 14) pressão (Figura 15) e
umidade relativa do ar ambiente (Figura 16).

Leitura de Temperatura x Coleta de dados


38
36
34
Sensor 1
32
Temperatura ( Cº)

Sensor 2
30
Sensor 3
28
Sensor 4
26 Sensor 5
24 Sensor 6
22 Sensor 7

20 Sensor 8

Coleta de Dados (Hora)

Figura 14 – Registro de temperatura. Fonte: Elaborado pelo autor.


41

Pressão x Coleta de Dados


1040
1020
1000
Sensor 1
980
Pressão (hPa)

Sensor 2
960
Sensor 3
940
Sensor 4
920
Sensor 5
900
Sensor 6
880
Sensor 7
860
Sensor 8

Coleta de Dados ( Horas)

Figura 15 – Registro de pressão. Fonte: Elaborado pelo autor.

Umidade x Coleta de Dados


85
80
75
Sensor 1
70
Umidade (%)

65 Sensor 2
60 Sensor 3
55 Sensor 4
50 Sensor 5
45 Sensor 6
40
Sensor 7
35
Sensor 8

Coleta de Dados ( Hora)

Figura 16 – Registro de umidade relativa do ar. Fonte: Elaborado pelo autor.


42

Figura 17 – Sistema completo de prototipagem do Arduino. Fonte: Elaborado pelo


autor
43

Figura 18 - Vista superior da Breadboard, com o multiplexador e os 8 sensores


BME280. Fonte: Elaborado pelo autor.
44

Figura 19 - Arduino com as conexões. Fonte: Elaborado pelo autor.

Os testes foram realizados nos dias 15,16 e 17 de abril de 2021. O protótipo


foi colocado em local sem a incidência direta de luz solar, considerando a
temperatura do ar ambiente, com o sistema permanecendo ligado das 09:29 do dia
15 até 18:04 do dia 17.
Pode-se comparar com os valores de temperatura e umidade local obtidos em
dados meteorológicos, para conseguir compreender melhor a viabilidade dos testes.
Para isso as Figuras 20, 21 e 22 fornecem dados referente a temperatura (Cº),
Pressão (hPa) e Umidade (%), respectivamente, da estação meteorológica A627 de
Niterói, segundo INMET (2021),
45

Temperatura x Coleta de Dados


33
31
29
Temperatura (Cº)

27
25
23 Temp. Min. (C)
21 Temp. Ins. (C)
19 Temp. Max. (C)
17
15
9:00

0:00
3:00
6:00
9:00

0:00
3:00
6:00
9:00
12:00
15:00
18:00
21:00

12:00
15:00
18:00
21:00

12:00
15:00
18:00
Coleta de Dados (Hora)

Figura 20 - Registro de temperatura mínima, instantânea e máxima da estação


A627. Fonte: Elaborado pelo autor utilizando INMET (2021).

Pressão x Coleta de Dados


1022
1020
1018
Pressão (hPa)

1016
1014
Pressao Ins. (hPa)
1012
Pressao Max. (hPa)
1010
Pressao Min. (hPa)
1008
1006
9:00

1:00
5:00
9:00

1:00
5:00
9:00
13:00
17:00
21:00

13:00
17:00
21:00

13:00
17:00

Coleta de Dados (Hora)

Figura 21 - Registro de pressão instantânea, máxima e mínima da estação A627.


Fonte: Elaborado pelo autor utilizando INMET (2021).
46

Umidade x Coleta de Dados


105
95
85
Umidade (%)

75
65 Umi. Ins. (%)
55 Umi. Max. (%)
45 Umi. Min. (%)
35
9:00

1:00
5:00
9:00

1:00
5:00
9:00
13:00
17:00
21:00

13:00
17:00
21:00

13:00
17:00
Coleta de Dados (Hora)

Figura 22 – Registro de umidade relativa do ar instantânea, máxima e mínima da


estação A627. Fonte: Elaborado pelo autor utilizando INMET (2021).

Comparando os dados coletados com os dados da Estação A627 foi possível


observar comportamento semelhante entre as curvas de temperatura e umidade
relativa do ar. Portanto, foi obtido a validação do sistema no que se refere à coleta
de dados. A pressão demonstra diferenças sistemáticas, em relação as registradas
pelo INMET, se analisadas em conjunto. Contudo quando analisadas em maior
detalhe, conforme figura 23, é passível averiguar semelhança de comportamento da
curva, demonstrando a validação dos sensores.
47

Pressão em Detalhe
1024

1022

1020

1018
Pressão (hPa)

Sensor 6
1016
INMET
1014

1012

1010

1008

1006
Coleta de Dados ( Horas)

Figura 23 - Registro de pressão em detalhe do sensor 6. Fonte: Elaborado pelo autor

Com o objetivo de melhor elucidação das informações fornecidas pelos


sensores e pelo INMET, elaborou-se gráficos de temperatura, pressão e umidade,
conforme figura 24, 25 e 26.

Temperaturas Sensores x INMET


40
Sensor 1
35
Sensor 2
30
Sensor 3
25
Temperatura °C

Sensor 4
20
Sensor 5
15
Sensor 6
10
Sensor 7
5 Sensor 8
0 INMET

Coleta de Dados ( Horas)


Figura 24 – Temperaturas captadas dos sensores em comparação com a do
INMET.
48

Pressões Coletadas
1040
1020
1000
Sensor 1
980
Pressão (hPa)

Sensor 2
960 Sensor 3
940 Sensor 4
920 Sensor 5

900 Sensor 6
Sensor 7
880
Sensor 8
860
INMET

Coleta de Dados ( Horas)

Figura 25 – Pressões captadas dos sensores em comparaçao com a do INMET.

Umidade Coletada
100
90
80
Sensor 1
70
Umidade (%)

Sensor 2
60
Sensor 3
50
Sensor 4
40
Sensor 5
30
Sensor 6
20
Sensor 7
10
Sensor 8
0
INMET

Coleta de Dados ( Horas)

Figura 26 – Umidade captadas dos sensores em comparação a do INMET


49

O comportamento das curvas de temperatura demonstra aproximação


pertinente em seus pontos de subida e descida. Embora salienta-se as possíveis
divergências entre os valores do INMET e dos sensores, devido a estação A627 ser
distante aproximadamente 20 Km do local de testes. O mesmo é valido para a
Umidade. Contudo, devido a pressão possuir variações menores, naturalmente,
segundo JARDIM (2011), ela têm uma melhor adequação em relação a comparação
aos sensores, para assim validar as coletas e consequentemente os sensores.
Outra análise pertinente e conspícuo com maior detalhe no gráfico de pressão
e em menor nos de temperatura e umidade é referente a variação vertical das
curvas, isso indicou uma possível diferença de valores iniciais em seu sistema de
leitura, o que pode vir a ser corrigido em uma calibração do aparelho ou em uma
análise posterior de dados.
Ressalta-se uma importante indicação referente ao sistema, que ao realizar
medições em intervalos de uma hora, apresentou em alguns momentos, falhas
múltiplas de leitura, devido a uma maior limitação de memória da placa Arduino Uno,
conforme informado pelo Software IDE (Figura 27), onde uma proximidade a 80% ao
processamento do hardware é passível de instabilidades. Deste modo, a fim de
diminuir prováveis erros, o intervalo de medição utilizado foi de duas horas. Para
leituras com menor intervalo, seria mais adequado o uso da placa Arduino Mega
2560, a qual possui maior memória disponível, e com isso maior capacidade de
processamento.

Figura 27 – Informações sobre uso de memória pelo Software IDE.

6. CONCLUSÕES

Conclui-se que é possível propor um sistema automatizado para o


monitoramento da temperatura e umidade relativa do ar, utilizando o Arduino.
50

O algoritmo realizou as leituras de temperatura e umidade relativa do ar de


forma adequada, embora se reconheça ser necessário realizar a calibração de cada
sensor, a fim de garantir uma maior precisão. A precisão recomendada deve ser de
0,34%, 0,1% e 0,008%, para temperatura, pressão e umidade, respectivamente,
segundo BOSCH (2015) e a obtida foi de 15,77%, 4,72% e 15,39%, de acordo com
a temperatura, pressão e umidade, respectivamente. Além disso, recomenda-se o
uso posterior da placa Arduino Mega 2560, para leituras em intervalos de tempos
menores que 2 horas, a qual devido a sua memória e capacidade de processamento
maior deverá demonstrar um menor registro de erros.

7. TRABALHOS FUTUROS

Em relação a continuidade do presente trabalho é ressaltado o projeto em


andamento no PET Agrícola e Ambiental, em conjunto com o laboratório de
tecnologia de pós-colheita e processamento de produtos agrícolas, onde há a
possibilidade de instalações dos sensores em um protótipo de silo experimental
cilíndrico, de 20 cm de diâmetro total e 19 cm de diâmetro interno, 30 cm de altura,
com 5 cm de altura para o plenum. Para a idealização do projeto foi utilizado o
Software SolidWorks. A distribuição dos sensores foi realizada conforme as Figuras
28 e 29, para a obtenção de dados de temperatura, umidade e pressão.

Figura 28 - Modelo do Silo Experimental em 3D, com visualização isométrica. Fonte:


Elaborado pelo autor.
51

Figura 29 - Modelo do Silo Experimental em 3D, com visualização frontal. Fonte:


Elaborado pelo autor.
52

REFERÊNCIAS BIBLIOGRÁFICAS

ADAFRUIT. Adafruit TCA9548A i2c multiplexer breakout , 2015. Disponível em:


https://cdnlearn.adafruit.com/downloads/pdf/adafruit-tca9548a-1-to-8-i2cmultiplexer-
breakout.pdf. Acesso em: 05. Jan 2021.

AGROSTAT. Estatísticas de Comércio Exterior do Agronegócio Brasileiro. Disponível


em: http://indicadores.agricultura.gov.br/agrostat/index.htm. Acesso em: 03 jul. 2020.

ARDUINO UNO REV3. EUA, 2020a. Disponível em:


https://store.arduino.cc/usa/arduino-uno-rev3. Acesso em: 7 jul. 2020.
HUMIDITY, BME280 Combined; SENSOR, Pressure. Bosch Sensortec. Alemanha,
Out, 2015.

ARDUINO. About Us. [S. l.], 2020b. Disponível em:


https://www.arduino.cc/en/Main/AboutUs. Acesso em: 6 out. 2020.

BARROS, G. S. de C. MACRO/CEPEA: agronegócio soma 19 milhões de pessoas


ocupadas, metade “dentro da porteira". São Paulo: Cepea, 2017.

DE MIRANDA, Rubens Augusto. Breve história da agropecuária brasileira. Embrapa


Milho e Sorgo-Capítulo em livro científico (ALICE), 2020.

BOLTON, William. Controladores Lógicos Programáveis. Newnes, 2015.

BOSCH Sensortec. Datasheet: BME280 Combined humidity and pressure sensor.


Alemanha, publicação electronica, 55p. 2015

BROOKER, D. B.; BAKKER-ARKEMA, F. W.; HALL, C. W. Drying and storage of


grains and oilseeds. Springer Science & Business Media, 1992.

CARVALHO, F. M. C. Sistema de controle de alimentação de silos (SCAS). 2009.


Tese de Doutorado. UNIVERSIDADE DE SÃO PAULO.

CONAB. Companhia Nacional de Abastecimento. Série histórica das safras. [S. l.], 1
mar. 2021. Disponível em: https://www.conab.gov.br/info-agro/safras/serie-historica-
das-safras. Acesso em: 5 mar. 2021.

D'ARCE, M.;. Regitano A.B. Pós colheita e armazenamento de grãos. 2008.

EMBRAPA. EMPRESA BRASILEIRA DE PESQUISA AGROPECUÁRIA.


Armazenamento inadequado de grãos resulta em cerca de 15% de perdas.
Disponível em: https://www.embrapa.br/busca-de-noticias/-
/noticia/3860638/armazenamento-inadequado-de-graos-resulta-em-cerca-de-15-de-
perdas#:~:text=Armazenamento%20inadequado%20de%20gr%C3%A3os%20result
a%20em%20cerca%20de%2015%25%20de%20perdas,-
Imprimir%20Armazenamento%20inadequado&text=Insetos%2Dpraga%2C%20fungo
s%20e%20micotoxinas,ao%20armazenamento%20inadequado%20da%20produ%C
3%A7%C3%A3o.. Acesso em: 05 nov. 2020.
53

EMPRESA BRASILEIRA DE PESQUISA AGROPECUÁRIA. Visão 2030: o futuro da


agricultura brasileira. 2018.

FILIPEFLOP. Módulo Cartão SD Card. [S. l.], 2020a. Disponível em:


https://www.filipeflop.com/produto/modulo-cartao-sd-card/. Acesso em: 8 out. 2020.

FILIPEFLOP. Real Time Clock RTC DS1307. [S. l.], 2020b. Disponível em:
https://www.filipeflop.com/produto/real-time-clock-rtc-ds1307/. Acesso em: 8 out.
2020.

HIRAKURI, M. H.; LAZZAROTTO, J. J. O agronegócio da soja nos contextos


mundial e brasileiro. Embrapa Soja-Documentos (INFOTECA-E), 2014.

IBGE, Sistema IBGE de Recuperação Automática. SIDRA. Disponível em: . Acesso


em: maio 2019.

INMET. Estação: NITEROI (A627). [S. l.], 17 abr. 2021. Disponível em:
https://tempo.inmet.gov.br/TabelaEstacoes/A627#. Acesso em: 22 abr. 2021.

INSTRUMENTS, Texas. Pca9548a low-voltage 8-channel i2c switch with reset. von
Texas Instruments. 2015.

JARDIM, C. H. Relações entre temperatura, umidade relativa do ar e pressão


atmosférica em área urbana: comparação horária entre dois bairros no município de
São Paulo-SP. Revista Geografias, p. 128-142, 2011.

KRETER, A. C.; SOUZA JÚNIOR, J. R. C. Economia Agrícola. Carta de Conjuntura,


n. 48, 3o trimestre 2020, Brasília-DF: IPEA, 2020.

LAKHOUA, M. N. Systemic analysis of an industrial system: case study of a grain


silo. Arabian Journal for Science and Engineering, v. 38, n. 5, p. 1243-1254, 2013.

LORINI, I. Perdas anuais em grãos armazenados chegam a 10% da produção


nacional. Visão agrícola, v. 13, p. 127-129, 2015..

MAXIM INTEGRATED (2015). Ds1307 64 x 8, serial, i2c real-time clock.


https://datasheets.maximintegrated.com/en/ds/DS1307.pdf, Acesso em: 25 Jun.
2020.

QUIRINO, J. R. et al. Resfriamento artificial na conservação da qualidade comercial


de grãos de milho armazenados. Bragantia, v. 72, n. 4, p. 378-386, 2013.

RELINGER, R. NAFTA and US cornsubsidies: Explaining the displacement of


Mexico’s corn farmers. Prospect Journal of International Affairs at UCSD, 2010.
Disponível em: https://prospectjournal.org/2010/04/19/nafta-and-u-s-corn-subsidies-
explaining-the-displacement-of-mexicos-corn-farmers/comment-page-1/. Acesso em:
05 jul. 2020.
54

RIGUEIRA, R. J A.; LACERDA FILHO, A.F.; VOLK, M.B.S. Avaliação da qualidade


do feijão armazenado em ambiente refrigerado. Alimentos e Nutrição, v. 20, n. 4, p.
649-655, 2009.

SOLOGUREN, L. Ganhos de produtividade da soja surpreenderam e surpreenderão


[entrevistado pela Equipe da Redação-Agroanalysis]. AgroANALYSIS, v. 39, n. 12, p.
7-9, 2019.

SUN, Da-Wen; WOODS, J. L. Simulation of the heat and moisture transfer process
during drying in deep grain beds. Drying Technology, v. 15, n. 10, p. 2479-2492,
1997.
55

ANEXO I – ALGORITMO ELABORADO

#include <Wire.h>
#include <SPI.h>

#include <SD.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include <RTClib.h>

Adafruit_BME280 bme;

RTC_DS1307 rtc; // 0x68 I2C Address

//Pino CS do modulo cartao SD


const int chipSelect = 4;

// Cria um arquivo para armazenar a data


File myFile;

unsigned long delayTime;

void TCA9548A(uint8_t bus)


{
Wire.beginTransmission(0x70); // TCA9548A address is 0x70
Wire.write(1 << bus); // send byte to select bus
Wire.endTransmission();
}
56

void setup() {

// Inicia a biblioteca wire


Wire.begin();
Serial.begin(9600);

Serial.println(F("rtc1"));

// setup para RTC


if (! rtc.begin()) {
Serial.println(F("Couldn't find RTC"));
while (1);
}
else {
// Linha seguinte adiciona a data e hora do momento que o algoritmo foi
compilado
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
if (! rtc.isrunning()) {

Serial.println(F("RTC is NOT running!"));


}

Serial.println(F("SD1"));

// setup for the SD card

Serial.print(F("Initializing SD card..."));

if (!SD.begin(chipSelect)) {
Serial.println(F("initialization failed!"));
return;
}
57

Serial.println(F("initialization done."));

//open file
myFile = SD.open("DATA.txt", FILE_WRITE);

// if the file opened ok, write to it:


if (myFile) {

Serial.println(F("File opened ok"));


// print the headings for our data
myFile.println("Date,Time,TemperatureºC,pressure, Humidity %");
}
myFile.close();

Serial.println(F("SD2"));

// Initialize BME280;
unsigned status;

Serial.println(F("BME280 Channel 0"));


// Set multiplexer to channel 1 and initialize BME0

TCA9548A(0);
// default settings
status = bme.begin(0x76);
Serial.println(F("A0"));
// You can also pass in a Wire library object like &Wire2
// status = bme.begin(0x76, &Wire2)

if (!status) {
Serial.println("Could not find a valid BME280 sensor, check wiring, address,
sensor ID!");
Serial.print("SensorID was: 0x"); Serial.println(bme.sensorID(), 16);
58

Serial.print(" ID of 0xFF probably means a bad address, a BMP 180 or BMP


085\n");
Serial.print(" ID of 0x56-0x58 represents a BMP 280,\n");
Serial.print(" ID of 0x60 represents a BME 280.\n");
Serial.print(" ID of 0x61 represents a BME 680.\n");

while (1) delay(10);

}
delay(200);
Serial.println(F("BME280 Channel 1"));
// initialize BME1
TCA9548A(1);

// default settings
status = bme.begin(0x76);
Serial.println(F("A1"));
// You can also pass in a Wire library object like &Wire2
// status = bme.begin(0x76, &Wire2)
if (!status) {

Serial.println(F("Could not find a valid BME280 sensor, check wiring, address,


sensor ID!"));
Serial.print(F("SensorID was: 0x")); Serial.println(bme.sensorID(), 16);
Serial.print(F(" ID of 0xFF probably means a bad address, a BMP 180 or BMP
085\n"));
Serial.print(F(" ID of 0x56-0x58 represents a BMP 280,\n"));
Serial.print(F(" ID of 0x60 represents a BME 280.\n"));
Serial.print(F(" ID of 0x61 represents a BME 680.\n"));

while (1) delay(10);


}

delay(200);
Serial.println();
59

Serial.println(F("BME280 Channel 2"));


// initialize BME1
TCA9548A(2);
// default settings
status = bme.begin(0x76);
Serial.println(F("A2"));

// You can also pass in a Wire library object like &Wire2


// status = bme.begin(0x76, &Wire2)
if (!status) {
Serial.println(F("Could not find a valid BME280 sensor, check wiring, address,
sensor ID!"));

Serial.print(F("SensorID was: 0x")); Serial.println(bme.sensorID(), 16);


Serial.print(F(" ID of 0xFF probably means a bad address, a BMP 180 or BMP
085\n"));
Serial.print(F(" ID of 0x56-0x58 represents a BMP 280,\n"));

Serial.print(F(" ID of 0x60 represents a BME 280.\n"));


Serial.print(F(" ID of 0x61 represents a BME 680.\n"));
while (1) delay(10);

delay(200);
Serial.println();

Serial.println(F("BME280 Channel 3"));


// initialize BME1

TCA9548A(3);
// default settings
60

status = bme.begin(0x76);

Serial.println(F("A3"));
// You can also pass in a Wire library object like &Wire2
// status = bme.begin(0x76, &Wire2)
if (!status) {
Serial.println(F("Could not find a valid BME280 sensor, check wiring, address,
sensor ID!"));
Serial.print(F("SensorID was: 0x")); Serial.println(bme.sensorID(), 16);
Serial.print(F(" ID of 0xFF probably means a bad address, a BMP 180 or BMP
085\n"));

Serial.print(F(" ID of 0x56-0x58 represents a BMP 280,\n"));


Serial.print(F(" ID of 0x60 represents a BME 280.\n"));
Serial.print(F(" ID of 0x61 represents a BME 680.\n"));
while (1) delay(10);

delay(200);

Serial.println(F("BME280 Channel 4"));


// initialize BME1
TCA9548A(4);
// default settings
status = bme.begin(0x76);
Serial.println(F("A4"));
// You can also pass in a Wire library object like &Wire2
// status = bme.begin(0x76, &Wire2)
if (!status) {

Serial.println(F("Could not find a valid BME280 sensor, check wiring, address,


sensor ID!"));
Serial.print(F("SensorID was: 0x")); Serial.println(bme.sensorID(), 16);
61

Serial.print(F(" ID of 0xFF probably means a bad address, a BMP 180 or BMP


085\n"));
Serial.print(F(" ID of 0x56-0x58 represents a BMP 280,\n"));
Serial.print(F(" ID of 0x60 represents a BME 280.\n"));
Serial.print(F(" ID of 0x61 represents a BME 680.\n"));

while (1) delay(10);

}
delay(200);

Serial.println(F("BME280 Channel 5"));


// initialize BME1

TCA9548A(5);
// default settings
status = bme.begin(0x76);
Serial.println(F("A5"));
// You can also pass in a Wire library object like &Wire2
// status = bme.begin(0x76, &Wire2)

if (!status) {
Serial.println(F("Could not find a valid BME280 sensor, check wiring, address,
sensor ID!"));
Serial.print(F("SensorID was: 0x")); Serial.println(bme.sensorID(), 16);
Serial.print(F(" ID of 0xFF probably means a bad address, a BMP 180 or BMP
085\n"));
Serial.print(F(" ID of 0x56-0x58 represents a BMP 280,\n"));
Serial.print(F(" ID of 0x60 represents a BME 280.\n"));

Serial.print(F(" ID of 0x61 represents a BME 680.\n"));


while (1) delay(10);

}
delay(200);
62

Serial.println(F("BME280 Channel 6"));


// initialize BME1
TCA9548A(6);
// default settings
status = bme.begin(0x76);
Serial.println(F("A6"));

// You can also pass in a Wire library object like &Wire2


// status = bme.begin(0x76, &Wire2)
if (!status) {
Serial.println(F("Could not find a valid BME280 sensor, check wiring, address,
sensor ID!"));

Serial.print(F("SensorID was: 0x")); Serial.println(bme.sensorID(), 16);


Serial.print(F(" ID of 0xFF probably means a bad address, a BMP 180 or BMP
085\n"));
Serial.print(F(" ID of 0x56-0x58 represents a BMP 280,\n"));

Serial.print(F(" ID of 0x60 represents a BME 280.\n"));


Serial.print(F(" ID of 0x61 represents a BME 680.\n"));
while (1) delay(10);

}
delay(200);

Serial.println(F("BME280 Channel 7"));


// initialize BME1
TCA9548A(7);
// default settings
status = bme.begin(0x76);

Serial.println(F("A7"));
// You can also pass in a Wire library object like &Wire2
63

// status = bme.begin(0x76, &Wire2)

if (!status) {
Serial.println(F("Could not find a valid BME280 sensor, check wiring, address,
sensor ID!"));
Serial.print(F("SensorID was: 0x")); Serial.println(bme.sensorID(), 16);

Serial.print(F(" ID of 0xFF probably means a bad address, a BMP 180 or BMP


085\n"));
Serial.print(F(" ID of 0x56-0x58 represents a BMP 280,\n"));
Serial.print(F(" ID of 0x60 represents a BME 280.\n"));
Serial.print(F(" ID of 0x61 represents a BME 680.\n"));

while (1) delay(10);

}
delay(200);

Serial.println();

}
void loop() {
// Delay para estabilizar os sensores
delay(2000);

loggingTime();

// Set multiplexer to channel 1 and display temperature


TCA9548A(0);
Serial.println(F("BME0"));

Serial.println();
64

printValues();

// Set multiplexer to channel 2 and display temperature


TCA9548A(1);
Serial.println(F("BME1"));

Serial.println();

printValues();

TCA9548A(2);
Serial.println(F("BME2"));

Serial.println();

printValues();

TCA9548A(3);

Serial.println(F("BME3"));

Serial.println();

printValues();

TCA9548A(4);
Serial.println(F("BME4"));
65

Serial.println();

printValues();

TCA9548A(5);

Serial.println(F("BME5"));

Serial.println();

printValues();

TCA9548A(6);

Serial.println(F("BME6"));

Serial.println();

printValues();

TCA9548A(7);
Serial.println(F("BME7"));

Serial.println();

printValues();
66

delay(7200000);

/*

Função para imprimir os valores e gravar no SD


*/

void loggingTime() {
DateTime now = rtc.now();
myFile = SD.open("DATA.txt", FILE_WRITE);
if (myFile) {

myFile.print(now.year(), DEC);
myFile.print('/');
myFile.print(now.month(), DEC);
myFile.print('/');
myFile.print(now.day(), DEC);
myFile.print(',');

myFile.print(now.hour(), DEC);
myFile.print(':');
myFile.print(now.minute(), DEC);
myFile.print(':');
myFile.print(now.second(), DEC);
myFile.print(",");

}
Serial.print(now.year(), DEC);
Serial.print('/');
67

Serial.print(now.month(), DEC);

Serial.print('/');
Serial.println(now.day(), DEC);
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');

Serial.println(now.second(), DEC);
myFile.close();
delay(1000);
}

void printValues() {

myFile = SD.open("DATA.txt", FILE_WRITE);

Serial.print("Temperature = ");
Serial.print(bme.readTemperature());
Serial.println(" *C");
String S_Temperatura = String(bme.readTemperature());

Serial.print("Pressure = ");
Serial.print(bme.readPressure() / 100.0F);
68

Serial.println(" hPa");

String S_Pressao = String(bme.readPressure() / 100.0F);

Serial.print("Humidity = ");
Serial.print(bme.readHumidity());
Serial.println(" %");

String S_Umidade = String(bme.readHumidity());

String Texto = S_Temperatura + "," + S_Pressao + "," + S_Umidade ;


myFile.print(Texto); //Grava todos os valores
myFile.print('/');
myFile.print(' ');
Serial.println();

myFile.close();
}

Você também pode gostar