Google Analytics

Friday, March 28, 2014

Home Security System - update

Previous      Next      TableOfContents

STATUS
It's been a while since I published an update to my project.  Seems I have too many projects!

Recently, I started this project back up.  I've made a lot of headway in programming the project in Python, with major changes to the architecture.

Here's the status as of March 28 2014:

  • It's still slated to be deployed on a Beagle Bone Black (B3)
  • It will follow a MVC (Model View Controller) paradigm.
  • The GUI display will utilize Kivy. 
  • The three major components:
    • The portion that runs on the B3 will be the portion that is responsible for monitoring the sensors.
      • The code for each sensor will run in its own thread.
    • The GUI will run distributed across a network, both local as well as Internet.
    • The Controller will run on a desktop machine.  It's currently running on Ubuntu, but since it's Python, it should also run on Mac and Windows.
    • The logger will run on the desktop machine.
    • It will support multiple monitoring nodes.
I have been actively working on this, making a lot of headway.  

TOOLS

plantuml.com
At one point, after taking a couple of days off, I realized rather than reorienting myself to the code through manually walking through the code, I should put together some Sequence Diagrams.  So at first I had drew these, but after having to update them a couple of times, I started looking around for something better suited to this task, while being free and lightweight.

I settled on 'PLANTUML.COM' for this activity.  I highly recommend it!  Now, I just keep a text file open, where I add the sequence of messages as I change the code, run plantuml tool against it, which produces a PNG output file.  This has enabled me to return to the code much faster whenever I take some time off.

Kivy
The first attempt was using TkInter, but after taking some time off and returning to this project, I wanted to take a look around and see what might be new.  I came across Kivy.  After a deep dive, I decided this was the path I was going to take.  I've been reading the following books (in addition to the kivy.org documentation):
  • Kivy: Interactive Applications in Python (Roberto Ulloa)
  • Creating Apps in Kivy (Dusty Phillips)
Of the two books, I prefer Dusty's book "Creating Apps in Kivy"

More later!!!