Senko

🦊 Simplest OTA update solution for your Micropython projects.

Internet of Things (IoT)PythonGPL-3.0

Abstract

Senko is an open-source Internet of Things (IoT) project. 🦊 Simplest OTA update solution for your Micropython projects. Senko is the simplest Over The Air updater solution for your Micropython projects based on ESP8266 and ESP32. It is built using Python, ESP8266, ESP32. The complete source code is publicly available on GitHub under the GNU General Public License v3.0, making it a useful reference for students building an Internet of Things (IoT) mini project or final-year project.

1. Introduction

Senko is the simplest Over The Air updater solution for your Micropython projects based on ESP8266 and ESP32.

Senko synchronizes selected files on your microcontroller with the remote ones from GitHub repository. I used Senko to automatically deploy the latest master branch to my ESP8266 sensors fleet.

Every time .fetch() or .update() methods are called Senko compares SHA1 hashes of local files with remote ones to determine if they are the same.

2. Objective

🦊 Simplest OTA update solution for your Micropython projects.

This project demonstrates how Python, ESP8266, ESP32 can be applied to a real-world Internet of Things (IoT) problem.

4. Technology Stack

PythonESP8266ESP32

5. System Requirements

General requirements for this technology stack — check the README for exact versions.

  • Python 3.8 or later
  • pip / virtualenv for dependencies
  • VS Code, PyCharm or Jupyter Notebook
  • Git (to clone the repository)

6. Installation & Setup

git clone https://github.com/RangerDigital/senko.git
cd senko
sudo ampy -p /dev/ttyUSB0 put senko.py
import upip
upip.install("micropython-senko")
# boot.py
import senko

OTA = senko.Senko(
  user="ocktokit", # Required
  repo="octokit-iot", # Required
  branch="master", # Optional: Defaults to "master"
  working_dir="app", # Optional: Defaults to "app"
  files = ["boot.py", "main.py"]
)
# boot.py
import senko

GITHUB_URL = "https://github.com/RangerDigital/senko/blob/master/examples/"
OTA = senko.Senko(url=GITHUB_URL, files=["boot.py", "main.py"])

Full setup instructions are in the project README.

7. Future Enhancements

Suggested extensions you can add to make this your own project.

  • Add a mobile dashboard using Blynk or Firebase
  • Store readings in a cloud database for history charts
  • Add alerts via SMS / Telegram when thresholds are crossed

8. Viva / Review Questions

Common questions examiners ask for projects in this domain.

  1. Which microcontroller / board and sensors are used and why?
  2. How does the device send data (Wi-Fi, MQTT, HTTP, Bluetooth)?
  3. Where is the sensor data stored and visualised?
  4. How is power consumption managed?
  5. How would you secure the device and its communication?

9. Source Code & License

This project is developed by RangerDigital and published on GitHub under the GNU General Public License v3.0. Please follow the license terms and credit the original author when you use or modify this code.

Want to build this as your internship project?

Work on an Internet of Things (IoT) project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.

Apply for Internet of Things (IoT) Internship