init code

This commit is contained in:
Hiajen Hiajen 2022-02-27 13:16:44 +01:00
parent 9fd0ea3b2c
commit 908c96e870
2 changed files with 197 additions and 0 deletions

194
Weather.c.ino Normal file
View file

@ -0,0 +1,194 @@
#include <Adafruit_BMP280.h>
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include "DHT.h"
#include <SPI.h>
#include "proj_password.h"
#define LED 2 //On board LED
#define DHTTYPE DHT22 // DHT 11
uint8_t DHTPin = 12;
DHT dht(DHTPin, DHTTYPE);
// define device I2C address: 0x76 or 0x77 (0x77 is library default address)
#define BMP280_I2C_ADDRESS 0x76
// initialize Adafruit BMP280 library
Adafruit_BMP280 bmp280;
float humidity, temperature, temperature_2, pressure;
ESP8266WebServer server(80); //Server on port 80
const char MAIN_page[] PROGMEM = R"=====(
<!doctype html>
<html>
<head>
<title>Weather</title>
<h1 style="text-align:center; color:red;">Some Weather ....</h1>
<h3 style="text-align:center;">NodeMCU Data Logger</h3>
<style>
canvas{
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
}
/* Data Table Styling*/
#dataTable {
font-family: sans-serif;
border-collapse: collapse;
width: 100%;
text-align: center;
}
#dataTable td, #dataTable th {
border: 1px solid #ddd;
padding: 8px;
}
#dataTable tr:nth-child(even){background-color: #f2f2f2;}
#dataTable tr:hover {background-color: #ddd;}
#dataTable th {
padding-top: 12px;
padding-bottom: 12px;
text-align: center;
background-color: #050505;
color: white;
}
</style>
</head>
<body>
<div>
<table id="dataTable">
<tr>
<th>Time</th>
<th>Temperature (&deg;C)</th>
<th>Temperature 2 (&deg;C)</th>
<th>Humidity (%)</th>
<th>Pressure (hPa)</th>
</tr>
</table>
</div>
<br>
<br>
<script>
var Tvalues = [];
var Hvalues = [];
var timeStamp = [];
var T2value = [];
var Pvalue = [];
setInterval(function() {
// Call a function repetatively with 5 Second interval
getData();
}, 5000); //5000mSeconds update rate
function getData() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
//Push the data in array
var time = new Date().toLocaleTimeString();
var txt = this.responseText;
var obj = JSON.parse(txt);
Tvalues.push(obj.Temperature);
Hvalues.push(obj.Humidity);
T2value.push(obj.Temperature_2);
Pvalue.push(obj.Pressure);
timeStamp.push(time);
if(Tvalues.length > 10){
Tvalues.pop();
Hvalues.pop();
timeStamp.pop();
T2value.pop();
Pvalue.pop();
document.getElementById("dataTable").deleteRow(10);
}
//Update Data Table
var table = document.getElementById("dataTable");
var row = table.insertRow(1); //Add after headings
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
var cell4 = row.insertCell(3);
var cell5 = row.insertCell(4);
cell1.innerHTML = time;
cell2.innerHTML = obj.Temperature;
cell3.innerHTML = obj.Temperature_2;
cell4.innerHTML = obj.Humidity;
cell5.innerHTML = obj.Pressure;
}
};
xhttp.open("GET", "readData", true); //Handle readData server on ESP8266
xhttp.send();
}
</script>
</body>
</html>
)=====";
void handleRoot() {
String s = MAIN_page; //Read HTML contents
server.send(200, "text/html", s); //Send web page
}
void readData() {
String data = "{\"Temperature\":\"" + String(temperature) + "\", \"Humidity\":\"" + String(humidity) + "\", \"Temperature_2\":\"" + String(temperature_2) + "\", \"Pressure\":\"" + String(pressure) + "\" }";
digitalWrite(LED,!digitalRead(LED)); //Toggle LED on data request ajax
server.send(200, "text/plane", data); //Send ADC value, temperature and humidity JSON to client ajax request
delay(2000);
temperature = (dht.readTemperature());
humidity = dht.readHumidity();
// read temperature and pressure from BMP280 sensor
temperature_2 = (bmp280.readTemperature()); // get temperature
pressure = (bmp280.readPressure()/100); // get pressure
Serial.println("T1: " + String(temperature) + " T2:" + String(temperature_2) + " H:" + String(humidity) + " P: " + String(pressure));
}
void setup ()
{
Serial.begin(115200);
Serial.println();
pinMode(DHTPin, INPUT);
dht.begin();
// initialize the BMP280 sensor
//Wire.begin(D1, D2); // set I2C pins [SDA = D2, SCL = D1], default clock is 100kHz
//Wire.begin(4, 0);
Wire.begin();
while(!bmp280.begin(BMP280_I2C_ADDRESS)){
Serial.println("BPM280 put");
delay(1000);
}
WiFi.begin(ssid, password); //Connect to your WiFi router
Serial.println("");
//Onboard LED port Direction output
pinMode(LED,OUTPUT);
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
//If connection successful show IP address in serial monitor
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP()); //IP address assigned to your ESP
server.on("/", handleRoot); //Which routine to handle at root location. This is display page
server.on("/readData", readData); //This page is called by java Script AJAX
server.begin(); //Start server
Serial.println("HTTP server started");
}
void loop(void){
server.handleClient(); //Handle client requests
}

3
proj_password.h Normal file
View file

@ -0,0 +1,3 @@
//SSID and Password of your WiFi router
const char* ssid = "";
const char* password = "";