IoT Application (The plan and documentation glossary)

Ok, so i am going to take the challenge to build a web based application to manage , view , and control data and devices for a smart home and garden. Furthermore i want to build the entire infrastructure of sensors myself.

I am super excited to embark on this journey , where i will combine software and hardware architecture , programming , practical electronics , blogging and so on.

Hardware prerequisite:

  • Raspberry pi 3 for the web application
  • Raspberry pi 2 for the MQ and database
  • A bunch of Esp8266’s to work in a publish/subscribe environment
  • Various sensors connectors etc

The reason i choose this setup is that i want to be as portable and versatile as it can get. And sure, most noteworthy, do to security issues that are now present in Iot applications i am thinking for starters maybe to be used in an intranet environment.

The esp is thrown in the mix for being cheap , supports a bunch of languages and combined with interface platforms is quite good.

Software/languages/frameworks approach:

  • Webserver
    • Raspbian lite as operating system for Raspberry pi
    • NGINX for the HTTP server
    • Python for backend with Django framework for serving pages
    • HTML , SASS , Javasript and various frameworks , libraries
  • MQ and DB
    • MariaDB for database
    • Eclipse Paho as MQTT message broker
  • Esp8266 and other hardware

I choose Raspbian due to its official support and that is Debian based. Meanwhile NGINX and Mariadb for being super powerful and a bit lighter.

Paho developers and its community are still very active, with periodic releases, therefore gets a strong point.

As for the Python with Django , python is mature , concise , highly readable,  has a nice and clean structure. With the help of Django which is also mature and well documented,  you can build a powerful, and scalable applications.

Some footnotes:

In conclusion, the aim with this project is mostly to learn , experiment , elevate my skills, have fun and so on. Better yet to be a proof of concept for a product of this kind. That being stated , anything can be subject to change , over iterations , due to the fact that was not ideal.

These posts serve as a personal documentation of the process and could be used as guidance for others to use in similar projects. Therefore some concepts are not explained and other are just referenced and linked to documentations , wikis or forums.

My local computer runs Ubuntu , so the documentation can get linux centric.

Finally, the entire project will be on Github and all the setup/build/program part will be documented , and presented / explained on this blog.

I look forward for feedback , discussions , ideas and soon enough code contribution.


Recommended Posts

Leave a Comment

Start typing and press Enter to search

Raspberry logo