Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "DHT.h"
- #define DHTPIN 8
- #define DHTTYPE DHT22
- DHT dht(DHTPIN, DHTTYPE);
- #include <SoftwareSerial.h>
- SoftwareSerial esp8266(2, 3);
- void setup() {
- // put your setup code here, to run once:
- esp8266.begin(115200);
- Serial.begin(115200);
- esp8266.println("AT+RST");
- esp8266.println("AT+RESTORE");
- esp8266.println("AT+RST");
- }
- unsigned long enviaDados = millis();
- unsigned short int contador = 0;
- void loop() {
- if (espConfig())
- {
- while (senData(dht.readTemperature(), dht.readHumidity()))
- {
- Serial.println(" entrou while -->");
- delay(10000);
- }
- } else delay(3000);
- }
- bool espConfig() {
- waitAndEcho(3000, "......");
- Serial.println(" INICIO CONFIG ===============================");
- Serial.println("1-> AT+RST");
- esp8266.println("AT+RST");
- waitAndEcho(5000, "OK\r\n");
- Serial.println("2-> AT+CWMODE_CUR=3");
- esp8266.println("AT+CWMODE_CUR=1");
- waitAndEcho(500, "\r\nOK");
- Serial.println("3-> AT+CIPSTA_CUR=\"192.168.2.223\",\"192.168.1.5\",\"255.255.252.0\"");
- esp8266.println("AT+CIPSTA_CUR=\"192.168.2.223\",\"192.168.1.5\",\"255.255.252.0\"");
- waitAndEcho(4000, "\r\nOK");
- Serial.println("4-> AT+CWJAP_CUR=\"rede\",\"senha\"");
- esp8266.println("AT+CWJAP_CUR=\"rede\",\"senha\"");
- waitAndEcho(15000, "\r\nOK");
- Serial.println("5-> AT+CIPMUX=0");
- esp8266.println("AT+CIPMUX=0");
- waitAndEcho(500, "\r\nOK");
- Serial.println("6-> AT+CIPSTART=\"TCP\",\"52.8.0.240\",80");
- esp8266.println("AT+CIPSTART=\"TCP\",\"52.8.0.240\",80");
- waitAndEcho(5000, "OK\r\n");
- Serial.println(" FIM CONFIG ===============================");
- return true;
- }
- bool senData(double temp, double umid) {
- String values = "temp=" + String(temp) + "&umid=" + String(umid);
- String postString = "POST /onep:v1/stack/alias HTTP/1.1\r\n"
- "Host: m2.exosite.com\r\n"
- "X-Exosite-CIK: xxxxxxxxxxx\r\n"
- "Content-Type: application/x-www-form-urlencoded; charset=utf-8\r\n"
- "Content-Length: [LEN]\r\n"
- "\r\n"
- "[VALUE]\r\n";
- postString.replace("[LEN]", String(values.length()));
- postString.replace("[VALUE]", values);
- Serial.println("7-> AT+CIPSEND=" + String(postString.length()));
- esp8266.println("AT+CIPSEND=" + String(postString.length()));
- if (waitAndEcho(500, "OK\r\n")) {
- Serial.println("8-> " + String(postString));
- esp8266.print(postString);
- return waitAndEcho(10000, "\r\nSEND");
- }
- return false;
- }
- bool waitAndEcho(int t, String s) {
- String buffer;
- unsigned long start = millis();
- unsigned long last = 0;
- unsigned int n = s.length();
- bool ret = false;
- do {
- if (esp8266.available()) {
- buffer += (char)esp8266.read();
- last = millis();
- if (buffer.length() >= n) {
- if (buffer.substring(buffer.length() - n).equals(s)) {
- ret = true;
- break;
- }
- }
- }
- } while (millis() < start + t);
- buffer.replace("\r", "\\r");
- buffer.replace("\n", "\\n");
- Serial.println(String(ret ? "+" : "-") + "(" + String(last - start) + "/" + String(t) + "):" + buffer);
- return ret;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement