Federico Guidi
Pervasive Systems, AY 2017/18
What is Zerynth
It’s the middleware for IoT and Industry 4.0: it speeds up IoT
development and enables Python for microcontrollers.
• Zerynth provides developers with an ecosystem of software tools to
program microcontrollers in Python and connect them to the Cloud.
• Zerynth reaches beyond embedded engineers to also offer desktop
applications developers, product designers, web developer, and IoT system
integrators a complete set of high-quality development tools to program
microcontrollers and develop IoT solutions using Python.
What is Zerynth
The Zerynth ecosystem: you have access to Zerynth Studio, Zerynth VM (Virtual
Machine), Zerynth ADM (Advanced Device Manager) and Zerynth App.
How does it work?
• Download Zerynth Studio and create a Zerynth Account to receive
free licenses of the Zerynth Virtual Machine.
• Then install the Zerynth VM on one of the supported
microcontrollers and start to program it in Python or
hybrid C/Python.
• Zerynth allows rapid integration with sensors, actuators,
and industrial protocols, thanks to an extensive collection of
libraries.
• You can also easily connect your board to one of the supported
Cloud Services and view your data via a 3rd party IoT
Dashboard or via Zerynth App.
How does it work?
Zerynth Studio
A free, cross-platform, powerful IDE and a Toolchain for developing
Python or hybrid C/Python applications and managing boards.
Available for Windows, macOS and Linux.
Main Features
• Advanced Code Editor
• Device Management
• Documentation
• Smooth User Experience
• Developed from scratch with the goal
of bringing Python to the embedded
world with support for multi-thread and
cross board compatibility.
• Supports most high-level features of
Python like modules, classes, multi-
threading, callback, timers and
exceptions.
• Allows to use custom hardware-related
features like interrupts, PWM and digital
I/O.
The core of Zerynth is the Zerynth Virtual Machine, a multithreaded Real-Time
OS that provides real hardware independence, allowing code reuse on a wide
range of 32-bit microcontrollers, in just 60-80kB of Flash and 3-5kB of RAM.
Zerynth VM
Zerynth ADM
Zerynth ADM (Advanced Device
Manager) is a microservice that can be
installed on various Cloud infrastructures.
It adds high level functionalities to
connected devices:
• Simpler Over The Air Firmware
updates (FOTA)
• Remote procedure calls (RPC)
• Per device custom graphical interfaces,
via the Zerynth App
Zerynth App
Zerynth App is a free mobile app to monitor and control Zerynth-
powered devices through fully customizable HTML/JS Graphical
User Interfaces.
• Enable a bidirectional communication
channel between the Zerynth devices
and your smartphone.
• Easily manage and control the Zerynth
connected devices.
• Available on iOS and Android.
Supported devices
Zerynth currently supports 33 different devices, including for example the
STM32F401RE Nucleo-64, the NodeMCU v2 and the Arduino Zero.
Supported chip vendors
• Espressif
• NXP
• Nordic
• Microchip/Atmel
• ST Microelectronics
Cloud integrations
Available Cloud Integrations
• Amazon Web Services (AWS)
• Google Cloud IoT
• Microsoft Azure
• IBM Bluemix
• The Things Network
• Ubidots
• Wolkabout
Zerynth simplifies connectivity between microcontrollers
and Cloud services.
Zerynth libraries
• Zerynth allows rapid integration with
sensors, actuators, and industrial protocols,
reducing product development time and efforts.
• All the required libraries, packages, and drivers
are included with the first installation of Zerynth
Studio and then compiled and uplinked to the Zerynth Virtual
Machine inside your microcontroller when needed.
• Zerynth provides an extensive collection of libraries, organized into
three categories: Zerynth Standard Library, Official Libraries and
Community Libraries.
The community
Zerynth also offers a public forum where you can ask questions, find
help or read the latest updates about the newest releases.
Hands-on demo
Here’s a quick demonstration of the Zerynth ecosystem using the
NodeMCU v2, a nice microcontroller provided with Wi-Fi
functionalities.
The idea is to use Zerynth Studio together with Zerynth App to
program the NodeMCU v2 with Python and control an RGB LED via
Wi-Fi using a smartphone.
The code of the demo can be found on GitHub:
https://github.com/FedericoGuidi/RemoteLEDControl
Node MCU v2
• Perfect to start with the
development of IoT ideas.
• It’s open-source, programmable, low
cost, simple and Wi-Fi enabled.
• The development board is based on
the ESP8266 Wi-Fi chip.
• It can be programmed by connecting
it to the computer via micro USB.
An open source IoT platform.
The circuit
The User Interface
• Written in HTML/CSS and JavaScript.
• It lets the user control the RGB LED via Wi-Fi.
• The script uses remote procedure calls (RPC)
in JavaScript together with the Zerynth
library.
• You can choose which color to turn on/off.
• The rainbow mode cycles the six possible
combinations of colors.
Working demo
Video in the next slide
Conclusions
Pro
• The interconnection between Zerynth Studio and Zerynth App works
really well
• Programming with Python is very immediate
• Connecting, registering and virtualizing a device is fast
Cons
• Some boards are not fully compatible, even the NodeMCU v2
• It’s easy to find a bug while programming
• Sometimes the documentation is not very explanatory
Thank you!
Contacts and useful links
• Zerynth website: https://www.zerynth.com/
• LinkedIn: https://www.linkedin.com/in/federico-guidi/
• Hackster: https://www.hackster.io/federico-guidi/remote-
led-control-via-wi-fi-using-zerynth-app-4b9937

Remote LED control via Wi-Fi using NodeMCU v2 and Zerynth

  • 1.
  • 2.
    What is Zerynth It’sthe middleware for IoT and Industry 4.0: it speeds up IoT development and enables Python for microcontrollers. • Zerynth provides developers with an ecosystem of software tools to program microcontrollers in Python and connect them to the Cloud. • Zerynth reaches beyond embedded engineers to also offer desktop applications developers, product designers, web developer, and IoT system integrators a complete set of high-quality development tools to program microcontrollers and develop IoT solutions using Python.
  • 3.
    What is Zerynth TheZerynth ecosystem: you have access to Zerynth Studio, Zerynth VM (Virtual Machine), Zerynth ADM (Advanced Device Manager) and Zerynth App.
  • 4.
    How does itwork? • Download Zerynth Studio and create a Zerynth Account to receive free licenses of the Zerynth Virtual Machine. • Then install the Zerynth VM on one of the supported microcontrollers and start to program it in Python or hybrid C/Python. • Zerynth allows rapid integration with sensors, actuators, and industrial protocols, thanks to an extensive collection of libraries. • You can also easily connect your board to one of the supported Cloud Services and view your data via a 3rd party IoT Dashboard or via Zerynth App.
  • 5.
  • 6.
    Zerynth Studio A free,cross-platform, powerful IDE and a Toolchain for developing Python or hybrid C/Python applications and managing boards. Available for Windows, macOS and Linux. Main Features • Advanced Code Editor • Device Management • Documentation • Smooth User Experience
  • 7.
    • Developed fromscratch with the goal of bringing Python to the embedded world with support for multi-thread and cross board compatibility. • Supports most high-level features of Python like modules, classes, multi- threading, callback, timers and exceptions. • Allows to use custom hardware-related features like interrupts, PWM and digital I/O. The core of Zerynth is the Zerynth Virtual Machine, a multithreaded Real-Time OS that provides real hardware independence, allowing code reuse on a wide range of 32-bit microcontrollers, in just 60-80kB of Flash and 3-5kB of RAM. Zerynth VM
  • 8.
    Zerynth ADM Zerynth ADM(Advanced Device Manager) is a microservice that can be installed on various Cloud infrastructures. It adds high level functionalities to connected devices: • Simpler Over The Air Firmware updates (FOTA) • Remote procedure calls (RPC) • Per device custom graphical interfaces, via the Zerynth App
  • 9.
    Zerynth App Zerynth Appis a free mobile app to monitor and control Zerynth- powered devices through fully customizable HTML/JS Graphical User Interfaces. • Enable a bidirectional communication channel between the Zerynth devices and your smartphone. • Easily manage and control the Zerynth connected devices. • Available on iOS and Android.
  • 10.
    Supported devices Zerynth currentlysupports 33 different devices, including for example the STM32F401RE Nucleo-64, the NodeMCU v2 and the Arduino Zero. Supported chip vendors • Espressif • NXP • Nordic • Microchip/Atmel • ST Microelectronics
  • 11.
    Cloud integrations Available CloudIntegrations • Amazon Web Services (AWS) • Google Cloud IoT • Microsoft Azure • IBM Bluemix • The Things Network • Ubidots • Wolkabout Zerynth simplifies connectivity between microcontrollers and Cloud services.
  • 12.
    Zerynth libraries • Zerynthallows rapid integration with sensors, actuators, and industrial protocols, reducing product development time and efforts. • All the required libraries, packages, and drivers are included with the first installation of Zerynth Studio and then compiled and uplinked to the Zerynth Virtual Machine inside your microcontroller when needed. • Zerynth provides an extensive collection of libraries, organized into three categories: Zerynth Standard Library, Official Libraries and Community Libraries.
  • 13.
    The community Zerynth alsooffers a public forum where you can ask questions, find help or read the latest updates about the newest releases.
  • 14.
    Hands-on demo Here’s aquick demonstration of the Zerynth ecosystem using the NodeMCU v2, a nice microcontroller provided with Wi-Fi functionalities. The idea is to use Zerynth Studio together with Zerynth App to program the NodeMCU v2 with Python and control an RGB LED via Wi-Fi using a smartphone. The code of the demo can be found on GitHub: https://github.com/FedericoGuidi/RemoteLEDControl
  • 15.
    Node MCU v2 •Perfect to start with the development of IoT ideas. • It’s open-source, programmable, low cost, simple and Wi-Fi enabled. • The development board is based on the ESP8266 Wi-Fi chip. • It can be programmed by connecting it to the computer via micro USB. An open source IoT platform.
  • 16.
  • 17.
    The User Interface •Written in HTML/CSS and JavaScript. • It lets the user control the RGB LED via Wi-Fi. • The script uses remote procedure calls (RPC) in JavaScript together with the Zerynth library. • You can choose which color to turn on/off. • The rainbow mode cycles the six possible combinations of colors.
  • 18.
    Working demo Video inthe next slide
  • 19.
    Conclusions Pro • The interconnectionbetween Zerynth Studio and Zerynth App works really well • Programming with Python is very immediate • Connecting, registering and virtualizing a device is fast Cons • Some boards are not fully compatible, even the NodeMCU v2 • It’s easy to find a bug while programming • Sometimes the documentation is not very explanatory
  • 20.
    Thank you! Contacts anduseful links • Zerynth website: https://www.zerynth.com/ • LinkedIn: https://www.linkedin.com/in/federico-guidi/ • Hackster: https://www.hackster.io/federico-guidi/remote- led-control-via-wi-fi-using-zerynth-app-4b9937