Advertisement
Guest User

Untitled

a guest
May 9th, 2018
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.20 KB | None | 0 0
  1. #include "ESP8266.h"
  2.  
  3. #define CH_PD 44
  4. #define RST 46
  5. #define GPIO0 48
  6.  
  7. //Coloque nos campos indicados o nome e senha da sua rede WiFi
  8. #define SSID "NOME_DA_SUA_REDE_WIFI"
  9. #define PASSWORD "senha_da_sua_rede"
  10.  
  11. //Cria objeto de conexão wifi com o módulo, usando a Serial1 do Mega.
  12. ESP8266 wifi(Serial1);
  13.  
  14. void setup(void)
  15. {
  16. pinMode(CH_PD,OUTPUT);
  17. pinMode(RST,OUTPUT);
  18. pinMode(GPIO0,OUTPUT);
  19. digitalWrite(CH_PD,HIGH); //setado em ALTO - operacao normal
  20. digitalWrite(RST,HIGH); //setado em ALTO - operhttps://www.embarcados.com.br/arduino-mega-2560/acao normal
  21. digitalWrite(GPIO0,HIGH); //setado em ALTO - operacao normal
  22.  
  23. Serial.begin(9600);
  24. Serial.println("Iniciando Setup.");
  25.  
  26. Serial.print("Versao de Firmware ESP8266: ");
  27. //A funcao wifi.getVersion() retorna a versao de firmware informada pelo modulo no inicio da comunicacao
  28. Serial.println(wifi.getVersion().c_str());
  29.  
  30. //Vamos setar o modulo para operar em modo Station (conecta em WiFi) e modo AP (é um ponto de WiFi tambem)
  31. if (wifi.setOprToStationSoftAP()) {
  32. Serial.println("Station e AP OK.");
  33. } else {
  34. Serial.println("Erro em setar Station e AP.");
  35. }
  36.  
  37. //Agora vamos conectar no ponto de WiFi informado no inicio do codigo, e ver se corre tudo certo
  38. if (wifi.joinAP(SSID, PASSWORD)) {
  39. Serial.println("Conectado com Sucesso.");
  40. Serial.println("IP: ");
  41. //rotina wifi.getLocalIP() retorna o IP usado na conexao com AP conectada.
  42. Serial.println(wifi.getLocalIP().c_str());
  43. } else {
  44. Serial.println("Falha na conexao AP.");
  45. }
  46.  
  47. //Agora vamos habiliar a funcionalidade MUX, que permite a realizacao de varias conexoes TCP/UDP
  48. if (wifi.enableMUX()) {
  49. Serial.println("Multiplas conexoes OK.");
  50. } else {
  51. Serial.println("Erro ao setar multiplas conexoes.");
  52. }
  53.  
  54. //Inicia servidor TCP na porta 8090 (veja depois a funcao "startServer(numero_porta)", que serve para UDP!
  55. if (wifi.startTCPServer(8090)) {
  56. Serial.println("Servidor iniciado com sucesso.");
  57. } else {
  58. Serial.println("Erro ao iniciar servidor.");
  59. }
  60. Serial.println("Setup finalizado!");
  61. }
  62.  
  63. //Na conexao TCP, basicamente a funcionalidade a ser mostrada sera a de "echo", ou seja, a aplicacao ira retornar todos os //dados enviados para ela via socket TCP.
  64. void loop(void)
  65. {
  66. //Variavel para buffer de dados de trasmissao
  67. uint8_t buffer[128] = {0};
  68.  
  69. //Como usamos multiplas conexoes, cada conexao tem sua ID, e precisa ser armazenada para referencia no programa. Usamos //essa variavel para isso.
  70. uint8_t mux_id;
  71.  
  72. //E esta variavel len serve para armazenar o comprimento de dados recebidos por meio da rotina wifi.recv(), que tambem //associa ao buffer os dados recebidos e ao mux_id a id responsavel pela transmissao
  73. uint32_t len = wifi.recv(&mux_id, buffer, sizeof(buffer), 100);
  74. if (len > 0) {
  75. Serial.print("Status:[");
  76. Serial.print(wifi.getIPStatus().c_str());
  77. Serial.println("]");
  78.  
  79. Serial.print("Recebido de :");
  80. Serial.print(mux_id);
  81. Serial.print("[");
  82. for(uint32_t i = 0; i < len; i++) {
  83. Serial.print((char)buffer[i]);
  84. }
  85. Serial.print("]\r\n");
  86.  
  87. //Agora envia de volta. A referencia para o socket TCP criado é o mux_id, ou id da conexao, usado aqui na rotina
  88. //wifi.send, veja abaixo:
  89. if(wifi.send(mux_id, buffer, len)) {
  90. Serial.print("Enviado de volta...\r\n");
  91. } else {
  92. Serial.print("Erro ao enviar de volta\r\n");
  93. }
  94.  
  95. //E, como sempre, liberar a conexao TCP, de modo a permitir que novas conexoes sejam realizadas.
  96. if (wifi.releaseTCP(mux_id)) {
  97. Serial.print("Liberando conexao TCP com ID: ");
  98. Serial.print(mux_id);
  99. Serial.println(" OK");
  100. } else {
  101. Serial.print("Erro ao liberar TCP com ID: ");
  102. Serial.print(mux_id);
  103. }
  104.  
  105. Serial.print("Status:[");
  106. Serial.print(wifi.getIPStatus().c_str());
  107. Serial.println("]");
  108. }
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement