Smart Mobile System for Environmental Recognition and Monitoring [613573]
Smart Mobile System for Environmental Recognition and Monitoring
Alexandru Constantin
Eugen Petac
“Ovidius” University of Constanța, Faculty of Mathematics and Computer Science
epetac@univ -ovidius.ro
[anonimizat]
Abstract
This paper proposes a mobile system for temperature, humidity, dewpoint, thermal comfort index and
gas monitoring, as well as a environmental recognition, performed remotely. The application is called
ReconBot, and from an architecture standpoint, the application is based on the client -server paradigm.
Our solution works in a secure and reliable way in terms of storage, transmission, authentication. The
results offered by our solution can be used in environmental research scenarios.
Key words: Environmental Monitoring, Environmental Recognition, Mobile System.
1. Introduction
The human body is affected by sudden temperature and humidity changes, as well as elevated gas
levels. If thermal comfort index values are unusually low or high, cellular -level changes occur, and
human health is put at risk (Mora et . al., 2018). To evaluate the thermal comfort index, we need to
assess the dewpoint temperature (Pfluger, Feist and Neher, 2013). The dewpoint corresponds to the
temperature at which the surrounding air is sat urated with water vapors. Extreme humidity and
temperature conditions affect us, humans, but affect animals (Silva and Passini, 2017) and plants (Xu,
Yan and Tang, 2015) as well (Petac and Constantin, 2019) .
As for gas levels, it is important to mention th at elevated carbon monoxide (CO) levels represent a real
threat to humans. Carbon monoxide is an odorless, colorless gas which results from fuel burning, and
symptoms of CO poisoning are headache, dizziness, weakness, vomiting and chest pain (Centers for
Disease Control and Prevention, 2018). To calculate gas values, we use a measurement unit called PPM
(parts per million) , which is equivalent to units of mg/m3 (Lenntech B.V. , 2008 ). Values in excess of 200
PPM represent an immediate danger, and values in e xcess of 6400 PPM can lead to death within
minutes (DetectCarbonMonoxide.com , 2019 ). Talking about LPG levels, it is important to note that
values in excess of 2000 PPM represent an immediate danger, and values in excess of 100.000 PPM can
lead to asphyxia and death within minutes (Centers for Disease Control and Prevention, 2014).
In this paper we propose a robust system called ReconBot , which is based on the Raspberry Pi 3 Model B
(Raspberry Pi Foundation , 2019 ) single board computer (SBC). From a hardware standpoint, the SBC is
mounted on a car -like platform, the wheels being driven by a n L298N module (Optimus Digital SRL,
2019 ) which is connected to the SBC. The temperature and humidity readings are obtained using the
DHT11 sensor (Learn.Adafruit. com, 2019), and the gas related readings are obtained using a MQ2 gas
sensor (COMPONENTS101, 2018), which is part of a setup that also includes the MCP3008 analog -to-
digital converter ( DiCola , 2016), and a logic level converter (Brainy Bits, 2018). The use of such converter
is required due to the fact that the MQ -2 sensor operates at 5 volts, which is too much for the GPIO pins
of the Raspberry Pi board which were design to operate at 3,3 volts. The MCP3008 module is required to
obtain accurate PPM readings .
Talking about the software side of the system (which is presented in more detail in Section 3), and the
client -server paradigm, the SBC hosts the main server, called ReconBotMaster, a database server used
for accessing sensor data that was obtained in th e past, and a server which is used to access the camera
feed, which is used for environmental recognition. The main server uses the Transmission Control
Protocol (TCP), one of the first and most important protocols of the Internet protocol suite. The main
advantages of TCP are the reliability of the data transfers, and the fact that it works in a device -agnostic
manner (ARASEC , 2019 ).The client, called ReconBotClient, is an application designed for the Windows
operating system, which allows users to connect to the device and gather data. The application was
developed using the C# and Python programming languages, and the .NET Framework. The solution
offers security, reliability, and ease of use, thanks to the layout of the Windows client, which is able to
generate statistics and graphs regarding the monitoring status of a certain day and hour. Some results
are presented in Section 4.
2. Theoretical background
The client -server model is a distributed application architecture which assigns tasks to the entitie s that
provide services or resources, called servers, and to the entities that request such resources, called
clients (Oluwatosin, 2014) . Usually, clients and servers are located in separate networks.
C# (Nagel, 2018) is an object -oriented programming lang uage created by Microsoft, derived from the C
and C++ programming languages. It also includes influences from other programming languages, most
notably Java, being a robust solution for developing robust industrial -grade web -based and desktop
applications.
.NET Framework (GoalKicker.com, 2018) is an environment that allows for developing and running
applications and web services in a cross -platform manner. The automated memory management, the
interoperability of the languages and the security and portability of the applications are the main
features of the architecture of this environment. .NET Framework has two main components, Common
Language Runtime (CLR) and Base Class Library (BCL). CLR is the execution environment of the
applications, which a lso handles memory management and exceptions. BCL covers a large area of
programming work, including user interfaces, connections to databases, web application development,
network communications and others. The code of the library is precompiled, being en capsulated in
methods, which programmers can call in their own programs. In turn, methods belong to classes, and
classes are organized in namespaces. To create applications, programmers combine their own code with
BCL code (Petac and Constantin, 2019).
Created by programmer Guido van Rossum, Python (Jaworski and Ziade, 2016) is a multipurpose,
portable, interpreted, high -level programming language, which makes use of the object -oriented
programming paradigm, and allows for imperative, functional or procedur al programming. Also, it is a
dynamically typed language, which combines coding power and a clean syntax. The Python platform
provides many modules for a large number of functionalities, from basic functionalities such as string
and file handling, to compl ex functionalities such as processes and thread handling, sockets,
serializations, and many more. Python is used in embedded systems, automatization, web applications,
artificial intelligence, data analysis, etc (Petac and Constantin, 2019).
To calculate the dewpoint temperature, identified by TD and expressed in Celsius degrees, the following
formula is used (McNoldy, 2015):
TD = 243.04*(LN(RH/100)+((17.625*T)/(243.04+T)))/(17.625 -LN(RH/100) – ((17.625*T)/(243.04+T)))
where:
T – stands for the environment temperature in Celsius degrees;
RH – stands for relative humidity in percentages;
LN – stands for natural logarithm.
To calculate the thermal comfort index value, identified by TCI, we use the following formula
(Teodoreanu, 2016):
TCI = (T*1.8+32) -(0.55 -0.0055*RH)*((T*1.8+32) -58)
where:
T – stands for the environment temperature in Celsius degrees;
RH – stands for relative humidity in percentages ;
TCI ≤ 65 – comfort ;
66 ≤ TCI ≤ 79 – alert ;
TCI ≥ 80 – discomfort .
For environmental recognition we use a camera and a background subtraction algorithm in order to
detect motion in the surrounding environment . The implementation of the algorithm makes extensive
use of OpenCV, a computer vision and machine learning library ( GeeksforGeeks , 2019 ), and consists of
the following steps:
Accumulating the weighted average of the previous N frames ;
Taking the current frame and subtracting it from the weighted average of frames ;
Thresholding the output of the subtraction to highlight the regions with substantial differen ces
in pixel values (“white” for foreground and “black” for background) ;
Applying basic image processing techniques such as erosions and dilations to remove noise ;
Utilizing contour detection to extract the regions containing motion (Rosebrock, 2019) .
It is important to mention that other motion detection algorithms do exist, like the frame difference
algorithm, which represents the simplest form of background subtraction.
This technique falls short when it comes to noise and variations in illumination , and because of the way
it works, by only using a single previous frame instead of using an average of the previous frames (like
the background subtraction method), it has problems with uniformly colored moving objects and with
non-background objects if t hey stop moving (P. Gupta, M. Gupta and Singh, 2014), thus, this method
proves to be unreliable in our use case, since the scenarios in which the device will work are varied and
unpredictable (i.e. an open field, or indoors).
3. Proposed method
3.1. The hardware
3.1.1 . Raspberry Pi 3 Model B
The Raspberry Pi 3 Model B board was developed by the Raspberry Pi Foundation, its main advantages
being the low acquisition cost and the open -source nature of the whole project. This board has enough
computation al power to be used in many Internet of Things (Gartner, 2019) projects, such as IP camera
projects, and sensor -based projects. The board was designed to use Linux -based operating systems,
such as Raspbian, which was developed by the same Raspberry Pi Foun dation.
The board offers a 40 -pin General Purpose Input/Output (GPIO) header which is useful for connecting
external modules. The configuration of the pin header is the following (Raspberry Pi Foundation , 2019 ):
Figure 1: The GPIO header layout. Source: Raspberry Pi Foundation
The 3V3 and 5V pins are used to provide power to the external modules, while the “GPIO” pins are used
for data transmission.
3.1.2. The DHT11 humidity and temperature sensor
The DHT11 digital sensor is a popular solution used to obtain temperature and humidity readings. It uses
a capacitive module and a thermistor to analyze the surrounding air . By using 3 female -female cables we
can connect the sensor to the board. The “VCC” pin on the sensor corresponds with a 3V3 power pin on
the board. The “DATA” pin on the sensor corresponds with any “GPIO” pin on the board, while the
“GND” pin on the sensor corresponds with a ground pin on the board.
3.1.3. The MQ -2 gas sensor
This sensor offers an efficient way of de tecting LPG, carbon monoxide, and smoke. MQ -2 is a popular
and cost -efficient sensor, another main advantage of its use being the multitude of readily available
libraries which allow for a n easier development process. In order to acquire reliable data from the MQ -2
sensor, we need an analog -to-digital (ADC) converter, like MCP3008.
3.1.4. The MCP3008 analog -to-digital converter
In our case, the role of the MCP3008 module is to transform the analog signal from the MQ -2 sensor
into a digital signal, then to feed it to the board. By using a library, we are able to process the signal from
the MCP3008 module and provide accurate gas data.
3.1.5. Logic -level converter (TTL)
In our case, this module is used to convert the 5V signal from the MCP3008 converter (ori ginat ing from
the MQ -2 sensor) which is too high for the GPIO pins of the board, into a 3,3V signal, which the pins
were designed to use. Feeding a 5V signal to the GPIO pins can physically damage the board.
3.1.6. The L298N driver module
This module is r esponsible for driving the four wheels attached to the car platform, each of these wheels
being powered by a DC motor.
3.1.7. The gas sensor setup
Figure 2: Gas sensor setup. Source: Tutorials -RaspberryPi
Data flow: MQ -2 sensor → TTL → MCP3008 → Raspberry Pi
3.1.8. The Pi NoIR camera
To obtain a video feed of the surroundings, which we need in order to drive the car and apply the
motion detection algorithm, we used the Pi NoIR camera (Sety Robotics SRL , 2019 ). It works very well
during night -time or when the luminosity is scarce. To connect it to the board, we used the CSI port
(Raspberry Pi Foundation) .
3.2. The software
3.2.1. The main server – ReconBotMaster
The main server has 5 components:
1. The “data .py” Python script which acquires data from the DHT11 sensor, and reads the
“gas_val.txt” file which contains gas data
2. The “gas.py” script which obtains data from the MQ -2 sensor and writes it in the “gas_val.txt”
file
3. The server executable, “ReconBotMaste r.exe” , which accepts inbound TCP connections from
clients and replies to their messages; it was written using C#, and works under Raspbian via the
Mono platform
4. The system service which manages the executable of the main server
5. The system service for “gas .py”, its main purpose being to launch the script at system startup, to
allow the MQ -2 sensor to calibrate
3.2.2. data.py – the script which reads and sends data from the sensors
To create this script, we used the DHT11 Python (Github , 2019 ) library, which allows us to communicate
with the DHT11 sensor in order to obtain temperature, humidity, thermal comfort index and dewpoint
values, while the script also reads data from the “gas_val.txt” file.
3.2.3. gas.py – the script which obtains data from the MQ -2 sensor
This script is meant to run at system startup, while the device is placed in a clean air environment, for a
proper calibration of the MQ -2 sensor. After that, by using the Raspberry Pi Gas Sensor MQ (Github ,
2019 ) library, we gather the gas data fro m the sensor, through the MCP3008 module, and we write it
down in the “gas_val.txt” file, so the “data.py” script can read that data.
3.2.4. The executable of the main server
This executable is a console application, which makes use of the C# programming language, and the
.NET Framework. In order to run this application on a Linux -based operating system, we used Mono.
Mono is a software platform which helps in developing cross -platform applications, using the C#
programming language and the .NET Framework (Mono -Project.com, 2019) . Considering the fact that
the executable was written on Windows, Mono will allow us to run it on Raspbian.
3.2.4.1. The TCPServer class
The “Start” method allows to server to listen for new client connections. The parameters requ ired by
this method are the TCP port on which the application will listen for new connections, and the
encryption/decryption password necessary to process messages. This password is only known by the
device administrator and the clients that wish to connec t. The client -server communication is encrypted
using the Advanced Encryption Standard (AES) algorithm, in Galois/Counter Mode (GCM) (Gueron,
Langley and Lindell, 2017 ), passwords being derived into secure keys by using the PBKDF2 (Password –
Based Key Deriv ation Function 2) password hashing algorithm (Iuorio and Visconti, 2018).
The application generates logs for every important event , through the “WriteToLog” method.
When a connection with a client is successfully established, a new thread will be created, in which the
requests will be processed.
The “ProcessClientRequests” method is used to process commands received from clients.
When the “!connection” command is issued, the server will reply with a confirmation message that the
connection was established successfully.
When the “!data” command is issued, the server will run the “data.py” script, and will send its output to
the client.
The “!Info” command allows us to gather information about the server’s uptime, its version, and the
number of connected cli ents.
The “!exit” command indicates that a client wishes to disconnect.
The commands “!right” , “!left” , “!forward” and “!reverse” are used to drive the platform, the server
running the corresponding Python scripts that work with the L298N module.
The “!shu tdown” command prompts the server to shut down the board.
If the server is not able to decrypt the data received from the client successfully, which means that a
wrong password was used, the connection is terminated.
The “Stop” method will stop the server.
3.2.4.2. The Program class
To launch the application, we need the Program class. It will read the contents of the “server.cfg”
configuration file, which is located in the same directory as the executable, obtaining the TCP port used
for connections, and the security password, which must be between 15 and 30 characters long.
3.2.5. dbwriter.py – the script which populates the data base with sensor data
Like the “gas.py” script, “dbwriter.py” will run at system startup, in order to populate the local database
with data from the sensors. Thus, a large dataset will be stored, which can be used for generating
statistics.
We use the Mar iaDB database management system (Github, 2019 ), which is a fork of the popular
MySQL DBMS, thus we used the MySQL connector in order to establish a connection with the database
server.
3.2.6. webstreaming.py – the script which delivers the camera feed
With this script we will create a webpage, using the Flask framework (Ronacher , 2019 ). Flask is a web
framework written in Python, which provides a simple but scalable way of providing web resources. The
web resource that we will provide requires an authentic ation header, and by sending a POST request
containing the “X-Password” parameter, we will gain access to the camera feed. We will apply the
motion detection algorithm, and the region where motion is detected will be marked by a colored
square. When the de vice is moving, the algorithm will not be applied, to avoid false positives, thus the
device needs to remain stationary for a short period of time for the script to apply the motion detection
algorithm. The web resource provided by this script will be acce ssed from the Windows client.
3.2.7. The system services
In order to run the main server, the script which populates the database and the script for the gas
sensor as system services, we used systemd (Debian Project, 2019) , which is a manager that comes
preinstalled on Raspbian, providing parallelization capabilities, as well as the possibility of configuring
and monitoring system services. With systemd we can start, stop and restart these services, and most
importantly, we can run them at system startup.
We need to create a “.service” file for each service we wish to install, which contains instructions
necessary for the systemd utility, like the path of the application. After we create those files, we need to
move them into the “/etc/systemd/systemd” folder, and we also need to restart systemd for the
changes to occur.
3.2.8. – The Windows client – ReconBotClient
It was written using the same technologies involved in the development of the main server, namely C#
and .NET Framework. The client is comprised of 4 main classes:
TCPClient – which contains the logic necessary to establish a connection to the main server, and
to commun icate with it
DBConnection – which contains the logic necessary to retrieve data from the database server,
and to display it
UI and StoredDataUI – which contain the logic necessary for the main interface, and for the
interface which displays data stored on the database server by using graphs and tables
To display the camera feed, we use GeckoFX, a library for C# applications that allows us to use the
Gecko browser engine (Microsoft , 2018) , which was developed by Mozilla, being the cornerstone of
the popular Firefox web browser. The engine was built with performance in mind, and it works with
most open web standards (Mozilla, 20 19).
4. Using the solution and experimental results
In order to establish remote client connections to the device (connections from different networks, the
device not being part of those networks), if the device is connected to the internet via a router, we need
to enable port forwarding for the respective router on the ports which will be used to accept
connections and communication f rom clients (Petac and Constantin, 2019) . For the MariaDB server, the
port is usually 3306. The port necessary for the web application which will serve the camera feed is
8000, and the port for the main server (ReconBotMaster) is 3337.
In order to connect directly to the Raspberry Pi board, we can use the SSH protocol (Ylonen and Lonvick,
2006) , and an application such as Hyper (ZEIT, 2019 ). After successfully logging in, in the “master”
directory of the application, we can find the “logs” folder. This fold er contains logs generated by the
main server, which can be useful to identify the clients which connected successfully, and what their
requests were. We can also manage the system services we talked about in Section 3 using systemd.
The main user interfac e (UI) of ReconBotClient is depicted in Figure 3. After filling in the necessary fields,
by pressing “Connect” a connection attempt is carried out. After a successful connection, by pressing
“Server Information” we can gather main server information such a s uptime, version, and the number of
connected clients. To start or stop retrieving data from the sensors, the “Start Environment Data
Retrieval” and “Stop Environment Data Retrieval” buttons are used. Also, the camera transmission will
be displayed in the “Camera Feed” section of the main UI, the regions where motion is detected being
marked with red. The timestamp is also displayed.
Figure 3: Main UI for ReconBotClient. Source: Author's contribution
The “Temperature Chart” tab displays a graph in different styles (column/spline/bar). The chart can be
saved in .png format (Boutell et. all. , 1997), by pressing “Save Chart” , the picture in this case being
saved in the “charts/temperature” directory of the application.
The “Humidity Chart” , “Dew Point Chart” tabs, as well as the other tabs work in an identical way.
Figure 4: Values from the MQ -2 sensor. Source: Author's contribution.
In order to drive the platform, we need to enable the functionality first, by pressing the “Enable WASD
Wheel Control” button. This way, by pressing the W, A, S and D keyboard keys we can move the device.
Directions:
W – forward
A – left
S – reverse
D – right
Another focal point of the client is the “View Stored Data” button. By pressing it, a new window will be
opened. After filling in the necessary information, a connection to the database server located on the
device is established. We will now have access to the sensor data that is being collected and stored
consta ntly, a behavior that we talked about in Section 3, point 3.2.5.
Figure 5: Stored Data UI. Source: Author's contribution
After establishing a successful connection, the “Data” tab will display a grid containing the sensor data
that we talked about previously. The grid data can be saved as a .csv file (Shafranovich , 2005) , in the csv
directory of the application. Figure 6 depicts a .csv file that the program was able to generate.
The “Chart” tab displays a graph that contains the grid data. The graph can be saved, Figure 7 depicting
a graph that was saved as a .png file.
Figure 6: CSV file example. Source: Author's contribution
Figure 7: Stored Data graph, data collected in a clean room. Source: Author's contribution
Coming back to the main UI, the “Server Shutdown” button will prompt the main server to run a script
which will in turn shut down the board.
5. Conclusion
Our solution makes use of hardware that is readily availa ble, at a reasonable cost, and that is well
supported by entities such as the Raspberry Pi Foundation and the enthusiast community (Petac and
Constantin, 2019). On the software side of things, the application is written using well documented
languages and technologies, respecting programming principles.
As with all things, there is room for improvement. On a hardware level, one improvement could be
waterproofing the device. This would allow it to work in a more hostile environment. On the software
side, maybe a client for the Android operating system (Google , 2019 ) could prove useful, to cover a
larger array of devices which could run the client.
6. References
Mora, R. and Meteyer, M., 2018. Using Thermal Comfort Models in Health C are Settings: A
Review. [online] ASHRAE Transactions, 124 . Available at: https://commons.bcit.ca/besys/files/
2018/08/Thermal -comfort -health -care.pdf [Accessed 22 Apr. 2019].
Pfluger, R., Feist, W., Tietjen, A. and Neher, A., 2013. Physiological impairment s of individuals at
low indoor air humidity. [online] Gefahrstoffe Reinhaltung der Luft . Available at:
https://passipedia.org/_media/picopen/ low_humidity.pdf [Accessed 22 Apr. 2019].
Silva, D.C. and Passini , R., 2017. Physiological responses of dairy cows as a function of
environment in holding pen. [online] Engenharia Agrícola , 37(2), pp.206 -214. Available at:
http://www.scielo.br/scielo.php?script= sci_arttext&pid=S0100 -69162017000200206 [Accessed
22 Apr. 2019].
Xu, Y., Yan, B. and Tang, J., 2015. The effect of climate change on variations in dew amount in a
paddy ecosystem of the Sanjiang Plain, China. [online] Advances in Meteorology . Available at:
https://www.hindawi.com/journals/amete/2015/793107/ [Acce ssed 22 Apr. 2019].
Centers for Disease Control and Prevention, 2018. Carbon Monoxide Poisoning . [online]
Available at: https://www.cdc.gov/co/faqs.htm [Accessed Nov. 2019] .
Lenntech B.V., 2008. Parts per Million by Volume (or mole) in Air. [online] Availa ble at:
https://www.lenntech.com/calculators/ppm/converter -parts -per-million.htm [Accessed Nov.
2019] .
DetectCarbonMonoxide.com , 2019. CO Health Risks . [online] Available at:
https://www.detectcarbonmonoxide.com/co -health -risks/ [Accessed Nov. 2019] .
Centers for Disease Control and Prevention, 2014. Table of IDLH Values . [online] Available at:
https://www.cdc.gov/niosh/idlh/68476857.html [Accessed Nov. 2019].
Raspberry Pi Foundation, 2019. Raspberry Pi 3 Model B . [online] Available at:
https://www.rasp berrypi.org/products/raspberry -pi-3-model -b/ [Accessed Nov. 2019].
Optimus Digital S.R.L., 2019. Modul cu Driver de Motoare Dual L298N . [online] Available at:
https://www.optimusdigital.ro/ro/drivere -de-motoare -cu-perii/145 -driver -de-motoare -dual –
l298n.htm l [Accessed Nov. 2019].
Learn.adafruit.com, 2019. DHT temperature & humidity sensors . [online] Available at:
https://learn.adafruit.com/dht/overview [Accessed 24 Apr. 2019].
COMPONENTS101, 2018. MQ2 Gas Sensor . [online] Available at:
https://components101. com/mq2 -gas-sensor [Accessed Nov. 2019].
DiCola, T., 2016. MCP3008 . [online] Available at: https://learn.adafruit.com/raspberry -pi-analog –
to-digital -converters/mcp3008 [Accessed Nov. 2019].
Brainy Bits, 2018. Use 3.3V modules safely using a Logic Level Converter . [online] Available at:
https://www.brainy -bits.com/what -is-a-logic -converter -arduino/ [Accessed Nov. 2019].
ARASEC, 2019. MODELUL TCP/IP . [online] Available at: http://www.retele –
cibernetice.ro/modelul -tcp.php [Accessed Nov. 2019].
Oluwatosin, H .S., 2014. Client -Server Model . [online] Available at:
https://www.researchgate.net/profile/Shakirat_Sulyman/publication/271295146_Client –
Server_Model/links/5864e11308ae8fce490c1b01/Client -Server -Model.pdf [Accessed Nov.2019].
Nagel, C., 2018. Professional C# 7 and .NET Core 2.0 . 7th ed. New York: John Wiley & Sons Inc .
GoalKicker.com, 2018. .NET Framework Notes for Professionals . [online] Available at:
https://books.goalkicker.com/DotNETFrameworkBook/ [Accessed 20 Apr. 2019].
Petac, E. and Constantin, A., 2019. IoT Embedded System for Environmental Monitoring . [online]
Available at: http://stec.univ -ovidius.ro/html/anale/RO/wp -content/uploads/2019/08/21 -1.pdf
[Accessed Nov. 2019] .
Jaworski, M. and Ziade, T., 2016. Expert Python Programming . Birmingham, UK: Packt Publishing
Ltd.
McNoldy, B. D., 2015. Calculate Temperature, Dewpoint, or Relative Humidity . [online]
University of Miami. Available at: http://bmcnoldy.rsmas.miami.edu/Humidity.html [Accessed
24 Apr. 2019].
Teodoreanu, E., 2016. THERMAL COMOFORT IND EX. [online] Available at:
https://www.researchgate.net/publication/311356785_Thermal_Comfort_Index [Accessed Nov.
2019].
GeeksforGeeks, 2019. OpenCV – Overview . [online] Available at:
https://www.geeksforgeeks.org/opencv -overview/ [Accessed Nov. 2019].
Rosebrock, A., 2019. OpenCV – Stream video to web browser/HTML page . [online] Available at:
https://www.pyimagesearch.com/2019/09/02/opencv -stream -video -to-web -browser -html –
page/ [Accessed Nov. 2019].
Gupta P., Gupta M. and Singh, Y., 2014. Moving Object Detection Using Frame Difference,
Background Subtraction And SOBS For Video Surveillance Application . [online] Available at:
http://tmu.ac.in/college -of-computing -sciences -and-it/wp –
content/uploads/sites/17/2016/10/T208.pdf [Accessed Nov. 2019].
Gartner, Inc., 2019. Internet of Things . [online] Available at: https://www.gartner.com/it –
glossary/internet -of-things/ [Accessed 24 Apr. 2019].
Raspberry Pi Foundation, 2019. GPIO . [online] Available at:
https://www.raspberrypi.org/documentation/usage/gpi o/ [Accessed 24 Apr. 2019].
Tutorials -RaspberryPi, 2016. Configure and read out the Raspberry Pi gas sensor (MQ -X). [online]
Available at: https://tutorials -raspberrypi.com/configure -and-read -out-the-raspberry -pi-gas-
sensor -mq-x/ [Accessed Nov. 2019] .
Sety Robotics SRL, 2019. Camera PI Noir (Infrarosu) Raspberry PI versiunea 2. [online] Available
at: https://www.robofun.ro/camera/camera -pi-noir-infrarosu -raspberry -pi-versiunea -2.html
[Accessed Nov. 2019].
Github, Inc., 2019. DHT11 Python library . [online] Available at:
https://github.com/szazo/DHT11_Python [Accessed 24 Apr. 2019].
Github, Inc., 2019. Raspberry Pi Gas Sensor MQ Python Example . [online] Available at:
https://github.com/tutRPi/Raspberry -Pi-Gas-Sensor -MQ [Accessed Nov. 2019]
Mono -project.com, 2019. Mono . [online] Available at: https://www.mono -project.com/
[Accessed 24 Apr. 2019].
Gueron, S., Langley, A. and Lindell, Y., 2017. AES -GCM -SIV: Specification and Analysis, Report
2017/168. [online] Cryptology ePrint Archive . Availab le at: https://eprint.iacr.org/2017/168.pdf
[Accessed 22 Apr. 2019].
Iuorio, A. F. and Visconti, A., 2018. Understanding Optimizations and Measuring Performances
of PBKDF2. [online] International Conference on Wireless Intelligent and Distributed Environme nt
for Communication , Springer, pp. 101 -114. Available at: https://eprint.iacr.org/2019/161.pdf
[Accessed 22 Apr. 2019].
Github, Inc., 2019. MariaDB: drop -in replacement for MySQL . [online] Available at:
https://github.com/MariaDB/server [Accessed Nov. 201 9].
Ronacher, A., 2019. Flask . [online] Available at: https://palletsprojects.com/p/flask/ [Accessed
Nov. 2019].
Debian Project , 2019. systemd . [online] Available at: https://wiki.debian.org/systemd [Accessed
24 Apr. 2019].
Microsoft Corp., 2018. Geckofx45 . [online] Available at:
https://www.nuget.org/packages/Geckofx45/ [Accessed Nov. 2019].
Mozilla Foundation, 2019. Gecko . [online] Available at: https://developer.mozilla.org/en –
US/docs/Mozilla/Gecko [Accessed Nov. 2019].
Ylonen, T. and Lonvick, C., 2006. The Secure Shell (SSH) Protocol Architecture . [online] Available
at: https://www.hjp.at/doc/rfc/rfc4251.html [Accessed Nov. 2019].
ZEIT , Inc., 2019. Hyper . [online] Available at: https://hyper.is/ [Accessed Nov. 2019].
Boutell, T., et. all., 1997. PNG (Por table Network Graphics) Specification Version 1.0 . [online]
Available at: https://dl.acm.org/doi/pdf/10.17487/RFC2083 [Accessed Nov. 2019]
Shafranovich , Y., 2005. Common Format and MIME Type for Comma -Separated Values (CSV)
Files . [online] Available at: https://www.hjp.at/doc/rfc/rfc4180.html [Accessed Nov. 2019].
Google LLC, 2019. Build anything on Android . [online] Available at:
https://developer.android.com/ [Accessed Nov. 2019].
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Smart Mobile System for Environmental Recognition and Monitoring [613573] (ID: 613573)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
