DIY 3D Printed IoT Weather Station Using an ESP32
Вставка
- Опубліковано 15 сер 2021
- Today we’re going to be building a wireless outdoor weather station that takes temperature, humidity, barometric pressure, light and wind speed readings, and uses WiFi to post the data to the cloud which can then be accessed through a Thingspeak dashboard. We’ll be using an ESP32 development board from DF Robot called a Firebeetle, chosen for its low power consumption, and we’ll be using grove sensors to detect the different weather metrics.
Visit my blog for the full step by step instructions, code and 3D print files - www.the-diy-li...
What You Need For This Project
Firebeetle ESP32-E IoT Development Board - bit.ly/2VYygmj
Grove Sensors & Cables (Beginner Kit I Used) - amzn.to/3ANygnV
Reed Switch - amzn.to/3iOKC9f
Neodymium Magnets - amzn.to/3m0zB6W
Lithium-Ion Battery Pack (better than my one) - amzn.to/3iOOFTe
3D Print Resin, White PLA Style - amzn.to/3sil6wr
M5 Button Head Screw & Nuts - amzn.to/2UiIQUq
Bearings - amzn.to/3xPyqcD
Header Pins - amzn.to/2wY3k9g
Breadboard Jumpers - amzn.to/37M12ZS
Tools & Equipment Used
Voxelab Proxima 6.0 3D Printer (Amazon) - amzn.to/37PzO4k
Voxelab Proxima 6.0 3D Printer (Voxelab Direct) - bit.ly/3xRQmn3
Fluke Multimeter - amzn.to/3snFyvY
TS100 Soldering Iron - amzn.to/3yRPAaS
Dremel Versatip Heat Gun / Soldering Iron - amzn.to/3g7MjNn
Some of the above parts are affiliate links. By purchasing products through the above links, you’ll be supporting this channel, with no additional cost to you.
If you've got any ideas for Raspberry Pi, Arduino, or other Electronics projects or tutorials you'd like to see, let me know in the comments section. - Навчання та стиль
You can calibrate the wind speed reading when it is a calm day, by driving a care and get the speed by a GPS. Then you know if the readings are ok, if not how much to change it. If you have a mobile phone, you can set up to tether with the ESP32, so it can connect to it's database.
You should swap the reed switch for a hall effect sensor, otherwise a great looking build!
Thanks for the feedback and tip. I've never tried a hall effect sensor on a project, I'll look into these.
@@MichaelKlements I agree on this
I made an anemometer using one sensor and 4 magnets, that allows for
balancing and higher accuracy
I would also use different sensors for temperature and pressure BMW280 , humidity, temperature and pressure in one simple package on i2c
calibration is best done in a car that has an open roof. and use GPS for speed , do a test in two directions for a few runs at 5,10,15,20 and 40 KM/h and use that data
Thanks for the tips. Yeah my thought was to try riding a bicycle in a warehouse while holding the anemometer and compare the actual speed to the indicated wind speed. The magnetic sensors on bikes are pretty accurate.
@@MichaelKlements Reed switches are simple and cheap but they do wear out. I've replaced one on our exercise bike already. How many anemometer revolutions are you seeing per day and what is the life expectancy of your reed switch?
@@patrickmaartense7772
I was just about to suggest;
2 sensors & 4 magnets at different radius, 180 out of phase; for the same reasons. I wonder which is more accurate?
don't know much bout DIY with small pc components but ur vids definitely make me wanna learn more
You should be able to power your sensors off of digital pins on the esp32 so that you won't have any power draw in deep sleep. That will provide up to 40ma. If you need more, you can use a transistor and drive the base with the esp.
Thanks for the tip Allen, I hadn't considered driving them directly from the digital pins.
The DHT11 is one of the least precise sensors I have tested (large increments, way off over time, and not linear enough to attempt to calibrate conveniently), you might want to look at a Sensirion (SHT40, SHTC3) or an all in one Bosh sensor (BME280). I agree with others that a hall effect would be better since the reed switch has mechanical limitation.
100% agree. Another issue with the DHT11 is the maximum humidity reading of 80%. BME280 is probably the easiest and most accessible option. It also has some excellent power saving options.
Thanks for the advice on the sensor and some alternatives, I'll have a look at them.
I was also going to suggest the BME280, or you could also go with the Sensirion SCD41 and get temp, RH and CO2, which is kinda neat, given climate change and rising CO2 levels.
@@MichaelKlements also: ESP32+other circuit components can become really hot, while experimenting with some prototypes i have seen cases where the temp reading were 2-3-4C higher because of that. I would suggest you to put the Temp sensor on a spot far away from all the other components (best thing would be to put the Sensor on the bottom and the ESP/circuit on the top, since hot air goes up, so with the current design all the hot air inside the prototype is going on the top, right where the Temp sensor is...)
On my project the DHT11 died after less than 24h..
Nice..
I did mine with the help of ChatGTP, it reads temp, Rh, rain intensity & accumulation, uv index with an algorithm it made on the spot for using an LDR and another algorithm it made using the pulses from a fan/motor to calculate wind speed and uploads it to weatherunderground api, then deep sleep for 4 mins as the code takes around 10 seconds to complete and online update intervals are 5 mins so gives the system enough time to sync.
I plan to print everything on my diy PET extruder, it makes filament from recycled PET bottle's and I've had things outside for year's without flaking, fading or becoming brittle.
thanks for the good job. I'll download your code and use it as starting point for an automatic chicken coop with the same exact board from DFROBOTS
Hey Michael, I love the video. I put some resin prints outside on my front porch about two months ago. I used Standard Grey UV resin from Elegoo. After two months the print looks exactly the same. It doesnt seem to be anymore or less brittle than when I first printed it. My porch gets 10-12 hours of sunlight during the summer. I'm ready to do another print and a longer term experiment.
That seems to be what others have said as well. I'm planning on trying out a couple of different types of resin to see how well they hold up outside for a couple of months. Let me know how your long term experiment goes!
Micheal, Your CHANNEL is growing by leaps and bounds. I have been sharing it with all my friends. Good show, - Robert
Thanks so much Robert!
Amazing project... Will follow thru your next findings!! 👍
I know this is an old video, but I have been printing in resin now for a while and leaving the pieces in harsh UV conditions. I paint the parts with UV reflective paints now. They come in spray-cans, and go on nicely and make the parts look very professional.
Thanks for the tip, do you have a link for the product or brand of UV paint that you use?
@@MichaelKlements You're going to laugh..I believe it was either Rustoleum or Krylon Clear Coat. I remember vividly that the can stated UV reflective or UV resistant on the front label. I bought them in a big-box store. I have also bought their automotive enamel (colors), but that tends to make the surface glossy. Either way, I have parts 100' up on my antenna tower for years now..no failures. I did, however, paint one project box black, and that warped. Another tip that has worked literally DECADES for me out in the elements..use a metal ammo box for a project case. They seal tightly, the gasket lasts for decades and you can get them very cheaply from surplus stores. Cheers Mike..Warren
Haha good old Rustoleum, I'll have a look at my local hardware store and see if they've got some UV resistant options. Ammo boxes sound like a great alternative for outdoor projects, they're built for a harsh environment after all.
amazing project,
if there was a fog sensor it would be very nice for me
Nixe Work/Idea..
Moisture will corrode over Time the Board and the Contacts and the Bearing maybe it work some Time but it's not ideal..
Very neat realisation. About the only thing it lacks is a wind direction indicator
Yes that would ne a nice addition.
Nice project. I've looked at your wind speed calculation code and I think I see your issue.
Looking at your CAD files it seems the anemometer cup centers are at 50mm radius (I say seems as I loaded the STL into a different cad and after importing the scale seemed off by a factor of 1000).
Assuming that radius is correct, I calculated 1 rotation 2(50mm) pi = 314 mm = 0.314 m linear distance per rotation for the cup center.
In your calcWind() function, you are calculating the avg ms during the read cycle, and then mapping this time if it is in a range of 200ms to 4000ms.
The first issue I see in this routine is the calculation of avg. If the board only reads 1 rotation during the measure time, the avg will be 0ms / 1 = 0 ms, which defaults to 200ms due to later logic. I would change the IF clause to be if (counter > 1) rather than if (counter != 0), which the later logic will default to wind = 0. It would seem this is the reason for your graph spiking up from 0 to 16.
The second issue I see is At 200ms (aka 5 rotations per second) the cups have moved 5 * 0.314 m = 1.57 m/s = -56.5 kph- 5.65 kph but you map this to 16 m/s, which seems off by a factor of 10 [not meters but decimeters] which is ok since map() deals only with integers so better precision but it's not meters. (and it seems 200ms is a little high for the top gate value)
The third issue is your top range of 4000ms per rev = 0.314 m / 4 = 0.0785 m / s * 3600 = 0.2 kph which will not be accurate due to friction etc. If I was doing this I would default wind = 0 if count < 2, and if avg > 1200 I would report wind as 1 kph, which you seem to be doing as 0.3 m / s ~ 1 kph though you calculated this as 1 rotation > 4s and i calculate this as 1000m / 3600s = 0.278 m / s and 314 / 278 = 1129 ms per rotation.
Assuming ThingSpeak is happy with floating point, in updateThingSpeak() I would do
ThingSpeak.setField(5, wind/10.0); // wind is in decimeters per second, convert to meters
or convert to kph as
ThingSpeak.setField(5, wind*360.0); // 3600 seconds per hr, wind is in decimeter units
Your readings will be still slightly inaccurate but much closer since due to friction and other losses the cups don't move exactly at wind speed but slightly slower (which will have a bigger effect at lower speeds but you're gated at 1kph anyway),
I hope this helps a little and thanks for sharing!
Thanks for looking into this Ian, these are some really helpful suggestions. I'll post an update on the blog post once the wind sensor is working reliably.
My most recent thought to test it is to hold the weather station out while riding a bicycle on a calm day (no wind) or in a large warehouse and then compare the indicated speed to the actual bicycle speed. This would give me the most accurate "real speed" with which to compare the results.
@@MichaelKlements My pleasure Michael. I'm involved every year with an temporary airport that operates for only 2 weeks every year and am planning on building some of these myself (with perhaps a couple of modifications including wind direction) so I'll be following along.
Your calibration plan is a good idea. Calibration to a known reference is one of the critical things in any sensor measurement system. I would expect some non-linear factors in your measurement (inertia and fluid dynamics are complex systems), so make sure to do measurements at different speeds. Alternative is to attach it to a car in some way (zip ties to a mirror or roof rack?) and drive at known speeds. This would give you a higher top end for the calibration though I wouldn't take it on a highway.
BTW, I doublechecked my numbers above and found I had made an error in magnitude. 5 rotations per second, aka 200ms avg tick, is 1.57 meters per second as I originally wrote, but this does not map to 56.5 kph but rather 5.65 kph since 1.57 * 3600 = 5,652. What this means is you really do need to change the lower value gate on the avg value from 200ms to 20ms to get a reasonable range. 50 rotations per second, aka 20ms avg tick, is 15.7 meters per second or 56.5 kph.
This also shows that your high value gate at 4000 ms is also way too high. I would not expect your system to be accurate at all below 1 kph (too much mass and friction for this). As I wrote above, 1 kph = 0.278 meters per second = expected avg ms of 1129.
I've edited the text above to reflect the correct kph values to avoid confusion. Definitely looking forward to your updates!
@@MichaelKlements BTW, I did a quick spreadsheet of theoretical speeds vs avg millisecond tick interval for the range of 20 to 300 ms by 10 and one for 20 to 50 ms by 1 ms increments assuming the 50mm radius and pasted below. If you graph this you will see that the tick interval to speed is a curve, not linear, so the use of the map() function is going to be a source of errors. Better to do the math directly using this formula (with constant for radius) and use float vs int for the wind variable:
(radius [mm] * 2.0 * 3.14) [circumference] / avg [millisecond] = speed [float, meters per second]
Example: 50mm * 2.0 * 3.14 / 20 = 15.7 meters per second = 56.5 kph
The conversion from mm to meters happens naturally because of the time scale in milliseconds. Once you do your calibration tests, one possible way you can adjust the readings is to have a calibration factor that you apply to the radius value, e.g. if your readings are slow compared to measured, add to the radius. If your readings are fast, substract from the radius.
Example substracting 1mm: 49mm * 2.0 * 3.14 / 20 = 15.4 mps = 55,3 kph
Tables: Avg Speed for various tick intervals assuming 50mm radius.
Ms M/S KPH
20 15.70 56.52
30 10.47 37.68
40 7.85 28.26
50 6.28 22.61
60 5.23 18.84
70 4.49 16.15
80 3.93 14.13
90 3.49 12.56
100 3.14 11.30
110 2.85 10.28
120 2.62 9.42
130 2.42 8.70
140 2.24 8.07
150 2.09 7.54
160 1.96 7.07
170 1.85 6.65
180 1.74 6.28
190 1.65 5.95
200 1.57 5.65
210 1.50 5.38
220 1.43 5.14
230 1.37 4.91
240 1.31 4.71
250 1.26 4.52
260 1.21 4.35
270 1.16 4.19
280 1.12 4.04
290 1.08 3.90
300 1.05 3.77
MS M/S KPH
20 15.70 56.52
21 14.95 53.83
22 14.27 51.38
23 13.65 49.15
24 13.08 47.10
25 12.56 45.22
26 12.08 43.48
27 11.63 41.87
28 11.21 40.37
29 10.83 38.98
30 10.47 37.68
31 10.13 36.46
32 9.81 35.33
33 9.52 34.25
34 9.24 33.25
35 8.97 32.30
36 8.72 31.40
37 8.49 30.55
38 8.26 29.75
39 8.05 28.98
40 7.85 28.26
41 7.66 27.57
42 7.48 26.91
43 7.30 26.29
44 7.14 25.69
45 6.98 25.12
46 6.83 24.57
47 6.68 24.05
48 6.54 23.55
49 6.41 23.07
50 6.28 22.61
Thanks for these and the tables. Since it isn't linear it might be a good idea to implement a lookup table (sort of like you've calculated) where the Arduino can then calculate the ms and look up the wind speed rather than trying to calculate it. It would be quite easy to do and would definitely improve the accuracy of the wind speed data.
@@MichaelKlements there shouldn't be that hard to make a interpolation formula from those data with a x² or x³ formula to match it quite well. I have not plotted the data, so I don't know how much it is off a straight line.
And you might want to have a running average to smooth out the speed calculations (basically an integration). That isn't that hard to do either. You might want to look to PID algorithms for an implementation of the integration in PID.
@Ian Finnimore, great calculations!
With that in mind, one might want to change the radius to make the calculations easier/more optimised from rotation to wind speed. :-)
If you want to have the wind directions, look up Gray Code for encoding rotation steps and direction. You still need some reference point to know where zero are. Or enough digit tracks in the encoder to get the resolution you like.
en.wikipedia.org/wiki/Gray_code
Awesome Project 🤩👌 I love it
sweet project dude
That is a really nice build. Thanks
Thanks for the instructuins and everything arround
It would be interesting to be able to use an existing commercial weather station for sensors, and ten add the logging IOT layer with the RPi. That wold eliminate the need for all the fabrication and physical components, and make it an electronics project. It would be interesting to add a solar panel as you mention, and then one cold take any standard weather stations, and convert it to IOT usage. I recognize that was not or goal, and thanks for the video and project.
Thanks Gregory, I can definitely have a look at putting something like this together. I've done a few upgrades to this one, including the solar panel addition, so I'll be posting that video soon.
Nice looking build congratulations
You should paint the resin prints if they are going outside it will slow down the effects of UV on the prints
Thanks for the tip!
I suggest putting some UV blocking coating (paint?) On the 3d printed plastic. PLA is especially sensitive to sunlight.
Thanks for the suggestion. I'm thinking of doing a comparison between different resin types and painted, UV treated etc to see how they would hold up outdoors.
Nice.Im going to do that later
Keen to do this myself, great instructions Mike!
Thanks Matthew!
how do I calibrate the anemometer?
I noted in another comment you considered the idea that adding wind direction would be good. A potential way of doing this with using a Bourne absolute encoder, sparksfun has a module "Bourns Absolute Encoder (EAW0J-B24-AE0128L)" which encodes 128 positions ~2.8° each. Its only rated IP40, so you would have to ensure other water protection (perhaps flared bottom mount as a weather shield)
Thanks Ian, I'll have a look at it. Yes, it could be hung underneath this design and I'd then make the whole weather station mount off an arm out of the side.
After measuring the wind speed, you can turn it into a function of an electricity generator, so you can extend the operating time
Love it! amazing.
A small solar cell for recharging the battery would have been perfect !
That came in the updated version!
@@MichaelKlements Awesome !!
Super video!
Thank you!
Looks great
Nice work)
Was waiting for your video
I've just been tied up with work for the past few weeks. I'm working on some cool projects at the moment through, so will be back regularly!
Add a PSI2.5 and a PSI10 sensor, and you can sell those like cupcakes here in Singapore :) Aren't you concerned about water entering the components area with a bit of high wind?
Thanks for the tip, I'll have a look at that. With regards to the wind and rain, I've tried to keep the angles and spacing such that I don't think it will be an issue but I'll see once it has been through it's first couple of storms.
@@MichaelKlements Thanks, and yes it's me the one that left a comment in your blog as well :) We wanted to do something similar a few years ago but we stop halfway through.
So no wind direction then and no rain sensor?
Without rain water measurement?
This should be made into a written tutorial with all 3D printer Files etc.
The written tutorial with the code and print files is linked in the video description
Nice video Maker Michael! This one I may have to replicate. Let us know how you do the anemometer calibration.
Agreed
Maker Michael please make a follow-up video on this if you make any significant changes.
Very interesting project. Maybe you could measure the battery voltage and post that so you knew when to charge it?
That's a good idea Toby, thanks.
@@MichaelKlementsthanks for the project, it was very interesting.
Your DHT11 would be useless for me with its 0-50C range. Even the DHT22 is lacking with its range only going down to -40 (northern Minnesota gets colder than that).
Put some solar panels on it
Lekker !
Great project. With the resin-printed cups, I wonder if a painted finish would increase durability?
3M do a spray called Polyolefin Adhesion Primer (I don't work for them or know anyone who does, I just recommend the product - though it is super-toxic and so requires gloves, mask and eye protection to use). I found out about its use in car bodyshops to help paint adhesion to GRP bumpers/parts. It will adhere to any plastic or other slippery surface, on top of which you spray your primer (I like Rustoleum products), and then final paint surface.
You can then finish with a spray on UV-protected lacquer. I've done this for some repair projects on Bakelite parts from an old sail boat (an epoxy and glass sheets repair), and it is holding up really well - salt water and air is already a very harsh environment, and the salt crystals that form from sea spray act like a magnifying glass to accelerate UV damage on horizontal surfaces especially.
Thank you,
I'm planning on doing some testing on resin parts to see how well they hold up outdoors. I like your suggestion of a primer and uv protected laquer to compare to the bare components. I'll have a look at whether we get polyolefin adhesion primer, or something similar here.
@@MichaelKlements Just another thought: what about testing wraps? At the risk of sounding like a 3M fan-boy, they seem to make some great products with a whole range of finishes from wood-look to metal-look or carbon-fibre. From what I've read, you can wrap virtually anything, from tables to furniture to a whole car. It seems to work like shrink wrap, in principle, so there is a skill element in its application. If it can stay attached to a car, it would surely work for this sort of application. I guess it might get a bit fiddly with a shape like a wind cup though...
Yeah that's also a neat idea. I think they would work well for enclosures like the based or rectangular cases. I don't think I'd be able to wrap the vented area at the top or the cups though, perhaps a professional could do a decent job of them.
@@MichaelKlements Thinking about it, I wouldn't personally advocate wrapping over PLA cases unless it is for protection: one of the things that I think the 3D printing and making world has going for it (and that is unfathomably under-played on UA-cam in the current 'climate' with its focus on sustainability and climate change), is that PLA is biodegradable and the final product is not shipped half way across the globe. People will make their own minds up, but I think we all have a responsibility to champion sustainable materials and practices.
On the wrapping of intricate parts, I agree it might be tricky. I have no doubt it's possible, though, for someone with the manual dexterity and hand-eye coordination, and the patience. Cars are complex shapes, as is furniture. The wraps are applied with heat guns and stretching, and I would imagine it takes some practice to know where and when to make a cut and how the material will behave. I was thinking of wrapping my desk, but was put off by the thought of hideous wrinkles... I feel sure I'd have to do it at least twice to be satisfied with the result, by which time the cost would make it an extravagance and wasteful.
Yeah it is definitely something often overlooked. I personally have an issue with almost all manufacturers using plastic spools for the filament. They aren't particularly useful afterward, so I've just got loads of them lying around and most aren't recyclable either. I don't know why more manufacturers don't just use cardboard or thin plywood spools.
I have a bit of experience with wrapping as I used to build balsa frame RC aircraft and would have to wrap the frames in heat shrink wrap similar to furniture and car wraps. The tricky parts would be the small arms and the inside of the cups, particularly the cups as you can't "shrink" the wrap into them as it would then bridge the span across the cup rather than stick to it.
Could you not have the windguage drive a small motor and measure the output to get the wind-speed and also trickle charge the battery from it. Equally could have small solar panels around outside - measure light levels and also trickle charge.
But large wind-guage onto small motor to self-power would be epic. Set and forget power usage always best.
You could probably measure the wind speed using a small motor if the voltage produced was high enough to be detected by the ESP32. I doubt that you'd be able to get enough to charge the battery with my size "blades/turbine" though, unless the area is really windy. If you designed a purpose built one with the intent to charge the batteries I'm fairly sure you'd be able to get it to work.
The solar panel is definitely a good idea though!
If you add a motor and take out energy, it will slow down the rotations, depending on how much energy you take out from the motor. So your wind speed measures will loose accuracy.
It is possible, but not optimal.
This is pretty cool! How does it hold up to rain/storms? Looking forward to updates!
We'll see, I haven't had any rain yet. The angles and sizes of the gaps in the sensor housing are all just guesswork at this stage, so there may be some issues with rain and/or wind.
@UCPNq-cWaMPccZydtyhMXGGQ also: ESP32+other circuit components can become really hot, while experimenting with some prototypes i have seen cases where the temp reading were 2-3-4C higher because of that. I would suggest you to put the Temp sensor on a spot far away from all the other components (best thing would be to put the Sensor on the bottom and the ESP/circuit on the top, since hot air goes up, so with the current design all the hot air inside the prototype is going on the top, right where the Temp sensor is...)
The ESP32 in this project is in deep sleep mode for 9.5 minutes of every 10 minute cycle. During this time the processor is powered down and no heat is generated. It doesn't have enough time in the 30 second data acquisition period to generate much (if any) heat, so this isn't really an issue for this particular project.
@@MichaelKlements I know that with DS it generates less heat, but still... I would swap their position from top/bottom just to be 100% sure that not even a 0.1 degree is wrong due to circuit's heat
Just a friendly suggestion, then it's up to you
is there a way to make it stores this data internally
You could write it to a microSD card rather
I'd be curious to know how the components hold up after a while outside. Does the 3D-print melt in the sun? do the electronics short out from water/moisture?
I'm also interested to find out, I'll be posting an update on my blog in a couple of months.
@@MichaelKlements Welp the humidity sensor is not really for outside use. I had it in my Bathroom and it broke after 5 months.
@@MichaelKlements on your place i would have placed the sensors in hot glue jackets.
@@haldir234 problem with enclosures outside is that they are HARD to get fully protected from water.
The risk is condensing water are getting trapped inside, so you always have to have some drains in lower parts, and might need a vent on top to ventilate out hot air.
A lot o materials. Any idea to integrade with esphome and home assistant??
great job!!
just missed the rain meter...
Thank you. Yes I'm going to look at a second assembly for rain and wind direction
@@MichaelKlements rain gauge can be done with a tipping bucket arrangement, where you count the number of tips with a read switch and a magnet in the tipping bucket under the funnel, so you get a known area that you collect the rain from.
See en.wikipedia.org/wiki/Rain_gauge
looks nice, but how is it weather proof? I have a Geiger Counter that I would like to build into one of these
Great video! i've always wanted to make a weather station and i just got my hands on a 3D printer...
the data you get with this can be used to make weather predictions?
That's great! Yes there are ways to make weather predictions based on metric trends - like a rapid pressure drop being an indicator of rain.
Lekker video m8
Thank you for the video. I`ll try to understand how the wind speed funktion is working with diameter and the rotating and instead of reed switch i would like to use a hall effect seonsr. But until now I couldnt solve the wind speed topic
You should be able to swap out the reed switch with a hall effect sensor without needing to change much in the code. The basic principle is the same for both.
@@MichaelKlements thank you for your answer. But i don`t get it with rotating diameter / pulse to calculate wind speed
Hi, iam a student of electronics, i have some dudes about the project, Can you help me?
Awesome!!!
I wonder if enough people did this as an open source community project, could we compile all the data to predict the weather
I guess in theory that's possible.
How did you end up calculating the required info for the anemometer given the surface area of the cups/length of arms etc give you huge variables?
I tried a range of calculations and they were all off, I eventually created a calibration table with lookup values based on another anemometer that I have (so calibrated it using another anemometer)
@@MichaelKlements ahhh the classic “need scissors to open the scissor packaging” conundrum! Thanks for the response :)
The other method I was considering was to ride a bike or car at a set speed with the anemometer and see what it read and then calibrate it iteratively until it was correct.
How do you protect the ESP32 board and even prevent the sensors from breaking down over time? Indoors is fine but outside in the winter how do you prevent wear and tear on the devices?
The ESP board is somewhat protected being in the bottom part of the case which is a bit more closed off. The sensors at the top are exposed to the elements and there isn't too much that can be done about that since they need to be. You could try some sort of spray on PCB conformal coating, but you'd need to protect the sensing elements first (can't cover them or block them). I'll see how they hold up over time but so far it's been running for over 5 months without any issues.
@@MichaelKlements Nice! I'm worried about degradation over time on sensors though. If I did that the sensors would wear out I guess? But I agree, they need to be exposed, that's what they are there for, lol Just trying to think if there is a way to protect them over say years of use so you don't have to replace the sensors often. And I guess you don't know if they are degraded until you have a reference to measure from too.
At which pin does your reed switch plug into the esp32 pin?
I'm Vietnamese, I'm not good at English. I hope you reply soon.
The pins and breadboard layout are shown in the guide linked in the video description
@@MichaelKlements thank you!! Can you show me the pinout of your esp32?
@@MichaelKlements I have a slightly different esp32 from your esp32 and i don't know how to connect my reed switch to my esp32.
It's Great !
Can i 3d print this with filament? Not resin?
You can, but you'd likely need to play around with the orientation and supports required for the rings around the sensor housing.
@@MichaelKlements I’m printing the wind meter thing right now. Supports maybe issue. Do you have any ideas on solar panels?
Have a look at my solar powered crypto mining video, I'd start with a panel and charge controller like that.
@@MichaelKlements ill definitely do that!! thanks, Michael. im still trying to figure out how to calibrate the anonometer.
Hmm. looks like what I type here is auto expunged if I include links? Let my try all that again... if you replace one of the anemometer cups with one that's 18% larger, and swap the reed switch with a magnetometer, you can measure wind speed (average frequency) and direction (magnetometer phase) at the same time.
p.s. spray it all (including the magnets!) with protective lacquer, and perhaps use ceramic bearings? All that stuff doesn't appreciate rain, and rusts really fast - if you're near the sea, the magnets and bearings will die in less than 6 months.
Here's the math on that 18% number: Drag coefficients for assorted shapes: www.aerospaceweb.org/question/aerodynamics/q0231.shtml
Sphere: 0.47 (or 0.45), half-sphere (nose on) 0.38 (or 0.8), half-sphere (flat-edge on) 1.17(or 1.42) - Asymmetric Anemometer; 1.18x larger half-sphere on one arm
Suggestion - use LiFePO directly (instead of lipo through the regulator) and use the ESP32 pins to power down the bits you're not using when sleeping... you might find that the huge sleep powerdrain is the regulator mostly...
Hi Chris,
That's an interesting concept, I'd definitely like to try it out. I understand the general principle of what you've described, but do you have any links for articles or projects where someone has managed to get something like this working? Or does this already exist in an off-the-shelf product that you know of?
Thanks for the other tips on the bearings and battery etc., this is my first outdoor weather station so there's definitely a lot to be learned.
@@MichaelKlements I built one myself about 22 years ago(!) - using the inside of an optical mouse in place of the magnetometer (with one of the slots blocked out so I knew which one was the big cup). Worked awesomely. I converted the time-between-pulses into a sine wave back then, which will already be the same output as a magnetometer will give you today. For you - counting the average time for a few revolutions will give you wind speed. To figure out direction, I simply created 360 imaginary sine curves (each shifted by 1 degree of phase), then used "least squares" to find which one matched my input best for the direction. I do not know any commercial products doing this. I did hear of someone who added a "tab" (instead of making one cup bigger) to get the same solution about a decade ago.
I'm in the middle of making one myself (work-commitments permitting) - it will use LoRa to transmit the wind from my favorite paragliding site... so I have other things to worry about: birds landing on it and wrecking things (they're heavy with sharp claws, and managed to "bend" my spike I added out of the way last time I tried), sea-spray ingress, sun damage, as well as theft and vandalism (I'm going to try and make it look like "art" to hopefully discourage vandals, and add a light so it's useful to people passing at night too - it's on an existing sign pole at a beach entrance, which is otherwise unlit). If you use solar, remember that the garbage epoxy the usually are encased in self-destructs in the sun after about a year too... I'm using eneloops (NiMh LSD cells) for my power - so far, after 3 years, they're still working fine in the sun (for just the light part - not finished the anemometer yet). I drowned them in circuit board lacquer which has so-far kept the rust at bay.
Hope you're okay
Do you have anything to correct the light data? I mean my weather station light sensor is directly facing the sky.
I'm not really sure what you mean by this, is that not what you would want?
@@MichaelKlements It seems like the plastic would ruin the readings, Would you think that having the light sensor pointing at the sky directly would make the light sensor data more accurate?
The light sensor is within the vented area, with gaps between the rings, and the resin is thin enough that it is very well illuminated within the housing. It would likely be more accurate being directly exposed to the sky, but then there are other issues like rain and moisture. It's also just a numerical representation, it's not an actual lux reading.
@@MichaelKlements thanks
Nice project. How do you calibrate the anemometer? Thank you!
calibrate with another windspeed sensor
It seems the easiest way is to do it with a known wind speed like sticking it on the roof of a car, or riding on a bicycle at a given speed on a still day. You'll then need to adjust the timing in the code so that you get similar results to the test.
Hallo, was ist das für ein Lötkolben.
It is a TS100, there's a link to it in the video description.
Ist das ein deutscher Dialekt? Wo lebst du?
It's South African, but I live in Australia.
@@MichaelKlements Im "EEVblog Land"...? Du sprichst also gar nicht deutsch und lässt das von Google übersetzen? Woher kommt dann der deutsch klingende Name?
Yes I use Google translate to help out. I can read a bit of German as there are some similarities to Afrikaans. My grandparents were German, hence the German name.
weather station, not waterproof = trash