Top Banner
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
47
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

5

Index

V. Conclusion 41

VI. Scope for future work – envisioning a Smart Grid 42

VII. Literature Survey and References 44

Page 6: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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: Final_Report

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 )