internet das coisas ferramentas para prototipação · internet das coisas ferramentas para...

39
http://www.boscojr.com/iot Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior [email protected] > www.boscojr.com

Upload: trinhdiep

Post on 10-Dec-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

Internet das Coisas Ferramentas Para Prototipação

João Bosco Teixeira [email protected]

> www.boscojr.com

Page 2: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

Prototipação

O SOFTWARE;

O HARDWARE;

E O FIRMWARE.

Page 3: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

O SOFTWARE

A IDE, do inglês Integrated Development Environment ou Ambiente de Desenvolvimento Integrado, reúne todo o conjunto de ferramentas que você precisa para desenvolver para as diversas placas Arduíno e diversas outras placas, tais como ESP32, ST32, NodeMCU e WEMOS D1.

Encontre a IDE do Arduino

Page 4: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

O SOFTWARE - IDE

Menu

Barra de Botões

Editor deTextos

Área deMensagens

Novo

SalvarCarregar

Gravar noArduíno

Compilar

Page 5: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

O SOFTWARE: Suporte a Wemos

Menu Ferramentas

placa → Gerenciador de Placas:

Digite Wemos (se não estiver instalado selecione a opção instalar)

Page 6: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

O Hardware

WEMOS D1 WEMOS D1 MINI

Page 7: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

SPECS

D1 D1 Mini

Operating Voltage 3.3V 3.3V

Digital I/O Pins 11 11

Analog Input Pins 1(Max input: 3.2V) 1(Max input: 3.2V)

Clock Speed 80MHz/160MHz 80MHz/160MHz

Flash 4M bytes 4M bytes

Length 68.6mm 34.2mm

Width 53.4mm 25.6mm

Weight 25g 3g

Page 8: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

O FIRMWARE

“Em eletrônica e computação, frmware é uma classe específca de software de computador que fornece controle de baixo nível para o hardware específco do dispositivo.” (Wikipédia)

No caso da plataforma aqui trabalhada você gera um programa (sketch) em uma linguagem de alto nível (C++ Modifcada) e a IDE gera o binário (Firmware) em linguagem de máquina e transfere para a memória da Placa onde é executado.

Page 9: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

O FIRMWARE – o Sketch

Menu Arquivos → Exemplo → Basic → Blink

Um sketch deve ter pelo menos duas funções: setup e loop.

Setup: Executada apenas 1 vez, usada para fazer as confgurações no controlador.

Loop: Executa infnitamente, é onde deve ser escritos os comandos que vão compor o programa que o Arduíno deve executar.

Page 10: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

O FIRMWARE – Setup e Loop

Page 11: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

FIRMWARE - Blink

Passos:

1: Confgurar o pino LED como saída

2: Colocar o pino LED em nível alto

3: Aguardar 1 segundo

4: Colocar o pino LED em modo baixo

5: Aguardar 1 Segundo

6: Ir para o passo 2

Page 12: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

O FIRMWARE – Gravando a Placa

Antes: Selecionar a Placa:

Menu Ferramentas → Placa → Wemos D1(R2) e Mini

Depois : Ctlr + U ou o botão

Estará concluído quando a mensagem “Carregado.” aparecer na Área de Mensagens

O Led deverá piscar em intervalos de 1S

Page 13: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

ATIVIDADE

