Advertisement
Guest User

Untitled

a guest
Sep 12th, 2016
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.21 KB | None | 0 0
  1. #include "DHT.h"
  2. #define DHTPIN 8
  3. #define DHTTYPE DHT22
  4. DHT dht(DHTPIN, DHTTYPE);
  5.  
  6. #include <SoftwareSerial.h>
  7. SoftwareSerial esp8266(2, 3);
  8.  
  9. void setup() {
  10.   // put your setup code here, to run once:
  11.   esp8266.begin(115200);
  12.   Serial.begin(115200);
  13.   esp8266.println("AT+RST");
  14.   esp8266.println("AT+RESTORE");
  15.   esp8266.println("AT+RST");
  16. }
  17.  
  18. unsigned long enviaDados = millis();
  19. unsigned short int contador = 0;
  20.  
  21. void loop() {
  22.   if (espConfig())
  23.   {
  24.     while (senData(dht.readTemperature(), dht.readHumidity()))
  25.     {
  26.       Serial.println(" entrou while -->");
  27.       delay(10000);
  28.     }
  29.   } else  delay(3000);
  30.  
  31. }
  32.  
  33.  
  34. bool espConfig() {
  35.   waitAndEcho(3000, "......");
  36.   Serial.println(" INICIO CONFIG ===============================");
  37.   Serial.println("1-> AT+RST");
  38.   esp8266.println("AT+RST");
  39.   waitAndEcho(5000, "OK\r\n");
  40.  
  41.   Serial.println("2-> AT+CWMODE_CUR=3");
  42.   esp8266.println("AT+CWMODE_CUR=1");
  43.   waitAndEcho(500, "\r\nOK");
  44.  
  45.   Serial.println("3-> AT+CIPSTA_CUR=\"192.168.2.223\",\"192.168.1.5\",\"255.255.252.0\"");
  46.   esp8266.println("AT+CIPSTA_CUR=\"192.168.2.223\",\"192.168.1.5\",\"255.255.252.0\"");
  47.   waitAndEcho(4000, "\r\nOK");
  48.  
  49.   Serial.println("4-> AT+CWJAP_CUR=\"rede\",\"senha\"");
  50.   esp8266.println("AT+CWJAP_CUR=\"rede\",\"senha\"");
  51.   waitAndEcho(15000, "\r\nOK");
  52.  
  53.   Serial.println("5-> AT+CIPMUX=0");
  54.   esp8266.println("AT+CIPMUX=0");
  55.   waitAndEcho(500, "\r\nOK");
  56.  
  57.   Serial.println("6-> AT+CIPSTART=\"TCP\",\"52.8.0.240\",80");
  58.   esp8266.println("AT+CIPSTART=\"TCP\",\"52.8.0.240\",80");
  59.   waitAndEcho(5000, "OK\r\n");
  60.  
  61.   Serial.println(" FIM CONFIG ===============================");
  62.   return true;
  63. }
  64.  
  65. bool senData(double temp, double umid) {
  66.   String values = "temp=" + String(temp) + "&umid=" + String(umid);
  67.   String postString = "POST /onep:v1/stack/alias HTTP/1.1\r\n"
  68.                       "Host: m2.exosite.com\r\n"
  69.                       "X-Exosite-CIK: xxxxxxxxxxx\r\n"
  70.                       "Content-Type: application/x-www-form-urlencoded; charset=utf-8\r\n"
  71.                       "Content-Length: [LEN]\r\n"
  72.                       "\r\n"
  73.                       "[VALUE]\r\n";
  74.  
  75.   postString.replace("[LEN]", String(values.length()));
  76.   postString.replace("[VALUE]", values);
  77.  
  78.   Serial.println("7-> AT+CIPSEND=" + String(postString.length()));
  79.   esp8266.println("AT+CIPSEND=" + String(postString.length()));
  80.   if (waitAndEcho(500, "OK\r\n")) {
  81.  
  82.     Serial.println("8-> " + String(postString));
  83.     esp8266.print(postString);
  84.     return waitAndEcho(10000, "\r\nSEND");
  85.  
  86.   }
  87.  
  88.   return false;
  89.  
  90. }
  91.  
  92. bool waitAndEcho(int t, String s) {
  93.   String buffer;
  94.   unsigned long start = millis();
  95.   unsigned long last = 0;
  96.   unsigned int n = s.length();
  97.   bool ret = false;
  98.   do {
  99.     if (esp8266.available()) {
  100.       buffer += (char)esp8266.read();
  101.       last = millis();
  102.       if (buffer.length() >= n) {
  103.         if (buffer.substring(buffer.length() - n).equals(s)) {
  104.           ret = true;
  105.           break;
  106.         }
  107.       }
  108.     }
  109.  
  110.   } while (millis() < start + t);
  111.   buffer.replace("\r", "\\r");
  112.   buffer.replace("\n", "\\n");
  113.   Serial.println(String(ret ? "+" : "-") + "(" + String(last - start) + "/" + String(t) + "):" + buffer);
  114.   return ret;
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement