GithubHelp home page GithubHelp logo

weather-station's Introduction

Weather-Station

This is a weather station created with components from Sparkfun. The Arduino firmware is a modified version of Sparkfun's Wimp Weather Station. While the Imp is an interesting device, I wanted to get the weather data back to a BeagleBone Black for further processing/evaluation. The BeagleBone Black can easily push the data to Weather Underground.

##Equipment

To set up your station, please follow the Sparkfun tutorial. Obviously, you won't need the Imp or the Imp shield. In its place, you will need an XBee shield, an XBee breakout (with headers) and and two XBees. I am using XBee Pro modules due to the distance and other factors. You will need three sets of Arduino headers (one for the XBee shield and two for the weather shield) because the weather shield is so tall. So that we can turn the XBee off and on to conserve power, you will need a connection between the XBee pin 9 and digital pin 4 on the RedBoard.

I am using a BeagleBone Black Rev. C (a Rev. B board would work as well if you have one) running Debian. You will need to have your BeagleBone Black connected to the internet (wired or wireless) if you want to push your data to Weather Underground. On the P9 header of the BeagleBone Black, connect pin 1 to ground on the XBee breakout, pin 3 to VCC on the XBee breakout, pin 21 (Serial 2 TX) to DIN on the XBee breakout, and pin 26 (Serial 1 RX) to DOUT on the XBee breakout.

To house the electronics, I 3-d printed a Stevenson Screen. I used the pins.scad file from Thingiverse to create pins and sockets to make it easy to assemble/disassemble the screen. I have included the .STL files for printing and the OpenScad file for the bottom so that you may modify it for your own mounting system. The Stevenson screen is printed in white PLA. It remains to be seen how durable the PLA will be. You build the assembly with a top, a middle, a middle grid, two more middles, and a bottom. The battery and Sunny Buddy sit on top of the middle grid. The bottom has holes to mount the RedBoard and the two shields. For now, I have the solar panel mounted in a manner similar to the Sparkfun Wimp Weather Station. I am thinking of designing a gimbal driven by two servos to track the sun. There should still be enough memory on the RedBoard for this.

##Libraries

You will need the xbee-arduino library as well as the pressure and humidity sensor libraries from Sparkfun. For the BeagleBone Black, you will need (in addition to libraries bonescript, socketio, and serial installed by default) xbee-api and moment. Unless you are using the latest Bonescript from Github, you need to modify your serial.js file (found in /usr/local/lib/node_modules/bonescript) to include the following line at the end of the file: exports.serialParsers = m.module.exists ? m.module.parsers : {};

weather-station's People

Contributors

docwelch avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

golvellius

weather-station's Issues

Pressure reading error

Hi ...
My system :

Arduino uno R3 ( +5 volts ) + Xbee (first version) + Weather Shield ( sparkfun ) + Weather Meters ( SParkfun)+ BBB ...
I have a problem when retrieving the pression from the arduino ...

To get a good values i need to remove this line in the code :

// myPressure.setModeActive(); // Go to active mode and start measuring!

Also i change this value (128) to (7) in this line :

myPressure.setOversampleRate(7); // Set Oversample to the recommended 128

But the error is that the values i get from the sensor is too high 255825.00 after conversion = example 75.72 inHg ..
Sometimes i get 0 from the arduino ...

I used this formula to get the pressure from pascals to inhg :

payload[23] = tdailyrainin & 0xFF;
// Calculo la presion en hpa para enviar a wunther

float pressure = baromin / 100; //pressure is now in millibars

float part1 = pressure - 0.3; //Part 1 of formula

const float part2 = 8.42288 / 100000.0;
float part3 = pow((pressure - 0.3), 0.190284);
float part4 = LOCAL_ALT_METERS / part3; // Local_Alt_Meters esta ya en coma flotante
float part5 = (1.0 + (part2 * part4));
float part6 = pow(part5, (1.0/0.190284));
float altimeter_setting_pressure_mb = part1 * part6; //Output is now in adjusted millibars
float baroin = altimeter_setting_pressure_mb * 0.02953;

unsigned int tpressure = (unsigned int)(baroin * 100);
payload[24] = tpressure >> 8 & 0xFF;
payload[25] = tpressure & 0xFF;

what could be the problem ... a faulty weathershield / arduino ?

Also , sometimes i get that i have rain , but there is no raining ... maybe daily rain =0.09 , 0,10 .. etc .. if i reset the arduino rain = 0 ... after 2 hours rain =0.3 ... etc ...

Thanks so much ...

No transmission data to Wunderground / Error in Arduino Function missing

Hi ...

First of all i would like to thank you about your supperb work .. I have been checking your code and works ok .
I have found two possible errors i can not recover ...

  1. In the code of BeagleBoneBlack . The info arrives from the arduino , it is displayed in the console of cloud9 IDE , but never execute sendDataToWunderground(); .. I see all the info comming from the arduino , but never sends data to internet ...

  2. Also there is a problem in the code of the Arduino , Line ...
    *baromin = myPressure.readPressureinHg(LOCAL_ALT_METERS); *
    I tried to get some libraries from internet , included the ones in SPARKFUN but no luck , the function does not exist .. I have made new routine from example in SPARKFUN .. i will check ...

Maybe i make some mistake ...

Thanks a lot ...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.