Git Product home page Git Product logo

hermes's Introduction

Hermes

Documentation Status

The Hermes project uses a zigbee network, hence it works with zigbee protocol, and this requires interacting with low-level hardware.

Hermes

https://github.com/somosprte/Hermes/blob/master/img/logo-hermes-final.png

The Hermes project uses a zigbee network, hence it works with zigbee protocol, and this requires interacting with low-level hardware.

The idea of using python is because of performance, simplicity and ease of dealing with hardware.

In the initial design, we will have a Raspberry Pi, which would function as a server, connected to an xbee card in the USB port, the interaction via serial, and the idea is that Raspberry Pi, through its Wi-Fi network, provides a restfull service to that when requested the status of an X port dialogically type server/port1, there is the hexadecimal communication with xbee, so that it searches for this information.

Development

Before start, on GitHub, fork Hermes project (https://github.com/somosprte/Hermes)

So, on the root folder when the project should be cloned, type:

git clone https://github.com/<your-user-id>/Hermes.git

Environment

If you are using conda, before the code bellow, enter into the Hermes folder. Next, type the following commands:

conda create --name hermes python=3.4

source activate hermes

conda install --file requirements.txt

The Python interpret installed should be version 3.4, because this is the version used by Raspberry Pi 2 (armv6l), at this moment.

If you are using virtualenv (remember to use Python 3.4), on the Hermes folder, type:

virtualenv .

source bin/activate

pip install -r requirements.txt

To run the project, type:

python hermes.py

Start API

To start the api do:

python hermes.py

And to test it:

$ curl http://localhost:5000/todo1 -d "data=Remember the milk" -X PUT
{"todo1": "Remember the milk"}

$ curl http://localhost:5000/todo1
{"todo1": "Remember the milk"}

$ curl http://localhost:5000/todo2 -d "data=Change my brakepads" -X PUT
{"todo2": "Change my brakepads"}

$ curl http://localhost:5000/todo2
{"todo2": "Change my brakepads"}

(resource: [3])

References

[1] https://www.continuum.io/downloads

[2] https://conda.io/miniconda.html

[3] http://flask-restful-cn.readthedocs.io/en/0.3.5/quickstart.html

hermes's People

Contributors

pedrorenan avatar xmnlab avatar flaviolpgjr avatar diegotsi avatar

Stargazers

Guilherme Rezende avatar

Watchers

James Cloos avatar  avatar Clara Nobre avatar Charles Rockenbach avatar  avatar  avatar Elton Nogueira Santana avatar  avatar

hermes's Issues

Definição de padrões para o projeto

Para todo projeto, principalmente projetos open source, é fundamental utilizar padronizações.

Gostaria de propor a utilização de um template de projeto:

https://github.com/audreyr/cookiecutter-pypackage

Para os testes poderiamos utilizar o pytest (http://pythontesting.net/transcripts/2-pytest-vs-unittest-vs-nose/)

E podemos adicionar a verificação do pep8 também para que o código esteja conforme as especificações (https://www.python.org/dev/peps/pep-0008/) . Podemos fazer isso com a lib pycodestyle (https://pypi.python.org/pypi/pycodestyle)

Definição do escopo do projeto

@pedrorenan

Consegues escrever um documento descrevendo o funcionamento do projeto hermes na prática? Se puder alguns detalhes também ajuda bastante. Assim também todos que forem ajudar no projeto poderá usar esse doc para se familiarizar com o projeto.

Nome da biblioteca Hermes

@pedrorenan

Vamos ter que pensar em algum nome pra biblioteca Hermes.

no readthedocs já existe um projeto hermes: https://hermes.readthedocs.io/en/latest/
e no pypi também: https://pypi.python.org/pypi/hermes

em python o que muitos fazem é agregar py ou python no nome, ex:

  • pyhermes
  • hermespy
  • python-hermes

mas talvez seja legal agregar ao nome uma palavra chave que conecte ao negócio do projeto, ex:

  • hermes-telemetry
  • hermes-farm-connection
  • etc

inclusive podemos mudar o nome do projeto (nome da biblioteca) no github para deixar tudo com o mesmo nome.

Criar repositório para o site do projeto Hermes

Criar novo repositório para o site do projeto Hermes com o conteúdo da pasta docs.

Na sequencia, a pasta docs deverá ser removida e a pasta readthedocs deverá ser renomeada para docs.

Por último, o serviço do readthedocs deverá ser configurado.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.