logo FTP

FTP (File transfer protocol) - protokol pro přenos souborů mezi počítači pomocí počítačové sítě.

Původní knihovna pro ESP8266 i ESP32 v základu funguje. Používáme například FTP plugin Total Commanderu (testováno ve Win 10).

Jednoduchá verze - na ESP běží samostatně "pouze" FTP. Po připojení k lokální síti se spustí FTP a vypíše IP adresu.

>>> from utils.octopus_lib import w
>>> w() # wifi connect

>>> import ftp
>>> ftp
FTP Server started on  192.168.x.y # -> IP

Spustit se dá i ze setup() - příkazy cw -> ftp.


Použití z Total commanderu

V menu Síť se zvolí Protokol FTP - připojit kserveru (nebo přímo: CTRL-F), což vyvolá FTP okno, kde se zvolí Nové připojení a vyplní do Hostilel [port] IP adresa, kterou vám ESP oználilo. (Nejčastěji 192.168.x.y, kde x y jsou konkrétní čísla). Toto nastavení si uložíme v poli Název relace například pod názvem "ESP32".

Pro jednorázové připojení stačí v menu Síť zvolit Protokol FTP - nové připojení (nebo přímo: CTRL-N) a zadat IP adresu.


Použití v terminálu Linuxu

$ sudo apt-get install ftp

$ ftp 192.168.x.y
ftp> ls
...
ftp> mput *.py
...
ftp> prompt

Zdrojová knihovna 🡒 github.com/robert-hh/FTP-Server...

Možnost běhu i v threadu a pod., zatím netestováno.

import uftpd
uftpd.start()
# uftpd.start([port = 21][, verbose = level])

Použití v projektech

Po boot se stiskem tlačítka BOOT/EN spustí ftp server, pokud tlačítko stiknuto není, bude pokračovat standardní program.

from time import sleep
from machine import Pin
from utils.octopus_lib import w

btnum = 0
button = Pin(0, Pin.IN)
print("press button / CTRL+C or continue")
sleep(1)

for i in range(12):
    print("-",end="")
    btnum += button.value()
    sleep(0.2)

w()
print()

if (btnum > 0):
    print("button1 -> start FTP")
    import ftp 

else:
    print("button0 -> continue")
    # ...

# your code: ...

Využili jsme například v ukázce WiFi RGB lampičky, kde se dodatečně mohou modifikovat parametry.


Další inspirace: https://www.youtube.com/watch?v=a7DrFqqu-78&t=369s