Professional Documents
Culture Documents
Eoghan O’Sullivan
Supervisor:
Dr. Oliver Gough
Date:
30/5/2009
Abstract
The main purpose of this project was to design and build a wireless weather station that
logged the humidity and temperature values on a remote PC. The PIC was the
fundamental point in the project as it held the code that helped extract the information
from the sensor and send it wirelessly using the Zigbee protocol to a remote PC.
Acknowledgement
Firstly I would like to thank my project supervisor Dr. Oliver Gough for his guidance and
assistance which were a great benefit to the project overall.
Most of the work carried out for the project was done so in the senior lab and I would like
to thank the technicians in the lab for their assistance and providing me with anything I
needed.
I would also like to thank my classmates who were a great help to me during the year and
offered their help when they could.
Lastly I would like to thank my family and friends for their continued support throughout
the year.
Table of Contents
ABSTRACT II
ACKNOWLEDGEMENT III
TABLE OF CONTENTS IV
1: INTRODUCTION 5
OBJECTIVE: 5
2: COMPONENTS 7
1: Introduction
The reason for choosing this project was out of the other twenty projects that were shown
to us at the beginning of the year, this project appealed to me. It is interesting to monitor
the weather conditions outside and have the data sent to a PC using wireless technology
and graphing the data to see the changing conditions.
This device will be placed in an outdoor environment to monitor the weather conditions.
It will read in data from a sensor and then send it wirelessly to a receiver which will then
log the data into the PC. This process will happen once a min and give an accurate picture
of the conditions outside. Below is a block diagram of the overall system.
Temperature Sensor
Humidity Sensor Display
PIC
Microcontroller
Radio Receiver
Transmitter
Fig 1.1
Objective:
My initial objectives are as follows,
air and the relative humidity is ratio that compares the amount of water vapour in the air
compared to the amount of water vapour that would be present in the air at saturation.
The relativity humidity is described in percentage, if there was 10 grams of water vapour
in each kilogram of air and the saturation of the air was 50 grams of water vapour per
kilogram then the relative humidity would then be 50/10 = 25%.
The device used to measure humidity is called a hydrometer, it works by measuring the
moisture content in the air at a given time.
2: Components
Humidity & Temperature Sensor
Fig 2.1
This is the Sensirion SHT-75 humidity and temperature sensor. This sensor was the best
fit for the job as it was small, easy to use and did both measurements. The humidity
sensor is capacitive type which has a distinct advantage over it resistive type sensors
which don’t work at relative humidity levels below 20% and they also can only be used
in a non-condensing type environment. This sensor also comprises of a calibrated digital
output which was a factor in choosing it as it avoided A/D conversion in the PIC. The
sensor contains a 14bit analog to digital converter and a serial interface circuit on the
same chip. This results in superior signal quality, a fast response time and insensitivity to
external disturbances. The 2-wire serial interface and internal voltage regulation allows
for easy and fast system integration. The small size and low power consumption makes
this sensor the ideal choice.
Fig 2.2
This is how the sensor is wired up to the PIC, there are two wire on the sensor which each
have a specific job.
high. To avoid signal contention the microcontroller must only drive DATA low.
An external pull-up resistor (e.g. 10 k Ω) is required to pull the signal high.
The senor requires a voltage in the range of 2.4V to 5.5V, the VDD and GND are
decoupled by a 100nF capacitor that is built into the sensor.
Fig 2.3
The subsequent command consists of three address bits (only ‘000’ is currently
supported) and five command bits. The SHT71 indicates the proper reception of a
th
command by pulling the DATA pin low (ACK bit) after the falling edge of the 8 SCK
th
clock. The DATA line is released (and goes high) after the falling edge of the 9 SCK
clock.
Measurement Sequence
After the transmission start sequence the next step is to tell the sensor what measurement
is required, this is done by sending a code from the PIC to the sensor through the DATA
line, if the relative humidity is required then the code ‘00000101’ is used, for temperature
measurement the code ‘00000011’ is used. The PIC then has to wait while the
measurement is been taken and these times which takes approximately 11/55/210 ms for
a 8/12/14bit measurement. To signal the completion of a measurement, the SHT-75 pulls
data line low and enters Idle Mode. The controller must wait for this Data Ready signal
before restarting SCK to readout the data. Measurement data is stored until readout,
therefore the controller can continue with other tasks and readout at its convenience.
Shown here is the measurement sequence, the first diagram shows the measurement type
being selected, this is followed by the sensor sending data back to the PIC, the PIC sends
an acknowledgement pulse to the sensor after each byte of data that has been received, it
does this by pulling the DATA line low. For this project CRC(check sum calculation)
was not used as it was not necessary.
Fig 2.4
Fig 2.5
Reset Sequence
If it is the case that the connection is lost between the PIC and the sensor there is a reset
sequence which in turn resets the serial interface, this is achieved by leaving the DATA
line high and toggling the SCK nine times or more, this must be directly followed by a
transmission start sequence.
Fig 2.6
Piczee Rx & Tx
Fig 2.7
This is a PIC Microcontroller with 2,4GHz IEEE 802.15.4 transceiver and ZigBee stack.
It’s range is 100meters and it has its own built in antenna. Like all PIC chips it operates
between 2.1V and 3.6V. This next diagram is a list of the pin i/o on the chip and below
that is the schematic diagram of the circuit.
Fig 2.8
ZigBee’s primary aim is to make low data rate, battery power communications feasible.
Primarily it does this by using mesh networks of adjacent devices rather than point-to-
point communications over long distances. It does this by setting one of the chips as
coordinator and the other as an end point, this allows one chip to control the other which
makes the system more efficient. Below are the most common types of networks used.
Fig 2.9
For this project there are only two transceivers needed so the star network was choosen.
For the transceivers to work correctly a protocol stack was needed. The application
source code must include the header file, zAPL.h , to access the ZigBee protocol
functions.
#include “zAPL.h”
A ZigBee protocol coordinator application will need to have one support variable to keep
track of the current primitive being executed by the Stack.
ZIGBEE_PRIMITIVE currentPrimitive;
A ZigBee protocol router or end device will also need to keep track of the current
primitive; but in addition, it will need two other support variables to assist in network
discovery and joining.
NETWORK_DESCRIPTOR * currentNetworkDescriptor;
ZIGBEE_PRIMITIVE currentPrimitive;
NETWORK_DESCRIPTOR * NetworkDescriptor;
Next, the application must configure all pins required to interface with the transceiver.
Before the Stack can be used, it must be initialized. Interrupts must then be enabled.
ZigBeeInit();
RCONbits.IPEN = 1;
INTCONbits.GIEH = 1;
switch (currentPrimitive)
{
// Include cases for each required primitive.
// Be sure to update currentPrimitive!
default:
currentPrimitive = NO_PRIMITIVE;
break;
}
}
To receive messages the Stack notifies the application of received messages through the
APSDE_DATA_indication primitive. When this primitive is returned, the
APSDE_DATA_indication primitive parameters are populated with information about
the message and the received message resides in a buffer. The function, APLGet(), is
used to extract each byte of the message from the buffer.
Here is an example of how to receive messages using the protocol.
case APSDE_DATA_indication:
{
// Declare variables used by this primitive.
switch (params.APSDE_DATA_indication.DstEndpoint)
{
case EP_ZDO:
// Handle all ZDO responses to requests we sent.
break;
The Microchip Stack for the ZigBee protocol allows one outgoing message in the
application layer at a time. Messages are sent by implementing the following:
Verify that the application layer is ready for a new outgoing message by
confirming that ZigBeeReady() is TRUE.
Lock the system with ZigBeeBlockTx() so subsequent calls to ZigBeeReady()
will return FALSE.
Load the message payload into the array TxBuffer, using TxData to index through
the array. When complete, TxData must point to the first location after the
message.
Load the APSDE_DATA_request primitive parameters.
Set currentPrimitive to APSDE_DATA_request and call ZigBeeTasks().
if (ZigBeeReady())
{
if (bLightSwitchToggled)
{
bLightSwitchToggled = FALSE;
ZigBeeBlockTx();
TxBuffer[TxData++] = APL_FRAME_COMMAND_SET |
(APL_FRAME_DATA_TYPE_UINT8<< 4);
TxBuffer[TxData++] = OnOffSRC_OnOff & 0xFF; // Attribute ID LSB
TxBuffer[TxData++] = (OnOffSRC_OnOff >> 8) & 0xFF; // Attribute ID MSB
TxBuffer[TxData++] = LIGHT_TOGGLE;
params.APSDE_DATA_request.DstAddrMode = APS_ADDRESS_16_BIT;
params.APSDE_DATA_request.DstEndpoint = destinationEndpoint;
params.APSDE_DATA_request.DstAddress.ShortAddr = destinationAddress;
params.APSDE_DATA_request.ProfileId.Val = MY_PROFILE_ID;
params.APSDE_DATA_request.RadiusCounter = DEFAULT_RADIUS;
params.APSDE_DATA_request.DiscoverRoute =
ROUTE_DISCOVERY_ENABLE;
params.APSDE_DATA_request.TxOptions.Val = 0;
params.APSDE_DATA_request.SrcEndpoint = EP_SWITCH;
params.APSDE_DATA_request.ClusterId = OnOffSRC_CLUSTER;
currentPrimitive = APSDE_DATA_request;
}
}
PIC 16F877A
This is the microcontroller that was used in the project, this microcontroller can be
programmed using MPLAB to carry out the tasks required.
Fig 2.10
Fig 2.11
Maxim 232
Fig 2.12
This is the Maxim 232 driver and receiver chip, this chip is used to send data from the
PIC chip through an RS232 cable into the remote PC. The transmitter uses pins 12 and 13
to send data out through the RS232 port and this converts voltage into high and low
pulses for a computer to recognize. Pins 11 and 14 are used by the receiver part of the
chip, this takes data coming from the RS232 cable and converts the high and low pulses
into a voltage.
Fig 2.13
Fig 3.1
An incircuit debugger was used to program the chip on the PICdem board which was the
16F877a. Once the chip was programmed then using an oscilloscope the results could be
tracked to verify that the sensor was working correctly.
Fig 3.2
Unfortunitily the system didn’t work out as the Data line was not being pulled to ground.
Due to this the information could not be extracted from the sensor correctly because the
Data line needs to go low and not idle between 1 and 0. A reason for this error was due to
a faulty sensor, the Data pin on the sensor had been broken off the sensor during set up,
this may have caused a bad connection which lead to the Data line not going to 0. This
was a major setback, had the sensor worked perfectly it would have been possible to
exact the data fom the sensor and take an accurate reading from it.
4: Problems
Many obstacles were encountered during the second semester which backlogged the
project significantly. Firstly due to bad planning on my part I didn’t get my objectives
completled on the time schedual that I had set out at the start of the project. Secondly the
sensor failed to work correctly which hampered any chance of reading in data correctly
from the sensor. Thirdly the Zigbee protocol was very difficult to understand at the
beginning, it took up a large sum of time researching this area which I now have an
understanding of, but due to the lack of time near the end of the semister this part of the
project was never completed fully
5 : Conclusion
This project has been a great learning experience for me, altought I didn’t get the system
working like I had hoped at the beginning of the year I still have gained a vast amount of
knowledge and a better insight into projects. They seem easy to look at but this project is
a challenging task which requires you to put a lot of time, effort and pre-thought in. I
underestimated the work involved and didn’t start on time but like all humans we learn
from our mistakes in a positive way. From this project I will take with me an
understanding of work involved in projects in the future and I hope this experience will
stand to me again and again.
Also my skills using MPlab have increased; I started out at the beginning of the semester
with very little knowledge of how to use it correctly but with help from my supervisor,
classmates and John O’Sullivan I feel like I have learnt a huge amount about it.
6: References
www.howstuffworks.com
www.google.com
www.farnell.com
www.microchip.com
www.sensirion.com
W2003svr wireless humidity and temperature system 2005
Agenda topics
DISCUSSION Sensors
CONCLUSIONS Research
ACTION ITEMS PERSON RESPONSIBLE DEADLINE
What types are out there, how much they cost and how Report due
Eoghan
they could be for
Next
Integrated into the project.
meeting
DISCUSSION PIC and Zigbee
CONCLUSIONS Research
ACTION ITEMS PERSON RESPONSIBLE DEADLINE
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com Page 22
Project Title
Date
Minutes Time 11:00am location PF 46
10/10/2008
Agenda topics
DISCUSSION Minutes of last meeting
CONCLUSIONS Need to do further research on sensors
ACTION ITEMS PERSON RESPONSIBLE DEADLINE
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com
Project Title
Agenda topics
Minutes of last meeting
Confirmed sensors
ACTION ITEMS PERSON RESPONSIBLE DEADLINE
Eoghan will order the Sensirion SHT-75 humidity and Need this
Eoghan
temperature for
February
sensor from ie.farnell.com
2009
PICZee chip
Located one for the projected
ACTION ITEMS PERSON RESPONSIBLE DEADLINE
Oliver had two chips which I could use on the project n/a n\a
Date
Minutes Time 11:10am location PF 46
14/11/2008
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com
Project Title
Agenda topics
DISCUSSION Minutes of last meeting
CONCLUSIONS Sensor has arrived
ACTION ITEMS PERSON RESPONSIBLE DEADLINE
Date
Minutes Time 11:10am location PF 46
28/11/2008
Agenda topics
DISCUSSION Minutes of last meeting
CONCLUSIONS Download PIC 18f462 datasheet
ACTION ITEMS PERSON RESPONSIBLE DEADLINE
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com
Project Title
org 0x00
goto start
org 0x04
goto ISR
org 0x10
bsf PORTB,0 ;CLK high (start up, while data is high toggle
bsf PORTB,1 ;DATA high (clk 9 or more times,reset)
call softdelay
bcf PORTB,0 ;CLK low
bsf PORTB,1 ;DATA high
call softdelay
bsf PORTB,0 ;CLK high
bsf PORTB,1 ;DATA high
call softdelay
bcf PORTB,0 ;CLK low
bsf PORTB,1 ;DATA high
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com
Project Title
call softdelay
bsf PORTB,0 ;CLK high
bsf PORTB,1 ;DATA high
call softdelay
bcf PORTB,0 ;CLK low
bsf PORTB,1 ;DATA high
call softdelay
bsf PORTB,0 ;CLK high
bsf PORTB,1 ;DATA high
call softdelay
bcf PORTB,0 ;CLK low
bsf PORTB,1 ;DATA high
call softdelay
bsf PORTB,0 ;CLK high
bsf PORTB,1 ;DATA high
call softdelay
bcf PORTB,0 ;CLK low ******9th time
bsf PORTB,1 ;DATA high
call softdelay
bcf PORTB,1 ;DATA low, before clock change******
bsf PORTB,0 ;CLK high, now clock changes
call softdelay
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com
Project Title
call softdelay
bsf PORTB,0 ;CLK high
bcf PORTB,1 ;DATA low
call softdelay
bcf PORTB,0 ;CLK low
bcf PORTB,1 ;DATA low
call softdelay
bsf PORTB,0 ;CLK high
bcf PORTB,1 ;DATA low
call softdelay
bcf PORTB,0 ;CLK low
bcf PORTB,1 ;DATA low
call softdelay
bsf PORTB,0 ;CLK high
bcf PORTB,1 ;DATA low
call softdelay
bcf PORTB,0 ;CLK low
bsf PORTB,1 ;DATA high humidity '000001..'
call softdelay
bsf PORTB,0 ;CLK high
bsf PORTB,1 ;DATA high
call softdelay
bcf PORTB,0 ;CLK low
bcf PORTB,1 ;DATA low humidity '0000010.'
call softdelay
bsf PORTB,0 ;CLK high
bcf PORTB,1 ;DATA low
call softdelay
bcf PORTB,0 ;CLK low
bsf PORTB,1 ;DATA high humidity '00000101'
call softdelay
bsf PORTB,0 ;CLK high
bsf PORTB,1 ;DATA high
call softdelay
bsf STATUS,RP0 ;PORTB set for input
movlw 0x02 ;*******************
movwf TRISB ;*******************
bcf STATUS,RP0 ;*******************
bcf PORTB,0 ;CLK low
call softdelay
bsf PORTB,0 ;CLK high
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bcf PORTB,0 ;CLK low \\\\changed here 4clock off////
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com
Project Title
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com
Project Title
call Loop2
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bsf PORTB,0 ;CLK high
call Loop
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bsf PORTB,0 ;CLK high
call Loop2
call softdelay
bcf PORTB,0 ;CLK low
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com
Project Title
call softdelay
bsf PORTB,0 ;CLK high
call Loop2
call softdelay
bcf PORTB,0 ;CLK low
clrf PORTB ;******************
bsf STATUS,RP0 ; SET PORTB
clrf TRISB ; FOR OUTPUT
bcf STATUS,RP0 ;*****************
bcf PORTB,1 ;pull data line low for acknowledge
call softdelay
bsf PORTB,0 ;CLK high*** acknowledge pulse (9th)
call softdelay
bcf PORTB,0 ;CLK low
bsf STATUS,RP0 ;*******************
movlw 0x02 ; SET PORTB
movwf TRISB ; FOR INPUT
bcf STATUS,RP0 ;*******************
call softdelay
movlw 0x48
movwf Temp8
movlw 0x6d
movwf Temp9
call sendout1
; call sendout
call sendout ;send last 8bits to TX
bsf PORTB,0 ;CLK high.........check sum first pulse
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bsf PORTB,0 ;CLK high
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bsf PORTB,0 ;CLK high
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bsf PORTB,0 ;CLK high
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bsf PORTB,0 ;CLK high
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bsf PORTB,0 ;CLK high
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com
Project Title
return
Loop2: btfss PORTB,0 ;store the second 8 bits
bcf STATUS,C ;***************************
movfw PORTB ;***************************
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com
Project Title
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com
Project Title
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com
Project Title
call softdelay
bcf PORTB,1 ;DATA low, before clock change******
bsf PORTB,0 ;CLK high, now clock changes
call softdelay
bcf PORTB,0 ;CLK low
bcf PORTB,1 ;DATA low
call softdelay
bsf PORTB,0 ;CLK high
bcf PORTB,1 ;DATA low
call softdelay
bcf PORTB,0 ;CLK low
bcf PORTB,1 ;DATA low
call softdelay
bsf PORTB,0 ;CLK high
bcf PORTB,1 ;DATA low
call softdelay
bcf PORTB,0 ;CLK low
bcf PORTB,1 ;DATA low
call softdelay
bsf PORTB,0 ;CLK high
bcf PORTB,1 ;DATA low
call softdelay
bcf PORTB,0 ;CLK low
bcf PORTB,1 ;DATA low
call softdelay
bsf PORTB,0 ;CLK high
bcf PORTB,1 ;DATA low
call softdelay
bcf PORTB,0 ;CLK low
bsf PORTB,1 ;DATA High Temperature command
call softdelay
bsf PORTB,0 ;CLK high
bsf PORTB,1 ;DATA low temperature command bit high
call softdelay
bcf PORTB,0 ;CLK low
bsf PORTB,1 ;DATA high temperature command line stays high
call softdelay
bsf PORTB,0 ;CLK high
bsf PORTB,1 ;DATA high temprature line still high (final bit)
call softdelay
bsf STATUS,RP0 ;PORTB set for input
movlw 0x02 ;*******************
movwf TRISB ;*******************
bcf STATUS,RP0 ;*******************
bcf PORTB,0 ;CLK low
bsf PORTB,0 ;CLK high
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bcf PORTB,0 ;CLK lo \\\\\\changed here 4clock off////
call softdelay
bcf PORTB,0 ;CLK low
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com
Project Title
call softdelay
bcf PORTB,0 ;CLK lo
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bcf PORTB,0 ;CLK lo
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bcf PORTB,0 ;CLK lo
call softdelay
bcf PORTB,0 ;CLK low \\\\\\\\resume clock/////////
call softdelay
movlw 0x08 ;move 8 into w-reg
movwf Temp3 ;move w-reg to Temp3 to count number of bits saved
clrw
bsf PORTB,0 ;CLK high
call Loop
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bsf PORTB,0 ;CLK high
call Loop
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bsf PORTB,0 ;CLK high
call Loop
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bsf PORTB,0 ;CLK high
call Loop
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bsf PORTB,0 ;CLK high
call Loop
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bsf PORTB,0 ;CLK high
call Loop
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bsf PORTB,0 ;CLK high
call Loop
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bsf PORTB,0 ;CLK high
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com
Project Title
call Loop
call softdelay
bcf PORTB,0 ;CLK low
clrf PORTB ;******************
bsf STATUS,RP0 ; SET PORTB
clrf TRISB ; FOR OUTPUT
bcf STATUS,RP0 ;*****************
call softdelay
bcf PORTB,1 ;pull data line low for acknowledge
bsf PORTB,0 ;CLK high********** acknowledge pulse (9th)
call softdelay
bcf PORTB,0 ;CLK low
bsf STATUS,RP0 ;*******************
movlw 0x02 ; SET PORTB
movwf TRISB ; FOR INPUT
bcf STATUS,RP0 ;*******************
clrf Temp
clrf Temp1
clrf Temp3
movlw 0x08
movwf Temp3
call softdelay
bsf PORTB,0 ;CLK high
call Loop2
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bsf PORTB,0 ;CLK high
call Loop2
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bsf PORTB,0 ;CLK high
call Loop2
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bsf PORTB,0 ;CLK high
call Loop2
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bsf PORTB,0 ;CLK high
call Loop2
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bsf PORTB,0 ;CLK high
call Loop2
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com
Project Title
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com
Project Title
call softdelay
bsf PORTB,0 ;CLK high
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bsf PORTB,0 ;CLK high............end of check sum (8th pulse)
call softdelay
bcf PORTB,0 ;CLK low
call softdelay
bsf PORTB,0 ;CLK high
call softdelay
bcf PORTB,0 ;CLK low
goto start ;Loop back to start
ISR: retfie ;Dummy interruptservice routine
End
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com
Project Title
Requirement Specification
Eoghan O’Sullivan
Version 1.2
Status
Reviewed
Approved
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com
Project Title
Contents
STATUS ............................................................................................................................................... 41
1. INTRODUCTION ...................................................................................................................... 44
............................................................................................................................................................... 45
3. DELIVERY ................................................................................................................................. 46
4. DOCUMENTATION ................................................................................................................. 47
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com
Wireless Weather Station
Document history
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com Page 43
2009-06-01
Wireless Weather Station
Introduction
This project consists of the design of sensor system to record weather data and
transmit this data back to a PC.
Goals
To design a working weather station that transmits data back to a PC and fully
program a PIC chip.
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com 44
2009-06-01
Wireless Weather Station
Usage
This system could be used to measure the climatic conditions of a region, each
sub-station would transmit back its data to a main hub and a better picture of the
regions climate could be shown.
Background information
Form research on the C.I.T server I found past reports on this project, I also
researched in the internet and found other reports with useful information.
www.web-ee.com/schematics/instumentations/wireless-weather-station/
Definition of terms
www = World Wide Web
PIC
Microcontroller
Radio Receiver
Transmitter
Product components
Ill be using sensors to measure the weather conditions and a PIC to read the data. I
will be using the zigbee standard to transmit the data in packets.
I will use farnell to locate the sensors for the weather station and microchip to
source my zigbee transmitter.
Design philosophy
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com 45
2009-06-01
Wireless Weather Station
Study some similar projects on this topic in order to understand my project more.
Delivery
Date Assessment Criteria
th
Fri 10 Submit first draft of Project Specification with Minutes
October of Meetings for comments and feedback.
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com 46
2009-06-01
Wireless Weather Station
Documentation
The word processor I will use for this project is Microsoft Word. The templates
for the documents are from the LIPS project model, created by Christian
Krysander and Thomas Svensson.
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com 47
2009-06-01
Wireless Weather Station
Project Plan
Eoghan O’Sullivan
Version 1.1
Status
Name of Reviewer Date
Reviewed
Approved
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com 48
2009-06-01
Wireless Weather Station
Contents
STATUS ............................................................................................................................................... 48
............................................................................................................................................................... 52
2. DELIVERY ................................................................................................................................. 52
SCHEDULE ......................................................................................................................................... 55
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com 49
2009-06-01
Wireless Weather Station
REFERENCES .................................................................................................................................... 56
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com 50
2009-06-01
Wireless Weather Station
Document history
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com 51
LiTH
Projektuppgiftstitel 2006-09-14
PIC
Microcontroller
Radio Receiver
Transmitter
Deliverables
Delivery
Date Assessment Criteria
Fri 10th Submit first draft of Project Specification with Minutes of
October Meetings for comments and feedback.
This is a list of how long approximately it will take to complete the following tasks.
Before start
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com 53
2009-06-01
Wireless Weather Station
Meeting plan
My supervisor Dr.Oliver Gough and I meet once a week in PF46. The time varies week to
week due to status of the project.
Resource plan
Persons
Dr. Oliver Gough and Eoghan O’Sullivan
Work rooms
Most of the work I can do in the senior lab B176a, I can also do work at home as I have tools
to assist me.
Economy
I am hoping to source all the components for under 60eur. This is subject to change as I have
not confirmed what exactly I need yet.
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com 54
2009-06-01
Wireless Weather Station
No Description Date
1. Requirement specification ready 24/10/2008
2. Project Plan ready 7/11/2008
3. Background Research/Information Chapter of Project Report ready. 21/11/2008
4. Order Components 11/11/2008
5. Sensors working 20/02/2009
6. Transmitter
T working 6/03/2009
7. Get software fully written and working 27/03/2009
8. Fully working and testing underway 10/04/2009
9. Final
W written report 17/04/2009
10.Final
F Presentation 30/04/2009
Tollgates
No Description Date
1 Approval of project specification 24/10/2008
2 Approval of project plan 7/11/2008
3 Approval of Chapter one of project report 21/11/2008
4 Sensors working and reading on the PIC 20/02/2009
5 Sending data to a PC 27/03/2009
6 Working fully with software implemented 10/04/2009
7 Final Presentation 30/04/2009
Schedule
Risk analysis
Programming is my weakness, I hope to have the sensors connected to the PIC and reading
the data with no flaws. If I get bogged down in programming I might lose time that I could
use in doing something else to the project.
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com 55
2009-06-01
Wireless Weather Station
References
Farnell.com is where I sourced components.
From research on the CIT server I found past projects that I got some ideas from and found an
interesting document of a similar project in the U.S:
www.web-ee.com/schematics/instumentations/wireless-weather-station
ELX3
Eoghan O’Sullivan sullivan.eoghan@gmail.com 56