Altere o programa Blink, de forma que o LED pisque a cada passagem pelo loop conforme o gráfco abaixo (os Tempos estão em milissegundos:

100 100 100 100100010 10

Page 14: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

Serial

Page 15: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

SERIAL - Funções

A Biblioteca padrão do Arduino trás consigo uma série de funções permitem ler e escrever da porta serial das placas.

Serial.begin(int velocidade): Inicia a porta serial

int Serial.read(): Ler um byte da porta serial

Essa função não retorna até que haja um byte

Serial.print( char *s ): Imprime uma cadeia de caracteres na porta serial.

Serial.println( char *s ): O mesmo do anterior só que imprime um “new line” no fnal da string

int Serial.available(): Aguarda um byte na porta.

Page 16: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

SERIAL – Escrevendo Mensagens

Altere o programa Blink conformeao lado e grave na placa

Para acessar o terminal Serial Menu Ferrementas → Monitor Serial

Page 17: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

Porque HIGH desliga e LOW liga, não deveria ser o contrário?

Page 18: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

SERIAL – Entrada de Dados

Altere o programa Blink conformeao lado e grave na placa

No terminal serial ‘D’ ou ‘d’ vai desligar;Qualquer outra tecla deve ligar o led

Page 19: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

SERIAL - Atividade

Modifque o programa anterior de forma:

Ao teclar ‘D’ ou ‘d’ o led fque apagado

Ao teclar outra coisa o led fque piscando

Page 20: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

Entrada e Saída

Page 21: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

SPECS

D1 D1 Mini

Operating Voltage 3.3V 3.3V

Digital I/O Pins 11 11

Analog Input Pins 1(Max input: 3.2V) 1(Max input: 3.2V)

Clock Speed 80MHz/160MHz 80MHz/160MHz

Flash 4M bytes 4M bytes

Length 68.6mm 34.2mm

Width 53.4mm 25.6mm

Weight 25g 3g

Page 22: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

Analog Input e I/O PINS

INPUT/OUTPUT – Entrada e Saida

Por onde é feita a comunicação com o mundo externo.

PLACA

SENSOR

Atuador

Ambiente

Analog Input ou I/O Pins

I/O PIN

Page 23: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

I/O Reference

Page 24: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

I/O Reference

Page 25: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

ENTRADA - TIPOS

Digital (Pinos tipo D)

Mede Voltagem no pino em relação a GND

digitalRead(Pino)

= Zero lógico → menor 0.8v

= Um lógico → maior 2.7v

Analógica (Pino A0)

analogRead(pino)

0 até 1023

Page 26: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

Esquema

BOTAO DA ENTRADA D8 para GND

D8 não rola, porque?

LDR de GND para A0

Resitor 10K de 3.3V para A0

GND

LDR

10K

Page 27: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

ENTRADA – Analog e Digital

Escreva o programa conformeao lado e grave na placa

Abra o terminal serial, observe os valoresDigital e Analogico alterando-se conformese cobre o LDR ou aperta o botão.

Page 28: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

SAIDA – Digital e PWN

Digital (Pinos tipo D)

digitalWrite(pino,estado)

Estado = LOW - Zero lógico

Estado = HIGH - Um lógico

Analógica (Pino Tipo D com função PWM)

analogWrite(pino, valor)

Valor de 0 - 255

Page 29: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

PWM

Page 30: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

NUNCA... JAMAIS… DE JEITO ALGUM...

Ligue os pinos Digitais ou Analógicos diretamente ao Terra ou ao Positivo (Vin ou 3.3v/5v). Isso pode provocar um curto e queimar a placa. Veremos como garantir uma referencia para um pino de entrada;

Ligue um pino de I/O a outro, a mesma razão acima;

aplique uma voltagem maior que 3.3v/5v a uma entrada isso vai danifcar a porta e talvez todo o circuito;

Ultrapasse a corrente total que o Arduino pode fornecer, cerca de 200mA.

Maiores detalhes em:

http://ruggedcircuits.com/html/ancp01.html

Page 31: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

E COMUNICAÇÃO PELA “INTERNET”?

E COMUNICAÇÃO PELA “INTERNET”E COMUNICAÇÃO PELA “INTERNET”

Page 32: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

PROTOCOLOS

Para chegar a até a placa através da internet temos que trabalhar com algum dos protocolos suportados.

Camada de Rede Sempre IP

Camada de Transporte (TCP/UDP/ICMP)

Camada de Aplicação (SNMP, HTTP, RAW)

PlacaCliente

Page 33: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

PROTOCOLOS - HTTP

JUSTIFICATIVA

URI

MÉTODOS

API

Page 34: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

EXEMPLO 1 - HTTP SERVER

Procurar nos exemplos HelloServer

Ajustar:

const char* ssid = "........";

const char* password = "........";

Verifcar no monitor serial o IP da Placa

Acessar Via Browser

Page 35: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

EXEMPLO 2 - HTTP para Ligar e Desligar o Led

Ajustar no Setup

Led como output

pinMode(LED_BUILTIN, OUTPUT);

Tratamento do Liga e Desliga

server.on("/l",[](){ digitalWrite(LED_BUILTIN, LOW); });

server.on("/d",[](){ digitalWrite(LED_BUILTIN, HIGH); });

Grave e teste no browser

Algum inconveniente?

Page 36: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

EXEMPLO 3 – Enviando Mensagem de Retorno para o Browser

server.on("/l",[](){ digitalWrite(LED_BUILTIN, LOW); server.send(200, "text/plain", "LIGA!"); });

server.on("/d",[](){ digitalWrite(LED_BUILTIN, HIGH); server.send(200, "text/plain", "DESLIGA!"); });

Page 37: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

ATIVIDADE

Modifque o código para entregar, pelo browser, a leitura de uma das entradas da placa?

Page 38: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

Imagine um cenário com centenas de dispositivos:

Seria viável gerenciá-los desta forma?

Page 39: Internet das Coisas Ferramentas Para Prototipação ·  Internet das Coisas Ferramentas Para Prototipação João Bosco Teixeira Junior boscojr@gmail.com >

http://www.boscojr.com/iot

MQQT em CENAS DOS PRÓXIMOS CAPITULOS