Você está na página 1de 57

Conteúdo

Adriana da Silva Nogueira

Revisão
Josiane Banov Russo
Matheus Paris Orsi

Editoração
André Feitoza Roque

Aprovação
José Augusto de Lima Prestes
Adriana da Silva Nogueira
Mestre em Educação & Educadora Maker

Mestre em Educação pela UNESA (2015), graduada em Licenciatura em


Computação pelas Faculdades Integradas Campo-Grandenses (2004) e é
pós-graduada Tecnologias da Informação Aplicadas à Educação pela UFRJ,
possuindo, ainda, MBA em Gestão da Qualidade do Processo Pedagógico
pela Universidade de Maringá.

Possui experiência ministrando aulas para o ensino superior em cursos de


TI com disciplinas relacionadas à Programação de Computadores, Análise
de Sistemas e Interação Humano-Computador que somam mais de 16 anos.
Durante os últimos 6 anos atuou como Educadora Maker desenvolvendo
projetos do-it-yourself e projetos de automação. Tem experiência na área
de Educação e Tecnologia, em especial com os seguintes temas: desenvolvi-
mento de aplicativos para educação, educação inclusiva , EAD, ambientes de
aprendizagem e cultura maker.

Atualmente é Especialista em Projetos Pleno na Facti - Fundação de Apoio à


Capacitação em Tecnologia da Informação e atua no Projeto LINFO CCTI.
Sumário
Unidade 1: 05
1.1. Introdução 05
1.2. IoT e Automação Residencial 07
1.3. Desenvolvimento de Aplicações Mobile 09
1.4. Plataforma de Prototipagem Arduino 11

Unidade 2: 13
2.1. Estudo de Caso: Automação Residencial 13
2.1.1. Infraestrutura necessária para solução do 14
Estudo de Caso
2.1.2. Proposta de Implementação 14

Unidade 3: 17
3.1. MIT App Inventor 17
3.1.1. Exercício Prático 25
3.2. Plataforma de Prototipagem Tinkercad 33
3.3. Prototipação com a Plataforma Arduino 39
3.3.1. Exercício 1: Sensor de Luminosidade 39
3.3.2. Exercício 1: Sensor de Luminosidade com 40
acendimento de LED
3.3.3. Exercício 2: Sensor de Movimento 41
3.3.4. Exercício 3: Desafio 43

Unidade 4: 46
4.1. Proposta de Solução do Estudo de Caso 46
4.1.1. Proposta de Aplicação usando App Inventor 46
4.1.2. Proposta de Prototipação e Codificação 50
4.1.3. Considerações sobre o Estudo de Caso 53
4.2. Sugestão para Estudos 54
4.3. Compartilhando Conquistas 55

Referências 56

Unidade 1
Ao longo desta Unidade abordaremos conceitos da área de IoT (Internet das
Coisas) e Automação Residencial a fim de que você adquira conhecimentos que o
capacitem a planejar e desenvolver projetos nessa área de conhecimento.

1.1. Introdução

Vivemos em um mundo globalizado no qual a tecnologia se tornou o meio


para realizarmos diversas tarefas, seja no âmbito pessoal ou profissional. Os smart
devices ou dispositivos inteligentes adentraram nossas casas há anos e a maioria de
nós nem se deu conta.

Dispositivos acionados por comandos de voz, pelo celular ou outro dispositivo


de comunicação estão ganhando espaço em nossos lares com o objetivo de simplifi-
car tarefas rotineiras ou coletar informações. Como exemplo, temos a Amazon Alexa
ou simplesmente Alexa.

Figura 1: Amazon Echo Dot 4th Gen com assistente virtual Alexa.
Fonte: https://http2.mlstatic.com/D_NQ_NP_793894-MLA45738482293_042021-O.jpg.

05
Alexa, desenvolvida pela Amazon, foi utilizada pela primeira vez nos dispositi-
vos Smart Speakers Echo (alto-falantes inteligentes) lançados em 2014. Atualmente,
esta linha de dispositivos está na sua quarta geração e numa das versões mais recen-
tes, o Echo Studio, ajusta a reprodução do som de acordo com a acústica do ambien-
te (VOGUE, 2022). Além da reprodução de som, existem outras funções¹ que podem
ser úteis no dia a dia.

E não para por aí!

Muitas empresas estão investindo em dispositivos para tornar nossa casa


inteligente. Uma dessas empresas é a Geonav² que desenvolveu dispositivos ca-
pazes de “controlar a iluminação, ativar e desativar uma tomada ou acompanhar
a câmera de segurança” (ALVES, 2021). A ideia principal é tornar esses dispositivos
mais acessíveis em termos de custo e propiciando uma gestão dos ambientes de
maneira simples e útil.

Figura 2: Linha Geonav Hi.


Fonte: https://www.techtudo.com.brl.

¹ Caso deseje conhecer mais sobre a Alexa, acesse o site da Techmundo e leia a matéria publicada em março de
2022 sobre as skills da Alexa.

06
² Site da empresa Geonav: https://www.geonav.com.br/
Embora existam diversas opções no mercado, é possível que você crie uma
solução personalizada para sua casa ou qualquer ambiente desejado. Já pensou acor-
dar pela manhã e ter seu café preparado? Não seria prático acionar a iluminação de
um dos ambientes da sua casa antes mesmo de você chegar? Imagine a possibilida-
de de fechar uma janela em caso de chuva mesmo sem estar em casa. São infinitas as
alternativas. Com conhecimento e criatividade você pode criar soluções incríveis para
sua casa ou para compartilhar com outras pessoas.

Durante o nosso curso apresentaremos ferramentas capazes de possibilitar a


criação de soluções automatizadas, além de apresentar possibilidades para que você
desenvolva posteriormente caso essa seja sua área de interesse.

1.2. IoT e Automação Residencial

