Micropython – deploy()

3.2. Jak nahrát systém octopus do Micropythonu, který není verzí s octopus_initial?

  1. Klasicky pomocí esptool provedete erase a nahrajete „svojí“ verzi Micropythonu pomocí flash. (Nebo oficiální verzi ze stránek Micropythonu)
    Popis je na „předchozí“ stránce:
    https://www.octopuslab.cz/micropython-octopus/
  2. V prostředí Micropythonu se připojíte se k internetu:
import network 
n = network.WLAN() 
n.active(1) 
n.connect("ssid", "heslo") 

Můžete použít copy&paste celého bloku popmocí „CTRL+E“ (nezapomeňte si vyplnit svoje ssid a heslo)

3. Po úspěšném připojení k WiFi pak stejným způsobem spustíme následující kód (který kopíruje soubor tar z našeho cloudu)

Tento blok kódu můžete zkopírovat celý pomocí CTRL+E do ESP v prostředí Micropythonu
ale je tu také nová možnost využít uPip (micropython-octopuslab-installer).

def deploy(url):
    import sys
    import os
    import lib.shutil as shutil
    import upip_utarfile as utarfile
    import urequests

    res = urequests.get(url)

    if not res.status_code == 200:
        return

    def exists(path):
        try:
            os.stat(path)
            return True
        except:
            return False

    t = utarfile.TarFile(fileobj = res.raw)

    for f in t:
        print("Extracting {}: {}".format(f.type, f.name))
        if f.type == utarfile.DIRTYPE:
            if f.name[-1:] == '/':
                name = f.name[:-1]
            else:
                name = f.name

            if not exists(name):
                os.mkdir(name)
        else:
            extracted = t.extractfile(f)

            with open(f.name, "wb") as fobj:
                shutil.copyfileobj(extracted, fobj)

def shutil():
    print("System download > (initial octopus modules)")
    import upip
    print("Installing shutil")
    upip.install("micropython-shutil")
    print("Running deploy")

(Pozor, předchozí dlouhý zkopírovaný blok je v ESP dostupný jen do dalšího resetu nebo vypnutí, pak by se muselo to celé provádět znovu)

A potom můžete už „jednoduchým“ způsobem provést deploy:

shutil()
deplUrl="https://octopusengine.org/download/micropython/stable.tar"
deploy(deplUrl) 

Ale jak jsme již zmínili, je tu také nová možnost využít uPip (micropython-octopuslab-installer).


Tato stránka je pouze specifické upřesnění celého návodu:
https://www.octopuslab.cz/micropython-octopus/