Toward SATVAM: An IoT Network for Air Quality Monitoring
Extracted source text ยท arXiv 1811.07847
%
% https://www.overleaf.com/17039406bftnnnvzkzcz#/65050896/
%
%% bare_jrnl.tex
%% V1.4b
%% 2015/08/26
%% by Michael Shell
%% see http://www.michaelshell.org/
%% for current contact information.
%%
%% This is a skeleton file demonstrating the use of IEEEtran.cls
%% (requires IEEEtran.cls version 1.8b or later) with an IEEE
%% journal paper.
%%
%% Support sites:
%% http://www.michaelshell.org/tex/ieeetran/
%% http://www.ctan.org/pkg/ieeetran
%% and
%% http://www.ieee.org/
%%*************************************************************************
%% Legal Notice:
%% This code is offered as-is without any warranty either expressed or
%% implied; without even the implied warranty of MERCHANTABILITY or
%% FITNESS FOR A PARTICULAR PURPOSE!
%% User assumes all risk.
%% In no event shall the IEEE or any contributor to this code be liable for
%% any damages or losses, including, but not limited to, incidental,
%% consequential, or any other damages, resulting from the use or misuse
%% of any information contained here.
%%
%% All comments are the opinions of their respective authors and are not
%% necessarily endorsed by the IEEE.
%%
%% This work is distributed under the LaTeX Project Public License (LPPL)
%% ( http://www.latex-project.org/ ) version 1.3, and may be freely used,
%% distributed and modified. A copy of the LPPL, version 1.3, is included
%% in the base LaTeX documentation of all distributions of LaTeX released
%% 2003/12/01 or later.
%% Retain all contribution notices and credits.
%% ** Modified files should be clearly indicated as such, including **
%% ** renaming them and changing author support contact information. **
%%*************************************************************************
% *** Authors should verify (and, if needed, correct) their LaTeX system ***
% *** with the testflow diagnostic prior to trusting their LaTeX platform ***
% *** with production work. The IEEE's font choices and paper sizes can ***
% *** trigger bugs that do not appear when using other class files. *** ***
% The testflow support page is at:
% http://www.michaelshell.org/tex/testflow/
\documentclass[conference]{IEEEtran}
%
% If IEEEtran.cls has not been installed into the LaTeX system files,
% manually specify the path to it like:
% \documentclass[journal]{../sty/IEEEtran}
\usepackage[usenames,dvipsnames,svgnames,x11names]{xcolor}
\newcommand{\Note}[1]{\textcolor{red}{#1}}
% Some very useful LaTeX packages include:
% (uncomment the ones you want to load)
% *** MISC UTILITY PACKAGES ***
%
%\usepackage{ifpdf}
% Heiko Oberdiek's ifpdf.sty is very useful if you need conditional
% compilation based on whether the output is pdf or dvi.
% usage:
% \ifpdf
% % pdf code
% \else
% % dvi code
% \fi
% The latest version of ifpdf.sty can be obtained from:
% http://www.ctan.org/pkg/ifpdf
% Also, note that IEEEtran.cls V1.7 and later provides a builtin
% \ifCLASSINFOpdf conditional that works the same way.
% When switching from latex to pdflatex and vice-versa, the compiler may
% have to be run twice to clear warning/error messages.
% *** CITATION PACKAGES ***
%
\usepackage{cite}
% cite.sty was written by Donald Arseneau
% V1.6 and later of IEEEtran pre-defines the format of the cite.sty package
% \cite{} output to follow that of the IEEE. Loading the cite package will
% result in citation numbers being automatically sorted and properly
% "compressed/ranged". e.g., [1], [9], [2], [7], [5], [6] without using
% cite.sty will become [1], [2], [5]--[7], [9] using cite.sty. cite.sty's
% \cite will automatically add leading space, if needed. Use cite.sty's
% noadjust option (cite.sty V3.8 and later) if you want to turn this off
% such as if a citation ever needs to be enclosed in parenthesis.
% cite.sty is already installed on most LaTeX systems. Be sure and use
% version 5.0 (2009-03-20) and later if using hyperref.sty.
% The latest version can be obtained at:
% http://www.ctan.org/pkg/cite
% The documentation is contained in the cite.sty file itself.
% *** GRAPHICS RELATED PACKAGES ***
%
\ifCLASSINFOpdf
\usepackage[pdftex]{graphicx}
% declare the path(s) where your graphic files are
% \graphicspath{{../pdf/}{../jpeg/}}
% and their extensions so you won't have to specify these with
% every instance of \includegraphics
\DeclareGraphicsExtensions{.pdf,.jpeg,.png}
\else
% or other class option (dvipsone, dvipdf, if not using dvips). graphicx
% will default to the driver specified in the system graphics.cfg if no
% driver is specified.
% \usepackage[dvips]{graphicx}
% declare the path(s) where your graphic files are
% \graphicspath{{../eps/}}
% and their extensions so you won't have to specify these with
% every instance of \includegraphics
% \DeclareGraphicsExtensions{.eps}
\fi
% graphicx was written by David Carlisle and Sebastian Rahtz. It is
% required if you want graphics, photos, etc. graphicx.sty is already
% installed on most LaTeX systems. The latest version and documentation
% can be obtained at:
% http://www.ctan.org/pkg/graphicx
% Another good source of documentation is "Using Imported Graphics in
% LaTeX2e" by Keith Reckdahl which can be found at:
% http://www.ctan.org/pkg/epslatex
%
% latex, and pdflatex in dvi mode, support graphics in encapsulated
% postscript (.eps) format. pdflatex in pdf mode supports graphics
% in .pdf, .jpeg, .png and .mps (metapost) formats. Users should ensure
% that all non-photo figures use a vector format (.eps, .pdf, .mps) and
% not a bitmapped formats (.jpeg, .png). The IEEE frowns on bitmapped formats
% which can result in "jaggedy"/blurry rendering of lines and letters as
% well as large increases in file sizes.
%
% You can find documentation about the pdfTeX application at:
% http://www.tug.org/applications/pdftex
% *** MATH PACKAGES ***
%
\usepackage{amsmath}
% A popular package from the American Mathematical Society that provides
% many useful and powerful commands for dealing with mathematics.
%
% Note that the amsmath package sets \interdisplaylinepenalty to 10000
% thus preventing page breaks from occurring within multiline equations. Use:
%\interdisplaylinepenalty=2500
% after loading amsmath to restore such page breaks as IEEEtran.cls normally
% does. amsmath.sty is already installed on most LaTeX systems. The latest
% version and documentation can be obtained at:
% http://www.ctan.org/pkg/amsmath
% *** SPECIALIZED LIST PACKAGES ***
%
%\usepackage{algorithmic}
% algorithmic.sty was written by Peter Williams and Rogerio Brito.
% This package provides an algorithmic environment fo describing algorithms.
% You can use the algorithmic environment in-text or within a figure
% environment to provide for a floating algorithm. Do NOT use the algorithm
% floating environment provided by algorithm.sty (by the same authors) or
% algorithm2e.sty (by Christophe Fiorio) as the IEEE does not use dedicated
% algorithm float types and packages that provide these will not provide
% correct IEEE style captions. The latest version and documentation of
% algorithmic.sty can be obtained at:
% http://www.ctan.org/pkg/algorithms
% Also of interest may be the (relatively newer and more customizable)
% algorithmicx.sty package by Szasz Janos:
% http://www.ctan.org/pkg/algorithmicx
% *** ALIGNMENT PACKAGES ***
%
%\usepackage{array}
% Frank Mittelbach's and David Carlisle's array.sty patches and improves
% the standard LaTeX2e array and tabular environments to provide better
% appearance and additional user controls. As the default LaTeX2e table
% generation code is lacking to the point of almost being broken with
% respect to the quality of the end results, all users are strongly
% advised to use an enhanced (at the very least that provided by array.sty)
% set of table tools. array.sty is already installed on most systems. The
% latest version and documentation can be obtained at:
% http://www.ctan.org/pkg/array
% IEEEtran contains the IEEEeqnarray family of commands that can be used to
% generate multiline equations as well as matrices, tables, etc., of high
% quality.
% *** SUBFIGURE PACKAGES ***
%\ifCLASSOPTIONcompsoc
% \usepackage[caption=false,font=normalsize,labelfont=sf,textfont=sf]{subfig}
%\else
% \usepackage[caption=false,font=footnotesize]{subfig}
%\fi
% subfig.sty, written by Steven Douglas Cochran, is the modern replacement
% for subfigure.sty, the latter of which is no longer maintained and is
% incompatible with some LaTeX packages including fixltx2e. However,
% subfig.sty requires and automatically loads Axel Sommerfeldt's caption.sty
% which will override IEEEtran.cls' handling of captions and this will result
% in non-IEEE style figure/table captions. To prevent this problem, be sure
% and invoke subfig.sty's "caption=false" package option (available since
% subfig.sty version 1.3, 2005/06/28) as this is will preserve IEEEtran.cls
% handling of captions.
% Note that the Computer Society format requires a larger sans serif font
% than the serif footnote size font used in traditional IEEE formatting
% and thus the need to invoke different subfig.sty package options depending
% on whether compsoc mode has been enabled.
%
% The latest version and documentation of subfig.sty can be obtained at:
% http://www.ctan.org/pkg/subfig
% *** FLOAT PACKAGES ***
%
%\usepackage{fixltx2e}
% fixltx2e, the successor to the earlier fix2col.sty, was written by
% Frank Mittelbach and David Carlisle. This package corrects a few problems
% in the LaTeX2e kernel, the most notable of which is that in current
% LaTeX2e releases, the ordering of single and double column floats is not
% guaranteed to be preserved. Thus, an unpatched LaTeX2e can allow a
% single column figure to be placed prior to an earlier double column
% figure.
% Be aware that LaTeX2e kernels dated 2015 and later have fixltx2e.sty's
% corrections already built into the system in which case a warning will
% be issued if an attempt is made to load fixltx2e.sty as it is no longer
% needed.
% The latest version and documentation can be found at:
% http://www.ctan.org/pkg/fixltx2e
%\usepackage{stfloats}
% stfloats.sty was written by Sigitas Tolusis. This package gives LaTeX2e
% the ability to do double column floats at the bottom of the page as well
% as the top. (e.g., "\begin{figure*}[!b]" is not normally possible in
% LaTeX2e). It also provides a command:
%\fnbelowfloat
% to enable the placement of footnotes below bottom floats (the standard
% LaTeX2e kernel puts them above bottom floats). This is an invasive package
% which rewrites many portions of the LaTeX2e float routines. It may not work
% with other packages that modify the LaTeX2e float routines. The latest
% version and documentation can be obtained at:
% http://www.ctan.org/pkg/stfloats
% Do not use the stfloats baselinefloat ability as the IEEE does not allow
% \baselineskip to stretch. Authors submitting work to the IEEE should note
% that the IEEE rarely uses double column equations and that authors should try
% to avoid such use. Do not be tempted to use the cuted.sty or midfloat.sty
% packages (also by Sigitas Tolusis) as the IEEE does not format its papers in
% such ways.
% Do not attempt to use stfloats with fixltx2e as they are incompatible.
% Instead, use Morten Hogholm'a dblfloatfix which combines the features
% of both fixltx2e and stfloats:
%
% \usepackage{dblfloatfix}
% The latest version can be found at:
% http://www.ctan.org/pkg/dblfloatfix
%\ifCLASSOPTIONcaptionsoff
% \usepackage[nomarkers]{endfloat}
% \let\MYoriglatexcaption\caption
% \renewcommand{\caption}[2][\relax]{\MYoriglatexcaption[#2]{#2}}
%\fi
% endfloat.sty was written by James Darrell McCauley, Jeff Goldberg and
% Axel Sommerfeldt. This package may be useful when used in conjunction with
% IEEEtran.cls' captionsoff option. Some IEEE journals/societies require that
% submissions have lists of figures/tables at the end of the paper and that
% figures/tables without any captions are placed on a page by themselves at
% the end of the document. If needed, the draftcls IEEEtran class option or
% \CLASSINPUTbaselinestretch interface can be used to increase the line
% spacing as well. Be sure and use the nomarkers option of endfloat to
% prevent endfloat from "marking" where the figures would have been placed
% in the text. The two hack lines of code above are a slight modification of
% that suggested by in the endfloat docs (section 8.4.1) to ensure that
% the full captions always appear in the list of figures/tables - even if
% the user used the short optional argument of \caption[]{}.
% IEEE papers do not typically make use of \caption[]'s optional argument,
% so this should not be an issue. A similar trick can be used to disable
% captions of packages such as subfig.sty that lack options to turn off
% the subcaptions:
% For subfig.sty:
% \let\MYorigsubfloat\subfloat
% \renewcommand{\subfloat}[2][\relax]{\MYorigsubfloat[]{#2}}
% However, the above trick will not work if both optional arguments of
% the \subfloat command are used. Furthermore, there needs to be a
% description of each subfigure *somewhere* and endfloat does not add
% subfigure captions to its list of figures. Thus, the best approach is to
% avoid the use of subfigure captions (many IEEE journals avoid them anyway)
% and instead reference/explain all the subfigures within the main caption.
% The latest version of endfloat.sty and its documentation can obtained at:
% http://www.ctan.org/pkg/endfloat
%
% The IEEEtran \ifCLASSOPTIONcaptionsoff conditional can also be used
% later in the document, say, to conditionally put the References on a
% page by themselves.
% *** PDF, URL AND HYPERLINK PACKAGES ***
%
\usepackage{url}
% url.sty was written by Donald Arseneau. It provides better support for
% handling and breaking URLs. url.sty is already installed on most LaTeX
% systems. The latest version and documentation can be obtained at:
% http://www.ctan.org/pkg/url
% Basically, \url{my_url_here}.
% *** Do not adjust lengths that control margins, column widths, etc. ***
% *** Do not use packages that alter fonts (such as pslatex). ***
% There should be no need to do such things with IEEEtran.cls V1.6 and later.
% (Unless specifically asked to do so by the journal or conference you plan
% to submit to, of course. )
% correct bad hyphenation here
\hyphenation{op-tical net-works semi-conduc-tor}
\begin{document}
%
% paper title
% Titles are generally capitalized except for words such as a, an, and, as,
% at, but, by, for, in, nor, of, on, or, the, to and up, which are usually
% not capitalized unless they are the first or last word of the title.
% Linebreaks \\ can be used within to get better formatting as desired.
% Do not put math or special symbols in the title.
\title{Toward SATVAM: An IoT Network for Air Quality Monitoring}
%
%
% author names and IEEE memberships
% note positions of commas and nonbreaking spaces ( ~ ) LaTeX will not break
% a structure at a ~ so this keeps an author's name from being broken across
% two lines.
% use \thanks{} to gain access to the first footnote area
% a separate \thanks must be used for each paragraph as LaTeX2e's \thanks
% was not built to handle multiple paragraphs
%
\author{\IEEEauthorblockN{Rashmi Ballamajalu, Srijith Nair, Shayal Chhabra,\\
Sumit K Monga, Anand SVR,\\
Malati Hegde, Yogesh Simmhan}
\IEEEauthorblockA{Indian Institute of Science,\\Bangalore India\\
Email: brashmi@iisc.ac.in, malati@iisc.ac.in,\\
simmhan@iisc.ac.in}
\and
\IEEEauthorblockN{Anamika Sharma, Chandan M Choudhary,\\
Ronak Sutaria, Rajesh Zele}
\IEEEauthorblockA{Indian Institute of Technology, Bombay India\\
Email: rsutaria@iitb.ac.in, rajeshzele@ee.iitb.ac.in\vspace{0.5\baselineskip}}
\IEEEauthorblockN{Sachchida N. Tripathi}
\IEEEauthorblockA{Indian Institute of Technology, Kanpur India\\
Email: snt@iitk.ac.in}}
% \author{\IEEEauthorblockN{\hspace{-1in}Rashmi Ballamajalu, Shayal Chabbra,\\
% \hspace{-1in}Sumit Monga, Anand SVR, Malati Hegde,\\
% \hspace{-1in}Yogesh Simmhan}
% \IEEEauthorblockA{\hspace{-1in}Indian Institute of Science, Bangalore India\\
% \hspace{-1in}Email: brashmi@iisc.ac.in, malati@iisc.ac.in,\\
% \hspace{-1in}simmhan@iisc.ac.in}
% \and
% \IEEEauthorblockN{\hspace{0.5in}Anamika \Note{LName}, Chandan \Note{LName},\\
% \hspace{0.5in}Ronak Sutaria, Rajesh Zele}
% \IEEEauthorblockA{\hspace{0.5in}Indian Institute of Technology, Bombay India\\
% \hspace{0.5in}Email: rsutaria@iitb.ac.in, rajeshzele@ee.iitb.ac.in}
% \and
% \IEEEauthorblockN{\hspace{2.25in}Sachchida N. Tripathi}
% \IEEEauthorblockA{\hspace{2.25in}Indian Institute of Technology, Kanpur India\\
% \hspace{2.25in}Email: snt@iitk.ac.in}}
% ...\Note{add RZ, RS, SNT, IITB students after confirmation}% <-this % stops a
% note the % following the last \IEEEmembership and also \thanks -
% these prevent an unwanted space from occurring between the last author name
% and the end of the author line. i.e., if you had this:
%
% \author{....lastname \thanks{...} \thanks{...} }
% ^------------^------------^----Do not want these spaces!
%
% a space would be appended to the last name and could cause every name on that
% line to be shifted left slightly. This is one of those "LaTeX things". For
% instance, "\textbf{A} \textbf{B}" will typeset as "A B" not "AB". To get
% "AB" then you have to do: "\textbf{A}\textbf{B}"
% \thanks is no different in this regard, so shield the last } of each \thanks
% that ends a line with a % and do not let a space in before the next \thanks.
% Spaces after \IEEEmembership other than the last one are OK (and needed) as
% you are supposed to have spaces between the names. For what it is worth,
% this is a minor point as most people would not even notice if the said evil
% space somehow managed to creep in.
% The paper headers
%\markboth{Journal of \LaTeX\ Class Files,~Vol.~14, No.~8, August~2015}%
%{Shell \MakeLowercase{\textit{et al.}}: Bare Demo of IEEEtran.cls for IEEE Journals}
% The only time the second header will appear is for the odd numbered pages
% after the title page when using the twoside option.
%
% *** Note that you probably will NOT want to include the author's ***
% *** name in the headers of peer review papers. ***
% You can use \ifCLASSOPTIONpeerreview for conditional compilation here if
% you desire.
% If you want to put a publisher's ID mark on the page you can do it like
% this:
%\IEEEpubid{0000--0000/00\$00.00~\copyright~2015 IEEE}
% Remember, if you use this you must call \IEEEpubidadjcol in the second
% column for its text to clear the IEEEpubid mark.
% use for special paper notices
%\IEEEspecialpapernotice{(Invited Paper)}
% make the title area
\maketitle
% As a general rule, do not put math, special symbols or citations
% in the abstract or keywords.
\begin{abstract}
Air pollution is ranked as the second most serious risk for public health in India after malnutrition. The lack of spatially and temporally distributed air quality information prevents a scientific study on its impact on human health and on the national economy. In this paper, we present our initial efforts toward \emph{SATVAM, Streaming Analytics over Temporal Variables for Air quality Monitoring}, that aims to address this gap. We introduce the multi-disciplinary, multi-institutional project and some of the key IoT technologies used. These cut across hardware integration of gas sensors with a wireless mote packaging, design of the wireless sensor network using 6LoWPAN and RPL, and integration with a cloud backend for data acquisition and analysis. The outcome of our initial deployment will inform an improved design that will enable affordable and manageable monitoring at the city scale. This should lead to data-driven policies for urban air quality management.
\end{abstract}
% Note that keywords are not normally used for peerreview papers.
\begin{IEEEkeywords}
Air Quality Monitoring, Electrochemical Gas Sensors, 6LoWPAN, RPL, Edge analytics
\end{IEEEkeywords}
% For peer review papers, you can put extra information on the cover
% page as needed:
% \ifCLASSOPTIONpeerreview
% \begin{center} \bfseries EDICS Category: 3-BBND \end{center}
% \fi
%
% For peerreview papers, this IEEEtran command inserts a page break and
% creates the second title. It will be ignored for other modes.
\IEEEpeerreviewmaketitle
\section{Introduction}
% The very first letter is a 2 line initial drop letter followed
% by the rest of the first word in caps.
%
% form to use if the first word consists of a single letter:
% \IEEEPARstart{A}{demo} file is ....
%
% form to use if you need the single drop letter followed by
% normal text (unknown if ever used by the IEEE):
% \IEEEPARstart{A}{}demo file is ....
%
% Some journals put the first two words in caps:
% \IEEEPARstart{T}{his demo} file is ....
%
% Here we have the typical use of a "T" for an initial drop letter
% and "HIS" in caps to complete the first word.
\IEEEPARstart{U}rban air pollution is one of the biggest health challenges of India as the country rapidly urbanizes in an unstructured manner. While vehicular pollution is one of the visible contributors, pollution from industries and from burning of crop residue are also leading causes. The key pollutants as identified by the Central Pollution Control Board (CPCB) of India are: PM\textsubscript{2.5}, PM\textsubscript{10}, NO$_2$, SO$_2$, O$_3$, CO besides other VOCs and heavy metals \cite{cpcb_2009}. The systematic study of air pollution in India has been constrained due to the limited number of reference air quality monitors available in the field \cite{guttikunda_2017}.
Low-cost real-time GPRS (General Packet Radio Service) based air quality monitoring networks have been launched in India by non-profit groups~\cite{breathe_2016} with evaluation and calibration of PM\textsubscript{2.5} sensors in the field~\cite{amt-2018-111}. However, these need to scale much more with improved affordability and robustness.
As a result, an effective development of data-driven pollution management policy is currently infeasible.
\emph{SATVAM -- Streaming Analytics over Temporal Variables from Air quality Monitoring} -- is a recently initiated project to develop tools, technologies, architectures and analytics to deploy and study air quality monitoring at city-wide scales and at finer spatial and temporal granularity than currently done. Funded by Department of Science and Technology (DST) and Intel, and administered by the Indo-US Science and Technology Forum (IUSSTF)~\footnote{IUSSTF Real Time River Water \& Air Quality Monitoring, http://www.iusstf.org/program/real-time-river-water--air-quality-monitoring}, this project aims to develop an IoT network for air quality monitoring that leverages four research vectors: low-cost sensing, energy harvesting, low-power communication networks, and edge analytics. The project is led by IIT Kanpur and includes partners from the Indian Institute of Science (IISc) and IIT Bombay from India, and Duke University from the US.
In this article, we examine the initial design, integration and small-scale deployment of Gas Sensor Nodes connected through Low Power Wide Area Network (LP-WAN), and using edge devices for basic analytics and data acquisition for subsequent visualization in the cloud. This setup will be deployed in New Delhi to collect reference data from our commodity sensors, co-located with higher quality sensors at the Indian Meteorological Department. This serves to integrate and validate the constituent technologies, and offer initial data for calibration of the commodity sensors. We present our gas sensor hardware integration in Sec.~\ref{sec:hardware}, wireless sensor network design in Sec.~\ref{sec:design}, and offer our conclusions and future plans for eventual larger scale deployment in Sec.~\ref{sec:conclude}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Gas Sensor Node Design}
\label{sec:hardware}
%The edge sensor nodes for Real-time Air Quality Monitoring developed here
IoT has been a key enabling architecture for smart cities ~\cite{simmhan:spe:2018}. This project aims to create a scalable IoT infrastructure that can monitor and analyze air pollution levels in an outdoor environment. Low cost sensors measure certain harmful gases such as NO$_2$, SO$_2$, O$_3$ and particulate matter categorized as PM\textsubscript{2.5}, PM\textsubscript{10} present in the air.
%
Our architecture uses a Wireless Sensor Network (WSN) based on the \emph{Zolertia RE-Mote (Rev. B)}~\cite{re-mote} for communication, and gas sensors are integrated with the mote for sensing air quality.
The four-electrode B4 series low-power electrochemical toxic gas sensor modules from \emph{Alphasense} are used. The gas sensors are designed for environmental application, and when exposed to ambient air, measure the target gas concentration.
\begin{figure}[t]
\centering
\includegraphics[width=0.90\columnwidth]{sens_int2.png}
\vspace{-0.2in}
\caption{Gas sensor integration with RE-Mote}
\label{fig:sens_int}
\vspace{-0.1in}
\end{figure}
The block diagram of the sensor integration with the RE-Mote is shown in Fig.~\ref{fig:sens_int}. The RE-Mote is used as the Analog to Digital Converter (ADC) to interface with the analog sensor data. The RE-Mote consists of CC2538 Wireless Micro-controller SoC~\cite{cc2538} which has an internal 12-Bit ADC with 8 analog input channels. The gas sensor module outputs potential of Working Electrode and Auxiliary Electrode potential in voltage (millivolts). The sensors work at the VDD range of 3.5~to 6.4~VDC. The gas sensors are powered up using the +5.10V DC output pin of the RE-Mote. The analog outputs of the gas sensor module are labeled as OP1 and OP2 for Working electrode and Auxiliary Electrode respectively. These analog sensor output pins are interfaced to the analog input channels of the RE-Mote. The analog sensor output are converted to digital data using the internal ADC of RE-Mote. The digital output values from the ADC are obtained in mV as:
\[ Analog\_op = Digital\_op \times \frac{3300}{4095} \]
where $3300~mV$ corresponds to the internal voltage reference of the ADC corresponding to its $4096$ discrete levels. The analog data obtained from the RE-mote is validated using digital multimeter measured directly at the sensor OP pins.
The current implementation includes integration of two toxic gas sensors, NO$_2$ and O$_3$ (ozone), connected to four ADC channels of the RE-Mote. Channels 1 and 2 are used for the NO$_2$ sensor output while ADC channels 4 and 5 are used for the O$_3$ sensor. Besides these two gas sensors, we plan to integrated SO$_2$ gas sensors over ADC, and PM2.5, PM10 over UART with the RE-mote in the near future for holistic monitoring.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{IoT and Wireless Network Design}
\label{sec:design}
Multiple gas sensor devices are connected through a wireless mesh network infrastructure, that is supported by a wired backhaul network. The initial deployment consists of the Zolertia RE-motes operating in the Sub-1~GHz frequency, and forming a \emph{6LoWPAN network (IPv6 over Low-Power Wireless Personal Area Networks)}~\cite{rfc4944} with a \emph{border router} using \emph{RPL (Routing Protocol for Low-Power and Lossy Networks)}~\cite{rfc6550} to collect the data over the wireless medium.
RPL is used to form a Directed Acyclic Graph (DAG) for routing packets in the network, from the edge devices containing the sensors to the border router. The overall structure of the network is that of a tree with the border router forming the root of the DAG, the edge devices forming the leaf nodes and/or intermediate relay nodes. The border router is in turn connected to the backhaul network through a Raspberry Pi that sends data over a private broadband network to the cloud. An example setup is shown in Fig~\ref{fig:lpwan-tree}. This wired backhaul will be replaced with a GSM or Narrowband IoT (NB-IoT) network for future deployments. Next, we offer details on this overall network architecture.
\begin{figure}[t]
\centering
\includegraphics[width=1.0\columnwidth]{lpwan-tree}
\vspace{-0.4in}
\caption{Tree structure of the 6LoWPAN network with RPi gateway}\label{fig:lpwan-tree}
\end{figure}
\begin{figure}[t]
\centering
\includegraphics[width=1.0\columnwidth]{mote-flow}
\vspace{-0.2in}
\caption{Process Flow at RE-Mote edge device}\label{fig:mote-flow}
\vspace{-0.1in}
\end{figure}
\textbf{Sensor Data Acquisition:} The sensor data at the ADC ports can be monitored continuously and instantaneously, based on the application requirements. The sensor data is currently sampled with a frequency of 0.25 samples/second, wherein each sample consists of one sensor data element. The current implementation includes NO$_2$ and O$_3$ sensors connected to 4 ADC channels on RE-mote, as discussed earlier, with each sensor providing 2 output parameters of size 4 bytes each. We are also including a sampling counter of size 4 bytes, for the purpose of unique identification of packets in the cloud. The overall data from the two sensors, thus, adds up to 20 bytes.
Our network stack is implemented on the \emph{Contiki} operating system~\cite{contiki}, which is a lightweight operating system for low power IoT devices and runs on the RE-mote.
%
The ADC sensor process is implemented as a \emph{process thread} in Contiki created with a \emph{process ID, the type of event} and \emph{the data payload} generated by it. When this process samples data from the ADC, an event is created and posted to a listener \emph{UDP server process}, as shown in the Fig~\ref{fig:mote-flow}. The OS kernel, using its internal event queue dispatch mechanism, delivers the ADC event data to the UDP server process thread.
\textbf{Sensor Data Transmission:} The UDP server process thread collects the data from the process event queue, forms a UDP packet, and sends it to the border router. The UDP servers from different motes send the sensor data over 6LoWPAN to the Border Router (6LBR), as shown in Fig~\ref{fig:border}.
The 6LBR maintains routing information of all the nodes in the network using RPL, and also forwards data from the 6LoWPAN to a host outside this network, as shown in Fig~\ref{fig:lpwan-tree}. %The two functions of 6LBR are described below
\begin{figure}[t]
\centering
\includegraphics[width=1.0\columnwidth]{border}
\vspace{-0.2in}
\caption{6LoWPAN Network of edge devices and border-router}\label{fig:border}
\end{figure}
\begin{figure}[t]
\centering
\includegraphics[width=1.0\columnwidth]{tunslip}
\vspace{-0.2in}
\caption{Tunslip6 interface between border router and Raspberry Pi}\label{fig:tunslip}
\vspace{-0.1in}
\end{figure}
\textbf{Integration of Raspberry Pi with Border Router:} %RPL implemented on the 6LBR maintains routing information pertaining to all the nodes in the network.
One of features of the border router is connecting one network to another. The sensor data from UDP servers are routed to the destination host that is outside the 6LoWPAN, say a Raspberry Pi, through the 6LBR, as follows.
%The data from UDP servers is sent to a host .
The 6LBR is interfaced with the Pi over a USB serial interface, as shown in Fig~\ref{fig:tunslip}. \emph{Tunslip6} is a tool used to bridge the IP traffic between a host and another network typically a border router, over a serial line. Tunslip6 creates a virtual network interface (tun) on the host and uses the Serial Line Internet Protocol (SLIP)~\cite{rfc1055} to wrap and forward IP packets to and from the other side of the serial line. This interface behaves like any other network interface and supports routing, traffic forwarding etc. We create a tunslip interface at the Pi with an IPv6 address, whose prefix is sent to the 6LBR. The border router in turn broadcasts this prefix to the nodes in its network. All packets addressed to the (Pi) host from any node in the 6LoWPAN will be forwarded from the 6LBR to the host through the tunslip interface.
%e have seen the RPL network so far. The border router is interfaced with Raspberry Pi over USB serial interface. A Tunslip6 interface is created at the Pi with an IPv6 address, whose prefix is sent to the 6LBR.
%The border router broadcasts the prefix with which the tunslip6 interface is created to the nodes in its network. All packets addressed to the host will be forwarded from the 6LBR to the host through the tunslip6 interface.
\textbf{Integration of Raspberry Pi with Cloud:} On the Raspberry Pi side, a \emph{UDP control process} is implemented that listens to the UDP data sent from the UDP process threads on the motes, at port 5000. The host control process on receiving a UDP packet logs the data into a file as well as sends the data to a web server running in the cloud where interesting analytics and visualization is performed on this time series data. This is shown in Fig.~\ref{fig:rpi_updated}.
The UDP control process uses the \emph{producer-consumer pattern}~\cite{producer-consumer-problem}, with a bounded buffer between the producer and consumer threads whose access is synchronized using a binary semaphore~\cite{binary-semaphore}. The producer thread is continuously listening for data on the tun interface and on receipt of data, it adds it to the buffer. The consumer thread is consuming the data from the buffer (when available) and sends it to the web server running in the cloud. %The schematic diagram showing the interaction of the border router, Raspberry Pi and the cloud is
The capacity of the buffer is set to withstand 24~hrs of sensor data production without any consumption, in case the network link from the Pi to the cloud or the web-service is down. Also, the data is backed up to the SD card on the Pi, on receipt by the producer so that even if the link is down after 24~hrs, the data is not lost and can be retransmitted from disk once the transient network issue is resolved.
\begin{figure}[t]
\centering
\includegraphics[width=1.0\columnwidth]{rpi_updated}
\vspace{-0.5in}
\caption{Data flow between border router, Raspberry Pi and the cloud}\label{fig:rpi_updated}
\vspace{-0.1in}
\end{figure}
\section{Conclusion}
\label{sec:conclude}
The work presented here is part of a multi-year multi-institution project SATVAM~\footnote{ACKNOWLEDGEMENT: This research was supported under the Research Initiative for Real-time River Water and Air Quality Monitoring program funded by the Department of Science and Technology, Govt. of India (DST) and Intel\textsuperscript{\textregistered}, and administered by the Indo-U.S. Science and Technology Forum (IUSSTF).}. The first stage in this is to build a prototype using commercial off-the-shelf components and evaluate their performance against reference grade equipment. The focus has been on identifying low-powered components which provide flexibility in development and stability in initial field deployments. The next step is to setup a 40 node testbed of the air quality sensors at IIT Kanpur and IIT Bombay. Field calibrations of the sensor data and performance of the monitoring devices (power consumption, reliability) will be closely monitored. Advanced edge and cloud based analytics will then be developed. The final stage involves a 60 node real-time air quality monitoring network deployed in a city.
% use section* for acknowledgment
% \section*{Acknowledgment}
% This research was supported under the Research Initiative for Real-time River Water and Air Quality Monitoring program funded by the Department of Science and Technology, Govt. of India (DST) and Intel\textsuperscript{\textregistered}, and administered by the Indo-U.S. Science and Technology Forum (IUSSTF).
%\Note{Max 3 pages at this point. 1 more page for references}
% Can use something like this to put references on a page
% by themselves when using endfloat and the captionsoff option.
\ifCLASSOPTIONcaptionsoff
\newpage
\fi
% trigger a \newpage just before the given reference
% number - used to balance the columns on the last page
% adjust value as needed - may need to be readjusted if
% the document is modified later
%\IEEEtriggeratref{8}
% The "triggered" command can be changed if desired:
%\IEEEtriggercmd{\enlargethispage{-5in}}
% references section
% can use a bibliography generated by BibTeX as a .bbl file
% BibTeX documentation can be easily obtained at:
% http://mirror.ctan.org/biblio/bibtex/contrib/doc/
% The IEEEtran BibTeX style support page is at:
% http://www.michaelshell.org/tex/ieeetran/bibtex/
\bibliographystyle{IEEEtran}
% argument is your BibTeX string definitions and bibliography database(s)
\bibliography{paper}
% that's all folks
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:
% Generated by IEEEtran.bst, version: 1.14 (2015/08/26)
\begin{thebibliography}{10}
\providecommand{\url}[1]{#1}
\csname url@samestyle\endcsname
\providecommand{\newblock}{\relax}
\providecommand{\bibinfo}[2]{#2}
\providecommand{\BIBentrySTDinterwordspacing}{\spaceskip=0pt\relax}
\providecommand{\BIBentryALTinterwordstretchfactor}{4}
\providecommand{\BIBentryALTinterwordspacing}{\spaceskip=\fontdimen2\font plus
\BIBentryALTinterwordstretchfactor\fontdimen3\font minus
\fontdimen4\font\relax}
\providecommand{\BIBforeignlanguage}[2]{{%
\expandafter\ifx\csname l@#1\endcsname\relax
\typeout{** WARNING: IEEEtran.bst: No hyphenation pattern has been}%
\typeout{** loaded for the language `#1'. Using the pattern for}%
\typeout{** the default language instead.}%
\else
\language=\csname l@#1\endcsname
\fi
#2}}
\providecommand{\BIBdecl}{\relax}
\BIBdecl
\bibitem{cpcb_2009}
\BIBentryALTinterwordspacing
``National ambient air quality standards 2009.'' [Online]. Available:
\url{http://cpcb.nic.in/air-quality-standard/}
\BIBentrySTDinterwordspacing
\bibitem{guttikunda_2017}
\BIBentryALTinterwordspacing
S.~Guttikunda, ``It's about time we got smarter about monitoring our air
pollution,'' Sep 2017. [Online]. Available:
\url{https://thewire.in/environment/air-pollution-monitoring-diwali-pm2-5-pm10-cpcb-namp}
\BIBentrySTDinterwordspacing
\bibitem{breathe_2016}
\BIBentryALTinterwordspacing
``Introducing \#breathe, the indiaspend air quality index network,'' Feb 2016.
[Online]. Available:
\url{http://www.indiaspend.com/cover-story/introducing-breathe-the-indiaspend-air-quality-index-network-39580}
\BIBentrySTDinterwordspacing
\bibitem{amt-2018-111}
\BIBentryALTinterwordspacing
T.~Zheng, M.~H. Bergin, K.~K. Johnson, S.~N. Tripathi, S.~Shirodkar, M.~S.
Landis, R.~Sutaria, and D.~E. Carlson, ``Field evaluation of low-cost
particulate matter sensors in high and low concentration environments,''
\emph{Atmospheric Measurement Techniques Discussions}, vol. 2018, pp. 1--40,
2018. [Online]. Available:
\url{https://www.atmos-meas-tech-discuss.net/amt-2018-111/}
\BIBentrySTDinterwordspacing
\bibitem{simmhan:spe:2018}
\BIBentryALTinterwordspacing
Y.~Simmhan, P.~Ravindra, S.~Chaturvedi, M.~Hegde, and R.~Ballamajalu, ``Towards
a data-driven iot software architecture for smart city utilities,''
\emph{Software: Practice and Experience}, vol.~48, no.~7, pp. 1390--1416,
Jul. 2018. [Online]. Available: \url{http://arxiv.org/abs/1803.02500}
\BIBentrySTDinterwordspacing
\bibitem{re-mote}
\BIBentryALTinterwordspacing
``re-mote.'' [Online]. Available:
\url{https://github.com/Zolertia/Resources/wiki}
\BIBentrySTDinterwordspacing
\bibitem{cc2538}
\BIBentryALTinterwordspacing
``datasheet.'' [Online]. Available:
\url{http://www.ti.com/lit/ds/symlink/cc2538.pdf}
\BIBentrySTDinterwordspacing
\bibitem{rfc4944}
\BIBentryALTinterwordspacing
G.~Montenegro, J.~Hui, D.~Culler, and N.~Kushalnagar, ``{Transmission of IPv6
Packets over IEEE 802.15.4 Networks},'' RFC 4944, Sep. 2007. [Online].
Available: \url{https://rfc-editor.org/rfc/rfc4944.txt}
\BIBentrySTDinterwordspacing
\bibitem{rfc6550}
\BIBentryALTinterwordspacing
R.~Alexander, A.~Brandt, J.~Vasseur, J.~Hui, K.~Pister, P.~Thubert, P.~Levis,
R.~Struik, R.~Kelsey, and T.~Winter, ``{RPL: IPv6 Routing Protocol for
Low-Power and Lossy Networks},'' RFC 6550, Mar. 2012. [Online]. Available:
\url{https://rfc-editor.org/rfc/rfc6550.txt}
\BIBentrySTDinterwordspacing
\bibitem{contiki}
\BIBentryALTinterwordspacing
``Contiki os.'' [Online]. Available: \url{http://www.contiki-os.org/}
\BIBentrySTDinterwordspacing
\bibitem{rfc1055}
\BIBentryALTinterwordspacing
``{Nonstandard for transmission of IP datagrams over serial lines: SLIP},'' RFC
1055, Jun. 1988. [Online]. Available:
\url{https://rfc-editor.org/rfc/rfc1055.txt}
\BIBentrySTDinterwordspacing
\bibitem{producer-consumer-problem}
\BIBentryALTinterwordspacing
``Producer consumer problem.'' [Online]. Available:
\url{https://en.wikipedia.org/wiki/Producer-consumer_problem}
\BIBentrySTDinterwordspacing
\bibitem{binary-semaphore}
\BIBentryALTinterwordspacing
``Semaphores.'' [Online]. Available:
\url{https://www.cse.iitb.ac.in/~rkj/cs347/additional/lectures/semaphores.pdf}
\BIBentrySTDinterwordspacing
\end{thebibliography}