Skip to content

azabraao/fiap_iot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Material IOT 2020

Estrutura das aulas

Este material tem como objetivo simular um ambiente de trabalho de desenvolvimento real, ou o mais próximo possível deste cenário. As quatro primeiras aulas serão bases teóricas que possuem grande importância e precisam ser estudadas, sendo todas as demais aulas práticas.

As aulas práticas sempre abordarão a base teórica de um mesmo conteúdo explicado anteriormente em aula, ou seja, um user history (que se resume basicamente em um caso que, contando uma história, tem como objetivo trazer uma problemática a ser resolvida). No final destas, teremos também alguns desafios práticos. Caso queira consultar posteriormente o conteúdo já abordado em aula, basta ir até a pasta “aula em específico”.

Cada aula poderá ser encontrada em uma pasta seguindo o seguinte padrão: semestre/aula; apresentará um ou mais código(s)/arquivo(s) de exemplo; e, por fim, um README.md, onde constarão as instruções da aula.

Os READMEs são arquivos escritos em markdown , linguagem muito utilizada para criar documentações de projetos. Todas as aulas estarão presentes nesse repositório do github. Para acompanhar as aulas, você pode baixar ou clonar o projeto, ou simplesmente usar o navegador para visitar as aulas e acessar os arquivos de exemplo.

Durante os dois semestres serão realizados alguns projetos, desenvolvidos para exemplificar os conceitos aprendidos de maneira prática.

Segue abaixo a história base deste projeto:

Você acaba de ser contratado pela ACME Corporation. No departamento em que atuará, de IOT e inovação, o seu time possui algumas funções principais, sendo elas: desenvolvedor, responsável por desenvolver os códigos das soluções; Sysadmin, responsável por cuidar de toda a infraestrutura e serviços utilizados pelo time; e engenheiro elétrico, responsável por toda a parte de hardware e eletrônica.

Como todo o time, citado anteriormente, participa ativamente das decisões, não existe uma pessoa que exerça a função específica de gerenciar o projeto.

Para este ano, algumas metas foram definidas, e a direção da ACME fechou contrato com uma empresa para soluções residenciais. Pela empresa contratada, foi solicitada a realização de três projetos durante o ano em questão:

  • Monitoramento de hortas: Esse projeto visa criar uma maneira de coletar dados e diminuir o desperdício de água, colhendo informações sobre o jardim e irrigando-o automaticamente. Os dados coletados deverão ser exibidos em gráficos para o cliente final, para que este possa acompanhar se tudo está se desenvolvendo conforme o esperado.

  • Alimentador de pet: Para os donos de animais que ficam muito tempo fora de casa, seja por motivo de trabalho, estudo ou até mesmo viagens, esse projeto possibilita a estes pets o acesso a uma alimentação automatizada. Alguns requisitos sobre a abordagem ficarão em aberto para que os membros do time façam juntos a melhor escolha. Uma sugestão para este projeto é trabalhar com uma espécie de timer para criar uma rotina de alimentação para os animais, podendo ou não ser acionado manualmente.

  • Fechadura com RFID: Este projeto visa criar uma rede de segurança entre fechaduras. A ideia é desenvolver uma fechadura que possa ser aberta por senha ou RFID, e que funcione em conjunto com outras do mesmo tipo. Desta forma, as chaves criarão uma rede interna que, em caso de falha, indisponibilidade ou violação de alguma das fechaduras, possa levar ao travamento automático das demais, até que um segundo comando seja dado.

No primeiro mês na empresa, você terá um treinamento onde aprenderá mais sobre arduino, programação e eletrônica. Após esta etapa, você começará a dar vida a estes projetos. Nossa deadline é até o final do ano. Precisamos no primeiro semestre criar os protótipos para, no segundo, começar a integrar o restante da infraestrutura.

Primeiro semestre