Conhecida como IoT (Internet of Things) ou Internet das Coisas, esta área da
indústria de alta tecnologia representa a capacidade de diferentes dispositivos e obje-
tos estabelecerem conexão entre si através de redes com e sem fio (por Wi-Fi, Blue-
tooth, Infravermelho, 5G, etc), por meio da Internet ou Intranet (redes locais), cole-
tando e transmitindo dados. Aqui não limitamos a conexão apenas aos smartphones,
mas ampliamos para eletrodomésticos, lâmpadas, componentes de máquinas como
motores de carros, aviões, entre outros. IoT é uma rede de “coisas” e pessoas conec-
tadas gerando relacionamentos entre pessoas-pessoas, pessoas-coisas e coisas-coi-
sas (KIANE, 2019).

Cada vez mais temos vivenciado esses “relacionamentos” em nosso dia a dia.
Daí surge a pergunta: como transformar equipamentos simples em equipamentos
conectados?

A resposta está na palavra automação, termo similar a automatização e que


representa sistemas que controlam e executam processos por meio de dispositivos
mecânicos ou eletrônicos. Em nosso curso, trabalharemos com dispositivos eletrôni-
cos e com automação dos equipamentos e eletrodomésticos que utilizamos diaria-
mente em nossas casas, a qual denominamos de automação residencial.

07
Weg (2020) explica que “automação residencial diz respeito a um conjunto de
tecnologias com a capacidade de programar eventos em uma casa e de tornar auto-
mático o funcionamento de diversos equipamentos”.

Como abordado anteriormente, podemos pensar em automações simples


como o uso de uma lâmpada inteligente que pode ser controlada pela Alexa ou Goo-
gle Assistente, ou soluções mais complexas que envolvem monitoramento e coleta
de dados.

O princípio da automação residencial consiste em gerir equipamentos remo-


tamente, quer estejam no mesmo ambiente que você ou a quilômetros de distância.
Conforto e praticidade se tornaram palavras-chave neste contexto, não deixando de
lado a questão da economia de alguns recursos como, por exemplo, a energia elétri-
ca, visto que só estarão em funcionamento os equipamentos que estiverem efetiva-
mente desempenhando alguma função em dado momento.

Outra questão importante a ser ressaltada é a segurança. Por meio de dispo-


sitivos como câmeras, sensores e até dispositivos de captação de áudio, é possível
ter acesso ao que acontece em qualquer ambiente remotamente para que haja um
monitoramento e envio de informações sobre situações diferenciadas para um deter-
minado contexto.

Na criação de um sistema residencial inteligente, além dos dispositivos que


farão parte do mesmo, é necessário definir qual interface será utilizada para seu
gerenciamento, podendo utilizar aplicativos para celulares, interfaces web, displays,
dispositivos de comando de voz, entre outros.

Em nosso curso, focaremos nos aplicativos para celulares e utilizaremos o sof-


tware App Inventor para criá-los. Sua utilização será abordada mais adiante.

08
1.3. Desenvolvimento de Aplicações Mobile

A área de desenvolvimento de software tem ganhado grande destaque espe-


cialmente após o início da pandemia da COVID-19 em 2020. A busca por profissionais
desenvolvedores tem crescido pela própria demanda do mercado no que tange a au-
tomatização de processos e necessidade de compartilhamento de informações entre
pessoas geograficamente distantes.

A área de desenvolvimento de aplicativos mobile é a responsável pelo desen-


volvimento desses softwares seguindo, preferencialmente, o ciclo de vida apresenta-
do a seguir.

Figura 3: Ciclo de vida de desenvolvimento de aplicativos.


Fonte: https://www.objective.com.br/insights/fases-e-desafios-desenvolvimento-de-aplicativos/.

O planejamento é etapa essencial para o desenvolvimento de qualquer sof-


tware. Esta etapa se inicia com a estruturação da ideia, especificação do aplicativo, ou
seja, definição do que chamamos de requisitos, além do planejamento dos layouts e
demais recursos.

09
O design de um aplicativo é essencial para que se possa atingir o público alvo
definido no planejamento e tornar o aplicativo fácil de ser utilizado e assimilado.

Existem diversas linguagens de programação que permitem a criação de apli-


cativos mobile e a escolha acerca de qual linguagem você utilizará faz parte do que
chamamos de escolha da tecnologia. Para que seja possível o desenvolvimento de
uma nova aplicação³, é necessário conhecer sobre o hardware dos dispositivos para o
qual se deseja desenvolver, e o sistema operacional (Android e/ou iOS), dependendo
do objetivo estabelecido no planejamento.

As etapas de desenvolvimento e prototipação estão interligadas, visto que


o protótipo nada mais é do que uma solução que será apresentada para testes das
funcionalidades, usabilidade⁴ e verificação da adequação do que foi desenvolvido du-
rante a etapa do planejamento. A experiência do usuário também é algo que precisa
ser levado em consideração, pois trata de como o usuário se sente ao interagir com o
software. Existem diversos estudos abordando detalhadamente esta área⁵ . A imagem
a seguir apresenta 3 pontos principais que devem ser atendidos por aplicações que
desejam gerar boas experiências.

Figura 4: Boa experiência do usuário.


Fonte: https://catarinasdesign.com.br/em-que-consiste-uma-boa-experiencia-do-usuario/.

³ Aqui usamos o termo aplicação para referenciar programas e aplicativos desenvolvidos para uma finalidade
específica.
⁴ A usabilidade está relacionada, dentre outros fatores, com a facilidade de uso de uma aplicação, se a mesma
possui um design intuitivo e de fácil aprendizado.
⁵ O livro Designer de Interfaces - Guia Definitivo apresenta diversos conteúdos referentes à
criação de interfaces 10
Caso você deseje desenvolver um aplicativo e não tenha experiência prévia
com essa área, inclua no seu planejamento um tempo para o estudo das tecnolo-
gias que serão utilizadas. A área de desenvolvimento de software está em constante
transformação e mesmo programadores experientes precisam dedicar-se a estudos
constantes para aprendizado de novas tecnologias que geram novas demandas no
mercado.

1.4. Plataforma de Prototipagem Arduino

Uma das plataformas mais utilizadas para prototipagem de projetos de au-


