Spoiler alert! ;)
Hi guys! My first week of the contest is passing right now and I still didn’t tell you anything about my project. ;)
I have to admit that a few days ago I changed the scope and technology completely. At first I didn’t really have any solid idea – I was thinking about implementing a wedding planner site, but I was repelled by the thought that the success of this project would strongly depend on my frontend skills. I hate frontend. I guess this is because of my lack of knowledge in that field, but every time I need to do some styling (for example for some server administration panels at work) I just use bootstrap. I love bootstrap, it’s perfect. ;D. I don’t mind coding with React and Redux for example, but I just do not find fascinating fumbling with HTML and CSS. I had fun with it when I was like 13 years old and I bought myself a book about HTML. I would randomly delete parts of the site’s source and look what’s changing.
One of my biggest discoveries was that sometimes I deleted parts and nothing changed so – these weren’t necessary at all! ;D Haha, I just browsed WaybackMachine and found a trace of my first website – isn’t it beautiful? :D Its 2005 so I was really 13 years old back then.
I created this piece of art so that my friend and I could have a public place to share our book (yes, we were writing a book together – and we did finish it and it makes sense! ;d ).
My other idea was an Android app for keeping my receipts that are needed as proofs of purchase. I may seem as a picky person, but I also kinda don’t like Java. Firstly, I really love C# and Java is just a worse version of C# for me (sorry!). Secondly, I had really terrible Java classes during my IT studies.
Speaking of C# - my final idea was to create socket server for synchronous multiplayer. At work I’m creating and maintaining game servers, but only database ones, so that is not really exciting that much. I had some adventures with UnityNetworking – my bachelor project was using an older version of that and it was a nightmare. My second adventure was with the new one, several years ago at a game jam, when there was almost no official documentation yet. It was a nightmare too. So this time I wanted to try to create my own socket server. I’ve used sockets only on Linux, when I was writing school projects in C and I have to admit that I enjoyed it. So, I made a decision and filled out a form for the contest.
When the time has come and I finally decided to do something to start the project, I just did not feel like it. I sat at the keyboard and thought about opening Visual Studio and Unity, just as I do every day at my work. I realized I’m not gonna make it with such low level of excitement and motivation. I still had a few days until the possibility of contest profile edition would close, so I asked my fiance if I could help him with a RaspberryPi project. I bought it for him over a year ago as a present and he would constantly mention things he would do with it, but he only installed a media center and a firewall thingy. And this is how we came up with the project – AmbientWeather. When I think about it my heart starts to beat faster, really. I’ve never done anything so close to the electronic stuff.
Today I was soldering for the first time. And I really liked it. ;d
The idea is simple and I’m sure you could show me plenty of ready solutions, but fuck that, I wanna have some fun too. My fiancé is gonna help me with the hardware stuff, so chances that I will burn something are really small. :)
The project will consist of several independent components, which together should make a room to completely reflect time of day and the weather outside. So the first component will be - of course - a server (microservice?), which will download the data from AccuWeather (well, this one is pricey, so I will use OpenWeatherMap). It will then propagate the data to the other components, which communicate with the hardware elements via pins.
So, the features list:
led strip acting as a thermometer – so I will just open my eyes and see a 5 meter long temperature indicator on my wall :). This is the first thing that I will create.
automated shutters – according to the daily – updated sunset and sunrise times I will fire little stepper motors to close the shutters off and on. Isn’t it like super useful and cool? :D
another led strip acting as an ambient light, reflecting the current weather conditions (rainy/cloudy/sunny and so on).
These are all core features.
When I will have these ready, implemented and working, I will think what to do next. Some of the ideas:
a smart light bulb, that would change its color and lightness according to something (I would like to just have control over it),
camera to turn off these features when nobody is in the room,
[LEVEL HARD] camera recognizes at which part of the room there are people currently and switches off and on proper lights,
smog indicator (would need integration with another API) – maybe the indicator would be that bulb from point one?
I am really comfortable with this plan. Core features are fun and totally doable. No real rocket science, but for me it will be challenging and exciting. All of these are also things that I will totally enjoy having in my room. Automated shutters are the thing that I actually need, as my bed is standing right next to the window and it’s hard to close and open them manually. But, the greatest bonus – this is something that I can do together with my fiance, which is really great! Of course, I will be coding on my own, but he handles all the rest – hardware, power management, how to connect all of these elements.
The first week passed, so here’s what I’ve done in my project:
- SHOPPING TIME! ;d
- hardware prototype – credits for Tomek, but I also helped!
server in Typescript and Node.js base, similar to the one I’m creating at work, I hope I will share some useful experience considering that part of the project (I have no experience considering all other parts <3 )
basic tests of the library for steering all these led lights,
basic test of running stepper motors from the command line, cute little thingies. ;)
Only one week passed, nothing really useful is working, but I already had so much fun! :)
Little note: as I’m taking part in the contest for the second time and last time I focused mainly on writing posts, not on the project, this time I want it differently. This is why there might be some mistakes in the text, as I’m not correcting it as carefully as usually. Forgive me that. I will gladly correct any mistakes pointed out by you! :)comments powered by Disqus