Compare commits

...

2 Commits

Author SHA1 Message Date
8c07ec89cb Create models for wind cups and vane 2024-07-17 13:33:17 +01:00
3056544eda Write some design notes 2024-07-17 13:33:08 +01:00
3 changed files with 119 additions and 0 deletions

44
models/cups.scad Normal file
View File

@ -0,0 +1,44 @@
/*
* Copyright (c) Camden Dixie O'Brien
* SPDX-License-Identifier: AGPL-3.0-only
*/
module hemisphere (radius)
{
difference() {
sphere(radius);
translate([0, -radius, -radius]) cube([radius, 2 * radius, 2 * radius]);
}
}
module cup (cup_radius, cup_thickness, cup_offset, spoke_length, spoke_radius)
{
translate([0, cup_radius + spoke_length, 0]) scale([1, -1, 1])
difference() {
union() {
translate([spoke_radius + cup_offset, 0, 0]) hemisphere(cup_radius);
rotate([-90, 0, 0])
cylinder(cup_radius + spoke_length, r = spoke_radius);
}
translate([spoke_radius + cup_offset, 0, 0]) sphere(cup_radius - cup_thickness);
};
}
module cups (n_cups, hub_height, hub_outer_radius, hub_inner_radius,
cup_radius, cup_thickness, cup_offset, spoke_length,
spoke_radius)
{
difference() {
union() {
cylinder(hub_height, r = hub_outer_radius, center = true);
for (i = [0 : n_cups - 1]) {
rotate([0, 0, i * 360 / n_cups])
cup(cup_radius, cup_thickness, cup_offset, spoke_length,
spoke_radius);
}
}
cylinder(hub_height + 1, r = hub_inner_radius, center = true);
}
}
cups(5, 20, 18, 6, 40, 3, 6, 60, 8);

43
models/vane.scad Normal file
View File

@ -0,0 +1,43 @@
/*
* Copyright (c) Camden Dixie O'Brien
* SPDX-License-Identifier: AGPL-3.0-only
*/
module shaft (length, radius, taper_length)
{
translate([-length / 2, 0, 0]) rotate([0, 90, 0]) {
non_tapered_length = length - taper_length;
cylinder(non_tapered_length, r = radius);
translate([0, 0, non_tapered_length])
cylinder(taper_length, radius, 0);
}
}
module panel (length, height, thickness, wedge_length)
{
rotate([90, 0, 0])
translate([0, 0, -thickness / 2])
scale([-1, 1, 1])
linear_extrude(thickness)
polygon([[0, 0], [wedge_length, height], [length, height], [length, 0]]);
}
module vane (length, shaft_radius, shaft_taper_length, panel_height,
panel_thickness, panel_wedge_length, hub_height, hub_outer_radius,
hub_inner_radius)
{
union () {
difference () {
union () {
shaft (length, shaft_radius, shaft_taper_length);
cylinder(hub_height, r = hub_outer_radius, center = true);
}
cylinder(hub_height + 1, r = hub_inner_radius, center = true);
}
panel_length = length / 2 - hub_outer_radius;
translate ([-hub_outer_radius, 0, 0])
panel (panel_length, panel_height, panel_thickness, panel_wedge_length);
}
}
vane (260, 6, 24, 80, 3, 40, 14, 12, 6);

32
notes.org Normal file
View File

@ -0,0 +1,32 @@
#+TITLE: Weather Station
The goal of this project is to produce a cheap and reasonably robust
weather station with low energy usage that can be deployed far from
any kind of power or network infrastructure.
* Design
** Infrastructure
*** Data storage
Removable storage device that can be routinely retrieved and
swapped out. An SD card seems to be the best choice.
*** Power supply
A pack of rechargable batteries is the simplest solution.
** Metrics
*** Temperature & Humidity
Off-the-shelf temperature and humidity sensor.
*** Insolation
Off-the-shelf ambient light sensor.
*** Pressure
Off-the-shelf barometer. [[https://uk.rs-online.com/web/p/pressure-sensor-ics/1361511][DPS310]] seems to fit the bill.
*** Wind speed
3D printed cup anemometer using a permanent magnet and a hall
effect sensor.
*** Wind direction
3D printed wind vane with a permanent magnet on the axis and a
angular position sensor.