tomação residencial é a plataforma Arduino, pois, entre outros fatores, ela possui
“código-aberto”⁶ . O software é liberado sob a licença GPL⁷ e as bibliotecas microcon-
troladoras C/C++ sob LGPL⁸ , podendo ser utilizada livremente por desenvolvedores
e fabricantes, gerando a existência de diversas opções de placas no mercado que,
embora possuam aparência distinta, têm funcionalidades similares.

Arduino é uma plataforma de prototipagem eletrônica que inclui hardware


e software. O hardware é manipulado por uma linguagem de programação basea-
da em C++. Em nosso curso utilizaremos a placa Arduino UNO que é apresentada a
seguir. Para conhecer mais sobre esta plataforma acesse o material que foi disponibi-
lizado na plataforma do QualiFacti.

⁶ Para obter informações sobre os tipos de licença GNU (General Public License ou Licença Pública Geral), acesse o
link http://www.gnu.org/licenses/gpl-3.0.html.
⁷ O acesso ao código-fonte é liberado permitindo que após a alteração do programa, os mesmos sejam distribuí-
dos mantendo os direitos do autor.
⁸ A LGPL permite a associação com programas que não estejam sob as licenças GPL ou LGPL, o que
inclui software proprietário. O que for gerado a partir dessa associação e não estiver sob a licença
LGPL, deve ser disponibilizado em bibliotecas.
11
Figura 5: Placa Arduino UNO.
Fonte: https://blog.fazedores.com/wp-content/uploads/2014/11/ArduinoUno_R3_Front.jpg.

12
Unidade 2
Ao longo desta Unidade abordaremos o Estudo de Caso que será trabalhado
em nosso curso, bem como apresentaremos informações essenciais para compreen-
dê-lo e estruturar sua solução.

2.1. Estudo de Caso: Automação Residencial

Mariano é um jovem apaixonado por tecnologia que almeja abrir uma empre-
sa que atue na área de IoT. Como ele ainda conhece pouco de automação e deseja
realizar estudos práticos nesta área, convidou você para ajudá-lo na automação de
sua casa.

A casa de Mariano é um imóvel de 2 quartos na zona norte do Rio de Janeiro e


possui os seguintes eletrodomésticos: ventilador, ar condicionado, smart TV, cafeteira
elétrica, microondas, geladeira, liquidificador e máquina de lavar. Possui ainda 2 lumi-
nárias de mesa e uma de chão. Neste momento, Mariano deseja que apenas um item
seja automatizado para que seja possível realizar testes antes de elaborar o projeto
completo. Antes de decidir qual elemento iremos automatizar, discutiremos algumas
propostas com os colegas de turma.

Em aula, seu instrutor o orientará a trabalhar com seus colegas de curso em


salas temáticas a fim de debater possíveis ideias a serem implementadas na residên-
cia de Mariano. Inicialmente, deve ser feito um brainstorming⁹ (ou chuva de ideias) e
o registro informal de todas as ideias que surgirem. Após esse momento, identifique
ideias semelhantes, selecione as que mais despertam o interesse de vocês e, por fim,
selecione 5 entre essas ideias.

Após a discussão e registro, você deverá apresentar para a turma as ideias


selecionadas por seu grupo e participar de um segundo momento de discussão em
turma sobre quais seriam mais relevantes para o contexto apresentado.

⁹ Este é um momento reservado para que essas ideias sejam propostas, discutidas, e selecionadas.
13
2.1.1. Infraestrutura necessária para solução do Estudo de Caso

Entende-se por infraestrutura o suporte necessário para execução de um pro-


jeto. Estamos falando em automação residencial e, diante dos assuntos anteriormen-
te expostos, precisaremos desenvolver uma solução eficaz que deve utilizar:

Plataforma de prototipagem Arduino.

Ferramenta para Simulação de circuitos TinkerCad.

App Inventor.

Sensores e demais componentes eletrônicos.

Esboce em um papel, o que deseja elaborar e, em seguida, prototipe a aplica-


ção e o circuito. Caso você não tenha a placa física ou alguns dos componentes que
iremos utilizar, o ideal é acompanhar a prototipação pelo TinkerCad, pois a progra-
mação realizada no simulador não mudará, com relação ao desenvolvimento execu-
tado eventualmente em uma placa Arduino física.

2.1.2. Proposta de Implementação

Analisando cuidadosamente nosso estudo de caso, verificamos que sua imple-


mentação pode ser complexa ou simples, dependendo do que iremos realizar no
contexto apresentado. Se fôssemos pensar na automação de uma residência com-
pleta, o que chamamos de casa inteligente, teríamos que avaliar os custos e o tempo
envolvidos nesse desenvolvimento para, em seguida, apresentar a solução.

14
Propomos então, como fechamento do nosso curso, um protótipo mínimo
para testarmos a solução. Abordaremos na apresentação da solução: a criação de um
protótipo físico, a programação pelo App Inventor e a prototipação pelo TinkerCad.

O nosso objetivo é criar um sistema mobile que seja capaz de controlar o acen-
dimento de 3 leds.

Material necessário:

Arduino Uno e Protoboard.

Jumpers - para conexão dos componentes.

Resistores - para redução da tensão que será os LEDs.

3 LEDs (vermelho, verde e amarelo) - no protótipo, eles serão desli-


gados ou desligados de acordo com o desejo do usuário. Atenção: você
pode usar LEDs de diferentes cores, desde que identifique a porta na
qual foram conectados ao Arduino.

Módulo Bluetooth HC05 - Considerado uma das melhores opções para


projetos onde haja comunicação sem fio, o módulo permite conexões
sem fio como principal¹⁰ ou secundário¹¹ , sendo também transceptor, ou
seja, pelo qual podemos fazer transmissão e recebimento de dados.

O módulo exige a utilização de quatro terminais: alimentação, conectando o


Vcc ao 5v e o GND ao GND da placa e as portas de comunicação serial RX e TX que
serão usadas para recepção e transmissão de dados.

Caso você realize uma breve pesquisa sobre módulos bluetooth, irá encontrar
os modelos HC-05 e HC-06, sendo que este último opera apenas como escravo. O
HC-05 possui dois terminais extras, o EN e o State, usados para configuração do seu
funcionamento, visto que o EN alterna entre o recebimento de informações (padrão) e

