Recent Articles
How to make your own cheap weather station
14.5 years ago cheap, freezing, last frost date, thermometer, weather station 3 Comments
Though the prices for personal weather station have dramatically dropped (around $100) over the past few years, I decided to work on making my own. The primary measurement I wanted was temperature given this is the specific one that could be dramatically different from my neighbors (or neighborhood weather station) given the many unique microclimates your yard can have.
Step 1: Create an account and weather station at Weather Underground. This will allow you a place to view your weather station results as well as a permanent storage location for your data. After you have created your account it is really easy to create a weather station after clicking this link you just need to enter some basic information such as address and time zone click “Submit” and you have yourself a weather station. Now this is not very exciting unless data is being updated so we will look at this next.
Step 2: Get some data. Hear is a point where you can go all out with every weather measurement sensor imaginable, though if this was your intent I would recommend saving some money and getting a personal weather station
, but in my case all I really wanted to track was the outdoor temperature. To get this temperature I used a DirectTemp USB waterproof temperature probe from Quality Thermistor, Inc. All you need to do is plug this into an open USB port and with some simple serial communication you can start getting temperature results. This can easily be done using a language like C# with just a few lines of code:
SerialPort serialPort = new SerialPort(“COM5”, 9600); serialPort.Open(); serialPort.WriteLine(“2”); double responseValue = Convert.ToDouble(serialPort.ReadLine()); serialPort.Close();
You could also use something similar to my homemade waterproof digital thermometer and an arduino to get your outside temperature.
Step 3: Log your results. WeatherUnderground makes submitting data to them very easy. All that is required is a specially formatted query string request which you could do in any internet browser…though updating this manually every 5 minutes would be very tedious this is how can do this also using C#. All that is required is to replace the “ID” with your weather station created in Step 1 and your password used when you created your account.
string submitUrl = “http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?action=updateraw&ID=KWAREDMO38&PASSWORD=[password]&”; submitUrl += “dateutc=” + DateTime.UtcNow.ToString(“yyyy-MM-dd hh:mm:ss”) + “&”; submitUrl += “tempf=” + GetOutdoorTemp(); // Using code above WebClient webClient = new WebCLient(); webClient.DownloadString(submitUrl);
Now by calling the above code every 5 minutes using an infinite loop with some delay you can now log your temperature results and have current and historical data to have some better info to better guess your first/last frost dates or when it is safe to bring out your tender seedlings you are growing indoors.
Step 4 (optional): Leverage external weather data. As you may have noticed my weather station has more weather data than just temperature. I did this by leveraging (nicer word than stealing) some data from a weather station at a school in my neighborhood. Now this is not quite as accurate as if I was getting this information from my backyard…it is pretty safe to assume that the humidity, rain, and wind velocity and direction should be pretty much in the same ballpark. The process is pretty simple here where I extract this from a request to the external weather station and include these into my submission, which you can see in the code sample below.
1: using System;
2: using System.IO.Ports;
3: using System.Xml;
4: using System.Net;
5:
6: namespace WeatherStation
7: {
8: class Program
9: {
10: private static WebClient webClient = new WebClient();
11:
12: static void Main(string[] args)
13: {
14: while (true)
15: {
16: SubmitWeatherInfo();
17:
18: System.Threading.Thread.Sleep(300000);
19: }
20: }
21:
22: public static void SubmitWeatherInfo()
23: {
24: string submitUrl = "http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?action=updateraw&ID=KWAREDMO38&PASSWORD=[password]&";
25: submitUrl += "dateutc=" + DateTime.UtcNow.ToString("yyyy-MM-dd hh:mm:ss") + "&";
26: submitUrl += "tempf=" + GetOutdoorTemp() + "&";
27: submitUrl += GetExternalWeatherData();
28:
29: webClient.DownloadString(submitUrl);
30: }
31:
32: private static double GetOutdoorTemp()
33: {
34: SerialPort serialPort = new SerialPort("COM5", 9600);
35: serialPort.Open();
36: serialPort.WriteLine("2");
37: double responseValue = Convert.ToDouble(serialPort.ReadLine());
38:
39: serialPort.Close();
40:
41: return CelsiusToFahrenheit(responseValue);
42: }
43:
44: public static double CelsiusToFahrenheit(double temperatureCelsius)
45: {
46: return (temperatureCelsius * 9 / 5) + 32;
47: }
48:
49:
50: private static string GetExternalWeatherData()
51: {
52: string externalWeatherStation = "http://api.wunderground.com/weatherstation/WXCurrentObXML.asp?";
53: externalWeatherStation += "ID=[ExternalWeatherStationId]";
54:
55: XmlDocument xmlDoc = new XmlDocument();
56: xmlDoc.LoadXml(webClient.DownloadString(externalWeatherStation));
57:
58: string externalData = "&winddir=" + xmlDoc.SelectSingleNode("//wind_degrees").InnerText;
59: externalData += "&windspeedmph=" + xmlDoc.SelectSingleNode("//wind_mph").InnerText;
60: externalData += "&windgustmph=" + xmlDoc.SelectSingleNode("//wind_gust_mph").InnerText;
61: externalData += "&baromin=" + xmlDoc.SelectSingleNode("//pressure_in").InnerText;
62: externalData += "&humidity=" + xmlDoc.SelectSingleNode("//relative_humidity").InnerText;
63: externalData += "&dewptf=" + xmlDoc.SelectSingleNode("//dewpoint_f").InnerText;
64: externalData += "&rainin=" + xmlDoc.SelectSingleNode("//precip_1hr_in").InnerText;
65: externalData += "&dailyrainin=" + xmlDoc.SelectSingleNode("//precip_today_in").InnerText;
66:
67: return externalData;
68: }
69: }
70: }
Using leaf mulch in your garden for weed prevention
14.6 years ago garden maintenance, leaves, mulch, weed prevention, weeds 1 Comment
Above is unfortunately what my vegetable garden looks like, still have some cilantro, bunching onions, bulb onions, garlic, broccoli, and spinach growing but obviously I have a blanket of tiny weeds emerging with large amount of rain we have been getting. This gives me a few options:
- A. Painfully pull every weed from the garden bed…repeat
- B. Give up on my plants and just lay down some black plastic or cardboard to smother the weeds
- C. None of the above
I am going to opt for “C” on this one and go with an alternate method of applying a mulch that I am sure many of you have an abundance of at the moment…leaves.
Now you don’t want to gather your leaves and dump them on your garden bed, you need to shred the leaves. There are a couple of reasons for doing this. First it reduces surface area which allows for faster composting when you eventually work this layer into your soil next spring but also reduces the drag on the leaves to keep most of the leaves actually in your garden bed. Second this will restrict weeds from emerging, but allows leaves from emerging garlic and onions to make their way through.
Now you know why you want to shred them, now this is how you do it. Spread out your leaves on your lawn and use your lawnmower (with bagger attachment) and run over them with half of the width of your mower at a time. Now you should a nice bag of shredded leaves. You want to keep grass clippings to this mix at a minimum but a small percentage will not hurt anything.
Now take handfuls of your freshly shredded leaves and spread as a 1/3 – 3/4 inch layer over your vegetable garden. You can help out some of your less established plants by brushing off any leaves directly on top of the plants. Finish by giving the leaves a nice watering to help with the matting down process to keep the leaves in your bed and not blown all around your vegetable bed by the wind. It was raining while I was mowing my leaves and applying them so I skipped this particular step.
Using this technique you should be able to start you gardening next spring with minimal weeding, some great partially composted organic matter to work into your garden, and as an added bonus some protective mulch for your winter veggies all with materials most of use send off in our yard waste bins.
Pumpkin with 259,764J of energy smashing a car
14.6 years ago pumpkin 13 Comments
For most people watching a pumpkin dropped on a car from a crane is good enough…though the scientist in me wants to know how much force did this pumpkin have on impact. If I have you curious as well I did the math below…
WARNING MATH/PHYSIC CONTENT!!!
UPDATE: It has been too long since I have thought about physics…thanks for the corrections to my incorrect memory of Weight/Mass in the comments…calculations have been updated.
The easiest way to calculate this is to simply calculate the kinetic energy of the pumpkin with the following formula:
KE=(mv2)/2
First to determine the mass…for a pumpkin that weighs 1169 pounds that converts to 530.2 kg.
Next we need to determine the velocity of the pumpkin. Since in the video they do not say the height I am going to do an estimate of 50 meters given the cars and people look pretty small when the pumpkin is released. By neglecting wind resistance (because I am too old and tired to think about differential equations again) this I can calculate the velocity of the pumpkin right before impact by taking the square root of 2*9.80665*50 to get 31.3 m/s or 112.7 KPH or 70 MPH.
Now I simply plug in these numbers to find the kinetic energy:
KE = (530.2 * 31.32) / 2
KE = 259,764 joules
Just to put this into perspective here are some other events to compare to:
Event | Joules of Energy |
Swinging of a baseball bat | 80 J |
Shooting an elephant gun | 1200 J |
Shooting an M16 gun | 1690 J |
Exploding 1 gram of TNT | 4184 J |
Dropping a 1169 lb pumpkin | 259,764 J |
Have a happy and safe Halloween
Making a pumpkin pie from scratch
14.6 years ago halloween, pie, pumpkin 14 Comments
While out picking out pumpkins for my daughters I saw some nice organic heirloom pumpkins (Winter Luxury Pie) and decided to try my hand in using a couple of these to make a pumpkin pie instead of using canned pumpkin. One note make sure you are using a pumpkin labeled as a sugar or pie pumpkin, using your standard jack-o-lantern variety will lead to very watery and less velvety pie. So in the end, not only does this give you a better tasting pie, but given a organic pumpkin cost $6 a can you also save quite a bit of money with just a little additional work.
Step 1: Clean the pumpkin. Use a little water and scouring pad to remove loose dirt
Step 2: Remove stem and cut pumpkin in half. This will take a little muscle to get through but using a serrated blade should make quick work of this little pumpkin.
Step 3: Scoop out seeds and innards. Using an ice cream scoop scrape out the seeds and the stringy innards, you don’t have to get this completely clean as you can see below. I also decided to save a few seeds with hopes to grow my own sugar pumpkins next year using the seed saving techniques I have wrote about last year.
Step 4: Cut the pumpkin into smaller equally sized pieces. Once you have all the seeds and gunk out slice up the pumpkin halves into several equally sized pieces.
Step 5: Cook the pumpkin. Places pieces in a casserole dish and cover with top or if yours are overflowing your largest casserole dish like mine you can simply cover the dish with a piece of aluminum foil. Place in a preheated oven at 350F and cook the pumpkin for 45-90 minutes. The pumpkin is done cooking when you can slice through the pumpkin flesh with an edge of a fork with almost no effort.
Step 6: Blend. Use a large metal spoon to scape the pumpkin away from the skin and place into a blender and blend until smooth. If you have a very dry pumpkin like mine you might need to add a little water to get a good cortex going like above.
That is it. With my 5 pound pumpkin I purchased for $5 I got 6 cups of pumpkin puree, which is enough to make 3 pumpkin pie or 6 loafs of pumpkin bread and if my math is right about $30 compared to buying the canned variety. After making a pie and a loaf of pumpkin bread this left me with 3 cups of pumpkin goo, which I put in 6 half-cup containers which I froze to make some more pie for Thanksgiving.
Pumpkin Pie Recipe
Ingredients
- 2 cups of pumpkin puree (see above)
- 12 oz. can of evaporated milk
- 1/2 cup of brown sugar
- 1/3 cup of white sugar
- 1/2 teaspoon salt
- 2 eggs + 1 egg yolk
- 2 teaspoons cinnamon
- 1 teaspoon ginger
- 1/4 teaspoon nutmeg
- 1/4 teaspoon cloves
- 1/2 teaspoon lemon zest
Directions
- Mix sugars, salt, spices, lemon into large bowl. Beat in eggs then pumpkin puree. Finally add the evaporated milk and whisk until thoroughly combined.
- Pour mixture into chilled pie shell and make at 425F for 15 minutes. After 15 minutes reduce temperature to 350F. Bake 45-50 minutes, or until a knife inserted near the center comes out clean.
- Cool on a wire rack for 2 hours
- Note: If you are lacking some of the spices above…you can replace the spices above with pumpkin pie spice.
How to make cayenne powder
14.6 years ago cayenne, dehydrator, peppers 3 Comments
After letting my cayenne peppers ripen some more in the grow box I decided that this was good enough and decided to make some cayenne pepper for winter BBQs. The different stages of ripeness provides slightly different flavors, from what I have read partially ripe can give an excellent heat with a unique flavor. As you can see the color is also a little different than what you would typically think for for cayenne peppers. The process for this is very similar to making jalapeno powder with a few minor differences.
Step 1: Clean the peppers. Simply give them a quick rinse and a towel dry
Step 2: Cut off the stems (stocks).
Step 3: Remove seeds. This is an optional I chose not to do this for laziness but also to give my powder a little extra heat. To remove seeds slice lengthwise and scrape out the seeds carefully. Recommend gloves on this step to prevent burning eyes later.
Step 4: Cut the peppers in half. Again this is optional but I did this to speed up the drying time since I didn’t split them to remove the seeds
Step 5: Dry the peppers. These peppers are very tough and can handle almost any temperature for drying. You can go with the slower method by stringing them through the middle using some fishing line and hang them until dry. You can also dry them in your oven at 225-300F checking every couple hours for dryness (about 8 hours). I opted to use my dehydrator (12-14 hours) since I have one and I didn’t want to get up in the middle of the night to check them. Just like the jalapenos you want to dry the peppers until they are crisp and break when you bend them. Just as another warning be careful when handling these peppers even when dry, you still can get burned.
Step 6: Grind the peppers. Use a coffee grinder (or Magic Bullet with grinder blade like me) to a fine powder and store in an air tight container for about 6-8 months for best flavor but still can be used for 1-2 years with decent results.
Controlling my growbox with a mobile phone
14.6 years ago computer, electronics, indoor growbox, Uncategorized, windows phone 14 Comments
How many times have you been riding the bus and have been curious what temperature your computer growbox was running and if the plants needed to be watered? Ok maybe never, but I decided to solve this problem anyway. There is also no point in identifying that you may have a problem without having a way to do something about so I also implemented the ability to override the controls on the growbox by using a Windows Phone 7 application on your new T-Mobile cell phone or any other cool Windows phone.
Design
I made the design for this pretty simple, unfortunately I could not connect with my growbox directly using a mobile device because the computer is behind a firewall (which is a good thing) so I used machine that both the mobile phone and growbox can contact cheapvegetablegardener.com. After creating a quick web service with the following methods the growbox and mobile device could now talk to each other:
- SetStatus(StatusInfo) – GrowBox sets this status every minute
- SetOverride(OverrideInfo) – Mobile sets override to default functionality
- GetStatus() – Mobile Phone gets status
- GetOverride() – GrowBox checks for potential overrides requested by Mobile device
Mobile UI
Now I have the two devices talking here is the basic UI. The top half of the screen shows the growbox temperature, cpu temperature, and the moisture content. All of these statues change color (to yellow and red) as their values get to critical levels (too hot, too cold, too dry)
The middle section shows the current state of the growbox letting me know if the lights, heater, exhaust fan, and/or water pump are on or off. If a situation occurs where you want to override this state you can do this by simply clicking the status indicator.
The bottom part of the screen shows temperature and moisture levels over the past 24 hours. The graphs are rendered using Google Charts for simplicity though am thinking about creating my own custom solution to get the graphs just right. It also displays a current screenshot inside the grow box and you can transition between views with a finger swipe.
Screenshots
Temperature history graph | Moisture saturation history graph |
![]() |
![]() |
Overriding the heater setting |
Status screen following heater override |
![]() |
![]() |
Though this covers most of my required functionality, I still need to add some cool transition animations and some additional analytics, but thought I would share my current version.