Advertisement
Guest User

Untitled

a guest
Jan 25th, 2020
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.34 KB | None | 0 0
  1. #include <Arduino.h>
  2. #include <U8g2lib.h>
  3. #include <ESP8266WiFi.h>
  4. #include <Wire.h>
  5. #include <Adafruit_BME280.h>
  6. #include <Adafruit_Sensor.h>
  7.  
  8.  
  9. U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
  10.  
  11. #define SEALEVELPRESSURE_HPA (1013.25)
  12.  
  13. Adafruit_BME280 bme;
  14.  
  15. // Replace with your network credentials
  16. const char* ssid = "ssid";
  17. const char* password = "password";
  18.  
  19. int ledPin = 13;
  20.  
  21. // Set web server port number to 80
  22. WiFiServer server(80);
  23.  
  24. // Variable to store the HTTP request
  25. String header;
  26.  
  27.  
  28. void showBootScreen(){
  29.  
  30.   /*
  31.     This is a function. you can call it anywhere in your code. Think of it as a macro -
  32.     you can use a lot of commands that will be executed by only one command.
  33.   */
  34.  
  35.   u8g2.clearBuffer();
  36.   u8g2.setFont(u8g2_font_ncenB08_tr);
  37.   u8g2.drawStr(48, 10, "CCMS");
  38.   u8g2.drawStr(30, 21, "Earth Science");
  39.   u8g2.drawStr(25, 31, "Weather Station");
  40.   u8g2.drawStr(56, 60, "Ms. Duverge");
  41.   u8g2.sendBuffer();
  42.  
  43.   delay(5000);
  44.  
  45.   u8g2.clear();
  46.   delay(1000);
  47.  
  48.   u8g2.clearBuffer();
  49.   u8g2.setFont(u8g2_font_ncenB08_tr);
  50.   u8g2.drawStr(25, 30, "Visit our server");
  51.   u8g2.drawStr(40, 41, "192.168.1.18");
  52.   u8g2.sendBuffer();
  53.  
  54.   delay(30000);
  55.  
  56. }
  57.  
  58.  
  59. void setup(){
  60.  
  61.   pinMode(ledPin,OUTPUT);
  62.   digitalWrite(ledPin,LOW);
  63.  
  64.   Serial.begin(115200);
  65.  
  66.   u8g2.begin();
  67.  
  68.   if (!bme.begin(0x76)){
  69.     Serial.println("BME SENSOR not found!! Check wireing!! Stopping execution!");
  70.    
  71.     u8g2.clearBuffer();
  72.     u8g2.setFont(u8g2_font_ncenB08_tr);
  73.     u8g2.drawStr(0, 10, "Could not find a valid BME280 sensor, check wiring!");
  74.    
  75.     for(;;){yield()}; // otherwise, your MCU will throw a WDT reset ;)
  76.   }
  77.  
  78.   Serial.print("\n\nWifi connecting to");
  79.   Serial.println(ssid);
  80.  
  81.   WiFi.begin(ssid,password);
  82.  
  83.   Serial.print("\nConnecting");
  84.  
  85.   while ( WiFi.status() != WL_CONNECTED ) {
  86.     delay(500);
  87.     Serial.print(".");
  88.   }
  89.  
  90.   digitalWrite( ledPin , HIGH);
  91.  
  92.   Serial.println("\nWifi Connected Success!");
  93.   Serial.print("NodeMCU IP Address : ");
  94.   Serial.println(WiFi.localIP() );
  95.  
  96.   server.begin();
  97.  
  98.   showBootScreen();
  99.  
  100. }
  101.  
  102.  
  103.  
  104. void loop(void) {
  105.   WiFiClient client = server.available();
  106.   if (client){
  107.     Serial.println("New Client!");
  108.     String currentLine = "";
  109.     while (client.connected()){
  110.       if (client.available()){
  111.         char c = client.read();
  112.         Serial.write(c);
  113.         header += c;
  114.         if (c=='\n') {
  115.           if (currentLine.length() == 0) {
  116.             client.println("HTTP/1.1 200 OK");
  117.             client.println("Content-type:text/html");
  118.             client.println("Connection: close");
  119.             client.println();
  120.            
  121.             // Display the HTML web page
  122.             client.println("<!DOCTYPE html><html>");
  123.             client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">");
  124.             client.println("<link rel=\"icon\" href=\"data:,\">");
  125.             // CSS to style the table
  126.             client.println("<style>body { text-align: center; font-family: \"Trebuchet MS\", Arial;}");
  127.             client.println("table { border-collapse: collapse; width:35%; margin-left:auto; margin-right:auto; }");
  128.             client.println("th { padding: 12px; background-color: #0043af; color: white; }");
  129.             client.println("tr { border: 1px solid #ddd; padding: 12px; }");
  130.             client.println("tr:hover { background-color: #bcbcbc; }");
  131.             client.println("td { border: none; padding: 12px; }");
  132.             client.println(".sensor { color:white; font-weight: bold; background-color: #bcbcbc; padding: 1px; }");
  133.            
  134.             // Web Page Heading
  135.             client.println("</style></head><body><h1>CCMS Weather Station</h1>");
  136.             client.println("<table><tr><th>MEASUREMENT</th><th>VALUE</th></tr>");
  137.             client.println("<tr><td>Temp. Celsius</td><td><span class=\"sensor\">");
  138.             client.println(bme.readTemperature());
  139.             client.println(" *C</span></td></tr>");
  140.             client.println("<tr><td>Temp. Fahrenheit</td><td><span class=\"sensor\">");
  141.             client.println(1.8 * bme.readTemperature() + 32);
  142.             client.println(" *F</span></td></tr>");
  143.             client.println("<tr><td>Pressure</td><td><span class=\"sensor\">");
  144.             client.println(bme.readPressure() / 100.0F);
  145.             client.println(" hPa</span></td></tr>");
  146.             client.println("<tr><td>Approx. Altitude</td><td><span class=\"sensor\">");
  147.             client.println(bme.readAltitude(SEALEVELPRESSURE_HPA));
  148.             client.println(" m</span></td></tr>");
  149.             client.println("<tr><td>Humidity</td><td><span class=\"sensor\">");
  150.             client.println(bme.readHumidity());
  151.             client.println(" %</span></td></tr>");
  152.             client.println("</body></html>");
  153.            
  154.             // The HTTP response ends with another blank line
  155.             client.println();
  156.             // Break out of the while loop
  157.             break;
  158.             }else{
  159.             currentLine="";
  160.           }
  161.           } else if (c != '\r') {
  162.           currentLine += c;
  163.         }
  164.       }
  165.     }
  166.     // Clear the header variable
  167.     header = "";
  168.     // Close the connection
  169.     client.stop();
  170.     Serial.println("Client disconnected.");
  171.     Serial.println("");
  172.   }
  173. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement