Advertisement
Guest User

Untitled

a guest
Nov 29th, 2015
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.28 KB | None | 0 0
  1. #include <SoftwareSerial.h>
  2.  
  3.  
  4. #define DEBUG true
  5.  
  6.  
  7. //Cria o objeto para usar a biblioteca Sotfware Serial
  8. //RX do arduino é o pino 2
  9. //TX do arduino é o pino 3
  10. //O TX do esp8266 deve ser ligado no pino 2 do arduino
  11. //O RX do esp8266 deve ser ligado no pino 3 do arduino
  12.  
  13. SoftwareSerial esp8266(2,3);
  14.  
  15.  
  16.  
  17. int valor=800;
  18. String valorSensorSTR="";
  19.  
  20.  
  21. //Variaveis usada para ler o valor do sensor em tempo real.
  22. int valorSensor = 0;
  23. String valorLDRSTR ="";
  24.  
  25. void setup()
  26. {
  27. //um pequeno delay no arduino
  28. //para evitar que envie comandos antes do esp8266 dar o start
  29. delay(500);
  30. //Seta ambas seriais para a velocidade de 9600
  31. Serial.begin(9600);
  32. //(em alguns casos a velocidade do seu esp8266 pode estar diferente desta)
  33. esp8266.begin(9600);
  34.  
  35.  
  36. //Envia o comandos AT
  37.  
  38. // reseta o modulo
  39. sendData("AT+RST\r\n",2000,DEBUG);
  40. // configure as access point e estação (ambos)
  41. sendData("AT+CWMODE=3\r\n",1000,DEBUG);
  42. //conecta ao roteador com a senha
  43. //(esta configuração deve ser feita, pois o seu roteador tem nome diferente do meu e senha)
  44. sendData("AT+CWJAP=\"Linnker\",\"costa0712\"r\n",10000,DEBUG);
  45. //Retorna o IP ao qual está conectado e o IP de Station
  46. sendData("AT+CIFSR\r\n",1000,DEBUG);
  47. //Habilita multiplas conexões
  48. sendData("AT+CIPMUX=1\r\n",1000,DEBUG);
  49. //Habilita ao servidor a porta 80
  50. sendData("AT+CIPSERVER=1,80\r\n",1000,DEBUG);
  51. }
  52.  
  53. void loop()
  54. {
  55. //Limpa as variaveis para receber os dados (temperatura e iluminosidade)
  56. valorSensorSTR ="";
  57. valorLDRSTR ="";
  58.  
  59.  
  60. //verifica se o esp8266 esta enviando mensagem e esta disponivel
  61. if(esp8266.available())
  62. {
  63.  
  64.  
  65. if(esp8266.find("+IPD,"))
  66. {
  67.  
  68. //Converte o valor de temperatura em String para exibir na pagina web
  69. valorSensorSTR+=String(valor);
  70. Serial.println("Arduino Temperatura : "+valorSensorSTR); //display string value
  71.  
  72.  
  73.  
  74.  
  75. // subtrai 48, por que o metodo read() retorna os valores ASCII, o primeiro numero decimal começa em 48
  76. int connectionId = esp8266.read()-48;
  77.  
  78. //Inicia a montagem da pagina web
  79. //criando a variavel webpage e armazenando os dados nela
  80. String webpage = "<head><meta http-equiv=""refresh"" content=""5""></head>";
  81. webpage+="<h1>Ola Mundo</h1><h2> Esp8266</h2></br><h3>Temperatura : ";
  82. //Envia o valor lido do sensor de temperatura
  83. webpage+= valorSensorSTR + " </h3>";
  84.  
  85. //cria uma variavel para enviar o comando até
  86. //que enviará as informações para o modulo esp8266
  87. String cipSend = "AT+CIPSEND=";
  88.  
  89.  
  90. cipSend += connectionId;
  91. cipSend += ",";
  92. cipSend +=webpage.length();
  93. cipSend +="\r\n";
  94.  
  95. //Envia os comandos para o modulo
  96. sendData(cipSend,1000,DEBUG);
  97. sendData(webpage,1000,DEBUG);
  98.  
  99. //Encerra os comandos
  100. String closeCommand = "AT+CIPCLOSE=";
  101. closeCommand+=connectionId;
  102. closeCommand+="\r\n";
  103.  
  104. //Envia os comandos de encerramento
  105. sendData(closeCommand,2000,DEBUG);
  106.  
  107. delay(5000);
  108. }
  109. }
  110. }
  111.  
  112.  
  113. //Metodo que envia os comandos para o esp8266
  114. String sendData(String command, const int timeout, boolean debug)
  115. {
  116. //variavel de resposta do esp8266
  117. String response = "";
  118.  
  119. // send a leitura dos caracteres para o esp8266
  120. esp8266.println(command);
  121.  
  122. long int time = millis();
  123.  
  124. while( (time+timeout) > millis())
  125. {
  126. while(esp8266.available())
  127. {
  128.  
  129.  
  130. //Concatena caracter por caractere recebido do modulo esp8266
  131. char c = esp8266.read();
  132. response+=c;
  133. }
  134. }
  135.  
  136. //debug de resposta do esp8266
  137. if(debug)
  138. {
  139. //Imprime o que o esp8266 enviou para o arduino
  140. Serial.println("Arduino : " + response);
  141. }
  142.  
  143. return response;
  144. }
  145.  
  146.  
  147.  
  148. //Metodo que converte float em string
  149. long getDecimal(float val)
  150. {
  151. //converte o float para inteiro
  152. int intPart = int(val);
  153.  
  154. //multiplica por 100
  155. //precisão de 2 casas decimais
  156. long decPart = 100*(val-intPart);
  157.  
  158. //Se o valor for maior que 0 retorna
  159. if(decPart>0)
  160. //retorna a variavel decPart
  161. return(decPart);
  162.  
  163. //caso contrario retorna o valor 0
  164. else if(decPart=0)
  165. return(00);
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement