Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Internet of Arduinos

Internet of Arduinos (IoA for friends :) is an Internet of Things Python framework where "Things" are Arduinos, or other MCU controlled devices.

It's in a very early development stage, for now it supports basically HTTP(S) REST to Serial communication.

This framework is developed as pyDev project, so you can easily import it in Eclipse.

Here is a demonstration video: Python Internet of Arduinos


  • configurable HTTP server
  • configurable serial connection
  • HTTP and HTTPS REST API support
  • configurable REST API endpoint
  • built-in Python certificate generator
  • JSON response
  • directly returns serial received data


You need to install the following Python packages in order to execute IoA:

$ pip install
$ pip install pyOpenSSL
$ pip install pySerial

You need to be sudo on Linux.

If pyOpenSSL fails to install on debian based Linux distros with error:

error: Setup script exited with error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

you'll need to install these:

$ sudo apt-get install libffi-dev
$ sudo apt-get install libssl-dev
$ sudo apt-get install python-dev

How to use

Before execution you may want to look at configuration file in order to change something.

Here is an example of config.xml:

    <?xml version="1.0" encoding="UTF-8"?>
			<network port="8080" hostname=""/>
			<url path="/2serial" parameter="data"/>
			<!-- <ssl certificate="../../myapp.crt" key="../../myapp.key"/> -->
		<serial port="/dev/ttyACM0" speed="9600" wait_for_response="True"/>

To execute the web server just launch with:

$ PYTHONPATH=/path/to/IoA python

or execute it with pyDev inside Eclipse.


This work is licensed under LGPL v2.1

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.