interface & application programming
This week, we had to write an application that interfaces with a user. The inspiration for this week was pretty neat. There is something called Home Assistant which many hydroponic growers use to automate their vegetable growing systems. I am hoping to replicate something similar in the near future. That is a bit beyond my technical skills at this point, but I wanted to see how far I could get.



Back panel


Above is a picture of the back panel of my final project. The fan is connected to the left (and there is another fan connected in parallel on the other side). I thought that creating some type of user profile to "see" when the fans were on/off would be useful. This was easier than having the user actually control the system remotely.

I had to watch hours of YouTube videos to learn how to make an app. I had to choose between Swift (which seemed useful since I had an iPhone) or one of the maker GUIs that existed. I learned my lesson from past weeks that starting from the ground up can sometimes be overwhelming, so it's better to ease into a new learning environment.

There was one video that walked through the process of making a web-based "app" (if you could even call it that) that would allow you to control things over Wifi.

Web app

Although the Wifi example is for turning on an LED, it was simple enough to just treat that as the fan. I just changed it to the appropriate pin for the fan, and that let me go to website that could turn the fan on or off. I think I can modify the "SimpleWifiServer" sketch to make the UI a bit better.

SimpleWifiServer web app sketch.