Project Report 014
Project Report 014
Project Report
EE-444
Power Generation
Submitted To
Dr- Muhammad Arshad Shahzad Hassan
Submitted by
Muhammad Hamza
{Bee-Fa20-014}
1|Page
EE-444 Power Generation
Department of Electrical Engineering
Abstract:
This report details the design, implementation, and deployment of an Internet of
Things (IoT) based weather station utilizing the ESP8266 microcontroller, BMP280
sensor, and the ThingSpeak platform. The system is designed to collect real-time
weather data, including temperature, humidity, and atmospheric pressure, and
transmit it to ThingSpeak for visualization and analysis.
1. Introduction:
The integration of IoT into weather monitoring systems has gained significant
attention due to its ability to provide real-time data collection and remote
accessibility. In this project, an ESP8266 microcontroller is used to interface with a
BMP280 sensor for capturing environmental data, and ThingSpeak is employed as
a cloud platform for storage and visualization.
2. Components Used:
a. ESP8266 Microcontroller:
• The ESP8266 is a low-cost Wi-Fi-enabled microcontroller with built-in
support for Wi-Fi networking.
• It is used as the main controller for data acquisition and communication.
b. BMP280 Sensor:
• The BMP280 is a digital barometric pressure and temperature sensor.
• It provides accurate measurements of atmospheric pressure, temperature, and
altitude.
2|Page
EE-444 Power Generation
Department of Electrical Engineering
3. System Architecture:
a. Data Acquisition:
• The ESP8266 reads temperature, humidity, and pressure data from the
BMP280 sensor.
3|Page
EE-444 Power Generation
Department of Electrical Engineering
4. Implementation:
a. Hardware Setup:
• Connect the BMP280 sensor to the ESP8266 microcontroller.
• Ensure proper power supply and wiring connections.
4|Page
EE-444 Power Generation
Department of Electrical Engineering
ESP8266WebServer server(80);
void setup()
{ Serial.begin(115200);
delay(100);
bmp.begin(0x76);
Serial.println("Connecting to ");
Serial.println(ssid);
5|Page
EE-444 Power Generation
Department of Electrical Engineering
Serial.println("WiFi connected..!");
Serial.print("Got IP: "); Serial.println(WiFi.localIP());
server.on("/", handle_OnConnect);
server.onNotFound(handle_NotFound);
server.begin();
Serial.println("HTTP server started");
} void loop()
{
server.handleClient();
}
void handle_OnConnect() {
temperature = bmp.readTemperature(); //
humidity = bmp.readHumidity();
pressure = bmp.readPressure() / 100.0F;
altitude = bmp.readAltitude(SEALEVELPRESSURE_HPA);
server.send(200, "text/html", SendHTML(temperature,pressure,altitude)); }
void handle_NotFound(){
server.send(404, "text/plain", "Not found");
}
6|Page
EE-444 Power Generation
Department of Electrical Engineering
7|Page
EE-444 Power Generation
Department of Electrical Engineering
ptr +="</div>";
ptr +="<div class='side-by-side text'>Temperature</div>";
ptr +="<div class='side-by-side reading'>"; ptr
+=(int)temperature;
ptr +="<span class='superscript'>°C</span></div>"; ptr +="</div>";
ptr +="<div class='data humidity'>"; ptr +="<div class='side-by-side
icon'>"; ptr +="<svg enable-background='new 0 0 29.235
40.64'height=40.64px id=Layer_1 version=1.1 viewBox='0 0 29.235
40.64'width=29.235px x=0px xml:space=preserve
xmlns=http://www.w3.org/2000/svg
xmlns:xlink=http://www.w3.org/1999/xlink y=0px><path
d='M14.618,0C14.618,0,0,17.95,0,26.022C0,34.096,6.544,40.64,14.618,40.
64s14.
617-6.544,14.617-14.617";
ptr +="C29.235,17.95,14.618,0,14.618,0z M13.667,37.135c-5.604,0-10.162-4.56-
10.162-10.162c0-0.787,0.638-1.426,1.426-1.426";
ptr
+="c0.787,0,1.425,0.639,1.425,1.426c0,4.031,3.28,7.312,7.311,7.312c0.787,0,1.42
5,0.638,1.425,1.425";
ptr +="C15.093,36.497,14.455,37.135,13.667,37.135z'fill=#3C97D3 /></svg>";
ptr +="</div>";
8|Page
EE-444 Power Generation
Department of Electrical Engineering
0.242,0.934c0,1.102,0.894,1.995,1.994,1.995v0.015h31.888c1.101,0,1.9940.8
93,1.994-1.994"; ptr
+="C58.422,38.323,58.339,38.024,58.203,37.754z'fill=#955BA5 /><path
d='M19.704,38.674l-0.013-0.004l13.544-23.522L25.13,1.156l-
0.002,0.001C24.671,0.459,23.885,0,22.985,0"; ptr +="c-0.84,0-1.582,0.41-
2.051,1.038l-0.016-0.01L20.87,1.114c-0.025,0.039-
0.046,0.082-0.068,0.124L0.299,36.851l0.013,0.004";
ptr
+="C0.117,37.215,0,37.62,0,38.059c0,1.412,1.147,2.565,2.565,2.565v0.015h16.98
9c-0.091-0.256-0.149-0.526-0.149-0.813";
ptr +="C19.405,39.407,19.518,39.019,19.704,38.674z'fill=#955BA5
/></g></svg>";
ptr +="</div>";
ptr +="<div class='side-by-side text'>Altitude</div>";
ptr +="<div class='side-by-side reading'>";
ptr +=(int)altitude;
ptr +="<span class='superscript'>m</span></div>";
ptr +="</div>"; ptr +="</div>"; ptr +="</body>";
ptr +="</html>"; return ptr;
}
c. Code Implementation:
• Develop code to read sensor data and transmit it to ThingSpeak.
• Implement error handling and connection management.
6. Conclusion:
The implemented IoT-based weather station using ESP8266, BMP280, and
ThingSpeak provides a cost-effective and efficient solution for real-time weather
monitoring. The system offers remote accessibility, ease of integration, and data
visualization capabilities, making it a valuable tool for various applications,
including agriculture, research, and environmental monitoring.
7. Future Enhancements:
9|Page
EE-444 Power Generation
Department of Electrical Engineering
10 | P a g e