This prototype MetPod automatic weather station (AWS) is designed around a Raspberry Pi but any micro-processor board capable of running Linux and Python could be used. I wanted the design to be 'power off' safe so that in the event of a power failure or the plug being pulled, the device would not suffer from data corruption. List of required features:
The PiCore linux operating system was chosen as this runs entirely in memory and can be easily configured with the extra Python modules required for the MetPod system.
RS232/485 interfacing is via FTDI USB adapter cables, the tipping bucket connects directly to the GPIO pins of the Pi and any analogue sensors via an ADC HAT board. Xbee 802.15.4 units were used to make a wireless link between the sensors and processor where required.
Data is continuously updated from the sensors and sent at regular intervals to Weather Underground, Met Office WoW and Amazon IoT. A simple configuration file is read at start up to determine the desired transmission interval and is also used to set various other parameters including:
I also intend to develop an optional wireless local display unit in the future. Wireless connections can be replaced with RS485 if desired.
Though the MetPod software will run on one Raspberry Pi with all sensors connected to this unit, I also developed a standalone serial-multiplexer/data aggregator using a Raspberry Pi Zero (MetPod Hub). Multiple serial sensors can be connected to this as well as the tipping bucket rain gauge, it simply reads data from each of the sensors as it becomes available and sends it to the main unit (via wireless or RS485). This just provides some interfacing flexibility, allowing the main processing unit to reside indoors close to an ethernet socket.