This whole work can be divided into two parts. First part deals with data acquisition of weather parameters like, temperature and barometric pressure of surrounding. Second part is IoT based, in which, this acquired data is uploaded to cloud server at real time. The important built up of this system is to sense the temperature and barometric pressure of the surrounding. BMP180 sensor module is used to sense temperature and barometric pressure. This sensor module is connected to Raspberry Pi. Raspberry Pi is small, single board computer. Raspberry Pi is python programmed to read data from BMP180 sensor module after interval of 30 seconds and to report readings to Beebotte API. Beebotte API is cloud server. The main advantage of this system is that, this uploaded data to Beebotte dashboard can be observed at real time from any corner of the world, with the help of system’s dashboard link.
Introduction
I. INTRODUCTION
Data acquisition is very much essential in the field of almost all kinds of research and technology [1] and if this acquired data is available to the world in real time [2], it will be worth it. It is very important to collect data or weather parameters like temperature, barometric pressure from several areas and also it is not possible to set up weather station at each of these areas. Also, there are some of the inaccessible areas, where manual data collection also becomes difficult.
Now, talking about data acquisition systems, sensors are needed to sense the data. Computers are needed to process and record the data. But keeping an intelligent system like computer at these places will disturb the surrounding. The computer based intelligent systems will occupy more space, will cause more power consumption and will be quite expensive [3, 4]. So, here an attempt has been made to develop a data acquisition system, as well as IoT based real time, remote data monitoring system, so that, acquired data is available to the world almost in real time. Also this system requires less space, it causes less power consumption and it is less expensive, as compared to computer based system. This system can be easily installed at places from where data is to be recorded and real time monitoring of this data is possible from any corner of the world.
BMP180 sensor module [5] is used to sense temperature and barometric pressure. BMP180 is combined sensor module which includes temperature sensor and barometric pressure sensor. Its operating voltage is 1.71 V to 3.6V. Both these sensors have high accuracy, high resolution, low noise and faster response time. Also, this module can be easily mounted. Its small dimensions and low power consumption makes it suitable for this system. This sensor module provides I2C interface.
The intelligent system used to process this data is Raspberry Pi 3 model B [6]. It works on 5V, 2.5A dc via micro USB connector. It has 64-bit quad core processor running at 1.4 GHz. It uses micro SD card for initial storage of operating system and data. Raspberry Pi is a small, single board computer which makes it beneficial for embedded applications. With its built-in wireless connectivity, Raspberry Pi 3 is very much suitable for IoT based projects. As the BMP 180 sensor module provides I2C interface, the communication between Raspberry Pi and BMP180 sensor module is through I2C bus.
The cloud server that is used to store the collected data is Beebotte API. In order to upload and store data on Beebotte cloud server, a user account must be created on Beebotte platform. This is followed by channel creation by user which represents the system, e.g., in this case, the channel name is “Monitoring Temperature and Barometric Pressure”. Now, different resources can be created under this channel which belongs to that channel. In this case, resources are “Temperature” and “Barometric_Pressure”. Raspberry Pi is python programmed to read data from sensors and to upload and store data to respective resources.
The programming language used to write system program is python programming language. It is open source, object oriented, high level and interpreted language.
It provides GUI programming support. Also, it has large standard library collection. Because of all these reasons, it is very much popular language for data analysis, machine learning, automation, web development, scripting, etc.
II. EXPERIMENTAL DETAILS
Here, Beebotte cloud server is used to store the acquired data. In order to upload the acquired data to this cloud server, an account “saa” is created on this cloud server. After this, the channel “Monitoring Temperature and Barometric Pressure” is created under this account. After this, two resources, i.e., “Temperature” and “Barometric_Pressure” are created under this channel. This is followed by dashboard creation for the channel, where uploaded data can be visualized. To visualize acquired data on Beebotte dashboard, two visualization widgets, i.e., “Timeline Chart” and “Table Chart” are created for every Beebotte resources, so that, data for temperature and barometric pressure is visualized on dashboard in timeline graph format and in table format. Then dashboard is made “public”, so that, by sharing this dashboard link, the uploaded data can be monitored from any corner of the world. Later, these resources, channel and account are accessed through python program, so that, the acquired data can be uploaded to this server.
This system acquires data like temperature and barometric pressure of surrounding after interval of 30 seconds and stores this data on Beebotte cloud server. Raspberry Pi is python programmed to read data from BMP180 sensor module and to upload and store data on Beebotte cloud server. BMP180 supports I2C interface. In order to establish I2C interface between Raspberry Pi and BMP180, the SDA pin of BMP180 is connected to SDA pin of Raspberry Pi and the SCL pin of BMP180 is connected to SCL pin of Raspberry Pi. I2C interface of Raspberry Pi is enabled with “raspi-config”. Fig. (1) is the block diagram of the system.
Fig. (2) is the photograph of the system which shows BMP180 sensor module is connected to Raspberry Pi through I2C bus. Raspberry Pi is provided with 5V, 2.5A dc power. BMP180 sensor module is provided with 3.3V dc power through on-board power lines of Raspberry Pi. Raspberry Pi is connected to internet over wifi connectivity, so that, acquired data, i.e., temperature and barometric pressure will be uploaded to Beebotte cloud server.
Then, necessary python libraries are installed in order to achieve the given task. Raspberry Pi is python programmed in which -
The SDA and SCL pins of Raspberry Pi are configured to enable I2C interface between Raspberry Pi and BMP180 sensor module.
The Beebotte account and channel created for the system “Monitoring Temperature and Barometric Pressure” are accessed through this program by providing necessary login credentials, like secret key and token.
The sensor output of BMP180 is read and this output or data is temporarily stored in respective variables, like, “temperature_rd” and “pressure_rd”.
This acquired data is uploaded and stored to respective resources – “Temperature” and “Barometric_Pressure” of the Beebotte channel – “Monitoring Temperature and Barometric Pressure”. This step takes almost 15 seconds to execute.
Steps iii) and iv) are repeated after interval of 30 seconds by considering time taken to read data from sensors and time taken to upload data as mentioned in step iv).
In this way, acquired data, i.e., temperature and barometric pressure is uploaded to the cloud server. This data can be visualized on dashboard of system in the form of table chart and timeline chart as shown in Fig. (3).
This channel’s dashboard link can be shared through any message sharing platform and as this channel is “public”, the uploaded data can be observed from anywhere at real time. Data modification will not be allowed to the observer. It is only allowed to the Beebotte account holder.
III. RESULT AND ANALYSIS
Fig. (3), Fig. (4), Fig. (5), Fig. (6) and Fig. (7) shows screenshots of dashboard of system. After every data acquisition step, the acquired data, i.e., temperature and barometric pressure is uploaded to the respective resources created for the channel “Monitoring Temperature and Barometric Pressure”. The uploaded data to cloud server is available on Beebotte dashboard in table chart format and in timeline graph format as shown in Fig. (4), Fig. (5), Fig. (6) and Fig. (7).
Fig. (4) is the screenshot of dashboard of system which shows timeline chart for temperature resource, where graphical variation of temperature in °C with time is shown. Following data is the latest collected data. Previously collected data is also available on dashboard. By selecting appropriate option from dropdown list of ‘Period’ option, previously uploaded data can be observed.
Conclusion
The “Raspberry Pi and IoT Based Data Acquisition and Real Time, Remote Data Monitoring System” is designed, built, programmed and tested successfully. The above system is installed at a certain place in Ratnagiri and data acquisition is done. This acquired data is verified with weather station’s data at Ratnagiri for the same span of time. The acquired data is found to be in accordance with weather station’s data.
References
[1] Vladinir Vujovic, Mirjana Maksimovic, 11th International conference \"Interactive Systems: Problems of Human-Computer Interactions\", PP 57-62, Ulyanovsk, Russia 2015.
[2] Mr. Nilesh Magare, Ms. Pooja Bharajkar, Mr. Saurabh Bansod, International Research Journal of Engineering and Technology (IRJET), Volume: 06 Issue: 07, July 2019, PP 372-374.
[3] Ioan Lita, Ion Bogdan Cioc, Ilie Popa, IEEE Conference, 2006, 29th International Spring Seminar on Electronics Technology DOI: 10.1109/ISSE.2006.365130
[4] Girish Bekaroo, Aditya Santokhee, 2016 IEEE International Conference on Emerging Technologies and Innovative Business Practices for the Transformation of Societies (EmergiTech), DOI:10.1109/EmergiTech.2016.7737367
[5] BMP180 datasheet
[6] Hirak Dipak Ghael, Dr. L Solanki, Gaurav Sahu, International Journal of Advances in Engineering and Management (IJAEM), Volume 2, Issue 12, PP: 225-227