OTAUpdateManager


NameOTAUpdateManager JSON
Version 1.0.0 PyPI version JSON
download
home_pageNone
SummaryImplementation of OTA for remote monitoring and controlling of IoT devices
upload_time2024-06-14 15:32:00
maintainerNone
docs_urlNone
authorRaghul Raj G
requires_pythonNone
licenseNone
keywords ota otaupdatemanager update microcontroller micropython
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # OTAUpdateManager
Implementation of OTA for remote monitoring and control of IoT devices

[![micropython](https://img.shields.io/badge/micropython-Ok-purple.svg)](https://micropython.org)

[![ESP8266](https://img.shields.io/badge/ESP-8266-000000.svg?longCache=true&style=flat&colorA=CC101F)](https://www.espressif.com/en/products/socs/esp8266)

[![ESP32](https://img.shields.io/badge/ESP-32-000000.svg?longCache=true&style=flat&colorA=CC101F)](https://www.espressif.com/en/products/socs/esp32)
[![ESP32](https://img.shields.io/badge/ESP-32S2-000000.svg?longCache=true&style=flat&colorA=CC101F)](https://www.espressif.com/en/products/socs/esp32-s2)
[![ESP32](https://img.shields.io/badge/ESP-32C3-000000.svg?longCache=true&style=flat&colorA=CC101F)](https://www.espressif.com/en/products/socs/esp32-c3)


## Contents
 - [How it works](#how-it-works)
 - [Quick start](#quick-start)
   - [Installing](#installing)
     - [Arduino - Through Library Manager](#install-through-library-manager)
     - [Arduino - From Github](#checkout-from-github)
   - [Using](#using)
 - [Documentation](#documentation)
   - [Server connection configuration](#Server-connection-configuration)

## How It Works

### User Connection:
- Manually enter the network name (SSID) and password.

### MQTT Connection:
- The ESP can connect to an MQTT server to check for updates and maintain a live connection.
- This connection allows for monitoring the live online state and managing updates.

- Use the web application to check the live online state.
- Upload new code to the ESP board through the update section.

## How It Looks
ESP8266/ESP32 modules OTA update and monitoring using [website](https://ota.serveo.net/).
![Homepage](https://i.imgur.com/3LIUSZR.png) ![user dashboard](https://i.imgur.com/sccSpXp.png) ![program editor](https://i.imgur.com/DLfxktF.png)

## Quick Start

### Installing

#### Installing with mip

Py-file
```python
import mip
mip.install('github:raghulrajg/MicroPython-OTAUpdateManager/OTAUpdateManager.py')
```

To install using mpremote

```bash
    mpremote mip install github:raghulrajg/MicroPython-OTAUpdateManager
```

To install directly using a WIFI capable board

```bash
    mip.install("github:raghulrajg/MicroPython-OTAUpdateManager")
```

#### Installing Library Examples

If you want to install library examples:

```bash
    mpremote mip install github:raghulrajg/MicroPython-OTAUpdateManager/examples.json
```

To install directly using a WIFI capable board

```bash
    mip.install("github:raghulrajg/MicroPython-OTAUpdateManager/examples.json")
```

#### Installing from PyPI

On supported GNU/Linux systems like the Raspberry Pi, you can install the driver locally `from
PyPI <https://pypi.org/project/MicroPython-OTAUpdateManager/>`_.
To install for current user:

```bash
    pip3 install MicroPython-OTAUpdateManager
```

To install system-wide (this may be required in some cases):


```bash
sudo pip3 install MicroPython-OTAUpdateManager
```
To install in a virtual environment in your current project:

```bash
    mkdir project-name && cd project-name
    python3 -m venv .venv
    source .env/bin/activate
    pip3 install MicroPython-OTAUpdateManager
```

Also see [examples](https://github.com/raghulrajg/OTAUpdateManager/tree/main/test).

## Using
This library provides a OTA update
    1. handling code updates during boot (OTAUpdateManager)

Put the file name is called main.py
```python
import OTAUpdateManager

#Avoid the GPIO pin number 2 because of predefine pin
#create your User ID and Token in https://ota.serveo.net/

#server connection config
User = b"YOUR_USER_ID"
Token = b"YOUR_TOKEN"

#WiFI Network connection config
SSID = "YOUR_APN_NAME"
Password = "YOUR_APN_PASSWORD"

OTAUpdate = OTAUpdateManager.espFOTA(User, Token, SSID, Password)

def loop():
    while True:
        #Put your code here
        OTAUpdate.run()

if __name__ == '__main__':
    loop()
```
Here's the provided `main.py` file, which includes configuration details for connecting to a Wi-Fi network and checking for OTA (Over-the-Air) updates using a user ID and token. You need to fill in your actual Wi-Fi credentials, user ID, and token.

## Documentation

### Server connection configuration

#### Connecting to the Web Application:
- Go to the website: https://ota.serveo.net/.
- Log in to the web application.

#### Token Configuration:
- In the Token section, a default token is created.
- Copy the UserID and Token from this section.

#### Example Code Integration:
- Paste the UserID and Token into your example code.
- Set your connection method to either manual WiFi or APN.

#### Upload Program:
- Upload the program to the ESP.
- The ESP will connect to the MQTT server and send packets to keep the connection alive.

### OTA Update Process

#### Update Detection:
- The server will notify the ESP when an update is available.
- The ESP receives a payload to prepare for the update.

#### Update Execution:
- Once the update process is initiated, the ESP will start updating.
- The update status can be monitored on the website in the status section.




            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "OTAUpdateManager",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "OTA, OTAUpdateManager, Update, Microcontroller, Micropython",
    "author": "Raghul Raj G",
    "author_email": "raghulrajatmega328@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/d5/dd/fa0af081d3cebf5cd060bfb77a873afb0c4a91908167914e0e40a81310d3/OTAUpdateManager-1.0.0.tar.gz",
    "platform": null,
    "description": "# OTAUpdateManager\r\nImplementation of OTA for remote monitoring and control of IoT devices\r\n\r\n[![micropython](https://img.shields.io/badge/micropython-Ok-purple.svg)](https://micropython.org)\r\n\r\n[![ESP8266](https://img.shields.io/badge/ESP-8266-000000.svg?longCache=true&style=flat&colorA=CC101F)](https://www.espressif.com/en/products/socs/esp8266)\r\n\r\n[![ESP32](https://img.shields.io/badge/ESP-32-000000.svg?longCache=true&style=flat&colorA=CC101F)](https://www.espressif.com/en/products/socs/esp32)\r\n[![ESP32](https://img.shields.io/badge/ESP-32S2-000000.svg?longCache=true&style=flat&colorA=CC101F)](https://www.espressif.com/en/products/socs/esp32-s2)\r\n[![ESP32](https://img.shields.io/badge/ESP-32C3-000000.svg?longCache=true&style=flat&colorA=CC101F)](https://www.espressif.com/en/products/socs/esp32-c3)\r\n\r\n\r\n## Contents\r\n - [How it works](#how-it-works)\r\n - [Quick start](#quick-start)\r\n   - [Installing](#installing)\r\n     - [Arduino - Through Library Manager](#install-through-library-manager)\r\n     - [Arduino - From Github](#checkout-from-github)\r\n   - [Using](#using)\r\n - [Documentation](#documentation)\r\n   - [Server connection configuration](#Server-connection-configuration)\r\n\r\n## How It Works\r\n\r\n### User Connection:\r\n- Manually enter the network name (SSID) and password.\r\n\r\n### MQTT Connection:\r\n- The ESP can connect to an MQTT server to check for updates and maintain a live connection.\r\n- This connection allows for monitoring the live online state and managing updates.\r\n\r\n- Use the web application to check the live online state.\r\n- Upload new code to the ESP board through the update section.\r\n\r\n## How It Looks\r\nESP8266/ESP32 modules OTA update and monitoring using [website](https://ota.serveo.net/).\r\n![Homepage](https://i.imgur.com/3LIUSZR.png) ![user dashboard](https://i.imgur.com/sccSpXp.png) ![program editor](https://i.imgur.com/DLfxktF.png)\r\n\r\n## Quick Start\r\n\r\n### Installing\r\n\r\n#### Installing with mip\r\n\r\nPy-file\r\n```python\r\nimport mip\r\nmip.install('github:raghulrajg/MicroPython-OTAUpdateManager/OTAUpdateManager.py')\r\n```\r\n\r\nTo install using mpremote\r\n\r\n```bash\r\n    mpremote mip install github:raghulrajg/MicroPython-OTAUpdateManager\r\n```\r\n\r\nTo install directly using a WIFI capable board\r\n\r\n```bash\r\n    mip.install(\"github:raghulrajg/MicroPython-OTAUpdateManager\")\r\n```\r\n\r\n#### Installing Library Examples\r\n\r\nIf you want to install library examples:\r\n\r\n```bash\r\n    mpremote mip install github:raghulrajg/MicroPython-OTAUpdateManager/examples.json\r\n```\r\n\r\nTo install directly using a WIFI capable board\r\n\r\n```bash\r\n    mip.install(\"github:raghulrajg/MicroPython-OTAUpdateManager/examples.json\")\r\n```\r\n\r\n#### Installing from PyPI\r\n\r\nOn supported GNU/Linux systems like the Raspberry Pi, you can install the driver locally `from\r\nPyPI <https://pypi.org/project/MicroPython-OTAUpdateManager/>`_.\r\nTo install for current user:\r\n\r\n```bash\r\n    pip3 install MicroPython-OTAUpdateManager\r\n```\r\n\r\nTo install system-wide (this may be required in some cases):\r\n\r\n\r\n```bash\r\nsudo pip3 install MicroPython-OTAUpdateManager\r\n```\r\nTo install in a virtual environment in your current project:\r\n\r\n```bash\r\n    mkdir project-name && cd project-name\r\n    python3 -m venv .venv\r\n    source .env/bin/activate\r\n    pip3 install MicroPython-OTAUpdateManager\r\n```\r\n\r\nAlso see [examples](https://github.com/raghulrajg/OTAUpdateManager/tree/main/test).\r\n\r\n## Using\r\nThis library provides a OTA update\r\n    1. handling code updates during boot (OTAUpdateManager)\r\n\r\nPut the file name is called main.py\r\n```python\r\nimport OTAUpdateManager\r\n\r\n#Avoid the GPIO pin number 2 because of predefine pin\r\n#create your User ID and Token in https://ota.serveo.net/\r\n\r\n#server connection config\r\nUser = b\"YOUR_USER_ID\"\r\nToken = b\"YOUR_TOKEN\"\r\n\r\n#WiFI Network connection config\r\nSSID = \"YOUR_APN_NAME\"\r\nPassword = \"YOUR_APN_PASSWORD\"\r\n\r\nOTAUpdate = OTAUpdateManager.espFOTA(User, Token, SSID, Password)\r\n\r\ndef loop():\r\n    while True:\r\n        #Put your code here\r\n        OTAUpdate.run()\r\n\r\nif __name__ == '__main__':\r\n    loop()\r\n```\r\nHere's the provided `main.py` file, which includes configuration details for connecting to a Wi-Fi network and checking for OTA (Over-the-Air) updates using a user ID and token. You need to fill in your actual Wi-Fi credentials, user ID, and token.\r\n\r\n## Documentation\r\n\r\n### Server connection configuration\r\n\r\n#### Connecting to the Web Application:\r\n- Go to the website: https://ota.serveo.net/.\r\n- Log in to the web application.\r\n\r\n#### Token Configuration:\r\n- In the Token section, a default token is created.\r\n- Copy the UserID and Token from this section.\r\n\r\n#### Example Code Integration:\r\n- Paste the UserID and Token into your example code.\r\n- Set your connection method to either manual WiFi or APN.\r\n\r\n#### Upload Program:\r\n- Upload the program to the ESP.\r\n- The ESP will connect to the MQTT server and send packets to keep the connection alive.\r\n\r\n### OTA Update Process\r\n\r\n#### Update Detection:\r\n- The server will notify the ESP when an update is available.\r\n- The ESP receives a payload to prepare for the update.\r\n\r\n#### Update Execution:\r\n- Once the update process is initiated, the ESP will start updating.\r\n- The update status can be monitored on the website in the status section.\r\n\r\n\r\n\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Implementation of OTA for remote monitoring and controlling of IoT devices",
    "version": "1.0.0",
    "project_urls": {
        "Source": "https://github.com/raghulrajg/MicroPython-OTAUpdateManager"
    },
    "split_keywords": [
        "ota",
        " otaupdatemanager",
        " update",
        " microcontroller",
        " micropython"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "473579b44e829047080321429cf66f97db631ee3c1a7a82c15a4e13be9370611",
                "md5": "250f35093b5622deae2f4a697340bf38",
                "sha256": "26f46461f76edacdf23c3fa3c0e463304373f33c53528342d89d9516db9bb244"
            },
            "downloads": -1,
            "filename": "OTAUpdateManager-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "250f35093b5622deae2f4a697340bf38",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 18246,
            "upload_time": "2024-06-14T15:31:57",
            "upload_time_iso_8601": "2024-06-14T15:31:57.548101Z",
            "url": "https://files.pythonhosted.org/packages/47/35/79b44e829047080321429cf66f97db631ee3c1a7a82c15a4e13be9370611/OTAUpdateManager-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d5ddfa0af081d3cebf5cd060bfb77a873afb0c4a91908167914e0e40a81310d3",
                "md5": "f5219e2015db60cc9bf2ed3c28ac2978",
                "sha256": "6d0f4507c23c271a1891db7275d1ffc6d288642253a766e03f5a18407b1622d1"
            },
            "downloads": -1,
            "filename": "OTAUpdateManager-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "f5219e2015db60cc9bf2ed3c28ac2978",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 6152,
            "upload_time": "2024-06-14T15:32:00",
            "upload_time_iso_8601": "2024-06-14T15:32:00.197084Z",
            "url": "https://files.pythonhosted.org/packages/d5/dd/fa0af081d3cebf5cd060bfb77a873afb0c4a91908167914e0e40a81310d3/OTAUpdateManager-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-14 15:32:00",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "raghulrajg",
    "github_project": "MicroPython-OTAUpdateManager",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "otaupdatemanager"
}
        
Elapsed time: 0.25360s