Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Arduino.h>
- #include <U8g2lib.h>
- #include <ESP8266WiFi.h>
- #include <Wire.h>
- #include <Adafruit_BME280.h>
- #include <Adafruit_Sensor.h>
- U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
- #define SEALEVELPRESSURE_HPA (1013.25)
- Adafruit_BME280 bme;
- // Replace with your network credentials
- const char* ssid = "ssid";
- const char* password = "password";
- int ledPin = 13;
- // Set web server port number to 80
- WiFiServer server(80);
- // Variable to store the HTTP request
- String header;
- void showBootScreen(){
- /*
- This is a function. you can call it anywhere in your code. Think of it as a macro -
- you can use a lot of commands that will be executed by only one command.
- */
- u8g2.clearBuffer();
- u8g2.setFont(u8g2_font_ncenB08_tr);
- u8g2.drawStr(48, 10, "CCMS");
- u8g2.drawStr(30, 21, "Earth Science");
- u8g2.drawStr(25, 31, "Weather Station");
- u8g2.drawStr(56, 60, "Ms. Duverge");
- u8g2.sendBuffer();
- delay(5000);
- u8g2.clear();
- delay(1000);
- u8g2.clearBuffer();
- u8g2.setFont(u8g2_font_ncenB08_tr);
- u8g2.drawStr(25, 30, "Visit our server");
- u8g2.drawStr(40, 41, "192.168.1.18");
- u8g2.sendBuffer();
- delay(30000);
- }
- void setup(){
- pinMode(ledPin,OUTPUT);
- digitalWrite(ledPin,LOW);
- Serial.begin(115200);
- u8g2.begin();
- if (!bme.begin(0x76)){
- Serial.println("BME SENSOR not found!! Check wireing!! Stopping execution!");
- u8g2.clearBuffer();
- u8g2.setFont(u8g2_font_ncenB08_tr);
- u8g2.drawStr(0, 10, "Could not find a valid BME280 sensor, check wiring!");
- for(;;){yield()}; // otherwise, your MCU will throw a WDT reset ;)
- }
- Serial.print("\n\nWifi connecting to");
- Serial.println(ssid);
- WiFi.begin(ssid,password);
- Serial.print("\nConnecting");
- while ( WiFi.status() != WL_CONNECTED ) {
- delay(500);
- Serial.print(".");
- }
- digitalWrite( ledPin , HIGH);
- Serial.println("\nWifi Connected Success!");
- Serial.print("NodeMCU IP Address : ");
- Serial.println(WiFi.localIP() );
- server.begin();
- showBootScreen();
- }
- void loop(void) {
- WiFiClient client = server.available();
- if (client){
- Serial.println("New Client!");
- String currentLine = "";
- while (client.connected()){
- if (client.available()){
- char c = client.read();
- Serial.write(c);
- header += c;
- if (c=='\n') {
- if (currentLine.length() == 0) {
- client.println("HTTP/1.1 200 OK");
- client.println("Content-type:text/html");
- client.println("Connection: close");
- client.println();
- // Display the HTML web page
- client.println("<!DOCTYPE html><html>");
- client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">");
- client.println("<link rel=\"icon\" href=\"data:,\">");
- // CSS to style the table
- client.println("<style>body { text-align: center; font-family: \"Trebuchet MS\", Arial;}");
- client.println("table { border-collapse: collapse; width:35%; margin-left:auto; margin-right:auto; }");
- client.println("th { padding: 12px; background-color: #0043af; color: white; }");
- client.println("tr { border: 1px solid #ddd; padding: 12px; }");
- client.println("tr:hover { background-color: #bcbcbc; }");
- client.println("td { border: none; padding: 12px; }");
- client.println(".sensor { color:white; font-weight: bold; background-color: #bcbcbc; padding: 1px; }");
- // Web Page Heading
- client.println("</style></head><body><h1>CCMS Weather Station</h1>");
- client.println("<table><tr><th>MEASUREMENT</th><th>VALUE</th></tr>");
- client.println("<tr><td>Temp. Celsius</td><td><span class=\"sensor\">");
- client.println(bme.readTemperature());
- client.println(" *C</span></td></tr>");
- client.println("<tr><td>Temp. Fahrenheit</td><td><span class=\"sensor\">");
- client.println(1.8 * bme.readTemperature() + 32);
- client.println(" *F</span></td></tr>");
- client.println("<tr><td>Pressure</td><td><span class=\"sensor\">");
- client.println(bme.readPressure() / 100.0F);
- client.println(" hPa</span></td></tr>");
- client.println("<tr><td>Approx. Altitude</td><td><span class=\"sensor\">");
- client.println(bme.readAltitude(SEALEVELPRESSURE_HPA));
- client.println(" m</span></td></tr>");
- client.println("<tr><td>Humidity</td><td><span class=\"sensor\">");
- client.println(bme.readHumidity());
- client.println(" %</span></td></tr>");
- client.println("</body></html>");
- // The HTTP response ends with another blank line
- client.println();
- // Break out of the while loop
- break;
- }else{
- currentLine="";
- }
- } else if (c != '\r') {
- currentLine += c;
- }
- }
- }
- // Clear the header variable
- header = "";
- // Close the connection
- client.stop();
- Serial.println("Client disconnected.");
- Serial.println("");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement