Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <WiFi.h>
- #include <WiFi.h>
- #include <WiFiClient.h>
- #include <WebServer.h>
- #include <Wire.h>
- #include <SPI.h>
- #include <DHT.h>
- #include "CORE_BME280_SPI.h"
- //BME280
- //#define SENSE_SCK 5;// Set Serial Clock
- //#define SENSE_MISO 2;// Set Serial Data Out
- //#define SENSE_MOSI 4;// Set Serial Data In
- //#define SENSE_CS 19 ;// Set Chip Select
- BME280_SPI bme(19,4,2,5);
- // SHT25 I2C address is 0x40(64)
- #define sht 0x40
- //DHT11
- #define DHTPIN 16
- DHT dht11(DHTPIN,DHT11,15);
- //DHT22
- #define DHTPIN 17
- DHT dht22(DHTPIN,DHT22,15);
- WebServer webServer(80);
- const char* ssid1 ;
- const char* password1 ;
- String apiKey ;
- const char* server = "api.thingspeak.com";
- bool connectedWifi = false;
- WiFiClient client;
- //main page
- void handleLogin(){
- //String msg;
- if (webServer.hasArg("USERNAME") && webServer.hasArg("PASSWORD")){
- if (webServer.arg("USERNAME") == "admin" && webServer.arg("PASSWORD") == "12345678" ){
- webServer.sendHeader("Location","/");
- webServer.sendHeader("Cache-Control","no-cache");
- webServer.sendHeader("Set-Cookie","ESPSESSIONID=1");
- webServer.send(301);
- Serial.println("Log in Successful");
- String ssidL = webServer.arg("SSID");
- String passwordL = webServer.arg("PASSWORD");
- apiKey = webServer.arg("API");
- ssid1 = ssidL.c_str();
- password1 =passwordL.c_str();
- Serial.println("Data recived ");
- Serial.println(ssid1);
- Serial.println(password1);
- Serial.println(apiKey);
- WiFi.mode(WIFI_STA);
- WiFi.begin(ssid1, password1);
- while ( WiFi.status() != WL_CONNECTED )
- {
- vTaskDelay( 250 /portTICK_PERIOD_MS );
- Serial.print( "." );
- }
- Serial.println("Connected to Wifi" );
- connectedWifi=true;
- return;
- }
- //msg = "Wrong username/password! try again.";
- Serial.println("Log in Failed");
- }
- String content = "<html><body><form action='/' method='POST'>Put wifi creditials here and thingSprark Api<br>";
- content += "Ssid:<input type='text' name='SSID' placeholder='ssid'><br>";
- content += "User:<input type='text' name='USERNAME' placeholder='username'><br>";
- content += "Password:<input type='password' name='PASSWORD' placeholder='password'><br>";
- content += "Api:<input type='text' name='API' placeholder='api'><br>";
- content += "<input type='submit' name='SUBMIT' value='Submit'></form><br>";
- //content += "<input type='submit' name='SUBMIT' value='Submit'></form>" + msg + "<br>";
- content += "You also can go <a href='/inline'>here</a></body></html>";
- webServer.send(200, "text/html", content);
- }
- //no need authentification
- void handleNotFound(){
- String message = "Page Not Found\n\n";
- webServer.send(404, "text/plain", message);
- }
- const char *ssid = "ESP32ap";
- const char *password = "12345678";
- void setup() {
- Wire.begin();
- Serial.begin(115200);
- //sht
- Wire.beginTransmission(sht);
- Wire.endTransmission();
- delay(300);
- //dht
- dht11.begin();
- dht22.begin();
- //bme
- if (!bme.begin()) {
- Serial.println("Error: BME280 sensor, Check Wiring > ");
- while (1);
- }
- bme.setTempCal(-1);//Set Sensor was reading high so offset by 1 degree C
- //wifi
- Serial.println();
- Serial.print("Configuring access point...");
- /* You can remove the password parameter if you want the AP to be open. */
- WiFi.softAP(ssid, password);
- IPAddress myIP = WiFi.softAPIP();
- Serial.print("AP IP address: ");
- Serial.println(myIP);
- webServer.on("/", handleLogin);
- ;
- webServer.onNotFound(handleNotFound);
- webServer.begin();
- Serial.println("HTTP server started");
- }
- // webServer.handleClient();
- // if(connectedWifi)
- void loop()
- {
- //read dht21
- float hum11 = dht11.readHumidity();
- float temp11 = dht11.readTemperature();
- if (isnan(hum11) || isnan(temp11)) {
- Serial.println("Failed to read from DHT11 sensor!");
- }
- else{
- Serial.print("DHT11 temp= ");
- Serial.println(temp11);
- Serial.print("DHT11 hum= ");
- Serial.println(hum11);
- }
- //read dht22
- float hum22 = dht22.readHumidity();
- float temp22 = dht22.readTemperature();
- if (isnan(hum22) || isnan(temp22)) {
- Serial.println("Failed to read from DHT22 sensor!");
- }
- else{
- Serial.print("DHT22 temp= ");
- Serial.println(temp22);
- Serial.print("DHT22 hum= ");
- Serial.println(temp22);
- }
- //read bme
- bme.readSensor();
- Serial.print("Bme280 hum= ");
- Serial.println(bme.getHumidity()); Serial.print(" %\t\t");
- Serial.print("Bme280 temp= ");
- Serial.println(bme.getTemperature_C()); Serial.print(" *C\t");
- //sht 25
- unsigned int data[2];
- Wire.beginTransmission(sht);
- //Send humidity measurement command
- Wire.write(0xF5);
- Wire.endTransmission();
- delay(500);
- // Request 2 bytes of data
- Wire.requestFrom(sht, 2);
- // Read 2 bytes of data to get humidity
- if(Wire.available() == 2)
- {
- data[0] = Wire.read();
- data[1] = Wire.read();
- }
- // Convert the data
- float humidity = ((data[0] * 256.0) + data[1]);
- humidity = ((125 * humidity) / 65536.0) - 6;
- Wire.beginTransmission(sht);
- // Send temperature measurement command
- Wire.write(0xF3);
- Wire.endTransmission();
- delay(500);
- // Request 2 bytes of data
- Wire.requestFrom(sht, 2);
- // Read 2 bytes of data for temperature
- if(Wire.available() == 2)
- {
- data[0] = Wire.read();
- data[1] = Wire.read();
- }
- // Convert the data
- float temp = ((data[0] * 256.0) + data[1]);
- float celsTemp = ((175.72 * temp) / 65536.0) - 46.85;
- float fahrTemp = celsTemp * 1.8 + 32;
- // Output data to serial monitor
- Serial.print("SHT25 Humidity : ");
- Serial.println(humidity);
- Serial.print("SHT25 Celsius : ");
- Serial.println(celsTemp);
- delay(30000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement