Sensors

Weather sensor data collected in the Manukau area of Auckland, New Zealand, with data updated daily just after midnight unless otherwise indicated.

The weather sensors are connected to a Raspberry Pi / Arduino Nano and will be giving reasonably accurate data, although they are not at the standard used by meteorological offices.

Current Sensors

DS18B20 Temperature Sensor

The DS18B20 temperature sensor is one that can measure temperature between -10C and 85C to an accuracy of ±0.5C. This is used to measure the air temperature and is located in a shaded location.

012579 (1)
DS18B20 Sensor

Image courtesy of the AliExpress vendor I purchased the sensor from.

DHT22 Humidity Sensor

The DHT22 is a humidity sensor, which also includes a temperature sensor. It can measure the temperature between -40C and +80C to an accuracy of ±1C, with the humidity being measured between 0 and 100% to an accuracy of ±1%. Note that when the humidity gets relatively high, this sensor will provide inaccurate values, with the BME280 sensor being more accurate.

Note that for multiple months there was a problem with the previous sensor which was reading near 100% just about constantly, with the sensor now being replaced.

DHT22 Sensor

Image courtesy of the AliExpress vendor I purchased the sensor from.

BMP280 Atmospheric Sensor

The BMP280 is a air pressure sensor which also includes a temperature sensor which enables it to calculate the true air pressure at sea level. It can work over a pressure range of 300 to 1100hPa, with an accuracy of ±0.12hPa.

Previously this data was captured using a BMP180 sensor, which is the previous version of this sensor.

BMP280 Sensor

Image courtesy of the AliExpress vendor I purchased the sensor from.

BMP280 Atmospheric Sensor

The BME280 is a variation of the BMP280 sensor above which includes measurements for temperature, air pressure and humidity. This measures humidity significantly more accurately than the DHT22 sensor.

BME280

Moisture Sensor

The moisture sensor is effectively a variable resistor with the resistance varying as a result of moisture between two sets of wires on a flat panel.

This sensor is connected to an Arduino Nano since the Raspberry Pi does not have any analogue to digital converter functionality. The Arduino captures the signal from the sensor using a 10 bit analogue to digital converter, with this value being read by the Pi from the Arduino.

For multiple months between August 2020 and March 2021, this sensor has been giving very low values as the rain has reacted with the metal traces and had just about removed them. This resulted in a scale of about 0-4, not 0-1024! I’ve now received one of several I’d ordered which took ~7 months to arrive. Hopefully this one lasts a bit longer.

Moisture Sensor

Image courtesy of the AliExpress vendor I purchased the sensor from.

Rainfall Sensor

The rainfall sensor is a rain gauge that collects rain landing and funnels it so that it will fill a bucket. Once a 0.3mm3 volume is in the bucket, it will tip and this will result in a short pulse signal being sent to the Raspberry Pi. This is captured by the Pi using interrupt driven code.

1
Bucket Rainfall Sensor

Image courtesy of the AliExpress vendor I purchased the sensor from.

BH1750 Sensor

The BH1750 is digital ambient light sensor which measures the light intensity in Lux (lx) up to 65535lx with an accuracy of ±20%.

To be fully accurate, this sensor needs to be positioned in an area with a view of the sky, be perfectly horizontal and covered by material blocks minimal light. Currently the sensor is covered by a plastic tube which will affect the value obtained, however it works well to show the relative changes over time.

aeProduct.getSubject()
BH1750 Sensor

Image courtesy of the AliExpress vendor I purchased the sensor from.

VEML6075 Sensor

The VEML6075 is a UV sensor which measures the UVA and UVB light components and uses these to calculate the UV index.

To be fully accurate, this sensor needs to be positioned in an area with a view of the sky, be perfectly horizontal and covered by material which does not block UV light (which most glass does). Currently the sensor is covered by a plastic tube which will affect the value obtained, however it works well to show the relative changes over time. This may also account for it showing negative values.

180035 (1)
VEML6075 Sensor

Image courtesy of the AliExpress vendor I purchased the sensor from.

Data Capture and Processing

All the sensors are read using python code and sensor specific library code once every 15 minutes with the data written to a csv file. This file is securely copied to the web server where it is processed using python code which makes extensive use of the excellent matplotlib to create the graphs.