Caso não possua um Arduino, você pode usar o tinkercad para emular um.

  • Aula 1 - Arduino, tipos, instalação da IDE.

  • Aula 2 - Introdução à lógica da programação.

  • Aula 3 - Eletrônica básica.

  • Aula 4 - Arduino getting started.

  • Aula 5 - Operações lógicas - if, else, else if. - jardim

  • Aula 6 - Controle de repetição - Loops for e while. - pet feeder

  • Aula 7 - Funções e retornos. - pet feeder

  • Aula 8 - Destrinchando o git. - jardim

  • Aula 9 - Arrays e estruturas de dados. - petfeeder

  • Aula 10 - Protothreading. - jardim

  • Aula 11 - Projetos com alimentação externa. - jardim

  • Aula 12 - Introdução ao RFID. - tranca

  • Aula 13 - Criando uma lib. tranca

  • Aula 14 - RF - Rádio frequência. - tranca

  • Aula 15 - Mesh network. - tranca

Segundo semestre

Caso não tenha um raspberry, temos algumas maneiras de emular um(em inglês, mas mostra três métodos) ou apenas usando QEMU em portugues.

  • Aula 1 - Introdução ao raspberry pi e dispositivos de borda.

  • Aula 2 - Configuração inicial e comandos administrativos.

  • Aula 3 - Introdução a Python.

  • Aula 4 - Estruturas de dados no python.

  • Aula 5 - Decisões e controles de repetição no python.

  • Aula 6 - Funções no python.

  • Aula 7 - Integração Arduino e Rasp, comunicação serial.

  • Aula 8 - APIs e requests http.

  • Aula 9 - Usando o docker na infraestrutura.

  • Aula 10 - Time series databases, Introdução ao influx.

  • Aula 11 - Introdução à monitoração com Grafana.

Hardware

Para um melhor acompanhamento das aulas, é sugerido que tenha em mãos os itens listados abaixo. Para a montagem dos protótipos em si, ainda faltarão algumas peças, que podem ser facilmente improvisadas. Os itens a seguir serão listados pela ordem em que serão utilizados nas aulas.

Não se preocupe caso não tenha condições de adquirir todos os itens, pois pelo menos os essenciais, para serem utilizados em aula, serão levados pelo professor. Caso escolha usar as soluções virtualizadas, é importante ressaltar que temos alguns problemas de consistência, já que um emulador nunca apresentará os mesmos problemas de um hardware de verdade, tais como: problemas de tempo, de conexão, entre outros. Isso não torna as soluções virtuais inúteis, mas é importante ter isso em mente quando for desenvolver um projeto. Pode ser que no simulador ele funcione perfeitamente e, ao colocar para rodar de verdade, ele apresente algum problema. De qualquer forma, essa é a parte divertida do debug! :)

Segue a lista dos itens usados para os projetos:

  • Arduino Uno

Arduino Uno

  • Cabo serial (muitas impressoras utilizam esse cabo, por isso talvez você o tenha em casa)

Cabo serial

  • Micro Servo 9g SG90 TowerPro

Servo

  • Sensor de presença PIR DYP-ME003

PIR

  • Sensor higrômetro (umidade de solo)

higrometo

  • Sensor de umidade e temperatura - DHT11

DHT11

  • Módulo Sensor de Luz LDR

LDR

  • Rele 5v 1 canal

RELE

  • Solenoide para irrigação (ou um solenoide simples para testes apenas)

solenoide

  • Protoboard 830 pontos

Protoboard

  • Kit RFID Sensor e cartão/tag - RFID-RC522

MFRC522

  • Teclado Matricial de Membrana 12 Teclas

KB

  • Fechadura solenoide

Lock

  • Leds

    • 5 LEDs Vermelhos
    • 5 LEDs Verdes

leds

  • Resistores

    • 10 Resistores de 300Ω
    • 10 Resistores de 220Ω
    • 10 Resistores de 10KΩ

resistores

  • Jumpers

    • 20 Macho / Fêmea
    • 20 Macho / Macho (ou um pedaço de cabo de rede)

Jumpers

  • Raspberry Pi 3+

Raspberry

  • Fonte universal com várias tensões e plugs

Fonte

O resto fica por conta da criatividade!

About

Projeto das aulas de IOT 2020.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published