It can be said that most of us wouldn’t be alive here on earth without the invention and production of synthetic fertilizers. Though it has been a bit taboo in current culture, fertilizers have a significant impact on crop growth and for the normal individual an answer to the questions “why does my garden suck”.
The problem most individuals have (and I think this speaks to a more general theme in life) is that they don’t measure/monitor their soil health and pH. Test kits can be purchased for ~5$ and they measure pH, nitrogen, phosphorus and potash which are all vital to having your plants thrive.
I did a test for a couple of my large grow barrels that have been neglected for a bit and got very low levels across the board with low N (nitrogen), K (potash) and P (phosphorus). To boost the soil nutrients I add a general 10-10-10 fertilizer where each number refers to its N-P-K content.
This is a particular favourite of my brothers which we first tried at one of my favourite restaurants. Naturally I tried to recreate it and fortunately allowed me to brush up on some of my food chemistry. The general process here is to juice the fruit, sweeten to taste, thicken with agar and puree to the desired consistency.
Pureeing Sea Buckthorn into a thin juice.Juicing yields.Juice is sweetened, topped with 0.5% agar agar and heater to 95c.Juice is cooled until gelled and then pureed into a “sauce”.Samples sauce trials with different textures. First from the left is a pomegranate chunky puree which textually is closer to a marmalade. Center is the sea buckthorn which is a more “goopy” texture and right is a thin lime sauce. Different agar concentrations and puree times allowed for the control over the texture of the final product. More agar led to a thicker product and less puree time created a more chunky texture.
I have noticed that my water appears to run hotter in the morning when I get up vs later on in the day. In truth this is probably due to relative temperature where in the morning I am colder and so things appear warmed but I still wanted to find out how much my water temperature changed throughout the day if at all.
Looking at the temperature profile throughout the day I saw some interesting spikes that occurred like clockwork at 5am. Breaking this into minitab and looking at the temperature intervals vs hour we find that there is indeed a statistically significant difference in the morning at 5-6am vs later on.
The cause is most likely that I have my heating turn on at this time and this is likely heating up the water in the pipes leading to this rise in temperature and thus leading some credence to my theory that the water is warmer in the morning. Of note the temperature sensor is on the outside of the pipe so potentially I am seeing the warm air heat up the sensor rather than the actual water but I used thermal compound to make good contact with the pipe and it is copper after all so thermal conductivity should be good.
6 months ago I came along the desire to understand what my incoming water temperature is and how it varies over the day. As a part of this I have mounted a temperature sensor to the outside of my incoming mains water pipe and found some interesting results. Now though I understand that I am not measuring the actual internal water temperature being that this is a copper pipe I am getting a fairly close approximation.
A big result of this was my post http://192.168.2.65/data-analytics-and-finding-out-when-you-shower/ in which I investigated my ability to find when I shower based on water temperature. This is a quintessential process engineering/controls engineering problem where my desired measurable is unable to be measure and so I have to measure a separate variable that is “joined” to my required measurable and go based off that. Granted, in a big company you can buy a sensor for anything given you have the money but this is a good example for the process control on a budget.
I had an interesting theory mid year in 2022. The though being that you should be able to theoretically find out when you shower based on measuring the temperature of the water mains line (talk about shower thought).
The theory is simple, if the incoming water temperature is not at the ambient temperature (ambient being not real ambient but rather the temperature between the wall and concrete of the house), then you can tell if there is a change in flow rate by a change in temperature. This is based on the fact that if there is no flow, the water pipe temperature will reach equilibrium with the environmental temperature and any flow from this point will lead to a change in temperature.
I strapped a temperature probe to the outside of my water mains over the last 6 months to better understand this and have found very compelling results. In fact the latest trails today proved out my exact theory.
In the chart below you can see a few different stages over the morning. The first is when my heating comes on in the morning to heat up the house when I wake up (temperature set point is set to 21.5C in the morning so I wake up to a warmer house). I then started to shower at about 6:50am which resulted in an almost immediate drop in incoming water temperature leading credence to my theory. Once I finished my shower the water temperature began to stabilize again and I notice another suspected shower event where the water temperature shot down again once again leading to my theory of being able to identify showers based on water temperature.
The big learning lesson from this is that you may not always be able to measure your desired measurable but in any process there are always a lot of intertwined variables. Here we may not be able to measure direct water usage but we can measure changes in water temperature with the assumption that these are coming from large volumetric flow rates.
I recently purchased a vacuum filtration setup with a Büchner funnel and a vacuum pump for ~50$ in an effort to speed up some of my kitchen filtrations. I didn’t buy any filters and opted to use coffee filters instead as a cheap alternative. Initially this equipment was a success for most fruit juices (apple and peach) but cactus juice posed a significantly large problem. Due to its viscosity and polymer like nature it took a much longer time to filter but still proved effective.
I have been playing around with automatic aquarium feeders for close to 5 years now and have finally had a chance to make my own custom feeder designed specifically for the Fluval flex tank. It has been a fun journey where I was able to practice everything from soldering, 3D design to software development.
To Start
I started off with an off the shelf “dumb” feeder that is battery powered and has a automatic feeding function every 12 or 24 hours. This won’t do for me as I like fine grained control and batteries have a habit of failing at the worse time.
To solve this I used one of my 5$ NodeMCU controllers so I can 1) have this powered over USB, 2) set custom feeding programs and 3) to be able to control this over the internet.
For the power I simply soldered the 3V power from the NodeMCU into the automatic feeder and it worked without a problem as there was already a power conversion circuit on the feeder. As for the button that was a bit more fun.
Using a multi meter (in diode mode) I reviewed the switch contact pins that would cause the feeder to start a feeding cycle. I then soldered a transistor across these pins so that when I turn the transistor on I can simulate the physical button being pressed and start my own feed cycle. This way I still have all of the original functions of the feeder (most importantly position sensing so it returns to the correct position) but I now have full control over its use.
The last part of this was writing code for the NodeMCU controller which was a bit complex as I decided to implement the option to do multiple feed cycles and track last fed time so I can setup alerts for any feeding errors. For the multiple feed cycles I created an API for the controller that can take any number of feed cycles based on URL get parameters. For example in the URL below I have feed_cycles=1 so it would do 1 cycle but I can equivalently set this to 2 or 10. Additionally I set a hard coded password in the API so it is not accidentally accessed. This is all on an internal network that has no open access to the outside world so should not be a problem.
Now that the brains and function were all setup I set on figuring out how to actually mount it. As I have the Fluval flex aquarium that come with a lid there aren’t any standard automatic feeders that would fit so I knew I had to make my own 3D design.
I am definitely not an expert in 3D CAD design but as a certified “Jack of all trades” I know enough to get me by. I went through 5 revisions to get all of the sizing correct and in the end had a functional product. The 3 main features are a lower lip that is sized to fit in my tank’s lid, a ledge for the aquarium feeder to mount to and angled edges to ensure fish food ends in the tank.
I printed all of these on my faithful Elegoo Mars and within 3 hours had a functional product.
Summary
In summary this was a fun multi disciplinary project that allowed me to make something that doesn’t exist on the market.
Reasons why my feeder is better:
USB Powerered
Wifi Enabled
Custom Feeding Schedules
Alert Emails On Missed Feeding Schedules
Control Over How Many Feed Cycles per Feeding
Fits On The Fluval Flex
Mess Free (the flakes in the picture are there because I spilled some during the mounting process)
Home Made With Love
Additional notes: part of the reason why I went through all of this effort was due to wanting a tank with a lid on it. Living in the KW region I have very hard water and an opened tank looses to much water to evaporation leading to unseemly calcium buildup. A lidded tank reduces evaporation and enables a generally more easier life. Additionally next steps include weighing an average feeding cycle to understand the distribution and then start feeding my fish based on their weight.
I have a sunroom attached to my house which is a fantastic place in the summer except it can get exceedingly hot at peak hours with temperatures reaching up to 36°C. To combat this I installed a 300 CFM exhaust fan in the roof and added a programmable timer to turn it on at peak hours.
The installation was fairly easy though I did have to manually switch the polarity on the fan to reverse the flow. I mounted it at the ceiling so it pulls the hottest air out.
Looking at the temperature throughout the day you can clearly see where the fan turns on and drops the temperature an astonishing 6°C.
Sunroom temperature throughout the dayMounted exhaust fan
This has been a pretty fun project and is a recommended solution to managing heat in sunrooms. Next steps will be setting up a controller for this to dynamically have it turn on when temperatures are too high rather than just at static times.
I wanted to share some of my person dashboards that I run off of Power BI.
The first one is my aquarium monitoring dashboard which I use to monitor my KPI. Now its been a while since I did a water change so you can see my TDS is out of spec and I recently moved my turbidity probe to a more appropriate location to properly manage the tank. I have 3 quick cards to see if I am green or red and then further charts to show daily variances and the time series trend at the bottom. I have some alerts that go out when I go out of tolerance but as can be clearly seen I don’t necessarily change my water immediately. (Before anyone freaks out, I have a heavily planted tank so I have a healthy equilibrium that allows me to do infrequent water changes).
Next I have my temperature monitoring dashboard that I use to track 3 main temperatures: my room temperature, my sun-room temperature (and by extension my outside temperature) and my server rack temperature. There is not much to note but I do use the server rack temperature to ensure good operation of equipment. I don’t want to run my server to hot as that my cause early device failure.
Lastly I have my power monitoring dashboard, where I track my desktop computer, server rack and fridge temperature. I track my desktop power usage to understand costs associate with use and to track GPU mining profitability. Server rack power as an important one as well as server hardware is known to be a big power draw. I spent a fair bit of time optimizing power usage and this dashboard was important in tracking those changes.
Overall I have much more work related dashboards but these are the ones I run on my personal Power BI workspace.
I was very happy to get my Dell R530 for what was effectively a steal up until I heard it turn on. For those that have never heard any server turn on, it is close to an airplane turbine spinning up (I am not kidding, my server fans can reach 15K RPM).
Now of course it promptly idled down but the problem I had is that it was idling at around 20% (3000RPM) which produced a noticeable hum that could be heard 2 floors up. There are some extenuating circumstances as I had added a few PCIe devices that cause Dell to compensate but that is aside from this.
A background note on fan curves and how computers stay cool. Dell servers have a fan curve which dictates the PWM output % for the system fans based on the air temperature. The problem is that these servers are designed to run with cold refrigerated incoming air in datacenters and in my condition 20c ambient translates to 20% fan speed and it is hard for me to go lower.
In a weird twist of worlds the consumer space already had a solution for this: the custom fan curve. In the consumer space, end users are able to adjust the original fan curve to what is best for their use case instead of being forced into the OEM curve.
To do something like this on a dell server is a bit more difficult though. I had to borrow from a github project where the host machine measures cpu temp and then issues IPMI commands to manually set a speed. Through this we can make a makeshift fan curve and I have shown mine below. This curve is a more user-centric where under idle conditions (<40c) fan speeds are relatively low and only ramp up when needed. This provides a good balance of thermal performance under load and loudness at idle.
Now the server is not bothering anyone at idle and I don’t have to worry about over temperature while under significant load.