Tutorial: Part 9 -Building a Solar Powered Raspberry Pi Weather Station – GroveWeatherPi
The Raspberry Pi is a fabulous device to on which to build your projects. The GroveWeatherPi project is designed to show the capabilities of this computer while remaining accessible to a diverse Maker community.
GroveWeatherPi is a Solar Powered Raspberry Pi WiFi connected weather station designed for Makers by SwitchDoc Labs ( www.switchdoc.com). This is a great system to build and tinker with. All of it is modifiable and all source code is included.
This tutorial for building your own Solar Powered Weather Station based on the Raspberry Pi consists of 14 parts.
[include-page id=”gdplinks”]
3D Printed Parts
One of the big changes in the way people build prototypes is the availability of inexpensive 3D Printers. It used to be difficult to build prototype cases and stands for various electronic projects. Now it is easy to design a case in one of many types of 3D software and then print it out using your 3D Printer. For the GroveWeatherPi, we used OpenSCAD ( https://www.openscad.org ) to do the design. OpenSCAD is a free 3D CAD system that appeals to programmers. Rather than doing the entire design in a graphical environment, you write code (consisting of various objects, joined together or subtracted from each other) that you then compile in the environment to form a design in 3D space.
We have three 3D Printed Parts. These can be ordered from store.switchdoc.com if you don’t wish to build your own.
Solar Panel Mount
The Solar Panel Mount is attached via 4 screws to the door of the BUD enclosure. The solar panels are then slid into the slot at the top, holding the panels at a 45 degree angle which is optimal for the latitude at SwitchDoc Labs. If you are building GroveWeatherPi elsewhere in the world, you may want to adjust it to match your latitude. We are currently rethinking this friction fit bracket. It loosens up in the hot sun and we had to apply some glue to make sure it will stay connected.
Following is the openSCAD code for the Solar Panel Mount.
// // WXPi Solar System // // SwitchDoc Labs - 08/08/2016 // // // WXLink outside Solar // include <write.scad> include <joints.scad> difference() { union() { cube([30,70,30]); translate([0,-10,0]) cube([30,90,2]); } rotate([0,45,0]) translate([0,-5,10]) cube([3,90,40]); translate([-5,-5,20]) cube([40,80,30]); rotate([0,45,0]) translate([-15,-5,5]) #cube([10,90,40]); translate([19,-5,15]) #cube([15,90,6]); // screw holes translate([5,-5,-10]) #cylinder(h=15, r=2.8); // screw holes translate([25,-5,-10]) #cylinder(h=15, r=2.8); // screw holes translate([5,75,-10]) #cylinder(h=15, r=2.8); // screw holes translate([25,75,-10]) #cylinder(h=15, r=2.8); }
Radiation and Water Shield for AM2315 Outdoor Temperature/Humidity Sensor
The AM2315 is encased, but not totally water proof. It needs to be protected from direct rain and also from direct sun. If the device is in the direct sun, then the temperature will read too high and eventually the humidity sensor on the AM2315 will die. The jury is still out whether we need to put a sun shade above the radiation shield.
Following is the openSCAD code for the Radiation and Water Shield:
// //GroveWeatherPi Solar System // // SwitchDoc Labs - 04/01/15 // // //GroveWeatherPi AM2315 Outdoor temp cover // include include module Tube() { // tube difference() { // cylinder(h=130, r=28); cylinder(h=130, r=28); translate([0,0,-2]) cylinder(h=132, r=26); translate([-30,-90,-2]) #cube([231,90,135]); // vents translate([-20,100,100]) rotate(90,[1,0,0]) #cube([40,3,200]); translate([-20,100,90]) rotate(90,[1,0,0]) #cube([40,3,200]); translate([-20,100,80]) rotate(90,[1,0,0]) #cube([40,3,200]); translate([-20,100,70]) rotate(90,[1,0,0]) #cube([40,3,200]); } } module OutdoorCover() { // sphere difference() { sphere(r=28); sphere(r=25); translate([-45,0,0]) #cube([90,90, 100]); translate([-45,-45,-100]) #cube([90,90, 100]); } // tube translate([0,130,0]) rotate(90,[1,0,0]) Tube(); // mounting plates difference() { translate([-30,-35,0]) cube([60,165,2]); translate([-20,-15,0]) cube([40,145,2]); // screw holes translate([25,-24,-2]) #cylinder(r=2,h=15); translate([-25,-24,-2]) #cylinder(r=2,h=15); } } difference() { OutdoorCover(); translate([-50,105,-10]) #cube([100,100,100]); }
Lightning Detector Pylon
The lighting detector pylon is to move the very sensitive MOD-1016G Lightning Detector away from the noisy electronics within the GroveWeatherPi. We noticed early on that we were getting a lot of spurious lightning detection from the device. Moving it about 30cm from the electronics in a separate pylon fixed that problem.
Following is the Lightning Detector Pylon openSCAD code:
// // WeatherPi Lightning Sensor Block Extension // // SwitchDoc Labs 5/18/15 // // module sensorPylon() { // tube difference() { union() { cylinder(120, r=12); // flanges translate([-15,-15,0]) cube([30,30,2]); } translate([0,0,-10]) cylinder(150, r=10.5); // screw holes translate([-12,-12,-5]) #cylinder(h=10,r=2.0,$fs=6); translate([-12,12,-5]) #cylinder(h=10,r=2.0,$fs=6); translate([12,12,-5]) #cylinder(h=10,r=2.0,$fs=6); translate([12,-12,-5]) #cylinder(h=10,r=2.0,$fs=6); } } module sensorBox() { difference() { translate([-16.5,-16.5,0]) cube([43,43,33]); translate([-15,-15,-2]) cube([40,40,32]); translate([-15.5,-15.5,-1]) cube([41,41,3]); } } module sensorPlatform() { difference() { union() { translate([-17.95,-17.95,-1]) cube([40.9,40.9,2]); translate([2.5,2.5,-5]) #cylinder(5,r=10.4); } translate([2.5,2.5,-5]) #cylinder(10,r=9.0); } } /* sensorPylon(); translate([0,0,180]) sensorBox(); translate([0,0,160]) sensorPlatform(); */ translate([60,0,0]) sensorPylon(); rotate(180,[0,1,0]) { translate([50,0,-33]) sensorBox(); translate([0,0,-1]) sensorPlatform(); }
2 Trackbacks / Pingbacks
Comments are closed.