Ajay D - (MC & MP ASSIGN)
Ajay D - (MC & MP ASSIGN)
Ajay D - (MC & MP ASSIGN)
D
MINI WEATHER STATION:
INTRODUCTION:
Capturing physical data in real-3me is always fascina3ng. Arduino board mini weather
sta3on is a mini weather sta3on which is able to give live updates. In this project, we will
find three fundamental physical parameters for weather predica3on temperature, humidity
and atmospheric pressure and also display the real-3me data on a LCD screen. In the first
part an array of libraries has been included to keep the programming short and simple. The
Wire.h and SPI.h libraries are used because Wire.h is the one that allows the Arduino to
communicate with the I2C/TWI devices such as the BMP-280 and the ST7735 LCD and SPI.h
provides the serial peripheral interface with the ST7735 LCD. In the second part, the
sensors are ini3alized and the layout, font colour, etc. of the LCD are set up for displaying
the data as per our preferences. In the final part, the output from the sensors are obtained
and displayed with a convenient delay between each reading to keep things stable.
The weather sta3on collects the following data related to the weather and environment
using different sensors:
• Temperature
• Humidity
• Atmospheric pressure
• Light intensity
• UV index
• Dust concentra3on
Coming to the programming, in the first part an array of libraries have been included to
keep the programming short and simple. Besides the obvious ones, the Wire.h and SPI.h
libraries are worth men3oning because Wire.h is the one that allows the Arduino to
communicate with the I2C/TWI devices such as the BMP-280 and the ST7735 LCD and SPI.h
provides the serial peripheral interface with the ST7735 LCD. In the second part, the
sensors are ini3alized and the layout, font colour, etc. of the LCD are set up for displaying
the data as per our preferences. In the final part of our programming, the output from the
sensors are obtained and displayed with a convenient delay between each reading to keep
things stable.
SoCware requirements:
Arduino IDE:
The Arduino Integrated Development Environment is a cross- pladorm applica3on that is
wrieen in func3ons from C and C++. It is used to write and upload programs to Arduino
compa3ble boards, but also, with the help of 3rd party cores, other vendor development
boards.
In the prototype, the components have been kept modular and connected using jumper
wires instead of soldering. This not only allows easy troubleshoo3ng and repairing but also
makes the assembly process hassle free. The device-case has been custom 3D-printed for a
perfect fit for the components. The case is provided with proper ven3la3on in order to
expose the sensors to the measurands and dissipate the heat generated by the system
which will otherwise interfere with the sensing elements. The device is powered via the
same type AUSB to type B mini USB used to program the Arduino. The prototype has been-
tested indoors at stretch for a few hours using both PC USB port and 5Vsmartphone
charger as supply. The results are quite accurate compared with online meteorological
data, considering the produc3on cost and development 3me.
- Real-Time Data
One of the biggest reasons why people have been going in for weather sta3ons is because
of the ability to get their informa3on in real 3me. In the past, the weather predic3ons were
reliant on the weather reports on the news or reports from the meteorological
departments. With weather sta3ons, users don’t have to depend on these external sources
and can get their own accurate informa3on on the weather much faster than they would
through other means.
- Real-Time Alerts
Weather condi3ons can change at any point and take a turn for the worse, especially in
areas that are prone to storms and hurricanes. Having a home weather sta3on in these
instances can help you, and your family members stay safe the moment the weather
2 of 7
18ETEC004008_AJAY.D
changes are detected. These real-3me alerts can help you, and your family members be
informed about the weather, helping everyone stay safer.
- Ease Of Use
Weather sta3ons are designed to be efficient and straighdorward. These devices are meant
to be able to provide the most accurate informa3on in the simplest way possible. If you
want a device that is simple to read, and which doesn’t overburden you with informa3on, a
wireless weather sta3on is definitely one that you should choose. If you are on the lookout
for a simple and efficient weather sta3on for your home, the ThermoPro TP-67 weather
sta3on is one product to go in for. The ease of use, as well as the fast installa3on, make this
the perfect weather sta3on to choose for your home.
- Accurate Readings
Ojen, the metrological department may be located far from your home. In these instances,
the weather predic3ons that they give are not always the most accurate. The weather in
that area might not be the same as the place that you are living in, which is why weather
sta3ons are so useful. These devices can tell you the exact temperate in the area that you
are living in and give you specific readings that are centered around your home.
BLOCK DIAGRAM:
3 of 7
18ETEC004008_AJAY.D
- BMP-280 barometric sensor:
It is an absolute barometric pressure sensor, which is especially feasible for mobile
applica3ons. Its small dimensions and its low power consump3on allow for the
implementa3on in baeery-powered devices.
CODE:
// define device I2C address: 0x76 or 0x77 (0x77 is the library default address)
#define BMP280_I2C_ADDRESS 0x76
void setup(void)
{
dht.begin(); // synchronizing DHT sensor
dt.initR(INITR_144GREENTAB); // ini3alize a ST7735S chip, black tab
dt.fillScreen(ST77XX_BLACK); // sewng black background
dt.drawFastHLine(0, 15 , dt.width(), ST77XX_CYAN);// draw horizontal separa3on line at posi3on (0, 15)
4 of 7
18ETEC004008_AJAY.D
dt.setCursor(5, 76); // move cursor to posi3on (5, 76) pixel
dt.print("Connec3on");
dt.setCursor(35, 100); // move cursor to posi3on (35, 100) pixel
dt.print("Error");
while(1); // stay here
}
dt.drawFastHLine(0, 55, dt.width(), ST77XX_CYAN); // draw horizontal sepera3on line at posi3on (0, 55)pixel
dt.drawFastHLine(0, 95, dt.width(), ST77XX_CYAN); // draw horizontal sepera3on line at posi3on (0, 195)pixel
dt.setTextColor(ST77XX_RED, ST77XX_BLACK); // set text color to red and black background
dt.setCursor(30, 20); // move cursor to posi3on (30, 20) pixel
dt.print("TEMPERATURE "); // sewng heading for first sec3on
dt.setTextColor(ST77XX_CYAN, ST77XX_BLACK); // set text color to cyan and black background
dt.setCursor(40, 60); // move cursor to posi3on (40, 60) pixel
dt.print("HUMIDITY "); // sewng heading for second sec3on
dt.setTextColor(ST77XX_GREEN, ST7735_BLACK); // set text color to green and black background
dt.setCursor(40, 100); // move cursor to posi3on (40, 100) pixel
dt.print("PRESSURE "); // sewng heading for third sec3on
dt.setTextSize(2); // sewng text size to 2
}
// main loop
void loop()
{
char _buffer[8];
// read temperature, humidity and pressure from the BMP280 sensor
float temp = bmp280.readTemperature(); // get temperature in °C
float hum = dht.readHumidity(); // get humidity in rH%
float pres = bmp280.readPressure(); // get pressure in hPa
Conclusion
In conclusion it can be said that this project is quite economical, useful to say the least, and
most importantly, it is fun having a small and handy weather sta3on that fits right in your
pocket.
COURSERA CERTIFICATES :
LINK:
heps://www.coursera.org/account/accomplishments/records/446C4JD6RQMN?
utm_source=link&utm_medium=cer3ficate&utm_content=cert_image&utm_campaign=sh
aring_cta&utm_product=course
6 of 7
18ETEC004008_AJAY.D
LINK:
heps://www.coursera.org/account/accomplishments/records/6E3LYL8YSTQY?
utm_source=link&utm_medium=cer3ficate&utm_content=cert_image&utm_campaign=sh
aring_cta&utm_product=course
7 of 7