¹⁰ O modo principal ou master de um dispositivo permite que este transmita informações para outros dispositivos.
¹¹ Entende-se como modo secundário (slave), a função de um elemento apenas receber infor-
mações de outros dispositivos.
15
o modo de configuração no qual podemos definir velocidade de transmissão, nome,
senha e se o componente será principal ou secundário, e, o terminal STATE indica por
meio de um LED o status da conexão do módulo.

Figura 6: Módulo Bluetooth HC-05.


Fonte: adaptado de https://images-americanas.b2w.io/produtos/2320047351/imagens.

16
Unidade 3
Nesta unidade abordaremos as ferramentas necessárias para resolução do
estudo de caso, bem como apresentaremos exercícios para que você aprenda a ma-
nipular alguns componentes eletrônicos.

3.1. MIT App Inventor

Para iniciarmos a programação dos nossos aplicativos, precisamos conhecer o


App Inventor. Acesse o site http://ai2.appinventor.mit.edu/ e clique no botão _Create
Apps!_ no canto superior esquerdo.

Figura 7: Tela inicial do site do App Inventor.


Fonte: o Autor.

17
Para iniciar o site indicará que você realize o login com uma conta do Gmail
existente ou crie uma nova conta. Se você já tiver uma conta do Gmail, insira seu
e-mail e senha para prosseguir.

Figura 8: Tela de login conta Google.


Fonte: o Autor.

18
Caso você opte por criar uma nova conta, ele te redirecionará para a página de
criação de e-mail do Gmail.

Figura 9: Tela para criação de nova conta Google.


Fonte: o Autor.

19
Após criar sua conta, assim como para quem optou efetuar login com uma
conta existente, será necessário inserir Login e Senha. Leia os termos de serviço e
para aceitá-los clique no botão _I accept the terms of service!_ localizado na parte
inferior da tela.

Figura 10: Termos de Serviço do App Inventor.


Fonte: o Autor.

20
Na tela de boas vindas você poderá acessar os tutoriais disponíveis ou iniciar
um novo projeto em branco _START A BLANK PROJECT_ na parte inferior da tela.

Figura 11: Tela Inicial do App Inventor.


Fonte: o Autor.

Será necessário inserir um nome para o projeto. Nosso primeiro projeto se


chamará AulaTeste.

21
Após a confirmação do nome, sua tela deverá ficar como a imagem a seguir:

Figura 12: Área de trabalho do App Inventor.


Fonte: o Autor.

Antes de inserir qualquer elemento na tela, precisamos conhecer os recursos


disponibilizados, conforme destacado na imagem a seguir.

Figura 13: Área de trabalho do App Inventor com descrição.


Fonte: o Autor.
22
Na parte superior da tela, encontramos uma barra com coloração verde (cor
padrão do App Inventor que possui o nome da aplicação, o nome da tela na qual você
está trabalhando, botões que permitem que você adicione ou remova telas, um botão
que permite a publicação da aplicação na galeria e no canto direito os botões que
permitem alternar entre a confecção do layout e a programação, sobre a qual falare-
mos mais adiante.

A paleta de componentes apresenta os mesmos de maneira categorizada o


que facilitará a localização dos componentes que serão inseridos na aplicação seja
mais fácil.

No centro da tela encontramos a representação de um smartphone que será


nossa área de trabalho e na qual iremos inserir os componentes e verificaremos
como o layout ficará no dispositivo. Acima da representação temos uma caixa de
listagem que permite alterar seu tamanho para tablet size (tamanho de um tablet) ou
monitor size (tamanho de um monitor).

Ao lado direito possuímos dois painéis: o de propriedades e o de componentes.


O painel de componentes permite a visualização dos componentes que estão inseri-
dos no layout, bem como acesso à sua edição e exclusão. Já no painel de propriedades
encontramos as propriedades dos componentes selecionados. Caso você não tenha
inserido nenhum componente, a propriedade apresentada será a da tela de fundo.

A construção de aplicativos nesta ferramenta é relativamente simples, visto


que utiliza o método drag and drop, ou seja, arrastar e soltar. A codificação é feita por
blocos, o que permite que mesmo pessoas com pouca experiência em programação
consigam executá-la de forma satisfatória.

23
A imagem a seguir mostra a tela de visualização dos códigos.

Figura 14: Visualizador de códigos.


Fonte: o Autor.

O App Inventor conta com um emulador¹² que deve ser baixado¹³ e instalado no
computador para que sejam executados os testes do aplicativo em desenvolvimento.
O pacote para emulação chama-se Ai Starter e pode ser instalado no celular para que
seja executado pela conexão via USB.

Outra forma para realizar testes na sua aplicação é gerar o arquivo .apk ou
Android App e por meio de um QR code baixá-lo e instalá-lo no seu smartphone.
Vale ressaltar que como o Android não reconhece a fonte do download, ele emitirá
um alerta perguntando se realmente você deseja instalar o aplicativo. Isso acontece
porque a fonte considerada confiável é a Play Store (loja de aplicativos do Android).
Autorize a instalação e marque como confiável.

¹² Emulador é um programa que reproduz as características de um determinado ambiente, neste caso o sistema
operacional Android, e permite a execução de outros programas e aplicativos sobre ele.
¹³ Site oficial para realizar o download do emulador do App Inventor: https://appinventor.mit.edu/explore/ai2/
setup-emulator.html

24
3.1.1. Exercício Prático

Para conhecer melhor o funcionamento do App Inventor iremos realizar um


exercício que demandará tanto a manipulação das propriedades de alguns compo-
nentes como o uso da lógica para sua execução.

Nosso objetivo será desenvolver uma aplicação que possua na parte superior o
texto “Nenhum botão pressionado” (usaremos o componente Texto para Legenda)
e 2 botões que terão os textos “Botão A” e “Botão B” respectivamente. Ao pressio-
nar o Botão A, aparecerá o texto “Botão A pressionado” e, ao pressionar o Botão B,
“Botão B pressionado”. Use sua criatividade e manipule as propriedades para perso-
nalizar seu layout.

Para inserir os componentes na tela, basta clicar sobre eles e arrastar. Para edi-
tar as propriedades clique no componente e verifique as alterações no painel à direita
do monitor.

Altere a cor de fundo da sua tela usando a propriedade com este nome. Esco-
lhi cinza escuro para dar destaque à nossa aplicação. Há uma propriedade de nome
dimensionamento que deve ser observada, pois diz respeito a como o layout da sua
aplicação será exibido. Como cada usuário poderá acessá-la de um dispositivo dife-
rente, usamos sempre a opção responsivo.

O alinhamento vertical e horizontal diz respeito à localização dos elementos


que serão posicionados na tela. Utilizaremos centro para as duas opções.

¹⁴ Um aplicativo com design responsivo é aquele que se adequa à tela do dispositivo no qual é aberto.

25
Insira o Texto para Legenda e altere para negrito, tamanho 24, texto “Ne-
nhum botão pressionado”. O alinhamento deste componente se refere ao alinha-
mento do texto dentro do espaço destinado para o mesmo.

Figura 15: Prévia da aplicação em desenvolvimento.


Fonte: o Autor.

26
Insira os botões e altere para itálico , tamanho 24, escolha uma cor de fundo
para cada botão e defina sua forma. A forma escolhida foi “arredondado”. É possível
renomear os componentes para facilitar sua programação, para isso basta selecioná-
-lo e clicar no botão Renomear na aba Componentes.

Figura 16: Aba componentes.


Fonte: o Autor.

Sugerimos que altere os botões para BotãoA e BotãoB e a Legenda1 para Texto.

27
Sua aplicação deverá ficar similar à imagem a seguir:

Figura 17: Tela final da aplicação.


Fonte: o Autor.

28
Finalizado o layout, passaremos para a programação da aplicação. Clique no
botão Blocos situado no canto direito da tela.

A princípio a tela aparecerá em branco pois não adicionamos nenhum código.


Sua tela deverá ficar parecida com a imagem a seguir:

Figura 18: Tela Blocos.


Fonte: o Autor.

29
À esquerda, na aba Blocos, vemos tanto a categorização dos comandos quan-
to os elementos que foram inseridos no nosso layout. Para programar qualquer des-
tes elementos, clique sobre ele e aparecerão as opções disponíveis.

Em Avisos podemos verificar se existe algo no nosso código que não está ade-
quado ou errado. Temos ainda a Lixeira que permite a exclusão de blocos que não
serão usados na programação.

Iremos programar o Botão A. Para isso clique sobre ele na aba Blocos e adicio-
ne os comandos como mostra a imagem a seguir. Faça o mesmo para o Botão B.

Figura 19: Código dos botões.


Fonte: o Autor.

Os comandos apresentados ajustam a propriedade Texto da nossa legenda de


acordo com o botão pressionado.

Para testar nossa aplicação utilizaremos o emulador. Após baixá-lo e instalá-lo


no seu computador, localize o ícone do Ai2 Starter e abra-o para iniciar sua execução.

30
Em seguida surgirá uma tela conforme mostra a figura a seguir. Não execute
nenhum comando nesta tela.

Figura 20: Tela Ai2 Starter.


Fonte: o Autor.

Retorne para a janela do App Inventor e clique no meu Conectar, opção Emula-
dor. Aparecerá uma mensagem pedindo que você aguarde para que o Emulador seja
iniciado. Durante todo esse tempo não execute nenhuma ação. Após a inicialização
completa do Emulador pode ser necessário desbloqueá-lo para que o programa que
você criou seja iniciado. Aparecerá uma mensagem comunicando que o App Assisten-
te está desatualizado. Podemos atualizá-lo ou não, sendo assim, clicaremos no botão
_Agora Não_.

Figura 21: Verificação da versão do Assistente.


Fonte: o Autor.

31
Após esse passo, deverá aparecer na tela similar à imagem apresentada
abaixo e você poderá testar sua aplicação normalmente como se estivesse no seu
smartphone.

Figura 22: Emulador.


Fonte: o Autor.

Assim que você finalizar os testes, poderá fechar o emulador. Caso não vá exe-
cutar nenhum teste, feche a janela do AI2 Starter.

32
3.2. Plataforma de Prototipagem Tinkercad

Como abordado anteriormente, construir protótipos significa transformar


ideias conceituais em reais, o que, juntamente com a simulação, nos permite testar a
execução de forma idêntica à realidade. Embora neste momento utilizemos o Tinker-
cad para realizar a prototipagem e simulação, o nosso objetivo é apresentar possibili-
dades mesmo que você não disponha da placa física durante as aulas.

O Tinkercad é uma plataforma gratuita online que permite a modelagem tri-


dimensional e, por ser de fácil utilização, é muito usada para estudos. Permite traba-
lharmos com Modelagem 3D, Circuitos ou Blocos de Código. Para a prototipagem dos
nossos exercícios utilizaremos a opção Circuitos.

Figura 23: Circuitos com Tinkercad.


Fonte: o Autor.

33
Para iniciar a prototipação é necessário criar uma nova conta, caso você não te-
nha feito isso na Etapa Inspirar. Ao acessar a plataforma, clique em Circuitos no Menu
lateral esquerdo e, em seguida, no botão Criar Novo Circuito na parte central da tela.

Você terá acesso a uma tela conforme apresentado a seguir, na qual você
poderá alterar o nome do projeto clicando sobre o nome ao lado do logotipo, pode-
rá inserir em seu projeto os componentes que são apresentados no painel direito,
incluir código ou iniciar a simulação. Outros recursos exploraremos durante o desen-
volvimento dos nossos exercícios.

Figura 24: Página Novo Circuito.


Fonte: o Autor.

Na barra de Componentes, ao deslizar a barra de rolagem, você encontrará a


placa do Arduino. Ao clicar sobre ela e posicionar o cursor do mouse sobre a área em
branco, você poderá posicionar a placa e nomeá-la. Digite o nome desejado e pres-
sione a tecla Enter.

34
Figura 25: Campo para nomeação dos componentes.
Fonte: o Autor.

Para executar os exercícios do tópico “Linguagem de Programação Arduino”


será importante que você acrescente um LED na sua placa, porém, já é possível testar
o Blink clicando observando o LED onboard.

Figura 26: Painel Código.


Fonte: o Autor.

35
Ao clicar no botão Código, você verá que um painel se abrirá do lado direito da
tela no qual será possível visualizar no canto superior a opção Blocos, que permite a
visualização da nossa programação de três maneiras: como blocos, com visão ape-
nas do código em blocos de comando ou blocos e código textual (que tanto apresen-
ta os blocos como os comandos que vemos na Arduino IDE quanto texto, no qual só é
possível visualizar os comandos de forma textual).

O botão Baixar Código permite que baixemos nosso código em .ino, for-
mato que pode ser manipulado pela Arduino IDE e depois carregado para a placa.

Na parte inferior, o sistema mostra o botão que dá acesso ao monitor serial,


que simula uma tela para seu Arduino na qual podemos apresentar dados coletados
de um sensor, por exemplo.

Adicione um LED à placa, conectando o lado esquerdo ou catodo (lado mais


reto do LED) ao GND e o lado direto ou anodo, à porta 13. Essa alteração será impor-
tante para executarmos os códigos com as estruturas de controle.

Figura 27: LED conectado à porta 13.


Fonte: o Autor.

36
Inicie a simulação e você verá que, além do onboard, o LED que acabamos de
conectar executa a programação Blink. Você também deve ter notado que ao acen-
der o LED aparece um ponto de exclamação com uma mensagem de que a saída da
placa é superior à sua corrente máxima e por isso ele pode ter sua vida útil reduzida.

Como solucionar isso?

Se você pensou que deveríamos incluir um resistor, você acertou, pois é ele
que vai aumentar a vida útil do LED, visto que reduzirá a carga de alimentação. O
resistor deve sempre ser inserido no lado positivo (anodo). Ao clicar na extremidade
de qualquer componente eletrônico e arrastar, você terá a inserção de um fio. Inclui-
remos um resistor de 220 ohms.

Figura 28: Prototipagem LED com resistor.


Fonte: o Autor.

O código Blink é inserido automaticamente ao iniciarmos um novo circuito,


portanto, após a prototipagem basta clicar em Iniciar Simulação. A seguir abordare-
mos outros exercícios com LEDs e outros componentes.

37
Agora que já realizamos o teste com o Tinkercad, iremos alterar nosso projeto
para uso da protoboard. Seu projeto deve estar similar ao apresentado na figura a
seguir.

Figura 29: Prototipagem com Protoboard.


Fonte: o Autor.

Tanto fisicamente quanto no Tinkercad é possível realizarmos nossa prototi-


pação com ou sem a protoboard, porém, como já foi abordado anteriormente, no
caso da prototipagem física, em alguns casos, seria necessário realizar soldagem dos
componentes para que funcionassem adequadamente.

38
3.3. Prototipação com a Plataforma Arduino

A seguir são apresentados alguns exercícios que deverão ser realizados com
a plataforma de prototipação Tinkercad ou com a placa física do Arduino, mas que
apresentam conteúdos importantes para que você consiga desenvolver a solução
para o estudo de caso.

3.3.1. Exercício 1: Sensor de Luminosidade

Proposta do Exercício: criar um protótipo no qual o sensor de luminosidade


apresenta no monitor serial se o ambiente está claro ou escuro.

Prototipagem:

Figura 30: Fotoresistor.


Fonte: o Autor.

Resolução:

const int sensor= A0;


int luminosidade = 0;

39
void setup (){
Serial.begin(9600);
}

void loop (){


luminosidade = analogRead(sensor);

if (luminosidade > 300) {


Serial.println (“AMBIENTE CLARO”);
}else {
Serial.println (“AMBIENTE ESCURO”);
}
delay (500);
}

3.3.2. Exercício 2: Sensor de Luminosidade com acendimen-


to de LED
Proposta do Exercício: criar um protótipo no qual o sensor de luminosidade
apresenta no monitor serial se o ambiente está claro ou escuro e caso o ambiente
esteja escuro (luminosidade menor que 945) o LED deverá ser aceso.

Prototipagem:

Figura 31: Fotoresistor e LED.


Fonte: o Autor.

40
Resolução:

int led = 10; //Led no pino 10


int sensor = A2; //LDR no pino analógico
int luminosidade = 0; //Valor lido do LDR

void setup() {
pinMode(led,OUTPUT); //define a porta 7 como saída
Serial.begin(9600); //Inicia a comunicação serial
}

void loop() {
///ler o valor do LDR
luminosidade = analogRead(sensor); //O valor lido será entre 0 e 1023

//se o valor lido for menor que 800, liga o led


if (luminosidade<= 945) digitalWrite(led,HIGH);
// senão, apaga o led
else digitalWrite(led,LOW);

//imprime o valor lido do LDR no monitor serial


Serial.println(luminosidade);
delay(100);
}

3.3.3. Exercício 3: Sensor de Movimento

Proposta do Exercício: criar um protótipo no qual o sensor de movimento


acende um LED sempre que detectar movimento

Prototipagem:

41
Prototipagem:

Figura 32: Sensor de Movimento e LED.


Fonte: o Autor.

Resolução:

const int sensor = 2; //pino digital utilizado pelo sensor de presença


const int led = 4; //pino digital utilizado pelo led

int movimento_sensor = 0;

void setup(){
pinMode(led, OUTPUT);
pinMode(sensor, INPUT);
Serial.begin(9600);
}

42
void loop(){
movimento_sensor = digitalRead(sensor);

if (movimento_sensor == HIGH){ //se o sensor identificar movimento


digitalWrite(led, HIGH); //acende o LED
}
else
{ //SENÃO
digitalWrite(led, LOW); //apaga o LED
}
}

3.3.4. Exercício 4: Desafio

Proposta do Exercício: criar um protótipo no qual o sensor de presença apre-


senta no monitor serial se há movimento ou não e além de acender o LED, dispara
um alarme (utilizaremos aqui um buzzer piezo).

Prototipagem:

Figura 33: Sensor de movimento com alarme.


Fonte: o Autor.

43
Resolução:

const int sensor = 2; //pino digital utilizado pelo sensor de presença


const int led = 4; //pino digital utilizado pelo led
int buzina = 10; //pino digital usado pelo buzzer piezo

int movimento_sensor = LOW; //inicialização do sensor como LOW

void setup(){
pinMode(led, OUTPUT);
pinMode(sensor, INPUT);
pinMode(buzina, OUTPUT);
Serial.begin(9600);
}

void loop(){
movimento_sensor = digitalRead(sensor);

if (movimento_sensor == HIGH){ //se o sensor identificar movimento


digitalWrite(led, HIGH); //acende o LED
playTone(300, 160); //chama a função playTone
delay(150);
Serial.println(“Movimento Detectado!”); //impressão
}
else
{ //SENÃO
digitalWrite(led, LOW); //apaga o LED
playTone(0, 0); //chama a função playTone
delay(300);
movimento_sensor = LOW;
Serial.println(“Não há mais movimento!”); //impressão

44
}

//função que permite o som do buzzer

void playTone(long duration, int freq) {


duration *= 1000;
int period = (1.0 / freq) * 1000000;
long elapsed_time = 0;
while (elapsed_time < duration) {
digitalWrite(buzina,HIGH);
delayMicroseconds(period / 2);
digitalWrite(buzina, LOW);
delayMicroseconds(period / 2);
elapsed_time += (period);
}}

45
Unidade 4
Ao longo desta Unidade apresentaremos a proposta de solução, as considera-
ções sobre o estudo de caso e sugestões para estudos futuros.

4.1. Proposta de Solução do Estudo de Caso

Agora que você já conhece nosso estudo de caso e tem domínio dos conheci-
mentos necessários para solução do mesmo, serão apresentadas as ferramentas de
prototipagem que utilizaremos para solução.

Conforme abordado na Unidade 2, automatizar uma casa completa é um pro-


jeto que leva tempo, tem um custo relativamente elevado e precisaria de um estudo
inclusive em termos de infraestrutura. Nosso objetivo, então, é criar um sistema
mobile capaz de gerenciar remotamente o acendimento de 3 LEDs que poderiam ser
substituídos por uma luminária ou outro dispositivo. Também seria possível adaptar
os sensores estudados nas seções anteriores para inclusão neste projeto.

4.1.1. Proposta de Aplicação usando App Inventor

A tela da aplicação deverá estar similar a imagem a seguir. O ícone do Bluetoo-


th foi atribuído ao componente Escolhe Lista, do qual removemos o texto. Os botões
foram personalizados com as cores dos LEDs e abaixo deles há uma legenda que está
com tamanho 14, negrito e fundo cinza claro.

46
Algumas imagens poderão ter tamanho muito grande, portanto, se necessário
utilize as propriedades Altura e Largura para ajustar suas dimensões.

Figura 34: Sensor de movimento com alarme.


Fonte: o Autor.

47
Você deve incluir o componente Cliente Bluetooth e o Notificador. Como são
itens que não aparecerão na aplicação, ficaram posicionados abaixo da imagem do
smartphone conforme mostra a figura a seguir.

Figura 35: Componentes invisíveis


Fonte: o Autor.

Renomeamos os componentes como mostra a imagem abaixo para facilitar a


programação.

Figura 36: Nomeação dos componentes da aplicação.


Fonte: o Autor.

48
Iniciaremos, a partir de agora, a programação dos nossos componentes. O
componente renomeado para Bluetooth deve receber a seguinte programação:

Figura 37: Programação da lista.


Fonte: o Autor.

O bloco antes de escolher construirá uma lista que receberá os endereços e


nomes dos dispositivos pareados ou próximos. Já o bloco depois de escolher define
as ações que serão executadas após a seleção de um item da lista. Neste caso, será
chamado o endereço do ClienteBluetooth de acordo com a seleção da lista. Logo após
verifica-se se o Bluetooth está conectado e mostra o alerta por meio do Notificador.

A programação dos botões será praticamente a mesma, necessitando apenas


que sejam alterados os caracteres para envio dos valores. Em cada botão haverá um
bloco Quando__.Clique no qual serão definidas as ações executadas quando o botão
for clicado. Utilizaremos os caracteres “a”, “b” e “c” para os botões vermelho, verde e
amarelo respectivamente.

Figura 38: Programação dos botões.


Fonte: o Autor.
49
4.1.2. Proposta de Prototipação e Codificação

Para utilizar o módulo HC-05 é necessário configurá-lo ou o mesmo operará


em modo secundário, com algumas configurações pré-estabelecidas como veloci-
dade entre 9600 e 38400, conectividade aberta que possibilita a comunicação com
qualquer componente, desde que insira a senha do dispositivo. A senha padrão, ge-
ralmente, é 1234 ou 0000 para módulos HC-05 novos ou inalterados.

Inicialmente devemos parear o módulo com algum dispositivo móvel com


Bluetooth que pode ser seu smartphone, tablet, entre outros. Na construção do
circuito elétrico, encaixe os terminais como mostra a figura a seguir e os pinos RX-TX
nas portas digitais 11 e 10 respectivamente. O Arduino será utilizado primeiramente
para visualizar o módulo, através de algum dispositivo móvel.

Figura 39: Conexão do HC-05 para pareamento.


Fonte: o Autor.

50
Conecte o Arduino ao computador por meio do cabo USB e procure o módulo
na lista de dispositivos Bluetooth. Normalmente, o nome do dispositivo será apre-
sentado como um conjunto de letras e números ou simplesmente como HC-05. Para
parear use a senha 1234 ou 0000.

Para a prototipação da nossa atividade, iremos usar os 3 LEDS e manter a co-


nexão do módulo conforme descrito anteriormente.

Figura 40: Protótipo da Solução.


Fonte: o Autor.

Código para o Arduino:

#include <SoftwareSerial.h> // Comandos Seriais

SoftwareSerial HC05(10, 11); // TX-RX

51
int state = 0; //Controla o status do LED Verde
int state2 = 0; //Controla o status do LED Vermelho
int state3 = 0; // Controla o status do LED Azul

//Criação das constantes de acordo com os pinos usados


#define vermelho 4
#define verde 3
#define amarelo 2

void setup()
{
Serial.begin(9600); /* Taxa de transmissão na serial */
HC05.begin(9600); /* Taxa de transmissão do Módulo */

pinMode(vermelho, OUTPUT); /* Declara verde como OUTPUT */


pinMode(verde, OUTPUT); /* Declara azul como OUTPUT */
pinMode(amarelo, OUTPUT); /* Declara vermelho como OUTPUT */

}
void loop()
{
// Armazena os valores de leitura de HC05 na variável leitura
int leitura = HC05.read();

switch (leitura)
{
case ‘a’: // Caso receba o caractere ‘a’
state = !state; // substitui o valor de state entre 0 e 1
digitalWrite(vermelho, state); /* state aciona ou desliga o LED */
break;

52
case ‘b’: /* Caso receba o caractere ‘b’ */
state2 = !state2; // substitui o valor de state entre 0 e 1
digitalWrite(verde, state2); // state aciona ou desliga o LED
break;

case ‘c’: /* Caso receba o caractere ‘c’


state3 = !state3;// substitui o valor de state entre 0 e 1
digitalWrite(amarelo, state3);// state aciona ou desliga o LED
break;
}
}

4.1.3. Considerações sobre o Estudo de Caso

Nosso estudo de caso propõe a automação de um cômodo ou parte de um


cômodo de uma residência que, a princípio, não dispõem de dispositivos inteligen-
tes. Como o cliente deseja o monitoramento remoto, optamos por desenvolver uma
solução Android. É importante verificar que, caso você deseje desenvolver uma solu-
ção de automação residencial completa, elementos como: custo, tempo de desenvol-
vimento do software, projeto físico e instalação física dos dispositivos precisam ser
levados em consideração na etapa de planejamento. Quanto mais dispositivos forem
adicionados ao projeto, mais tempo você levará para implementá-lo e maior será o
custo.

Caso deseje prosseguir seus estudos e desenvolver uma solução que abranja
outros dispositivos além do apresentado na solução do estudo de caso, é importante
que você não trabalhe isoladamente, mas busque por conhecimentos e até profissio-
nais que te auxiliem, especialmente, na etapa de planejamento.

Vale ressaltar que estamos voltando nossos estudos para projetos residenciais
que trabalham com automação e IoT, o que envolve, dentre outras coisas, o armaze-
namento em nuvem e o monitoramento de dados. A seguir, apresentamos sugestões
de estudos para quem desejar prosseguir nesta área.

53
4.2. Sugestão para Estudos

Abaixo apresentamos uma coleção de links que abordam o conteúdo de IoT e


automação com Arduino. Esperamos que você os use para aprofundar seus estudos
nas áreas tratadas neste curso.

Temas Links
https://www.circuitar.com.br/tutoriais/
index.html
Tutoriais Arduino
https://www.arduino.cc/en/Tutorial/
HomePage

IoT - Conceitos e Aplicações https://www.infowester.com/iot.php

Ferramenta de Prototipagem https://fritzing.org/

https://projects.raspberrypi.org/en/
Tutorial Raspberry Pi
projects/raspberry-pi-getting-started
https://flaviobabos.com.br/bluetooth-
Tutorial Módulo Bluetooth
-arduino/
https://pplware.sapo.pt/gadgets/
Tutorial Módulo Wifi hardware/tutorial-modulo-wifi-esp-
8266-no-arduino/
Artigo: visão sistêmica de https://www.embarcados.com.br/pro-
um projeto em IoT jeto-iot/

54
4.3. Compartilhando Conquistas

Agora que chegamos ao final do nosso curso, você deve realizar a Etapa Com-
partilhar que será composta por duas atividades.

Parte 1: ao finalizar a solução do estudo de caso que foi abordada na seção


4.1, você deverá gerar imagens (print) com a prototipação e a codificação. Realize o
upload na plataforma do QualiFacti, no link específico que será disponibilizado na aba
Atividades.

Figura 41: Plataforma QualiFacti - Etapa Compartilhar.


Fonte: o Autor.

55
Parte 2: você receberá uma imagem com o tema do curso e deverá compar-
tilhá-la em suas redes sociais (Instagram, Facebook, LinkedIn, Twitter, etc) contando
um pouco da sua experiência e também algo relevante que tenha aprendido nesses
dias. Use as hashtags #qualifacti #eufizqualifacti #facti #turma36 #IoT para que pos-
samos interagir com você no post.

Você terá até o dia 25/05/2022 para finalizar as etapas de compartilhamento.

Estamos muito felizes por você ter chegado até aqui. Esperamos que seja breve
nosso reencontro para que possamos compartilhar novas experiências de aprendizado!

Referências
ALVES, Robinson Samulak. Smart home: 10 produtos para deixar sua casa
inteligente. 2021. Disponível em: https://www.tecmundo.com.br/produto/217957-s-
mart-home-10-produtos-deixar-casa-inteligente.htm. Acesso: 01 de abril de 2022.

ARDUINO. Documentação de Referência da Linguagem Arduino. Disponível


em: https://docs.arduino.cc/tutorials/. Acesso: 5 de março de 2022.

KIANE, Rayse. Afinal, o que é IoT? 2019. Disponível em: https://via.ufsc.br/afi-


nal-o-que-e-iot . Acesso: 01 de abril de 2022.

VOGUE. Amazon Alexa: o que a assistente virtual pode fazer por você em
casa. 2022. Disponível em: https://vogue.globo.com/Shopping/noticia/2022/02/ama-
zon-alexa-o-que-assistente-virtual-pode-fazer-por-voce-em-casa.html. Acesso: 01 de
abril de 2022.

WEG. Automação residencial: o que é, como funciona e quais as vantagens.


2020. Disponível em: https://www.weg.net/tomadas/blog/tecnologia/automacao-resi-
dencial-o-que-e-como-funciona-e-quais-as-vantagens/. Acesso: 04 de abril de 2022.

56

Você também pode gostar