COMUNICAÇÃO WIFI ESP /Cortex-M0/ AppInventor

Slides:



Advertisements
Apresentações semelhantes
Aula 13 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI.
Advertisements

Renato Abreu ADMINISTRAÇÃO DE REDES EM SOFTWARE LIVRE Administração de Redes em Software Livre – GNU/Linux Servidor DHCP Professor: Renato Abreu.
Ministério da Defesa INCRA SIPAM Tutorial Qgis Conexão aos Serviços Disponibilizados pelo INCRA Coordenação-Geral de Cadastro e Cartografia 30 de novembro.
Ministério da Defesa INCRA SIPAM Introdução ao QGIS Conexão com serviços WMS e WFS no QGIS.
Acesso Remoto Rede de Comunicação de Dados Prof. Cristiano José Cecanho.
Apt-get e sources.list Um breve resumo prático. O que é o APT ?? Basicamente por ser um software livre qualquer pessoa pode pegar o código fonte do Linux.
CCNA3 Conceitos Básicos de Switching e Roteamento Intermediário Módulo 1 VLSM – Subredes com máscaras variáveis Roteamento RIP versão 2 1 Tópicos Especiais.
Relatórios.  O Relatório é um componente ActiveX chamado ActiveReport, que permite a visualização e impressão de valores instantâneos de variáveis do.
PROTOCOLOS Um protocolo é uma convenção ou padrão que controla e possibilita uma conexão, comunicação ou transferência de dados entre dois sistemas computacionais.
Curso de extensão em Administração de redes com GNU/Linux Italo Valcy - Gestores da Rede Acadêmica de Computação Departamento de Ciência.
Preceitos básicos da Introdução à informática: João Paulo de Lima Raphael Brasil.
Ministério da Defesa INCRA SIPAM Tutorial Instalação de Plugins do Quantum GIS.
AULA 2 - TUTORIAL Hospedagem GRÁTIS Curso MOODLE para Professores Andréia Moura Casagrande – 2015 Servidor local Ambiente de Trabalho.
Como funciona o processador Nomes: Fernando, Maurício, William Turma: 1J-1PC1 Disciplina: Fundamentos da Computação Curso: Técnico em Programação de Computadores.
Redes de Computadores Curso Superior em Redes de Computadores Roteamento Roteadores Prof. Sales Filho.
Comandos básicos de MS-Dos para rede de computadores. Prof: Eduardo Florence Batista.
1 - verifique a disponibilidade dos arquivos necessários para o início do processo de instalação do sistema A.g.i.l. em um terminal de atendimento. Arquivos.
Supervisão e Redes Industriais Tutorial E3 Elipse Capítulo 14 ARMAZENAMENTO DE DADOS Felipe Domeni, Gabriel Martin, Leandro Gomes Rafael Benoliel, Tiago.
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS. COMUNICAÇÃO WEB.
Cluster Windows Server.
Prof. Anderson Terroso Março/2017
CORTEX M0 STMicro stm32f072rbtx
Atividade 4 - entrada e saída pelo Arduino
Arquivos necessários para a Aula1
Manutenção de Periféricos II
Procedimento para instalação do IPS GX5108 Proventia + Bypass
Introdução ao Logisim Prof. Alberto F. De Souza LCAD/DI/UFES
Lê temperatura ARDUINO + ANDROID + BLUETOOTH
Redes Industriais Alarmes
Prof. Anderson Terroso Redes de Comunicação sem Fio Agosto/2017
Lino Vaz Moniz Plugin de Matrícula Processamento Automático de Matrícula (Cron) Atualização do Plugin Badiu Grade Curricular Lino.
Administração e serviços de redes
Arduino seu primeiro microcontrolador
Bluetooth AppInventor
Roteiro Instalação Raspbian
Curso Superior em Redes de Computadores
Criação de Usuários/Grupos
Manual de configuração do backup de bases Firebird
Bluetooth AppInventor
Serial no arduino recepção no bluetooth
Como Customizar Documentos no Gdoc do ASP
Módulo de Transmissão e Ativos de Rede Curso Técnico de Informática
CREATED BY RAFAEL S. T. VIEIRA
Arduino + AppInventor (Android)
ADMINISTRAÇÃO DE REDES DE COMPUTADORES
Soft Starter ATS48 Comunicação ATS48, CLP Ethernet e IHM em Modbus TCP.
Configurando ambiente de desenvolvimento Android
Introdução a Redes v5.1 Capítulo 5: Ethernet. © 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas.
Introdução a Redes v5.1 Capítulo 7: Endereçamento IP.
Instalando e configurando a impressora Fiscal
Guia de referência rápida para
Cálculo de Sub redes.
PRÁTICA Endereçamento Privado NAT
Capítulo 9: Divisão de redes IP em sub-redes
Circuitos Sequenciais
Circuitos Sequenciais
Projeto 1: Game Genius usando AppInventor®
CONFIGURANDO O ROTEADOR
CONFIGURANDO O ROTEADOR
PRÁTICA ARP – Address Resolution Protocol
Exercícios IPsec e LDAP
Introdução ao Logisim Prof. Alberto F. De Souza LCAD/DI/UFES
Curso básico de PHP. 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
PRÁTICA Endereçamento Privado SNAT e DNAT
ATOS MPC6006 e Lexium 32 Exemplo de Comunicação CLP Atos MPC6006 e servo acionamento Lexium 32 em Modbus RTU.
Pratica de Arquitetura DMZ
Grupo de Engenharia da Computação Departamento de Informática - UFPE
Controladores Lógicos Programáveis
Circuitos Sequenciais
REDES WIFI (LOCAIS) GIAN, JEFERSON, JULIO..
Transcrição da apresentação:

COMUNICAÇÃO WIFI ESP8266-01/Cortex-M0/ AppInventor Prof. Anderson Terroso terroso@pucrs.br Maio/2017

Família de ESP8266

Comandos AT do ESP8266

Continuação dos comandos AT

Continuação dos comandos AT

Configuração do ESP8266 via terminal WIFI ESP8266-01 Prof. Anderson Terroso terroso@pucrs.br Maio/2017

Família de ESP8266

Comandos AT do ESP8266

Continuação dos comandos AT

Continuação dos comandos AT

O programa utilizado foi o Terminal v1.93b (clique aqui para download) Uma forma de configurar é tendo um adaptador Bluetooth <-> ESP8266. O programa utilizado foi o Terminal v1.93b (clique aqui para download)

O ESP8266 vem configurado de fábrica com o baudrate de 115200bps, além do nome do fabricante, etc... Nestes próximos slides será configurado o baudrate, tipo de conexão e o nome do dispositivo. Os comandos básicos são os seguintes: AT (verifica se o dispositivo está se comunicando) -> resposta: OK ATE0 (desabilita o echo – cada comando enviado ele devolve além da resposta + o comando enviado) -> resposta: OK AT+UART=19200,8,1,0,0 (configura o baudrate, número de bits, número de stop bits, paridade, desabilita CTR RTS) -> resposta: OK AT+CWMODE=2 (configura o modo que o ESP8266 vai operar, 2 => Access Point) -> resposta: OK AT+CWSAP_DEF="KIT1","1234567890",5,0 (configura o nome do dispositivo (rede), senha, canal e o tipo de segurança. Neste caso está como rede aberta – portanto nem a senha é necessária digitar) -> resposta: OK SE DER ALGUM PROBLEMA, PODERÁ FAZER UM RESTAURAÇÃO DE FÁBRICA, USANDO O COMANDO: AT+RESTORE (reconfigura automaticamente com os padrões de fábrica) -> resposta: OK

Comando AT Comando ATE0 (verifica se o ESP8266 está respondendo) (desabilita o echo para cada comando)

Comando AT+UART Comando CWMODE (configura baudrate, # bits, # stop, etc..) (configura o modo Station, AP, AP+Station)

Comando AT+CWSAP Comando CIFSR (configura o nome da rede, senha, canal) (forma de saber o número IP do ESP8266)

Comando AT+CIPMUX=1 Comando AT+CIPSERVER=1,80 (configura para múltiplas conexões) (configura como um servidor, porta 80)

ESP8266 + Cortex-M0 + AppInventor Prof. Anderson Terroso terroso@pucrs.br Maio/2017

Formas de usar o ESP8266 Pode ser usado stand alone; Pode ser usado com outro microcontrolador Neste caso pode servir como um webserver; Pode ser apenas uma interface wifi – acessado pelo endereço IP. A seguir será mostrado como comandar um led (liga/desliga) a partir de um aplicativo rodando em Android.

Configurando a Serial4 do kit para se comunicar com o ESP8266

Configurando os parâmetros da UART4: baurade=19200; dado=8bits; stop_bit=1

Habilitar a interrupção serial – UART4 Configurando os parâmetros da UART4: baurade=19200; dado=8bits; stop_bit=1 IMPORTANTE: Habilitar a interrupção serial – UART4

Repita o procedimento anterior para configurar a SERIAL2 (mesmos parâmetros) – neste exemplo não precisa habilitar a interrupção da SERIAL2.

Para ligar/desligar o led será usado o pino PA5, por default ele já vem configurado como saída (está fisicamente conectado a um led)

Controle de um led via appinventor e ESP8266 (insira duas imagens para alternar as imagens da lâmpada)

Upload das imagens da lampada_ligada.png e lampada_desligada.png

AppInventor: a lógica é criar uma variável (flag) que ficará alternando o valor entre 0 e 1. Quando o botão é pressionado, o evento “Click” é desencadeado. Nele há um teste do valor de flag, sendo “0” deve ser enviado a URL: http://192.168.4.1?0 – onde 192.168.4.1 é o número IP do ESP8266 e ?0 é o parâmetro a ser passado. Este parâmetro servirá para ligar o desligar a lâmpada (?1).

Quando um dispositivo (celular) faz uma conexão com o ESP8266, a resposta é a seguinte: 0,CONNECT +IPD,0,476:GET /?0 HTTP/1.1 Host: 192.168.4.1 Connection: keep-alive Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Linux; Android 6.0.1;................... Ou +IPD,0,502:GET /?1 HTTP/1.1 Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1……

Lógica no Cortex-M0 Configurar a serial4 com baudrate de 19200bps e habilitar a interrupção Configurar a serial2 com baudrate de 19200bps Configurar o pino PA5 (já vem configurado por default) como saída. Fazer a configuração básica do dispositivo ESP8266 Habilitar a interrupção serial4 Tratar a interrupção e ligar ou desligar o led.

Como a serial 4 será tratada via interrupção, sempre que chegar uma string, será analisado o conteúdo. Se chegar “GET /?0” liga o led OU “GET /?1” desliga o led. if(strstr(vetor,"GET /?0")) { GPIOA->BSRR = 1<<5; } else { if(strstr(vetor,"GET /?1")) GPIOA->BRR = 1<<5; }

/* USER CODE BEGIN 2 */ HAL_UART_Transmit(&huart4, "AT\r\n", 4, 100); // comando teste do ESP HAL_UART_Receive(&huart4, vetor_at1, 11, 3000); // recebe a confirmação HAL_UART_Transmit(&huart2, vetor_at1, 11, 300); // transmite via USB HAL_Delay(500); HAL_UART_Transmit(&huart4, "AT+RST\r\n", 8, 500); // comando RESET do ESP HAL_UART_Receive(&huart4, vetor_at2, 500, 1000); // recebe confirmação HAL_UART_Transmit(&huart2, vetor_at2, 500, 1000); // transmite via USB HAL_UART_Transmit(&huart4, "AT+CWMODE=2\r\n", 13, 100); //MODO=2 – AP HAL_UART_Receive(&huart4, vetor_at5, 500, 1000); // recebe resposta HAL_UART_Transmit(&huart2, vetor_at5, 500, 1000); // transmite via USB HAL_UART_Transmit(&huart4,"AT+CWSAP=\"KIT0\",\"senha\",3,0\r\n", 41, 100); //configura nome da Access Point HAL_UART_Receive(&huart4, vetor_at6, 500, 1000); // recebe resposta HAL_UART_Transmit(&huart2, vetor_at6, 500, 1000); // transmite via USB HAL_Delay(1000); HAL_UART_Transmit(&huart4, "AT+CIPMUX=1\r\n", 13, 100); //configura para múltiplas conexões (máximo 4) HAL_UART_Receive(&huart4, vetor_at7, 500, 1000); // recebe resposta HAL_UART_Transmit(&huart2, vetor_at7, 500, 1000); // transmite via USB HAL_UART_Transmit(&huart4, "AT+CIPSERVER=1,80\r\n", 19, 100); // Configurar como servidor e porta 80. HAL_UART_Receive(&huart4, vetor_at8, 500, 1000); // recebe resposta HAL_UART_Transmit(&huart2, vetor_at8, 500, 1000); // transmite via USB /* USER CODE END 2 */

/* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { HAL_UART_Receive_IT(&huart4,vetor,240); // habilita interrupção serial 4. /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ /* USER CODE BEGIN 4 */ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) if(strstr(vetor,"GET /?0")) // monitora se no vetor recebido tem a string “GET /?0” GPIOA->BSRR = 1<<5; // liga o led else if(strstr(vetor,"GET /?1")) GPIOA->BRR = 1<<5; // monitora se no vetor recebido tem a string “GET /?1” /* USER CODE END 4 */