public
Authored by avatar null pointer

wifi-enabled temperature probe server (nodemcu, ds18b20)

Edited
wifi-temp.ino 1.57 KiB
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <OneWire.h>
#include <DallasTemperature.h>

// nodemcu and arduino pins vary in number!
#define ONE_WIRE_BUS 4
 
// Setup a oneWire instance to communicate with any OneWire device
OneWire oneWire(ONE_WIRE_BUS);  
 
// Pass oneWire reference to DallasTemperature library
DallasTemperature sensors(&oneWire);

/*Put your SSID & Password*/
const char* ssid = "XXXXX";  // Enter SSID here
const char* password = "XXXX";  //Enter Password here

ESP8266WebServer server(80);

void setup() {
  // start sensors
  sensors.begin();

  // start serial port
  Serial.begin(9600);
  delay(100);

  // wait until wifi is connected

  Serial.println("connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("wifi connected...");
  Serial.print("IP is ");  Serial.println(WiFi.localIP());

  // handle incoming requests

  server.on("/", handle_OnConnect);
  server.on("/temp", handle_onTemp);
  server.onNotFound(handle_NotFound);

  server.begin();

  Serial.println("webserver started");
}
void loop() {
  server.handleClient();
}

void handle_OnConnect() {
  server.send(200, "text/ascii", SendHTML()); 
}

void handle_NotFound(){
  server.send(404, "text/plain", "Not found");
}

void handle_onTemp() {
  sensors.requestTemperatures();
  server.send(200, "text/plain", SendTemp());
}

String SendHTML(){
  String ptr = "hello world";
  return ptr;
}

String SendTemp(){
  return String(sensors.getTempCByIndex(0));
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment