Page 1
Implementation of a non-intrusive, real time, fine
grained power monitoring system for college
campuses
THESIS
Submitted in partial fulfillment of the requirements of BITS C421T/422T
By
T.VIGNESH
2009A3TS209G
Under the supervision of
Dr. K. R. Anupama
Professor and H.O.D, Department of EEEnI
BITS, PILANI – K K BIRLA GOA CAMPUS
Date 13-05-2013
Page 2
2
CERTIFICATE
This is to certify that the Thesis entitled Implementation of a non-
intrusive, real time, fine-grained power monitoring system for
college campuses is submitted by T.Vignesh, ID No.
2009A3TS209G in partial fulfilment of the requirements of BITS
C421T/422T. Thesis embodies the work done by him under my
supervision.
Signature of supervisor
Name
Date 13-05-2013 Designation
Page 3
3
ACKNOWLEDGEMENTS
I would sincerely like to thank Dr. K.R. Anupama, Professor and H.O.D,
Department of EEEnI, BITS, Pilani –K.K. Birla Goa Campus, for giving me the
opportunity to work on this thesis and for supervising my work. I am grateful
for the responsibilities entrusted in me, which served to further my knowledge
and technical skills. I would also like to thank my mentor, Mr. Nishad Kamdar,
for teaching me about TinyOS, for providing me with advice and guidance in
the design and testing of protocols and for helping me out with sensor
interfacing. I’d also like to thank my peer, Mr. Edwin Abraham, for helping me
out with specific interfaces and components used in my work. I would like to
extend my thanks to the lab assistants at the analog and embedded systems lab
for providing me with the necessary resources from time to time.
I am certainly grateful to BITS, Pilani University and BITS, Pilani –K.K. Birla
Goa Campus for providing me with this opportunity to work on my
undergraduate thesis.
Page 4
4
Index
I. Introduction and Motivation 6
II. Theory of Operation 8
III. Practical Considerations 11
A. Platform and microcontroller 11
B. Choice of Sensors 15
IV. Implementation 19
A. Stages involved 19
B. Sensor Network Architecture 19
C. Code Synthesis 22
1. Spanning Tree Formation 23
2. Time Synchronization Protocol 24
3. DMAC Protocol 25
4. ADC access and interfacing 29
5. Data Collection, Aggregation and Forwarding 31
D. Verification of Protocols 32
E. Sensor Interfacing 34
F. Automatic sensor calibration and Categorization of Data 39
G. Data Storage and Analysis 40
Page 5
5
Index
V. Conclusion 41
VI. Scope for future work – envisioning a Smart Grid 42
VII. Literature Survey and References 44
Page 6
6
I. INTRODUCTION AND MOTIVATION
College Campuses contain a good variety of static and dynamic loads owing
to the internal population flux. Thus several energy consumption patterns
arise, some of which are wasteful as well. Manual audits of BITS, Pilani –
K.K. Birla Goa campus, have been carried out by URJA and EWB(Engineers
Without Borders) – two voluntary organizations aimed at minimizing the
energy budget of the campus. Such audits are carried out on an annual
basis, have partial data and are subject to human errors. It is found to be
impractical to organize frequent audits considering the students’ schedules.
After some analysis, certain gaps were found in the data and a need to
obtain energy data as frequently as possible was communicated by these
audit teams. In order to better understand the public opinion on the same,
surveys were conducted to gauge students’ general energy usage habits and
suggestions to exercise judicious use of energy. A strong need to account for
the per-capita consumption was expressed by the students. Thus to better
understand the reasons for wastage of power arising from usage patterns,
data about individual usage patterns was found to be required. Several
proposals were put forward from time to time, but weren’t found to be
implementable owing to the intrusive nature of measurements involved.
However, an analysis of energy bills of the campus indicated that a modest
5% reduction in energy consumption implied savings of 19793kWh per
month, ₹84320 per month and ₹1011846 per year. Assuming that this is
achievable entirely at students’ end through a robust, real-time and fine-
grained power monitoring system, contribution to savings by each batch of
students was estimated to be ₹4047385 with increased projections for every
subsequent year, owing to the increase in tariffs. This proves to be a
significant amount and a strong reason to consider energy monitoring
seriously.
Establishing a system that measures the demand and supply patterns of
electricity consumptions is the first step to better understand where and
how energy can be saved. The act of measurement should essentially leave
the existing consumption pattern undisturbed during installation and
execution. Installation of in-line measurement devices requires the circuitry
being accessed for the same to be switched off and hence a disturbance in
the consumption pattern, which may not be tolerated in university scenario,
where power resources are shared. Further, the maintenance or re-
calibration of faulty meters/devices requires similar access and is hence
highly inconvenient and isn’t recommended. Non-intrusive measurement
strategies overcome this problem by tapping the measurable signals emitted
by these circuits/appliances, such as local magnetic field variations and
Page 7
7
device specific signals like intensity/frequency of light emitted (in case of
bulbs, lights, etc.), frequency of sound emitted(refrigerators, compressors),
temperature and humidity(ACs, coolers, etc.) or any other signal(s) strongly
correlated to their power consumption.
Traditional power monitoring techniques rely on custom-made devices that
commit to memory, the consumption data of a fixed time interval. In order to
retrieve and analyse this data, manual intervention is required. This makes
the data non real-time. Alternatively a separate network infrastructure
maybe required to obtain real time data. This adds to extra cost and may
not be justifiable. Wireless Sensor Networks(WSN) offer a cheaper and highly
effective solution to the problem of real-time monitoring as they can
efficiently forward, aggregate and route data to the desired data sinks. They
also offer enough flexibility for internal data route management and local
logging of data. Also, given the cost of the custom-meters and the associated
network infrastructure, the number of points that can be monitored is
restricted. Knowledge of consumption patterns of a larger number of (non-
redundant) points proves to be better useful in devising optimization
strategies to reduce power. A WSN infrastructure proves to be a lot more
cost and energy effective than its traditional counterpart in this aspect too.
The above serves to be the basis for selecting this mode of energy
monitoring.
Page 8
8
II. THEORY OF OPERATION
The basic premise of all the measurements made is the fact that there is a strong correlation between the magnetic field set up around a current
carrying conductor and the current that produces it. The relation between the two is given by Ampere’s Law as given below:
In this implementation the magnetic sensor was strapped to the wire, such that there’s no air-space between the sensor chip and the wire’s insulation.
The actual values of the magnetic field at any given point of time may not give valuable information about the power consumption at any given
instant. However, the variation in standard deviation with time serves to be a good indicator of real time current consumption of the wire. The following figure illustrates the above statement.
Figure 1:Magnetic field change near a PC
The noisy region indicates that the PC is active
Given a constant voltage (which generally is the case with most devices in household use), it is possible to estimate the power consumption of the
device under consideration. Else it would be suggested that a mechanism be in place to measure the voltage and the harmonic distortion components,
non-intrusively as well.
Page 9
9
Each sensor would output the value of magnetic field it senses as small voltage (in mV). Linear amplification is then used to feed the same to the
motes. The standard deviation of magnetic field is then plotted against time. In order to read off the power consumption values from the same,
calibration of the conversion constants is necessary. This is mathematically expressed as an optimization problem as described below. In order to formulate an optimization problem to calibrate the sensors, consider the
following notation:
y0(t) – total power consumption (monitored separately)
si(t), [si,j(t)] – indicator function for ith device [for the jth internal state] –
Boolean in nature
pi(t) – power consumption of ith device
For a device with j states:
pi(t) = Σ (j=1 to Ki) Pi,j * si,j(t);
where Pi,j is the average power consumption of j-th state of i-th device and Ki is the number of internal power states of the i-th device. si,j(t) is a Boolean
function which tells which power state (j) the i-th device is in, at moment ‘t’.
For uninstrumented appliances:
pi(t) = Pi*si(t);
where Pi is the average power consumption of the artificial appliance
Magnetic Sensors:
pi(t) = ⍺i*si(t) + βi;
where ⍺i&βi are calibration parameters and si(t) the standard deviation of magnetic field at instant ‘t’
Direct Meter input:
pi(t) = ~pi(t);
For N devices, the total power reading of an area must equal the sum total of estimated power of that area. The formulation of the optimization problem is hence the following:
Page 10
10
The above optimization problem is essentially a representation of the total power consumption of an area as the sum of power consumption of all the components connected to that meter which provides the reading. Thus, in
order to satisfy the power consumption, the difference between the total power consumption reading as obtained from the meter and the sum of
estimates of power consumption of individual components needs to be minimized. In order to calibrate the magnetic sensors, the above optimization problem needs to be solved. The solution which minimizes this
to the best possible extent yields the values of the calibration parameters which can be used for the magnetic sensors. This being a multi-variable optimization problem requires a numerical method to solve the problem. The
solution so obtained gives roughly, an estimate of power consumption patterns of individual devices and hence the demand-supply relation for
each of them. We choose to a convex optimization toolbox for the same.
Page 11
11
III. PRACTICAL CONSIDERATIONS
A. Selection of Microcontroller
The main requirements of the microcontroller to be used in this application
are as follows:
ADC to convert the analog output of the sensors at the required rate
On board radio transceiver with the facility to support protocol stacks
in order to forward the data obtained to the data sink in real time
Low power consumption and existence of low power states to extend
the operation lifetime of the microcontroller
On-board/external memory to log raw data from the ADC for detailed
analyses of data
The requirements are summarized in the following digram:
Figure 2: Arcitecture of a Wireless Sensor Node
Motes have an architecture which support the above features. Telosb and
motes suit the application very well. Most obviously, their compactness
allows for less cumbersome deployment. The main components of motes are
described below:
Transceiver:
Sensor nodes often make use of ISM band which gives free radio, spectrum
allocation and global availability. The possible choices of wireless
transmission media are Radio frequency (RF), Optical communication and
Page 12
12
Infrared. Infrared is limited in its broadcasting capacity. Radio frequency
based communication is the most relevant that fits most of the WSN
applications. WSNs tend to use license-free communication frequencies:
173, 433, 868, and 915 MHz; and 2.4 GHz. The functionality of both
transmitter and receiver are combined into a single device known as
transceivers. Telosb motes contain CC2420 transceiver chips. They consume
38mW power when receiving messages and 35mW when transmitting at
0dBm. These transceivers have a good wireless range too (75-100m outdoors
and 20-30m indoors).
External Memory: Telosb motes have 1MB of external flash memory for data
logging. It can be used to store the raw data obtained from A/D coversions.
Power consumption: Perhaps the most important aspect of power monitoring
is the power consumed by the mote in its active state. The total active power
consumed by a mote is 41mW, of which 3mW alone is the energy consumed
by the TI MSP430 processor when performing minimal computations. 38mW
is consumed by the radio transceiver, CC2420. Thus evidently, more energy
is required for data communication than any other process. The energy cost
of transmitting 1 Kb a distance of 100 meters (330 ft) is approximately the
same as that used for the execution of 3 million instructions by a 100
million instructions per second/W processor. Power is stored either in
batteries or capacitors. Batteries, both rechargeable and non-rechargeable,
are the main source of power supply for sensor nodes. Two power saving
policies used are Dynamic Power Management (DPM) and Dynamic Voltage
Scaling (DVS). DPM conserves power by shutting down parts of the sensor
node which are not currently used or active. A DVS scheme varies the power
levels within the sensor node depending on the non-deterministic workload.
By varying the voltage along with the frequency, it is possible to obtain
quadratic reduction in power consumption.
Analog to digital converter: Telosb motes have built in 12-bit ADCs that
support configurable sampling rates and flexibility to read at desired
intervals and operate at two reference voltage levels - 1.5V and 2.5V. In
order to read of the output of magnetic sensors, amplification of the same
would be necessary.
Page 13
13
The TelosB mote:
Figure 3: The TelosB mote
Features:
250kbps 2.4GHz IEEE 802.15.4 Chipcon Wireless Transceiver
Interoperability with other IEEE 802.15.4 devices
8MHz Texas Instruments MSP430 microcontroller (10k RAM, 48k
Flash)
Integrated ADC, DAC, Supply Voltage Supervisor, and DMA Controller
Integrated onboard antenna with 50m range indoors / 125m range
outdoors
Programming and data collection via USB
TinyOS and nesC
Telosb motes run on TinyOS which is an event driven, open source
operating system developed for the resource constrained wireless sensor
nodes. TinyOS v2.1.1 was used in developing the protocols for this
application. Network Embedded Systems C or nesC is an extension to C
programming language designed to incorporate the structuring concepts and
execution model of TinyOS.
The basic concepts behind nesC are:
Page 14
14
Separation of construction and composition: programs are built out of
components, which are assembled ("wired") to form whole programs.
Components have internal concurrency in the form of tasks. Threads
of control may pass into a component through its interfaces. These
threads are rooted either in a task or a hardware interrupt.
Specification of component behaviour in terms of set of interfaces.
Interfaces may be provided or used by components. The provided
interfaces are intended to represent the functionality that the
component provides to its user, the used interfaces represent the
functionality the component needs to perform its job.
Interfaces are bidirectional: they specify a set of functions to be
implemented by the interface's provider (commands) and a set to be
implemented by the interface's user (events). This allows a single
interface to represent a complex interaction between components (e.g.,
registration of interest in some event, followed by a callback when that
event happens). This is critical because all lengthy commands in
TinyOS (e.g. send packet) are non-blocking; their completion is
signalled through an event (send done). By specifying interfaces, a
component cannot call the send command unless it provides an
implementation of the sendDone event.
Typically commands call downwards, i.e., from application
components to those closer to the hardware, while events call
upwards. Certain primitive events are bound to hardware interrupts.
Components are statically linked to each other via their interfaces.
This increases runtime efficiency, encourages robust design, and
allows for better static analysis of programs.
nesC is designed under the expectation that code will be generated by
whole-program compilers. This should also allow for better code
generation and analysis.
Page 15
15
B. Choice of Sensors
Appliances/devices with a single power state (on/off) require only current
monitoring either using magnetic sensors or using light/acoustic sensors as
per the availability of measurable signals emitted by the appliance.
Appliances/devices with multiple power states (on/low power modes/sleep
modes/off) may require additional sensor(s) apart from the magnetic sensor
to identify the state. The choice of sensors is highly specific to the
device/area being measured and is warranted if the quality of the signals
being measured is good enough to support reliable correlation to the power
consumption of the device/point. Listed below are some of the commonly
available options for various types of sensors.
Magnetic Sensors for current monitoring
Types of magnetic sensors:
Reed Switches : These sensors are more like electrical fuses and offer a
digital output and indicate whether the magnetic field is above or below a
certain level. They are more useful in applications like traffic monitoring,
proximity sensing, etc.
Figure 4: The Reed Switch
Hall-Effect Sensors : Hall Effect sensors are useful in measuring magnetic
fields like that of the earth, short circuit detection and detection of
abnormalities on the surface of a magnetic material, etc. But they aren’t
very sensitive to variations in magnetic field around a typical current
carrying conductor. One such sensor is UGN3175.
Reed switches and UGN3175(hall-effect sensor purchased)as discussed
above don’t really satisfy the requirements of this application.
Page 16
16
Anisotropic Magnetoresisitive (AMR) Technology Sensors: These sensors are
very sensitive to variations in magnetic field and can accurately measure the
magnetic field around any typical current carrying conductor. One such
product is HMC1001, patented by Honeywell and consists of 4-element
Wheatstone bridges that generate a voltage output in response to variations
in the magnetic field about the magnetic axis. This sensor has been used in
this work. Similar sensors with multiple axes (HMC1002) can offer more
information about the magnetic field patterns around the conductor, but the
application doesn’t really warrant it. These sensors can operate within a
supply voltage range of 3V to 12V at 10mA and require periodic setting &/or
resetting to restore sensitivity after prolonged exposure to a disturbing field.
A disturbing field is one that can affect the magnetic domains enough to
result in their orientation such that a constant sensor output is obtained. In
order to avoid this, it is necessary to apply set/reset pulses at regular
intervals. HMC1001 sensors were used in this application. These are single
axis magnetic sensors.
Figure 5: Honeywell’s AMR based magnetic sensors
Page 17
17
Other Sensors for power monitoring
In addition to magnetic sensors, light sensors, temperature/humidity
sensors too can be used to detect the power state of a given appliance with
the appropriate data in hand. They too have to be calibrated by solving the
optimization problem mentioned above. Some of the options that can be
considered for temperature, light, and humidity sensing include the
following:
Temperature Sensors:
LM35: These are precision centigrade sensors and can be used to measure
the temperature of a specific object given that the temperature of the air
surrounding the surface is the same as that of the surface. Thus, in order to
measure the temperature of a room when the AC is on, one needs to find a
spot whose temperature is the same as that of the room. To measure the
temperature of a specific object, epoxy covering would be required to ensure
thermal insulation.
Figure 6: LM35 Temperature Sensor
On-board SensirionSHT11/SHT15 sensors: These are specifically designed
for environment monitoring applications. They produce a digital output,
which is stored in the mote’s EEPROM. The sensor is coupled with a 14-bit
ADC.
Page 18
18
Light Sensors:
Photodiodes: These are simple diodes that produce a voltage when light
shines on them. These can easily be interfaces with the motes.
Photoelectric Sensors: These can be used to detect the characteristics of a
moving object, its presence or absence.
Photoresistors/Light Dependent Resistors: The resistance of these sensors
vary with variation in light intensity. These can be easily interfaced with
motes.
Photoswitches: These are apt to detect the on-off state of appliances and can
be easily interfaced with motes.
On-board Light Sensors Hamamtsu S1087 and S1087-01: These are
basically photodiodes to detect photosynthetically active radiation and the
entire spectrum respectively.
Figure 6: A Photodiode(left) and a LDR(right)
Page 19
19
IV. IMPLEMENTATION
The implementation of a power monitoring system requires a step-by-step
approach, formulated as below:
A. Stages involved
i) Identification of a suitable microcontroller, appropriate sensors and
areas suitable for monitoring.
ii) Development of a suite of protocols to span all nodes, synchronize
events between them, manage media access between the nodes,
data aggregation and forwarding within the system of nodes.
iii) Testing and verification of the accuracy and scope of the protocols
developed using dummy data/internally generated data.
iv) Sensor interfacing
v) Deployment of sensor nodes in a given set of locations and
collection of data at a central aggregator
vi) Formulation and solution of optimization problem and machine
learning codes for calibration of sensors
vii) Data analysis and online storage using PHP API
viii) Duplication of system to multiple locations
ix) Establishing the demand-supply patterns to lay the foundations of
a smart grid framework
B. Sensor Network Architecture
Sensor Network architectures are developed on the basis of data flow
patterns in the network. A power monitoring application requires all the
data to flow to a single data sink attached to the laptop. Two architectures
support this flow quite effectively. These are:
Cluster Based Architecture
Hierarchical or Tree Based Architecture
Cluster based architectures typically consist of clusters of nodes with the
cluster heads of each cluster acting as local data sinks. These data sinks
communicate with each other and a global data sink to transfer their data
effectively without collisions. Tree based architectures on the other hand,
have a hierarchical structure throughout. A single root node acts as the
global data sink and data flows up the tree from the leaves or end nodes,
through intermediary parent nodes.
Page 20
20
Tree based architecture has been used in this work. The following is a
description of the same
Hierarchical or Tree Based Architecture
Root Node: This node acts as the global data sink of the network and
initiates time synchronization and data flow in the network. It aggregates
the data from all the lower nodes and sends the same to the laptop via the
USB port. Data from this node is not broadcasted over the radio as it has no
parent. The node depth of this node is zero. The root has some children
which belong to node depth 1 and act as parents to the lower level. The root
acts as a reference node for the tree.
Parent Node: Every node in the tree that reports to another node is said to be
a node depth below the one to which it reports. The latter is called as the
parent node and the former as the child node. Every parent can have many
children, but not vice-versa. The parent doesn’t know how many children it
has, as the data flow is unidirectional-from the child to the parent. Every
parent aggregates data from all its children, appends its own data to it and
sends the same to the node which acts as its parent. As the number of
nodes increases, the number of node levels needs to be increased in order to
avoid draining away the power of any given parent by overloading it. Root
node, hence acts as the parent of the highest order.
Child Node: The tree ends at leaf nodes which act as children to the nodes to
which they report. These nodes, following time synchronization, do the sole
job of sampling their own data and forwarding to their respective parents.
Every parent, of course acts a child to its own parent. Every child knows its
parent and ensures that its data packets don’t collide with those of another
child of the same node depth. The leaf nodes consume the least power and
any node that is severely drained of energy is best advised become a leaf
node and reduce the energy overhead due to data reception.
Page 21
21
Root Node (Depth 0)
Data Flow
Node Depth 1
Node Depth 2
Leaf Nodes (Depth 3)
Figure 7: Hierarchical or Tree Based Network
Page 22
22
C. Code synthesis for Network Protocol Suite
The network protocol suite developed for the application needs to be simple,
energy efficient, simple and should result in a good packet delivery ratio.
The following protocols constitute the network protocol suite for the
application:
1. Spanning Tree Formation
2. Time Synchronization Protocol
3. MAC protocol implementation for staggered sleep wake cycles (DMAC)
4. ADC access and interfacing
5. Data Collection Protocol and Data Aggregation Protocol
Page 23
23
1. Spanning Tree Formation
Each node is programmed with an Active Message Node ID. The node whose
ID has 1 as the first digit acts as the root node and is connected to the
laptop. Immediately after booting, a timer is called which turns on Active
MessageC using the SplitControl interface. On completion of this event, the
root broadcasts its timer, address and node depth (zero).
The nodes which receive this message first capture the RSSI (Received
Signal Strength Indicator) and LQI (Link quality Indicator). RSSI and LQI are
parameters of the packet that serve to be indicators of the strength of the
signal received. A low LQI indicates bad packet delivery ratio or delivery of
packets damaged by noise. If the LQI is less than 95, the message is simply
discarded. This value was arrived at by studying the LQI values of typical
packets received without setting any condition on LQI. If the condition is
satisfied, they set their respective timer counters to the same value as that
received and set their node depths as one greater than the node depth
received. They also store the address of the root as the parent address for all
future correspondences. A flag indicates the level discovery status of the
node and is set to true, once the node has set its node depth. The node then
broadcasts its node depth, counter, address and parent’s address. The flag
ensures that the same node doesn’t discover its level multiple times.
The nodes which couldn’t set their node depths owing to either poor Link
quality or simply by virtue of being out of the transmitting range of the root
node, receive this message and after checking for LQI, discover their level
and set their counters and parent addresses in accordance with the value
received. This process continues till all the nodes in deployment have been
spanned by the tree. This completes the spanning tree formation protocol.
The power level of the transceiver is to be set after considering the maximum
distance between any two nodes in the given domain. The CC2420Packet
interface provides a command to set this power. The range of values offered
is between 1 and 31 and is the power level of the transceiver in dB. The
highest power, 31 dB offers a maximum indoor range of 30m and a
maximum outdoor range of about 65m. A message transmitted by a mote in
a dorm room at 3dB power level (or upto 4dB) is sufficiently strong to be
received by another mote in the same room. Setting a very low power level
would cause multiple node levels to be discovered and sometimes, the loss
of packets. The power level should hence be chosen carefully.
Page 24
24
2. Time Synchronization Protocol
Several time synchronization protocols have been suggested for sensor
networks in general. The most popular ones are Reference Broadcast
Synchronization (RBS) and the traditional Time Sync Protocol for Sensor
Networks (TPSN). However, these protocols aren’t supported quite very well
by the network architecture used. RBS synchronizes the time between nodes
of the same level and requires a reference broadcast from the root. Ensuing
communication between nodes of the same depth ensures that these nodes
are in sync. TPSN, on the other hand requires handshaking between the
parent and the child to establish time synchronization. The proposed
network architecture allows only for one way communication from the child
to the parent. Hence these protocols would be cumbersome to implement.
During the spanning tree formation phase, every broadcasting node sends
its counter value in the message sent. Every node that receives the same
sets its counter to the same value. Given the transmission rate (250kbps)
and speed(2.4GHz) of CC2420, the delay between the sender and receiver
would at most be in the range of microseconds. Thus, the nodes are
synchronized with respect to each other and to the root as the spanning tree
formation is completed.
However, nodes tend to run out of sync with respect to each other and the
root as the time progresses owing to minute differences in the device
architecture of motes and their oscillators. Thus in order to ensure time
synchronization for prolonged operation, it necessary that the nodes
exchange their counter values and set them accordingly at regular intervals.
During normal operation, when a pre-defined counter value is reached, the
leaf nodes set a flag (time_sync_req) to true and transmit the same along
with data, in the message packet. This node resets its level discovery flag to
false after sending and stops sending further data to the parent till its level
is discovered again. The parent, on receiving the message sets its
time_sync_flag to true and sends the same in the message packet. After
sending, it sets its level discovery flag to false sends no further data packets
till its level is discovered again. This process continues till it reaches the root
and the root send out a level discovery message again to achieve both time
synchronization and spanning tree formation for another cycle of data
collection. The sleep wake cycles (discussed in the next section) ensure that
the children are ready to receive the level discovery message before the root
sends out the same to initiate the process again. This protocol fits the
network architecture and ensures time synchronization.
Page 25
25
3. DMAC Protocol
Medium Access Control (MAC) protocols define how various different devices
are supposed to access the same media to communicate with the intended
device connected to the former through this medium. The essential
attributes of a good MAC protocol is avoidance of over contention of the
medium with too many data packets at the same time, collision avoidance
and a fair chance for every device to access the medium in every medium
access cycle. The MAC protocols are generally based either on TDMA (Time
Division Multiplexed Access) or CSMA (Carrier Sense Multiple Access) with
CA(Collision Avoidance) or CD(Collision Detection), generally abbreviated as
CSMA/CA or CSMA/CD.
Several MAC protocols have been developed for wireless networks. Some of
the protocols based on TDMA include DMAC, LMAC, MC-LMAC, PMAC,
EMACS, Crankshaft protocol, etc. Some protocols based on CSMA include
SMAC, TMAC, BMAC, MMAC, TRAMA, FLAMA,etc. Some protocols like
ZMAC combine the benefits of both approaches, while some others like
MSMAC, MFMAC and CCMAC are designed to perform in mobile
environments, multiple frequency transmissions and spatial correlation in
WSN respectively.
Power monitoring application requires only data of a single kind (i.e. no
priority data or interrupts) to be sent from each node. There aren’t any
special cases and the data is to be sent at regular intervals only. The above
coupled with the tree structure of the network and the unidirectional flow of
data through the network stipulate the requirement of a simple TDMA based
protocol. With these requirements in mind, DMAC serves to be the most
suitable protocol to implement and use for this application. Hence DMAC
has been implemented to control the sleep wake cycles and medium access
in the network. Also, DMAC suffers the least due to data forwarding
interruption problem, which occurs in tree based networks using CSMA
based MAC schemes. In DMAC, the duty cycles of nodes of successive node
depths are staggered with respect to each other, such that any given node is
ahead of its parent by half the active period duration. Reception of packets
happens in the first half of the active period and the transmission of data
packet happens in the second half. Thus when a child is transmitting, the
parent is receiving and when the parent transmits, the child is asleep, while
the parent of the higher node level is receiving. Any data packet thus sent,
propagates all the way upto the root, with reference to whose duty cycle, all
other duty cycles are staggered in the order of their node depths.
Page 26
26
Figure 8: Data forwarding interruption problem in contention based SMAC protocol and its absence in
DMAC protocol
Figure 9: Sleep wake cycles in DMAC protocol
Page 27
27
In the code, immediately after sending the level discovery packet, each node
sets a flag that indicates that the level discovery for that node is over and
that the time synchronization with all higher nodes is complete. Once this
flag is set, the duty cycle of the node is set such that it is awake for two-
fifths of the cycle. For instance, consider a 1 second cycle. The node remains
awake for 400ms and asleep for the rest of the cycle - 600 ms. The cycle
starts with the ActiveMessageC component being switched off by the
SplitControl interface when the value of the counter equals one wake period
plus the difference between the counter value received and the value
obtained by multiplying the node depth and the one-half the wake period.
This ensures that every node is ahead of its parent’s cycle by one-half of a
wake period. The variable counter_value stores the node depth specific
value, the counter indicates the current counter and the counter_received
variable indicates the value of the counter received from the parent. The
ActiveMessageC component is turned on again when the duty cycle period is
complete and the value of the counter_value variable is updated with the
current counter value, the moment the radio is turned on again. The
following code snippet describes the sleep-wake cycle assignment:
counter_value = counter_received – (node_depth*half of the wake period);
if(counter – counter_value == wake period){call SplitControl.stop();}
if(counter – counter_value == duty cycle) {call SplitControl.start();
counter_vaue = counter;}
Thus every node sends data aggregated for a second in its sending slot. Also,
nodes of the same depth need to divide the receive time available to the
parent amongst themselves such that the data packets from any two or
more nodes of the same level don’t suffer losses due to packet collision. This
is achieved by fixing the send times based on their unique node IDs. A
certain digit or a set of digits of the node ID are extracted and the data is
sent by that node, exactly the number of counts indicated by those digits(or
the same multiplied by a constant multiple for all nodes, like say 10)
following the middle of the wake period. This ensures that no two packets of
two nodes belonging to the same node level are sent at the same time. This
avoids packet collisions. The following code snippet illustrated the same:
If(counter – counter_value == half the wake period + TOS_NODE_ID)
call AMSend.Send(&packet, sizeof(DataPacket));
Page 28
28
By default, the maximum permissible size of a data packet is 28 bytes.
When data reception starts every node maintains a counter that increments
itself every time a packet is received. Each packet can hold the data of 4
children. If the number of packets exceeds 4, a flag is maintained in the
message structure (more-to-send or MTS) that is set to true. This flag
indicates that the sending node and all the nodes above the current level
have to increase their duty cycle by one half the wake period. All the excess
data packets are sent by the sending node successively after the respective
node ID value is reached at every count following the same. This is the case
when the network is large in size and this feature ensures scalability of the
network. Thus nodes higher up the tree need to have enough power
resources to support themselves in the face of increased workload. Periodic
refreshment of the tree ensures that nodes that have a are low on battery
and hence with a low value of LQI, act as children and those with enough
battery power left, take up the role of parents. The data prediction feature
isn’t required by the application because the data received from a single
child is always of a fixed size.
This completes the implementation of DMAC protocol.
Page 29
29
4. ADC Access and Interfacing
TelosB motes have 12 bit ADCs that can be accessed from 6 pins of the
expansion connectors U2 and U28 (ADC0-3, ADC6-7) and ADC4-5
interfaced to the on-board photodiodes, if present. The hardware abstraction
of ADCs in TinyOS 2.1.1 as described in TEP 101 aligned to a 3-layer
Hardware Abstraction Architecture (HAA). The three layer ADC stack
consists of a Hardware Interface Layer (HIL) with chip specific
implementation that provides an interface to read the results of ADC data
conversion. It uses a Client provided interface that contains the
configuration details of the ADC to be accessed. This is the only means by
which the ADC stack exposes its underlying components to the user/client.
The Hardware Adaptation Layer (HAL) exposes the chip specific capabilities
of the ADC to the HIL and implements resource allocation, single/multiple
conversions and various modes of reading. Hardware Presentation Layer is a
stateless component that provides access to the hardware registers. The
HAL accesses them to implement the functionalities exposed to the user via
HIL.
In order to access one of the ADCs, the configuration structure is to be
defined by the user and the AdcConfigure interface used by the
AdcReadClientC component is to be wired to the AdCConfigure interface
provided by the Client in the application code. Msp430Adc12.h file contains
the definitions of the configurable parameters, which the user needs to
declare in the application code. For instance, consider the following
configuration provided in the application code:
const msp430adc12_channel_config_t config = {
inch: INPUT_CHANNEL_A1,
sref: REFERENCE_VREFplus_AVss,
ref2_5v: REFVOLT_LEVEL_2_5,
adc12ssel: SHT_SOURCE_ACLK,
adc12div: SHT_CLOCK_DIV_1,
sht: SAMPLE_HOLD_4_CYCLES,
sampcon_ssel: SAMPCON_SOURCE_SMCLK,
sampcon_id: SAMPCON_CLOCK_DIV_1};
Page 30
30
This code accepts A1 as the input channel and samples values from ADC1
(Port61). There are totally 8 input channels available for external interfacing
(A0-A7 mapped to Port60-67 of Msp430). Apart from the above, there are 4
other input channels that come from internal sources. These include
EXTERNAL_REF_VOLTAGE_CHANNEL (inch: 8),
REF_VOLTAGE_NEG_TERMINAL_CHANNEL (inch: 9), TEMPERATURE
DIODE CHANNEL (inch: 10), SUPPLY_VOLTAGE_HALF_CHANNEL (inch:11).
The reference voltage, sref accepts REFERENCE_VREFplus_AVss as the
reference voltage to generate reference voltages of VR+ = VREF+ and VR- =
AVss. Other options for reference voltages are also provided in the header.
The reference voltage level, ref2_5v takes 2.5V as the reference voltage level
and generates an ADC count between 0 and 4096, with 4096 corresponding
to 2.5V. It also offers an option to configure ref2_5v to accept 1.5V as the
reference voltage to generate ADC counts that scale between 0 and 1.5 volts
only.
The adc12ssel field specifies which clock is to be used to sample and hold
the ADC values. This code accepts ACLK as the source. MCLK, SMCLK and
the 5Mhz oscillator, ADC12OSC are the other options available. The field
adc12div can be used to divide down the ADC clock by upto 8 times. sht
field indicates the sample hold time, which in this case is 4 clock cycles and
the options provided extend upto 1024 clock cycles. The fields,
sampcon_ssel and sampcon_id indicate the clock source and clock divider
for the sampcon signal respectively.
The most recently sampled ADC value is available to the read interface. The
application developed in this work uses the above configuration and calls
the read interface once every 20ms and stores the value. The internal
channels help prove to be useful in testing the rest of the protocols and the
correct function of ADC interfacing.
Page 31
31
5. Data Collection, Aggregation and Forwarding
The ADC samples are obtained at the rate decided by the clock source.
ACLK has been chosen as the clock source with a sample and hold time of 4
clock cycles. ACLK offers samples readings at 32Mhz frequency. The read
interface however is called only once every 20ms. The duty cycle chosen for
the application is 1s. Hence, about 50 readings are obtained every second.
The data processing code calculates the mean and standard deviation of the
samples read-off from the ADC. In order to calculate the mean, a separate
count for the number of readings is maintained, which is incremented every
time a readDone event is signalled. The read values are added and then
divided by this count to obtain the mean. In order to obtain the variance, the
square of the difference between each reading and the calculated mean is
summed and divided by the no of readings. In order to obtain the standard
deviation of the readings, square root of the variance is to be calculated. As
nesC libraries don’t offer a square root function, the same is numerically
calculated by a small code block, called by the readDone event. The values
of standard deviation and mean thus obtained are stored privately in the
node under specific variables
In order to aggregate the data obtained from children, the parent stores the
data received in separate variables that are privately maintained by that
node. Throughout the receiving phase, the data received from different
children are stored in these variables. Once all data has been stored in
private variables, the same is written to the message structure with or
without the MTS flag as the case may be. The data of three children and that
of the sending node is written and sent in the message. If the MTS flag is
set, data from other children are written to the message structure and sent.
The data sent includes the mean and standard deviation of the sensor
values and the address of the sending node. Thus one reading is sent per
second.
The values sent are aggregated at the root node and finally printed on to the
terminal. The data is then written from the terminal to a text file.
Page 32
32
D. Verification of Protocols
In order to verify the time synchronization protocol and spanning tree
formation, the time period for refreshment of the tree was set to 50*60 or 1
minute. It takes 50 counts for the node’s timer to complete a cycle, which is
1 sec. In order to demonstrate the protocols, this value was chosen. The
intended value is 50*60*30, i.e, the tree is expected to refresh itself once
every 30 minutes.
4 motes were programmed with node IDs, 10, 21, 41 and 61. The node with
ID 10 served as the root node and other IDs, in this demonstration were the
children of the root. Following are the screen shots obtained when the
program was executing on the motes. The input channel used was ADC4,
hence the values of the mean and the standard deviation. The values from
the root node were printed out on the terminal.
Figure 10: Output of the root node
The root, received a last piece of data from all the children when the counter
was 2991 and went to sleep at 3011. The data displayed after this line is the
data obtained during the wake cycle of the root. This is so because the printf
commands to display the results reside in the stopDone event of the
SplitControl interface. As the time_sync_req flag was set, the root reverted
back to the initial tree formation phase. In order to emphasize on the
counter, the value of the counter was set to 40 in the code that refreshes the
spanning tree. Thus, when the root node started out to broadcast the level
Page 33
33
discovery message, the counter value of 41 was broadcasted. The sleep wake
cycle was set once again, as can be seen in the display. The following is a
screenshot of the values sent by one of the children:
Figure 11: Output of the child node
The screenshot indicates the values sent by the child. Since this child is a
leaf node, no values are received from its children, as there are none. The
values printed to the screen are those of the children. However, the values
sampled and sent by this node appear above the asleep line as a set of 3
values. For instance, above the ‘asleep at: 3001’ line, the values: 0 for mean,
2 for standard deviation and 61 for node address can be seen. Again, like
the root node, the condition to refresh the tree resides in the stopDone
event. Hence, this node awaits a level discovery message from the root or
another node. Level discovery was successful with its node depth being 1
and the LQI value satisfying the criterion to accept the sender of the
message as the parent.
These screenshots also verify successfully, the sleep-wake cycle and DMAC
implementation, ADC access and interfacing, and data aggregation and
forwarding protocols.
Page 34
34
E. Sensor Interfacing
HMC1001 sensors are single axis magnetic sensors with 4-element
Wheatstone bridges that measure magnetic fields within a limited range and
provide a small output that requires amplification. Following are the
specifications of HMC1001:
Bridge voltage referenced to Gnd: 5V (upto 12V)
Bridge current: 10mA.
Sensitivity: 3.2mv/V/gauss
The following data from the data sheet of HMC1001 indicates the key
performance characteristics:
Figure 12: Performance Characteristics of HMC1001
The above data graphs indicate that the output value obtainable for the
magnetic field variations around a typical current carrying conductor, like
that of a laptop PC is very small. Given a ±5 mGauss variation in magnetic
field at the periphery of the wire of a PC, the output voltage variation is
expected to be very small. Thus in order to amplify the same, an
amplification circuit was to be built. The datasheet also provides an
application note on current sensing applications. The following circuit was
Page 35
35
then assembled in the lab and tested against small inputs generated from
the signal generator.
Figure 13: Circuit to interface HMC1001 with the ADC
As LMV324N wasn’t available, uA741 was used. The idea was to amplify the
voltage by about 200 times, such that a variation of 10mVp-p produced an
output of about 2Vp-p. In order to obtain the required amount of
amplification, the resistances were modified and with R7 and R8 as 100K-
ohm, R9 and R10 as 1K-ohm, R5 and R4 as 470 ohm, an gain of about 200
was obtained. The circuit assembled is shown below:
Page 36
36
Figure 14: Circuit to amplify the output of HMC1001
As the magnetic sensors were SMD chips and were too small to fit a
breadboard, they were soldered to a SMD to DIP converter socket and the
connections made, as shown below:
Figure 16: Magnetic sensor soldered to the converter socket
Page 37
37
Two sample outputs were tested, on the scope. One was the amplified sensor
output when the magnetic sensor was strapped to the power wire of the
oscilloscope and the other to that of the signal generator. The amplified
outputs turned out to be very small and were displayed on the oscilloscope
screen. They displayed periodic variations which vaguely resembled the AC
supply input. However, a lot of noise was observed too.
The following were the outputs obtained:
Figure 17: Amplified output for the power wire of the scope(left), signal generator(right)
When tested with the power cord of a PC, the value wasn’t constant and
showed variations around a range. The portion of the power cord with
regulated DC output to the PC was strapped to the sensor. In order to obtain
the standard deviation of the same, the output was connected to the ADC4
input of the mote and the output displayed on the terminal was written to a
text file. The power cord was unstrapped from the sensor when the counter
value was 34641 in the extract from the output file shown below:
Output file extract:
asleep at: 34611
mean: 56, standard deviation: 215, node ID: 21
mean: 0, standard deviation: 0, node ID: 0
mean: 0, standard deviation: 0, node ID: 0
mean: 0, standard deviation: 0, node ID: 0
awake at 34641
Root node address:10, depth: 0
Root's counter broadcast to others: 41, own counter: 34641
received
asleep at: 34661
mean: 56, standard deviation: 215, node ID: 21
mean: 0, standard deviation: 0, node ID: 0
Page 38
38
mean: 0, standard deviation: 0, node ID: 0
mean: 0, standard deviation: 0, node ID: 0
awake at 34691
Root node address:10, depth: 0
Root's counter broadcast to others: 41, own counter: 34691
received
asleep at: 34711
mean: 56, standard deviation: 215, node ID: 21
mean: 0, standard deviation: 0, node ID: 0
mean: 0, standard deviation: 0, node ID: 0
mean: 0, standard deviation: 0, node ID: 0
awake at 34741
Root node address:10, depth: 0
Root's counter broadcast to others: 41, own counter: 34741
received
asleep at: 34761
mean: 56, standard deviation: 214, node ID: 21
mean: 0, standard deviation: 0, node ID: 0
mean: 0, standard deviation: 0, node ID: 0
mean: 0, standard deviation: 0, node ID: 0
awake at 34791
Root node address:10, depth: 0
Root's counter broadcast to others: 41, own counter: 34791
received
asleep at: 34811
mean: 56, standard deviation: 215, node ID: 21
mean: 0, standard deviation: 0, node ID: 0
mean: 0, standard deviation: 0, node ID: 0
mean: 0, standard deviation: 0, node ID: 0
awake at 34841
Root node address:10, depth: 0
Root's counter broadcast to others: 41, own counter: 34841
received
asleep at: 34861
mean: 56, standard deviation: 215, node ID: 21
mean: 0, standard deviation: 0, node ID: 0
mean: 0, standard deviation: 0, node ID: 0
mean: 0, standard deviation: 0, node ID: 0
awake at 34891
The above output indicated that the value of standard deviation was
strangely fixated at 215 even after the input had changed. This indicated the
saturation of domains in the sensor after a disturbing magnetic field caused
orientation of domains in particular direction for a long enough period of
time. The output was measured for over 10 minutes with the power cord
strapped to the sensor. In order to overcome the issue, a circuit to
periodically set/reset the magnetic sensor was necessary. As mentioned in
the circuit diagram for interfacing the sensor, transistors IRF7105P/N were
required. Alternate transistors were used and a clock pulses were given once
every second to reset the sensor. The output obtained wasn’t satisfactory.
Page 39
39
F. Automatic Sensor Calibration and Categorization of Data
In order to reliably map the standard deviation of the sensor output to the
power consumption, the real time power of the device is to be calculated or
monitored and the optimization problem needs to be solved using a convex
optimization toolbox thereby giving the values of calibration constants ⍺i&βi.
A simple Hebbian learning rule based neural network with weights ⍺I
corresponding to the standard deviation values obtained from the nodes as
inputs to then network, and a constant input to the network, with weights βi
would effectively calibrate the constants for each node’s standard deviation
value to estimate the power consumption of that device. This network needs
to be trained with the correct values of the constants calculated by the
optimization toolbox, given the total power and individual standard deviation
inputs.
Once in deployment, when a set of standard deviation values are obtained,
the network converges to the right set of outputs as the trained weights
ensure that the right output value of power is obtained from each standard
deviation input. These values can then be stored and analysed.
ART(adaptive resonance theory)is a classifying network and can be used for
classifying data into categories like tubelights, fans, laptops, etc.
Page 40
40
G. Data Storage and Analysis
PHP provides options to post data to the web, analyse the data and generate
graphs indicating the power profiles estimated. A simple PHP GUI can be
used to visualize these functionalities.
Google drive provides a PHP API that can be used to post the data obtained
from the root node to google drive. This makes sure that data is stored
online and is accessible to many users for data analysis. In order to obtain
timely information, aggregated packets would be written to a text
file/document that would be refreshed by the PHP code if the data in it has
been posted to google drive.
Data obtained in one spanning tree formation cycle can be aggregated and
posted to the online repository every 30 minute, as was mentioned in the
time synchronization protocol. The power profile is to be analysed for
sudden or noticeable variations in power consumption. For instance, when a
laptop switches from active mode to one of the low power modes or off mode,
the standard deviation of the magnetic field observed dies down to zero. The
study of such patterns over an extended period of time offers insights into
the wasteful components of power consumption, such as the period when
the PC is simply left in active mode without any user input or file activity.
Tracking down such periods helps in pinpointing wasteful behaviours and
discouraging them.
Page 41
41
V. CONCLUSION
In an attempt to establish a fine-grained, non-intrusive, real-time power
monitoring system, the protocols and algorithms necessary to sample,
aggregate and forward sensor data to a central processing unit were
developed. A wireless sensor network was established to do the intended
task and the protocols for spanning tree formation; time-synchronization,
DMAC based medium access control, ADC access and interfacing, data
aggregation and forwarding were developed and tested. The algorithms and
protocols developed were found to be fully functional and scalable to a
network of any arbitrary size. The network non-intrusiveness, real-time
functionality and the ability to provide fine grained data are found to be
supported well by the network architecture proposed and implemented.
Magnetic sensors were successfully interfaced with the motes, to track AC
flow patterns. In an attempt to measure DC flows, saturation of magnetic
field was found and the need to implement set/reset circuitry to rectify the
same was established. A PHP script to post the data to the web and a GUI to
analyse the data was developed. The identification of the appropriate types
of neural nets and the exact requirements of the neural networks and were
established.
Page 42
42
VI. SCOPE FOR FUTURE WORK – ENVISIONING A SMART GRID
This work was undertaken, keeping in mind the following objectives:
Establishing maintenance free, automated, non-intrusive, fine-
grained, real time power monitoring system
Measuring performance characteristics of various electrical utilities
connected to the grid
To be able to communicate to every (accountable) resident about their
consumption patterns and provide appropriate notifications to
minimize wastage from the human end
Developing a microgrid for hostels (to start with) where load isolation
is achievable
Extending the idea to develop microgrids for every part of the campus
and to integrate them under a single roof –the smart grid
To promote a sense of responsibility and belonging to every consumer
of electricity on campus
Sensor interfacing was done with incomplete results, due to the lack of
appropriate components. The circuitry to set/reset the sensor periodically is
an essential component for the normal functioning of the sensors to provide
reliable and accurate data. It would be a cumbersome idea to develop
circuits on the breadboard and use them for real deployment in various
parts of the campus. Developing a PCB with the circuit soldered to the same
is integral to the mobility of the sensors.
In this work only magnetic sensors were used to infer about the power
consumption of the device under consideration. Use of light, temperature,
acoustic and humidity sensors is essential to improve the quality of the
estimation.
Development of a robust calibration network wasn’t completed and would be
undertaken in the future when reliable data from multiple sources becomes
available, as the number of neurons in the network would be decided by the
number of inputs to the network.
Rigorous data analysis of a large area of the university is necessary to
establish wasteful patterns in power consumption. Logging raw data and
analysis of raw data would give insights into power consumption
components that are wasteful and result due to leakages. The power
consumed by some appliances and circuits when connected to the power
grid due to leakage of current is called as phantom power and tends to be
large for heavy duty circuits/appliances such as A/C. Establishing the
Page 43
43
profile of phantom power consumption helps in devising strategies that can
effectively curb this component completely.
Measuring the profiles of both consumption and production of power
throughout the campus is useful in establishing demand-supply patterns
within a given domain, such as hostels or classrooms. Leveraging this
information is useful in developing micro-grids that manage the power
requirement and production to optimize power usage. A micro-grid
essentially connects to or disconnects from the grid depending on the power
requirement profile of that domain/area. When the consumption due to
every individual is established beyond doubt, every individual would have to
pay only for their own consumption. This encourages vigilance in
consumption patterns and discourages wasteful patterns of consumption.
Establishment of an internal market and storage of power to leverage
unused power is a novel way of avoiding blackouts in the face of temporary
disconnection from the power grid. This is essentially the power of a fully
functional smart grid. In order to achieve the same, careful planning needs
to be done after identifying the best possible sources and sinks of the
distribution.
The final goal of this work is the culmination of a fully functional smart grid
as the most optimal energy solution possible.
Page 44
44
VII. LITERATURE SURVEY AND REFERENCES
[1] Younghun Kim, Thomas Schmid, Zainul Chabriwala, Mani Srivastava,
‘ViridiScope: Design and Implementation of a Fine Grained Power
Monitoring System for Homes’ in Proc. Eleventh International
Conference on Ubiquitous Computing, 2009
[2] Polastre, J., Szewczyk, R., Culler, D., ‘Telos: enabling ultra-low power
wireless research’ in Proc. Fourth International Symposium on
Information Processing in Sensor Networks: Track on Platform Tools
and Design Methods for Network Embedded Sensors, 2005
[3] Benny, P.L., Thiemjarus, S., King, R., Yang, G., ‘Body Sensor Network
– A Wireless Sensor Platform for Pervasive Healthcare and Monitoring’
in Proc. Third International Conference on Pervasive Computing, May
2005
[4] Polastre J., Szewczyk R., Mainwaring, A., Culler, D., Anderson, J.,
‘Analysis of Wireless Sensor Networks for Habitat Monitoring’ In ACM
International Workshop on Wireless Sensor Networks and
Applications (WSNA’02), Atlanta, GA, USA, Sept. 2002.
[5] Sinopoli, B., Sharp, C., Schenato, L., Schaffert, S., Sastry, S.,
‘Distributed Control applications Within Sensor Networks’ in IEEE
Proceedings Special Issue on Distributed Sensor Networks, 2003
[6] http://www.tinyos.net
[7] Estrin D., John H., Wie Ye, ‘An Energy Efficient MAC Protocol for
Wireless Sensor Networks’ in Proc. of Twenty -First Annual Joint
Conferenceof the IEEE Computer and Communications Societies,
INFOCOM 2002
[8] Gang Lu, Bhaskar K., Cauligi S., ‘An Adaptive Energy-Efficient and
Low Latency MAC for Data Gathering in Wireless Sensor Networks’ in
Proc. of 18th International Parallel and Distributed Processing
Symposium (IPDPS’04)
[9] Ganeriwal S., Ram K., Mani B., ‘Timing-sync Protocol for Sensor
Networks’ in Proc. of 1st International conference on Embedded
networked sensor systems, Sensys, 2003
[10] Geremy E., Lewis G., Deborah E., ‘Fine-Grained Network Time
Synchronization using Reference Broadcasts’ in Proc. of the Fifth
Page 45
45
Symposium on Operating Systems Design and Implementation (OSDI
2002), Boston, MA. December 2002
[11] TEP 103
[12] TEP 116
[13] TEP 124
[14] Polastre J., Jason H., Culler D., ‘Versatile Low Power Media Access for
Wireless Networks’ in Proc. Of 2nd International Conference on
Embedded Networked Sensor Systems, 2004
[15] Mehmet C. Vuran, Ian F. Akyildiz, ‘Spatial Correlation-based
Collaborative Medium Access Control in Wireless Sensor Networks’, in
Volume 14, IEEE/ACM Transactions on Networking, April 2006
[16] Lu G., Krishnamachari B., Raghavendra C.S., ‘An adaptive energy-
efficient and low-latency MAC for data gathering in wireless sensor
networks’ Proc. of 18th International Parallel and Distributed
Processing Symposium, 2004
[17] Ali M., Suleman T., Uzmi Z.A., ‘MMAC: a mobility-adaptive, collision-
free MAC protocol for wireless sensor networks’ in IPCCC 2005, 24th
International Performance, Computing, and Communications
Conference, 2005
[18] Gang Zhou, Yafeng Wu, Ting Yan, et. al, ‘A multifrequency MAC
specially designed for wireless sensor network applications’, in Volume
9, issue 4, ACM Transactions on Embedded Computing Systems,
March 2010
[19] Van L.F.W., Havinga P.J.M., ‘A Lightweight Medium Access Protocol
(LMAC) for Wireless Sensor Networks: Reducing Preamble
Transmissions and Transceiver State Switches’ in Proceedings of the
1st International Workshop on Networked Sensing Systems (INSS)
(2004), pp. 205-208
[20] Rajendran V., Garica-Luna-Aveces, Obraczka K., ‘Energy-efficient,
application-aware medium access for sensor networks’ in IEEE
International Conference on Mobile Adhoc and Sensor Systems
Conference, 2005.
[21] Huan Pham, Sanjay Jha, ‘An adaptive mobility-aware MAC protocol
for sensor networks (MS-MAC)’ in IEEE International Conference on
Mobile Ad-hoc and Sensor Systems, 2004
Page 46
46
[22] Olem D., Lodewijk H., Pierre J., et.al, ‘MC-LMAC: A Multi-Channel
MAC Protocol for Wireless Sensor Networks’ in Volume 9, Issue 1,
Pages 73–94, Ad-Hoc Networks, Elsevier, January 2011
[23] ‘Collaborative Algorithms for Communication in Wireless Sensor
Networks’ in Ambient Intelligence: Impact on Embedded Sytem
Design, pp 271-294, Springer, 2004
[24] Wei Ye, Heidemann J., Estrin D., ‘An Energy-Efficient MAC Protocol
for Wireless Sensor Networks’ in Proceedings. Twenty-First Annual
Joint Conference of the IEEE Computer and Communications
Societies, IEEE (Volume:3 ) INFOCOM 2002..
[25] Tao Zheng, Radhakrishnan S., Sarangan V., ‘PMAC: an adaptive
energy-efficient MAC protocol for wireless sensor networks’ in
Proceedings. 19th International Parallel and Distributed Processing
Symposium, IEEE, 2005.
[27] Suresh Singh, Raghavendra C.S.,‘PAMAS—power aware multi-access
protocol with signalling for ad hoc networks’ in ACM SIGCOMM
Computer Communication Review, Volume 28, Issue 3, July 1988.
[28] Tijs Van Dam, Koen L., ‘An adaptive energy-efficient MAC protocol for
wireless sensor networks’ in Proceedings of the 1st international
conference on Embedded networked sensor systems, Sensys 03
[29] Polastre J., Hill J., Culler D., ‘Versatile low power media access for
wireless sensor networks’ in Proceedings of the 2nd international
conference on Embedded networked sensor systems, SenSys '04
[30] Injong Rhee, warrier A., aia M., et. al, ‘ZMAC: a Hybrid MAC for
Wireless Sensor Networks’ in IEEE/ACM Transactions on Networking
(Volume:16 , Issue: 3 )
[31] TEP 101
[32] Qun Li., Rus D., ‘Global clock synchronization in sensor networks’ in
IEEE Transactions on Computers (Volume:55 , Issue: 2 ), Feb, 2006.
[33] Santashil P., Amit Kumar S., David B., ‘Adaptive Clock
Synchronization in Sensor Networks’ in Proceedings of the 3rd
international symposium on Information processing in sensor
networks, IPSN '04
Page 47
47
[34] ‘David Gay, Phili Levis, robert von B., et.al, ‘The nesC Language: A
Holistic Approach to Networked Embedded Systems’ in Proceedings of the
ACM SIGPLAN 2003 conference on Programming language design and
implementation, PLDI '03
[35] HMC 1001/1002/1021/1022 datasheet
[36] Telosb datasheet
[37] ua741 datasheet
[38] pn4372 datasheet
[39] 2N2907A datasheet
[40] Kai-Wei Fan, Sha Liu, sinha P., ‘On the Potential of Structure-free
Data Aggregation in Sensor Networks’ in Proceedings of 25th IEEE
International Conference on Computer Communications, INFOCOM
2006.
[41] Shwetak N., Thomas R., Julie A., et. al, ‘At the flick of a switch:
detecting and classifying unique electrical events on the residential
power line’ published in Proceedings of the 9th international
conference on Ubiquitous computing, UbiComp '07
[42] Lasseter R.H., paigi P., ‘Microgrid: A Conceptual Solution’ in 35th
Annual IEEE Power Electronics Specialists Conference, 2004. PESC
04. 2004 (Volume:6 )