Weerstation met de microcontroller R8C/13
(ga naar:
resultaten pagina)
Dit project toont een ontwerp en de bouw van een weerstation.
Op de website http://www.pccgg.nl is het
volledige project in de forumdiscussie 'Electronica' terug te vinden.
Het weerstation heeft een paar bijzondere eigenschappen:
1. geen bewegende onderdelen
2. sensoren: luchtdruk, vochtigheid, temperatuur, (zon)licht, drukverschil
3. afgeleide grootheden: dauwpunt, gevoelstemperatuur en windsnelheid
4. protocol: I2C
5. meetgegevens moeten worden opgeslagen op een PC (via een wireless verbinding)
6. gebruik database MYSQL
7. presentatie op het internet via een webserver
De controller
Het weerstation dat we bouwen heeft als basis de microcontroller R8C/13 van de
firma Renesas (http://www.m16c.de,
http://eu.renesas.com ).
Het doel van de controller is alleen maar meten! De sensoren die we aansluiten
communiceren met de controller, leveren hun meetwaarden af en de controller
stuurt ze vervolgens door naar een PC. Daar worden de metingen verzameld in een
database, bewerkt, gefilterd en omgerekend naar grootheden die we echt
interessant vinden. Vervolgens worden de berekeningen gepubliceerd op een
website. De meetwaarden uit het station zullen in eerste instantie via de
seriële poort de PC ingaan, echter een wireless verbinding tussen weerstation en
PC is ook gerealiseerd. Het huidige prototype bevat ook een I2C display,
aangesloten op de controller. Het voordeel van een I2C display is dat er
daardoor meer poorten overblijven om sensoren aan te sluiten.Het basisschema van
de controller is hieronder gegeven.
I2C bus
Aan de microcontroller is
via
pen 17 en pen 22 een I2C bus gerealiseerd. Op deze tweedraads bus zijn twee
pull-up weerstanden (Rp) aangesloten van elk 10K en verbonden met de
voedingsspanning van 5 volt. Op deze bus worden de I2C sensoren en het een LCD
display aangesloten.
LCD display
Het display is een LCD display van
twee regels met elk 16 karakters. Het scherm kan worden aangestuurd via de traditionele
aansluiting, meestal met 4 datalijnen en minimaal twee stuurlijnen of het
display kan worden aangestuurd via de I2C bus, met twee lijnen.
Gebruik van het I2C protocol levert dus meer vrije poorten op de
microcontroller op. Met jumper JP1 stellen we het adres in op de I2C bus van
het display. Let erop dat indien de I2C bus reeds is voorzien van pull-up
weerstanden Rp met behulp van JP2 niet nog eens twee pull-up weerstanden worden
ingeschakeld.
Sensoren
1. SHT 11:
Luchttemperatuur en vochtigheid
Met de SHT11 sensor van de firma Sensirion (www.sensirion.com)
wordt de
vochtigheid en de
temperatuur van de lucht gemeten.
Met deze gegevens kan ook de dauwpunttemperatuur worden berekend.
De digitale sensor geeft zijn meetwaarden af via
een tweedraads communicatiebus
(lijkt op I2C maar is het beslist niet!). Eén
datalijn wordt gebruikt om gegevens over te brengen van en naar de
microcontroller. De datalijn wordt door een externe pull-up weerstand Rp
hoog gemaakt. De
SCK lijn zorgt voor de nodige klokpulsen en synchronisatie tussen de SHT11 en
microcontroller. Op deze wijze wordt de temperatuur in 14 bits verstuurd en de
vochtigheid in 12 bits. Gelukkig is het protocol goed beschreven en zijn er
meerdere voorbeelden te vinden hoe we data uit de sensor krijgen.
De sensor wordt aangesloten op pen 13 (p1_2) voor de data lijn en pen 14 (p1_1)
voor de sck lijn:
De voedingsspanning mag tussen de 2.4 V en 5.5 V liggen.
Het stroomverbruik bedraagt ca. 6 mA.
Een ontkoppelcondensator
van 100 nF wordt geplaatst tussen de voeding en massa.
Voor het meten van de luchtdruk heeft Honeywell een
digitale druksensor ontwikkeld met een I2C databus
( www.sensortechnics.com ). De
sensor, CSDX0811, heeft een ingebouwde temperatuur compensatie waardoor een zeer
stabiele temperatuuronafhankelijke sensor is ontstaan. De digitale
luchtdruksensor heeft een resolutie van 12 bits. Het meetbereik loopt van 800
tot 1100 hPa (800 tot 1100 mBar). Omdat de luchtdruk afhankelijk is van de
hoogte is deze sensor ook te gebruiken als hoogtemeter. De voedingsspanning mag
tussen 4.75 V en 5.25 V liggen. Het stroomverbruik bedraagt ca. 6 mA.
De sensor is volgens onderstaand schema aangesloten op de microcontroller:
3. TSL2561: Lichtmeting
De
TSL2561 is een lichtgevoelige sensor die een hoeveelheid licht naar een digitale
waarde kan converteren. Twee fotodiodes worden toegepast. Een voor meting van
het zichtbare en infrarode licht (Channel0)
en een voor meting van alleen infrarood licht (Channel1). De beide
metingen kunnen afzonderlijk digitaal worden uitgelezen in een 16 bit resolutie
via het I2C protocol. Door het gunstige meetbereik van de sensor ontstaat er een
vergelijkbaar ‘zichtvermogen’ als dat van een mens. Beide waarden kunnen worden
omgerekend via een formule naar de grootheid die vaak wordt gebruikt voor
lichtmeting, uitgedrukt in Lux.
De sensor werkt op
een spanning van 3.6 volt. De signalen voor de I2C bus uit deze sensor zijn dus
niet zonder meer geschikt
voor de
I2C bus van het weerstation (5 volt). Daarom wordt het signaalniveau van de I2C
bus via onderstaand schema aangepast voor een spanning van 3.8 volt en een
spanning van 5 volt:
Met de LM317 is een
instelbare voeding gerealiseerd. Als ingang dient de 5 volt van de
microcontroller, met P1 kan de uitgangsspanning van de LM317 worden ingesteld op
3.6 volt
Een drukverschilsensor meet
twee drukken. P1 en P2. Indien P1 en P2 gelijk zijn dan is het uitgangssignaal
van de sensor 0. Indien P1 > P2 of P2 < P1 dan levert de sensor een signaal,
evenredig met het drukverschil (P1-P2).
Wanneer de sensoraansluiting P1 in een luchtstroom wordt geplaatst en P2 niet,
dan zal er afhankelijk van de luchtsnelheid, een drukverschil optreden. Wanneer
P1 en P2 beide , maar in tegenovergestelde richting in een luchtstroom worden
geplaatst dan kan ook nog de richting van de luchtstroom worden afgeleid.
De sensor is verkrijgbaar in verschillende drukbereiken. Voor windsnelheden die
kunnen variëren tussen 0-15 m/s, is de sensor met het kleinste
drukverschilbereik gekozen: HCXPM005D6.Dit type heeft een bereik van +/- 5 mBar
met een uitgangsspanning tussen 0.5 – 4.5 volt.
De voedingsspanning van de sensor bedraagt 5 volt.
Het uitgangssignaal van de sensor (pen 1) is direct
verbonden met de analoge ingang van de
microcontroller
R8C/13
(pen 31, an6). Een
uitgang van de tweede sensor is verbonden met pen 30, an5, van de
microcontroller R8C/13.
Een prototype van de statische windsnelheidmeter is hieronder afgebeeld.
Meer resultaten zijn te vinden op de resultaten pagina.