Upload
trinhdiep
View
223
Download
0
Embed Size (px)
Citation preview
http://www.boscojr.com/iot
Internet das Coisas Ferramentas Para Prototipação
João Bosco Teixeira [email protected]
> www.boscojr.com
http://www.boscojr.com/iot
Prototipação
O SOFTWARE;
O HARDWARE;
E O FIRMWARE.
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
http://www.boscojr.com/iot
O SOFTWARE - IDE
Menu
Barra de Botões
Editor deTextos
Área deMensagens
Novo
SalvarCarregar
Gravar noArduíno
Compilar
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)
http://www.boscojr.com/iot
O Hardware
WEMOS D1 WEMOS D1 MINI
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
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.
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.
http://www.boscojr.com/iot
O FIRMWARE – Setup e Loop
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
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
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
http://www.boscojr.com/iot
Serial
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.
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
http://www.boscojr.com/iot
Porque HIGH desliga e LOW liga, não deveria ser o contrário?
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
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
http://www.boscojr.com/iot
Entrada e Saída
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
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
http://www.boscojr.com/iot
I/O Reference
http://www.boscojr.com/iot
I/O Reference
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
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
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.
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
http://www.boscojr.com/iot
PWM
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
http://www.boscojr.com/iot
E COMUNICAÇÃO PELA “INTERNET”?
E COMUNICAÇÃO PELA “INTERNET”E COMUNICAÇÃO PELA “INTERNET”
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
http://www.boscojr.com/iot
PROTOCOLOS - HTTP
JUSTIFICATIVA
URI
MÉTODOS
API
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
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?
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!"); });
http://www.boscojr.com/iot
ATIVIDADE
Modifque o código para entregar, pelo browser, a leitura de uma das entradas da placa?
http://www.boscojr.com/iot
Imagine um cenário com centenas de dispositivos:
Seria viável gerenciá-los desta forma?
http://www.boscojr.com/iot
MQQT em CENAS DOS PRÓXIMOS CAPITULOS