Giter Site home page Giter Site logo

daparrag / pyot-iot-platform Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 20.29 MB

PyoT is a Web-Based Macroprogramming Interface for the IoT

License: GNU General Public License v3.0

Shell 0.23% Jupyter Notebook 0.46% Makefile 0.67% C 72.10% C++ 5.90% Python 3.87% Objective-C 0.16% HTML 0.19% JavaScript 1.58% CSS 0.19% Assembly 0.59% Awk 0.01% XSLT 0.02% Perl 0.44% Java 13.58% Batchfile 0.01% M4 0.01%

pyot-iot-platform's Introduction

PyoT

PyoT is a Web-Based Macroprogramming Interface for the IoT

  • Allows remote management of IoT-based networks
  • CoAP resources and 6LoWPAN nodes are abstracted as high-level Python objects
  • Provides a web interface to interact with CoAP resources
  • Provides interactive Macroprogramming, using the Shell
  • Resource discovery and indexing based on CoRE Resource Directory
  • Flexible event handling (automatic reaction when IoT resources send alarm notifications)
  • Asynchronous tasks performing communication with IoT nodes on PyoT Workers

PyoT Architecture

PyoT comes with some Contiki Cooja simulations for local testing. The examples included in the package require the gcc-msp430 version 4.7.2 compiler. Here you can find instructions on how to build the compiler. For simplicity a packer-based virtual machine is provided in the packer_pyot_vm folder. To build the VM just execute run.sh. The resulting VM can be loaded on VirtualBox and contains a ready-to-run version of PyoT, with all the required dependencies.

Requirements and manual installation (tested on Ubuntu 12.04)

Install general requirements:

sudo apt-get install python-mysqldb libmysqlclient-dev rabbitmq-server python-pip python-dev libcurl4-gnutls-dev graphviz libgraphviz-dev  libfreetype6-dev libpng12-dev

The next step will install python requirements, in a local virtual env folder, and build libcoap:

./a_install_reqs.sh

This command creates a local sqlite database and loads some preliminary data on it:

./b_install_db.sh

An admin user account is automatically created. Username: noes. Password: noes.

How to run the application

Start the web application:

./1_server_start.sh

Start the worker node in another terminal:

./2_worker_start.sh

Open a new terminal to start IPython Notebook interface:

./3_notebook_start.sh

Compile and start on the provided Cooja simulations. For the following steps I assume you have ant, jdk, msp430gcc and everything required to run a Cooja simulation already installed:

./4a_cooja_erbium_start.sh

The first simulation includes a set of simple CoAP servers with simulated sensors and actuators. It can be tested opening and executing the 'demo' notebook.

./4b_cooja_tres_start.sh

The second simulation includes a T-Res example. To test it just open and execute the 'T-Res' notebook.

Start tunslip, open another terminal and type:

./5_tunslip_start.sh

Open the Cooja simulator window and start the simulation. In a few seconds you should see the Host and Resource page populating with the nodes. The system will automatically perform resource discovery on the hosts.

Macroprogramming

  • Program group of nodes or entire networks as a whole
  • Easily control sensors and actuators
  • Support Synchronous and Asynchronous Semantic

The easiest way to test macroprogramming is through the IPython Notebook interface. You can find some example scripts preloaded on PyoT's Notebook.

Build status

builder build outcome
Travis unit tests Build Status
Code Health

pyot-iot-platform's People

Contributors

andreaazzara avatar bocci83 avatar fvdnabee avatar

Stargazers

 avatar

Watchers

 avatar  avatar

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.