DIY Weather – WeatherPiArduino(V2) Raspberry Pi and Arduino Software Released
We have now released new software for the WeatherPiArduino(V2) Board for the Raspberry Pi and the Arduino. This version now supports the AM2315 as well as doing automatic detection of I2C devices.
You can find the WeatherPiArduino on Amazon.com and on the SwitchDoc Labs Store.
What is the WeatherPiArduino board?
WeatherPiArduino is a weather station controller board designed to interface to Arduino and Raspberry Pi computers. It is an interface board developed by SwitchDoc Labs to allow the user to easily build a fully functioned Weather Station while allowing customization of functions.
WeatherPiArduino is derived from Project Curacao. Generation 1 of this board was deployed and tested in Curacao before Generation 2 was released to production. The full WeatherPiArduino article was published in Raspberry Pi Geek magazine in September, 2014 and a follow up article was published in April, 2015 (including the new lightning detector). The WeatherPiArduino comes with a SwitchDoc Labs DS3231/EEPROM board.
Combine the WeatherPiArduino with a SunAir or SunAirPlus board to create a solar powered weather station.
What sensors does the WeatherPiArduino support?
Interfaces on WeatherPiArduino Board
- I2C for Raspberry Pi
- I2C for Arduino
- RJ11 Plugs installed for SwitchDoc Labs WeatherRack Wind Vane, Rain Bucket, Anemometer computer connections for Raspberry Pi and Arduino
I2C devices Included with the WeatherPiArduino Board
Plug in I2C Interfaces provided
- AM2315 Outdoor Encased Temperature and Humidity Sensor
- Embedded Adventures I2C Lightning Detector MOD-1016 board
- Adafruit HTU21D-F Temperature/Humidity breakout board
- Adafruit 32KB FRAM I2C breakout board
- Adafruit ADS1015 4 Channel A/D I2C board
- SwitchDoc Labs Grove ADS1115 16 Bit 4 Channel A/D I2C board
I2C Device Specifications
- BMP280 (Barometer / Temperature)
- DS3231 (Real Time Clock)
- AT24C32 (EEPROM)
- ADS1015 (12 bit ADC)
- AS3935 (MOD-1016 – Lightning Detector)
- HTU21D-F (Humidity)
- FRAM (32KB Fast Non-Volatile Storage)
- SwitchDoc Labs Grove ADS1115 16 Bit 4 Channel A/D I2C board
Here is a scan from the WeatherPiArduinoV2 hooked up to an Arduino. I2C devices everywhere!
I2C Scanner Scanning... I2C device found at address 0x03 ! I2C device found at address 0x40 ! I2C device found at address 0x50 ! I2C device found at address 0x57 ! I2C device found at address 0x68 ! I2C device found at address 0x77 ! I2C device found at address 0x7C !
What are the differences between WeatherPiArduino Version 1 and WeatherPiArduino(V2)?
The V2 version of the WeatherPiArduino board adds the following features:
- BMP280 High Accuracy Barometer and Temperature Sensor (replaces the BMP180)
- Adds three Grove Connectors (I2C, Anemometer Digital Out, Rain Bucket Digital Out)
- Sockets added for DS3231 Real Time Clock (included)
What are the new features of the software?
- Support for AM2315 Temperature/Humidity Sensor
- Device Scanning and Status Reporting
Raspberry Pi Device Status Reporting
---------------------- DS3231: Present BMP280: Present FRAM: Present HTU21DF: Present AM2315: Present ADS1015: Not Present ADS1115: Present AS3935: Not Present ----------------------
Arduino Device Status Reporting
---------------------- Device Status ---------------------- DS3231: Present AS3935: Present FRAM: Present BMP280: Present AM2315: Present HTU21DF: Present ----------------------
Download the Software and Specification
- You can download the Full WeatherPiArduino Product V2 Specification here (Note: The Arduino Mega Fritzing diagram in both of the specifications has a mistake. The line from the WeatherPiArduino should plug into GPIO 18 on the Arduino Mega board and NOT GPIO 5 as shown!).
- Arduino Software (including drivers for Grove Base Shield, WeatherRack and all supported I2C devices and sensors) is here. (https://github.com/switchdoclabs/SDL_Arduino_WeatherPiArduinoV2)
- Raspberry Pi Software is here (https://github.com/switchdoclabs/RaspberryPi-WeatherPiArduino).
Software Demos
Both the Raspberry Pi and the Arduino Software demo output is below.
Running the Raspberry Pi WeatherPiArduinoV2 Python Software
pi@LightSwarm ~/RaspberryPi-WeatherPiArduinoV2 $ sudo python WeatherPiArduinoV2.py value= 0X350C DS3231= 2016-05-10 01:56:17 AM2315 = 25.6000003815 WeatherPiArduino Demo / Test Version 1.0 - SwitchDoc Labs Program Started at:2016-05-10 01:56:19 ---------------------- DS3231: Present BMP280: Present FRAM: Present HTU21DF: Present AM2315: Present ADS1015: Not Present ADS1115: Present AS3935: Not Present ---------------------- ---------------------------------------- ----------------- WeatherRack Weather Sensors ----------------- Rain Total= 0.00 in Wind Speed= 0.00 MPH MPH wind_gust= 0.00 MPH Wind Direction= 0.00 Degrees Wind Direction Voltage= 2.547 V ----------------- ----------------- DS3231 Real Time Clock ----------------- Raspberry Pi= 2016-05-10 01:56:19 DS3231= 2016-05-10 01:56:18 DS3231 Temperature= 23.50 C ----------------- ----------------- AT24C32 EEPROM ----------------- writing first 4 addresses with random data address = 0 writing value=188 address = 1 writing value=85 address = 2 writing value=128 address = 3 writing value=175 ----------------- reading first 4 addresses address = 0 value = 188 address = 1 value = 85 address = 2 value = 128 address = 3 value = 175 ----------------- ----------------- BMP280 Barometer ----------------- Temperature = 23.96 C Pressure = 94.60 KPa Altitude = 575.12 m Sealevel Pressure = 94.61 KPa ----------------- ----------------- AM2315 Temperature/Humidity Sensor ----------------- AM2315 temperature: 25.6 AM2315 humidity: 26.4 AM2315 crc: 1 ----------------- ----------------- HTU21DF Temp/Hum ----------------- Temperature = 23.30 C Humidity = 36.40 % ----------------- ----------------- AS3935 Lightning Detector Not Present ----------------- ----------------- ----------------- FRAM Test ----------------- writing first 3 addresses with random data address = 0 writing value=220 address = 1 writing value=12 address = 2 writing value=231 ----------------- reading first 3 addresses address = 0 value = 220 address = 1 value = 12 address = 2 value = 231 ----------------- Sleeping 10 seconds
Running the Arduino WeatherPiArduinoV2 Software
WeatherPiArduino 1.10 01/15/2014 Compiled at:17:29:40 May 6 2016 Found I2C FRAM FRAM Table Size =302 noiseFloor=2 regW 0 3E E read 24 write 1C err 0 regW 3 20 1 read 0 write 20 err 0 regW 1 70 2 read 22 write 22 err 0 Noise floor is: 2 Spike rejection is: 2 Watchdog threshold is: 2 ---------------------- Device Status ---------------------- DS3231: Present AS3935: Present FRAM: Present BMP280: Present AM2315: Present HTU21DF: Present ---------------------- time=5002 micro time=5002668 currentWindSpeed=0.00 currentWindGust=0.00 Wind Direction=315.00 Cumulative Rain = 0.00 memory free=6157 --------------- DS3231 Clock --------------- 02:09:52, Date (D/M/Y) = 10/05/2016 Temperature= 24.00 --------------- AT24C32 EEPROM --------------- Write 5 addresses with random numbers and read them back Address: 0 Write:91 Address: 1 Write:243 Address: 2 Write:11 Address: 3 Write:38 Address: 4 Write:162 Address: 0 Read Value:91 Address: 1 Read Value:243 Address: 2 Read Value:11 Address: 3 Read Value:38 Address: 4 Read Value:162 --------------- BMP280 --------------- Pressure: 9461.91 hPa Temperature: 24.38 C Altitude: 573.90 m --------------- AM2315 --------------- TempF: 24.00 Hum: 28.70 --------------- HTU21D-F --------------- Temperature: 23.51 C Humidity: 37.34 % --------------- --------------- Lightning Detection --------------- irqSource: 0 --------------- --------------- FRAM Log --------------- 2016-05-10 02:09:00, 0.00, 0.00,315.00, 2.03, 0.00, 24.00, 24.00, 28.70, 23.51, 24.38, 94619.09, 0, 0.00