I am Harsh, I have recently graduated as Electronics and Communication engineer. I am really interested in developing some iot projects for my home using raspberry and some embedded devices.
I am not an expert in coding as my course of study deals with complete electronic chip design, logic gates, memory, microcontrollers and stuff like that. I have worked on arduino and wrote some embedded C++ code. Apart from that I have a basic idea of how cloud and iot works but don’t know how to code for it.
I am thinking of Home automation project with raspberry pi and came across this Elixir and Nerve that can be used to develop an Embedded OS kind of thing or Firmware. My idea is to build an iot home automation system using raspberry which is connected to various appliances in house along with that it should also provide basic info like Temperature, humidity etc. Also Pi has to be connected to cloud like google firebase or something and the sensor data, security cams has to be uploaded on to cloud. The user can login to his account and access the data in cloud easily and also control the home appliances remotely.
I want know in what fields I need to have knowledge on to do all of this. Can it be done successfully using elixir and Nerve? Apart from this what is the other stuff I have to know about for creating a cloud and making cloud to work.
Also how to make an app where users can login and how to connect cloud in the back end?
Recently I came across Farmbot project which is built on elixir Nerve and various other apis. So will it be possible to make my project in to a product like that.
Please give your suggestions from where I should start and what all should I know?
Yes, what you want to do is definitely possible. I’d suggest starting to read the documentation pages of the Nerves website and projects linked there that you think you might want to use, as well as potentially browsing the hexpm package list for packages that might help you further (such as connecting to Firebase).
Both Elixir, Nerves and as far as I know also Firebase are abstractions that allow you to do a lot without diving too deep under the hood. So you can probably already do a lot without special understanding of cloud computing.
But in any case, I’d suggest starting out with somthing small, and then making it bigger once you get that working. This has two advantages:
- It is easier to decide what to work on at a given time, and when you finish a part it feels great (rather than finishing something but only looking at the hundred other things still on you TODO list)
- It makes it easier to ask focused questions. You current question is very broad, which makes it difficult to answer it in a clear and concrete manner. If you have a specific problem with a specific thing, then it is easier for people to understand if and how they can answer.
I hope this helps somewhat, and welcome to the Elixir community!
Thank you so much Qqwy.