Introduction: Weerstation
In dit project zullen we een weerstation
maken dat de luchtdruk, luchtvochtigheid, lichtsterkte en temperatuur zal meten m.b.v. Raspberry Pi, Python (codering), MySQL (database) en Flask (webserver).
Step 1: Benodigdheden
De benodigde componenten voor dit project
zijn:
- Multibox
- DHT22 luchtvochtigheid- en temperatuursensor
- BMP280 luchtdruksensor
- LDR
- LCD-scherm
- MCP3008
- Raspberry Pi 3
- Trimmer
- Totale kostprijs is ongeveer €80.
De gereedschap dat ik heb gebruikt:
- Conische boor
- 2 wartels
- Dubbelzijdige plakband
- Ijzerzaag
Step 2: Schakeling
LCD
- VSS naar Raspberry Pi’s ground
- VDD naar Raspberry Pi’s 5V
- V0 naar middelste pin trimmer
- RS naar GPIO pin
- R/W naar Raspberry Pi’s ground
- E naar GPIO pin
- D4 naar GPIO pin
- D5 naar GPIO pin
- D6 naar GPIO pin
- D7 naar GPIO pin
- A naar Raspberry Pi’s 5V
- K naar Raspberry Pi’s ground
Trimmer
- Naar Raspberry Pi’s 5V
- Naar LCD-pin V0
- Naar Raspberry Pi’s ground
DHT22
- VCC naar Raspberry Pi’s 3V3
- GND naar Raspberry Pi’s ground
- DAT naar Raspberry Pi’s GPIO pin 4
- 470 ohm tussen VCC en DAT
BMP280
- VIN naar Raspberry Pi’s 5V
- GND naar Raspberry Pi’s ground
- SCK naar GPIO pin 3 SCL
- SDI naar GPIO pin 2 SDA
MCP3008
- VDD naar Raspberry Pi’s 3V3
- VREF naar Raspberry Pi’s 3V3
- AGND naar Raspberry Pi’s ground
- CLK naar GPIO pin 11 SCLK
- DOUT naar GPIO pin 9 MISO
- DIN naar GPIO pin 10 MOSI
- CS naar GPIO pin 8 CE0
- DGND naar Raspberry Pi’s ground
- CH7 naar LDR en 10k ohm weerstand
LDR
- Naar MCP3008 pin CH7 en parallel 10k ohm weerstand
- Naar Raspberry Pi’s ground
Step 3: BMP280
BMP280 I2C of SPI Luchtdruk temperatuur
sensor deze nieuwe sensor van Bosch meet de temperatuur en luchtdruk. Het is de volgende generatie upgrade van de BMP085 / BMP180 / BMP183. Deze sensor is zeer geschikt om alle weersomstandigheden te meten en kan worden gebruikt in zowel I2C als SPI.
De BMP280 precisie-sensor van Bosch is de beste voordelige, precisie-sensing oplossing voor het meten van de barometrische druk met ± 1 hPa nauwkeurigheid en de temperatuur met ± 1,0 ° C nauwkeurigheid. De drukmetingen zijn zo goed, waardoor deze sensor ook als hoogtemeter kan worden gebruikt met een nauwkeurigheid van 1 meter.
Step 4: DHT22
DHT22 is een digitale
temperatuur en luchtvochtigheid sensor. Output naar een digitale pin. De DHT22 is preciezer en heeft een groter bereik dan de DHT11.
DHT22 specificaties:
– Werkt op: 3.3 – 6V.
– Temperatuur bereik: -40 – +80 ºC.
– Temperatuur nauwkeurigheid: ±0,5 ºC.
– Vochtigheid bereik: 0-100% RH.
– Vochtigheid nauwkeurigheid: ±2,0% RH.
– Response tijd: < 3 sec.
Step 5: LCD Scherm
HD44780 LCD controller met 16×2 Karakters display module met blauw
backlight en witte karakters. 2 regels, 16 karakters per regel. Hoog contrast en grote kijkhoek. Contrast instelbaar door middel van een aan te sluiten regelbare weerstand (potentiometer/trimmer).
HD44780 16×2 blauw specificaties:
– Werkt op: 5V
– Instelbaar contrast.
– Afmetingen: 80mm x 35mm x 11mm.
– Zichtbaar display: 64.5mm x 16mm.
Step 6: MCP3008
Een analoog-digitaalomzetter of AD-converter (ADC) zet een analoog
signaal, bijvoorbeeld een spraaksignaal, om in een digitaal signaal.
De MCP3008 heeft 8 analoge ingangen en is met een SPI interface uit te lezen op een Arduino, Raspberry Pi, ESP8266
De MCP zet een analoge voltage om in een getal tussen de 0 en 1023 (10 bit).
Step 7: Behuizing
Voor de behuizing heb ik een multibox gebruikt waarvan het deksel
bestaat uit polycarbonaat. Voor de UTP-kabel en de voedingskabel naar de Raspberry Pi worden een 2 gaten geboord in de multibox met een conische boor waarna deze 2 kabels door een wartel worden gestoken. Met deze conische boor wordt ook een gat gemaakt voor de LDR die dan wordt vastgeplakt met dubbelzijdige plakband. Ook voor de Raspberry Pi, breadbords, DHT22 en BMP280 is dubbelzijdig plakband gebruikt om deze onderaan in de multibox vast te maken. Voor het LCD scherm is een ijzerzaag gebruikt om een gat te zagen van 7cm op 2,5cm in het deksel van polycarbonaat. Dan werden er 2 gaten geboord in het deksel zodat het LCD scherm vasthangt met 2 schroeven.
Step 8: Database
Step 9: Code
https://github.com/MatthiasBaert/WeerstationEnFlask en https://github.com/MatthiasBaert/Flask