Skip to content

Java application to manage house devices, their power costs and total output using jfree.chart

Notifications You must be signed in to change notification settings

jdandrade/internet-of-things

Repository files navigation

internet-of-things

Java application to manage house devices, their power costs and total output using jfree.chart

Final project for OOP (Object Oriented Programming) Class.

Some parts of the code/file-names are in portuguese because this Java program was initially made specifically for the OOP class and we had to meet some requirements.

Output

My image

How it works?

Basically this java program reads json files as input and creates a virtual world where all the devices are connected to a specific plug inside the house.

It gives us LIVE information about power costs (Watt) being used by those devices.

You can manipulate advanced devices (i.e Washing machine) that have some more advanced settings like Programs (with specific cicles).

How was it done?

Since it was made for the OOP class, it was done mainly by object creation/manipulation.

Lists were used to store Devices/Plugs/Rooms aswell as to manage Events(important for output because of order).

Output was done through jfree.chart library with the Observer design patter implementation. http://www.jfree.org/jfreechart/

Reading input from json files was done with the help of json-simple library. https://github.com/fangyidong/json-simple

How to use it?

Simple - edit json files with whatever settings you want:

  • instalacao.json -> Instalation (home)
  • aparelhos.json -> Devices
  • ligacoes.json -> Connections (where to plug in what)
  • eventos.json -> Events (when to turn On/Off - power up/down - cicles)

Then run Main.java @ bin/main/Main.java.

Left to do?

Need to clean code, finish class documentation and finish english translation.

About

Java application to manage house devices, their power costs and total output using jfree.chart

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages