-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathESP8266_ESP01_wifi_temperatursensor.ino
142 lines (124 loc) · 3.49 KB
/
ESP8266_ESP01_wifi_temperatursensor.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#include <ESP8266WiFi.h>
#include <BME280I2C.h>
#include <Wire.h>
#define SEALEVELPRESSURE_HPA (1013.25)
#define BME280_ADDRESS (0x76)
//#define BME280_ADDRESS (0x77)
BME280I2C bme; // I2C
WiFiServer server(80);
// WiFi Router Login
const char* SSID = "WLAN_SSID";
const char* PASSWORD = "WLAN_PW";
const char* HOSTNAME = "HOSTNAME";
const char* SENSORID = "Sensor Aussen";
void setup() {
Serial.begin(115200);
delay(10);
Serial.println();
// Setup I2C
Wire.begin(0, 2);
// Connect to the WiFi network (see function below loop)
// move this function to loop to see if the connection is more stable
// connectToWiFi(SSID, password);
checkSensor();
// Connect to WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(SSID);
WiFi.begin(SSID, PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
// Start the server
server.begin();
Serial.println("Server started");
// Print the IP address
Serial.print("Use this URL to connect: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
}
void checkSensor()
{
bool status;
status = bme.begin();
if (!status) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}
Serial.println("Sensor found");
delay(1000); // let sensor boot up
}
void loop() {
// Check if a client has connected
WiFiClient client = server.available();
if (!client) {
return;
}
// Wait until the client sends some data
Serial.println("new client");
while(!client.available()){
delay(1);
}
// Read the first line of the request
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
// Match the request
if (request.indexOf("/id") != -1) {
// Return the response
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(""); // do not forget this one
/*
client.println("<!DOCTYPE HTML>");
client.println("<html>");
*/
client.print(SENSORID);
// client.println("</html>");
delay(1);
}
if (request.indexOf("/temperature") != -1) {
// Read and send data
float Pressure, Temperature, Humidity;
bme.read(Pressure, Temperature, Humidity);
Serial.print("Temperature: ");
Serial.println(Temperature);
Serial.print("Pressure: ");
Serial.println(Pressure / 100.0F);
Serial.print("Humidity: ");
Serial.println(Humidity);
// Return the response
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(""); // do not forget this one
client.print(String(Temperature));
delay(1);
}
if (request.indexOf("/pressure") != -1) {
// Read and send data
float Pressure, Temperature, Humidity;
bme.read(Pressure, Temperature, Humidity);
// Return the response
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(""); // do not forget this one
client.print(String(Pressure/100.0F));
delay(1);
}
if (request.indexOf("/humidity") != -1) {
// Read and send data
float Pressure, Temperature, Humidity;
bme.read(Pressure, Temperature, Humidity);
// Return the response
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(""); // do not forget this one
client.print(String(Humidity));
delay(1);
}
}