A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "COMUNICAÇÃO WIFI ESP /Cortex-M0/ AppInventor"— Transcrição da apresentação:

1 COMUNICAÇÃO WIFI ESP8266-01/Cortex-M0/ AppInventor
Prof. Anderson Terroso Maio/2017

2

3 Família de ESP8266

4 Comandos AT do ESP8266

5 Continuação dos comandos AT

6 Continuação dos comandos AT

7 Configuração do ESP8266 via terminal WIFI ESP8266-01
Prof. Anderson Terroso Maio/2017

8

9 Família de ESP8266

10 Comandos AT do ESP8266

11 Continuação dos comandos AT

12 Continuação dos comandos AT

13 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)

14 O ESP8266 vem configurado de fábrica com o baudrate de bps, 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"," ",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

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

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

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

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

19 ESP8266 + Cortex-M0 + AppInventor
Prof. Anderson Terroso Maio/2017

20 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.

21 Configurando a Serial4 do kit para se comunicar com o ESP8266

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

23 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

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

25 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)

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

27 Upload das imagens da lampada_ligada.png e lampada_desligada.png

28 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: – onde é 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).

29 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: 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……

30 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.

31 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; }

32 /* 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 */

33 /* 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 */


Carregar ppt "COMUNICAÇÃO WIFI ESP /Cortex-M0/ AppInventor"

Apresentações semelhantes


Anúncios Google