SHARE
TWEET

ESP8266 server

a guest Sep 29th, 2014 1,934 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  #include <SoftwareSerial.h>
  2.     #include <OneWire.h>
  3.     #include <DallasTemperature.h>
  4.     #define SSID "XXXXX"      //your wifi ssid here
  5.     #define PASS "XXXXXX"   //your wifi wep key here
  6.     SoftwareSerial dbgSerial(10, 11); // RX, TX
  7.    
  8.     char tempChar[20];
  9.     // Data wire is plugged into port 2 on the Arduino
  10.     #define ONE_WIRE_BUS 2
  11.     OneWire oneWire(ONE_WIRE_BUS);
  12.     DallasTemperature sensors(&oneWire);
  13.     char myChar;
  14.     void setup() {
  15.         sensors.begin();
  16.       pinMode(9, OUTPUT);
  17.       pinMode(13, OUTPUT);
  18.      
  19.       //blink led13 to indicate power up
  20.       for(int i = 0; i<15; i++)
  21.       {
  22.        digitalWrite(13,HIGH);
  23.        delay(50);
  24.        digitalWrite(13,LOW);
  25.        delay(50);
  26.       }
  27.        
  28.       // Open serial communications for WiFi module:
  29.       Serial.begin(115200);
  30.       // Set time to wait for response strings to be found
  31.       Serial.setTimeout(5000);
  32.      
  33.       //Open software serial for debugging - must use serial to usb (FTDI) adapter
  34.       dbgSerial.begin(19200); //can't be faster than 19200 for softserial
  35.      
  36.      
  37.       dbgSerial.println("ESP8266 Server Demo");
  38.       delay(100);
  39.       Serial.println("AT+RST");    
  40.       if(Serial.find("ready"))
  41.       {
  42.         dbgSerial.println("Module is ready");
  43.         delay(1000);
  44.         //connect to the wifi
  45.         boolean connected=false;
  46.         for(int i=0;i<5;i++)
  47.         {
  48.           if(connectWiFi())
  49.           {
  50.             connected = true;
  51.             break;
  52.           }
  53.         }
  54.         if (!connected)
  55.         {
  56.           //die
  57.           while(1);
  58.         }
  59.      
  60.         delay(5000);
  61.         //set the single connection mode
  62.         Serial.println("AT+CIPMUX=1");
  63.         delay(1000);
  64.         dbgSerial.println("Starting TCP Server");
  65.         Serial.println("AT+CIPSERVER=1,8266");
  66.       }
  67.       else
  68.       {
  69.         dbgSerial.println("Module didn't respond.");
  70.         delay(100);
  71.        
  72.         //serial loop mode for diag
  73.         while(1){
  74.           while (dbgSerial.available()) {
  75.             myChar = dbgSerial.read();
  76.             Serial.print(myChar);
  77.           }
  78.      
  79.           while (Serial.available()) {
  80.             myChar = Serial.read();
  81.             delay(10);
  82.             dbgSerial.print(myChar);
  83.           }
  84.         }
  85.       }
  86.       dbgSerial.println("waiting for connection...");
  87.     }
  88.    
  89.    
  90.    
  91.     void loop() {
  92.       sensors.requestTemperatures();
  93.       double temp = sensors.getTempCByIndex(0);
  94.       double tempf = DallasTemperature::toFahrenheit(temp);
  95.       dtostrf(tempf,2,3,tempChar);
  96.       String tempString = String(tempChar);
  97.       dbgSerial.print("Temp: ");
  98.       dbgSerial.println(tempString);
  99.    
  100.    
  101.       if (Serial.find("Link")){
  102.         int channel = Serial.parseInt(); //channel to send data
  103.        
  104.         dbgSerial.println("New connection");
  105.         delay(10);
  106.         /* code for reading wifi output
  107.          while (Serial.available())
  108.       {
  109.        char c = Serial.read();
  110.        dbgSerial.write(c);
  111.        if(c=='\r') dbgSerial.print('\n');
  112.        delay(25);
  113.       }
  114.       */
  115.      
  116.      
  117.      String content = "{\"temp\":\"";
  118.    
  119.        content += tempString;
  120.        content += "\"}";
  121.      
  122.    
  123.        Serial.print("AT+CIPSEND=");
  124.        Serial.print(channel);
  125.        Serial.print(",");
  126.        Serial.println(content.length());
  127.        
  128.        Serial.print(content);
  129.      
  130.        
  131.        //Serial.print("AT+CIPCLOSE=0");
  132.        
  133.      
  134.     }
  135.     }
  136.     boolean connectWiFi()
  137.     {
  138.       Serial.println("AT+CWMODE=1");
  139.       String cmd="AT+CWJAP=\"";
  140.       cmd+=SSID;
  141.       cmd+="\",\"";
  142.       cmd+=PASS;
  143.       cmd+="\"";
  144.       dbgSerial.println(cmd);
  145.       Serial.println(cmd);
  146.       delay(2000);
  147.       if(Serial.find("OK"))
  148.       {
  149.         dbgSerial.println("OK, Connected to WiFi.");
  150.         return true;
  151.       }
  152.       else
  153.       {
  154.         dbgSerial.println("Can not connect to the WiFi.");
  155.         return false;
  156.       }            
  157.     }
RAW Paste Data
Top