Blynk IoT library for Python and Micropython
MIT License
This library provides API to connect IoT hardware that supports Micropython/Python to Blynk Cloud and communiate with Blynk apps (iOS and Android). You can send raw and processed sensor data and remotely control anything that is connected to your hardware (relays, motors, servos) from anywhere in the world.
If you like Blynk - give it a star, or fork it and contribute!
With Blynk Library you can connect over 400 hardware models (including ESP8266, ESP32, NodeMCU, all Arduinos, Raspberry Pi, Particle, Texas Instruments, etc.)to the Blynk Cloud. Full list of supported hardware can be found here.
With Blynk apps for iOS and Android apps you can easily build graphic interfaces for all of your projects by simply dragging and dropping widgets on your smartphone. It's a purely WYSIWG experience: no coding on iOS or Android required.
Hardware can connect to Blynk Cloud (open-source server) over the Internet using hardware connectivity on board, or with the use of various shields (Ethernet, WiFi, GSM, LTE, etc). Blynk Cloud is available for every user of Blynk for free.
Check python availability in your system.
python --version
To exclude compatibility issue preferable versions are Python 2.7.9 (or greater) or Python 3.4 (or greater) If python not present you can download and install it from here.
NOTE: To run python in "sandbox" you can try virtualenv module. Check this document how to do it.
If youre using preferable versions of python mentioned above, then pip comes installed with Python by default. Check pip availability:
pip --version
Install blynk library
sudo pip install blynklib
Library can be installed locally from git sources:
git clone https://github.com/blynkkk/lib-python.git
cd lib-python
pip install --user -e .
# sudo pip install -e . # if installation needed not for current but for all users
You can run unit tests for cPython version of library (blynklib.py) using the command:
python setup.py test
NOTE Blynklib version <0.2.6 should use pytest-mock<1.11.2. In version 1.11.2 were added restrictions for context manager usage
NOTE: Unit tests for Micropython ENV are not available yet.
Some hardware platforms can use Micropython package. This is helpful for preliminary testing and debugging of your code outside of real hardware. Supported platforms and related installation docs can be found here.
This library supports Python2, Python3 (blynklib.py) , and Micropython (blynklib_mp.py).
BLYNK_AUTH = '<YourAuthToken>' #insert your Auth Token here
import blynklib
# import blynklib_mp as blynklib # micropython import
BLYNK_AUTH = '<YourAuthToken>' #insert your Auth Token here
# base lib init
blynk = blynklib.Blynk(BLYNK_AUTH)
# advanced options of lib init
# from __future__ import print_function
# blynk = blynklib.Blynk(BLYNK_AUTH, server='blynk-cloud.com', port=80, ssl_cert=None,
# heartbeat=10, rcv_buffer=1024, log=print)
# Lib init with SSL socket connection
# blynk = blynklib.Blynk(BLYNK_AUTH, port=443, ssl_cert='<path to local blynk server certificate>')
# current blynk-cloud.com certificate stored in project as
# https://github.com/blynkkk/lib-python/blob/master/certificate/blynk-cloud.com.crt
# Note! ssl feature supported only by cPython
# register handler for Virtual Pin V22 reading by Blynk App.
# when a widget in Blynk App asks Virtual Pin data from server within given configurable interval (1,2,5,10 sec etc)
# server automatically sends notification about read virtual pin event to hardware
# this notification captured by current handler
@blynk.handle_event('read V22')
def read_virtual_pin_handler(pin):
# your code goes here
# ...
# Example: get sensor value, perform calculations, etc
sensor_data = '<YourSensorData>'
critilcal_data_value = '<YourThresholdSensorValue>'
# send value to Virtual Pin and store it in Blynk Cloud
blynk.virtual_write(pin, sensor_data)
# you can define if needed any other pin
# example: blynk.virtual_write(24, sensor_data)
# you can perform actions if value reaches a threshold (e.g. some critical value)
if sensor_data >= critilcal_data_value
blynk.set_property(pin, 'color', '#FF0000') # set red color for the widget UI element
blynk.notify('Warning critical value') # send push notification to Blynk App
blynk.email(<[email protected]>, 'Email Subject', 'Email Body') # send email to specified address
# main loop that starts program and handles registered events
while True:
blynk.run()
Examples can be found here Check them all to get familiar with main Blynk API features.
Read Raspberry Pi guide first.
Read ESP32 guide first.
Read ESP8266 guide first.
For hardware with limited memory size (ex. ESP8266) you can use frozen modules or frozen bytecode approaches to load blynklib or any other library to hardware.
Read this document to get more information.
Full Blynk Documentation - a complete guide on Blynk features
Community (Forum) - join a 1'000'000 Blynk community to ask questions and share ideas
Social Media:
You are very welcome to contribute: stability bugfixes, new hardware support, or any other improvements. Please.
This project is released under The MIT License (MIT)