Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SoftwareSerial.h>
- #include <OneWire.h>
- #include <DallasTemperature.h>
- #define SSID "XXXXX" //your wifi ssid here
- #define PASS "XXXXXX" //your wifi wep key here
- SoftwareSerial dbgSerial(10, 11); // RX, TX
- char tempChar[20];
- // Data wire is plugged into port 2 on the Arduino
- #define ONE_WIRE_BUS 2
- OneWire oneWire(ONE_WIRE_BUS);
- DallasTemperature sensors(&oneWire);
- char myChar;
- void setup() {
- sensors.begin();
- pinMode(9, OUTPUT);
- pinMode(13, OUTPUT);
- //blink led13 to indicate power up
- for(int i = 0; i<15; i++)
- {
- digitalWrite(13,HIGH);
- delay(50);
- digitalWrite(13,LOW);
- delay(50);
- }
- // Open serial communications for WiFi module:
- Serial.begin(115200);
- // Set time to wait for response strings to be found
- Serial.setTimeout(5000);
- //Open software serial for debugging - must use serial to usb (FTDI) adapter
- dbgSerial.begin(19200); //can't be faster than 19200 for softserial
- dbgSerial.println("ESP8266 Server Demo");
- delay(100);
- Serial.println("AT+RST");
- if(Serial.find("ready"))
- {
- dbgSerial.println("Module is ready");
- delay(1000);
- //connect to the wifi
- boolean connected=false;
- for(int i=0;i<5;i++)
- {
- if(connectWiFi())
- {
- connected = true;
- break;
- }
- }
- if (!connected)
- {
- //die
- while(1);
- }
- delay(5000);
- //set the single connection mode
- Serial.println("AT+CIPMUX=1");
- delay(1000);
- dbgSerial.println("Starting TCP Server");
- Serial.println("AT+CIPSERVER=1,8266");
- }
- else
- {
- dbgSerial.println("Module didn't respond.");
- delay(100);
- //serial loop mode for diag
- while(1){
- while (dbgSerial.available()) {
- myChar = dbgSerial.read();
- Serial.print(myChar);
- }
- while (Serial.available()) {
- myChar = Serial.read();
- delay(10);
- dbgSerial.print(myChar);
- }
- }
- }
- dbgSerial.println("waiting for connection...");
- }
- void loop() {
- sensors.requestTemperatures();
- double temp = sensors.getTempCByIndex(0);
- double tempf = DallasTemperature::toFahrenheit(temp);
- dtostrf(tempf,2,3,tempChar);
- String tempString = String(tempChar);
- dbgSerial.print("Temp: ");
- dbgSerial.println(tempString);
- if (Serial.find("Link")){
- int channel = Serial.parseInt(); //channel to send data
- dbgSerial.println("New connection");
- delay(10);
- /* code for reading wifi output
- while (Serial.available())
- {
- char c = Serial.read();
- dbgSerial.write(c);
- if(c=='\r') dbgSerial.print('\n');
- delay(25);
- }
- */
- String content = "{\"temp\":\"";
- content += tempString;
- content += "\"}";
- Serial.print("AT+CIPSEND=");
- Serial.print(channel);
- Serial.print(",");
- Serial.println(content.length());
- Serial.print(content);
- //Serial.print("AT+CIPCLOSE=0");
- }
- }
- boolean connectWiFi()
- {
- Serial.println("AT+CWMODE=1");
- String cmd="AT+CWJAP=\"";
- cmd+=SSID;
- cmd+="\",\"";
- cmd+=PASS;
- cmd+="\"";
- dbgSerial.println(cmd);
- Serial.println(cmd);
- delay(2000);
- if(Serial.find("OK"))
- {
- dbgSerial.println("OK, Connected to WiFi.");
- return true;
- }
- else
- {
- dbgSerial.println("Can not connect to the WiFi.");
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement