diff --git a/courses/micropython/info.yml b/courses/micropython/info.yml
new file mode 100644
index 0000000000..da817bed89
--- /dev/null
+++ b/courses/micropython/info.yml
@@ -0,0 +1,58 @@
+title: MicroPython
+description: Základy Pythonu na malém hardware
+long_description: |
+ Programovací jazyk Python lze použít i pro programování malých zařízení
+ a k nim připojených tlačítek, světýlek či mororků.
+ Tady se dozvíš, jak na to.
+
+ Používáme platformu ESP8266, resp. NodeMCU.
+
+ Na tento kurz je potřeba obstarat speciální zařízení.
+ V Česku se dá sehnat relativně rychle, spolehlivě a draze
+ např. u [Arduino Shop](https://arduino-shop.cz/) nebo
+ [GM Electronic](https://www.gme.cz/);
+ v Cíně levně ale s dlouhou dobou dodání
+ např. z [AliExpress](https://www.aliexpress.com/).
+
+ Kurz je psaný pro začátečníky, ale potřebuje hlavně ze začátku
+ relativně složité nastavení.
+ Doporučujeme proto začít s někým zkušenějším – např. na workshopu
+ nebo [na srazu](https://pyvo.cz/).
+
+canonical: true
+vars:
+ coach-present: false
+plan:
+- title: Nastavení zařízení
+ serial: 0
+ slug: setup
+ materials:
+ - lesson: micropython/flashing
+
+- title: Úvod
+ slug: intro
+ materials:
+ - lesson: micropython/install
+ - lesson: micropython/micropython
+ - lesson: micropython/intro
+ - lesson: micropython/input
+ - lesson: micropython/output
+ - lesson: micropython/ampy
+ - lesson: micropython/pwm
+
+- title: Další periferie
+ slug: devices
+ materials:
+ - lesson: micropython/piezo
+ - lesson: micropython/switch
+ - lesson: micropython/rgb_leds
+ - lesson: micropython/servo
+ - lesson: micropython/thermometer
+ - lesson: micropython/oled
+ - lesson: micropython/motors
+
+- title: Komunikace
+ slug: comms
+ materials:
+ - lesson: micropython/webrepl
+ - lesson: micropython/socket
diff --git a/lessons/micropython/ampy/index.md b/lessons/micropython/ampy/index.md
new file mode 100644
index 0000000000..ca03472d7a
--- /dev/null
+++ b/lessons/micropython/ampy/index.md
@@ -0,0 +1,67 @@
+## Práce se soubory
+
+Jak začneš psát trochu složitější programy,
+mohlo by se stát, že tě konzole MicroPythonu začne trochu štvát.
+Špatně se v ní opravují chyby a automatické odsazování funguje jen většinou.
+Pojďme se podívat, jak naštvání předejít.
+
+Nejdřív si do virtuálního prostředí nainstaluj program Ampy od Adafruitu.
+
+```console
+(env)$ python -m pip install adafruit-ampy
+```
+
+Doporučuji si větší kousky kódu – a určitě takové,
+ve kterých je nějaký cyklus, podmínka či funkce –
+psát v textovém editoru a do modulu pak posílat celý soubor.
+
+Zkus si to. Do souboru `blikajici_led.py` dej následující kód:
+
+```python
+from machine import Pin
+from time import sleep
+pin_diody = Pin(14, Pin.OUT)
+while True:
+ pin_diody.value(0)
+ sleep(1/2)
+ pin_diody.value(1)
+ sleep(1/2)
+```
+
+Potom zavři konzoli (`picocom`, PuTTY nebo `screen`).
+
+Ke spuštění budeš potřebovat znát port:
+
+* Linux: port používáš v příkazu `picocom`, např. `/dev/ttyUSB0`
+* Windows: port používáš v PuTTY, např. `COM13`
+* macOS: port používáš v příkazu `screen`, např. `/dev/tty.usbmodem*`
+
+`ampy` spusť následujícím příkazem, jen za `PORT` doplň svůj port:
+
+```console
+(venv)$ ampy -p PORT run blikajici_led.py
+```
+
+Program by měl blikat diodou.
+Využívá k tomu funkci `time.sleep()`, která počká daný počet vteřin –
+tedy `time.sleep(1/2)` zastaví program na půl sekundy.
+
+Podobně je možné na destičku soubory i nahrávat, jen je potřeba místo
+`run` použít `put`.
+
+```console
+(venv)$ ampy -p PORT put blikajici_led.py
+```
+
+Pokud navíc budeš chtít, aby se program na destičce automaticky spouštěl, musí
+se soubor s programem na destičce jmenovat `main.py`. `ampy` umí soubor při
+kopírování i přejmenovat, když mu při kopírování zadáš i druhé (nové) jméno.
+
+```console
+(venv)$ ampy -p PORT put blikajici_led.py main.py
+```
+
+Po úspěšném kopírování máš na destičce nahraný náš program ze souboru
+`blikajici_led.py` do souboru `main.py`. Teď už bude tvůj program fungovat
+i bez počítače, takže stačí destičku připojit např. k powerbance
+a dioda se rozbliká.
diff --git a/lessons/micropython/ampy/info.yml b/lessons/micropython/ampy/info.yml
new file mode 100644
index 0000000000..1f94aeba51
--- /dev/null
+++ b/lessons/micropython/ampy/info.yml
@@ -0,0 +1,6 @@
+title: Práce se soubory
+style: md
+attribution:
+- Pro PyLadies Brno napsal Petr Viktorin, 2016-2017.
+- Upravil Lumír Balhar, 2018.
+license: cc-by-sa-40
diff --git a/lessons/micropython/flashing/index.md b/lessons/micropython/flashing/index.md
new file mode 100644
index 0000000000..1af76c200d
--- /dev/null
+++ b/lessons/micropython/flashing/index.md
@@ -0,0 +1,29 @@
+## Flashování
+
+Na našich destičkách je MicroPython už nahraný, ale kdyby sis koupil{{a}}
+vlastní NodeMCU nebo chtěl{{a}} firmware aktualizovat, budeš ho potřebovat umět
+nahrát.
+
+K tomu je potřeba nástroj `esptool`, který se dá nainstalovat pomocí:
+
+```console
+(env)$ python -m pip install esptool
+```
+
+Po instalaci esptool si stáhni nejnovější stabilní firmware pro ESP8266
+z [micropython.org/download](http://micropython.org/download#esp8266) a zadej:
+
+```console
+(env)$ esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash 0 esp8266-20161110-v1.8.6.bin
+```
+
+Hodnotu pro `--port` opět doplň podle svého systému – např. `/dev/tty.wchusbserial1420` na Macu, `COM3` na Windows.
+
+> [note]
+> Destiček s čipem ESP8266 se vyrábí celá řada různých typů a některé mohou
+> potřebovat odlišné nastavení při flashování.
+> Popis všech možností nastavení je k nalezení v [dokumentaci k esptool](https://github.com/espressif/esptool#usage).
+
+Je-li na desce nahraný MicroPython, tento příkaz by měl fungovat. U jiného
+firmware, (případně u poškozeného MicroPythonu), je potřeba při zapojování
+destičky do USB držet tlačítko FLASH.
diff --git a/lessons/micropython/flashing/info.yml b/lessons/micropython/flashing/info.yml
new file mode 100644
index 0000000000..f03e0df4b1
--- /dev/null
+++ b/lessons/micropython/flashing/info.yml
@@ -0,0 +1,6 @@
+title: Flashování
+style: md
+attribution:
+- Pro PyLadies Brno napsal Petr Viktorin, 2016-2017.
+- Upravil Lumír Balhar, 2018.
+license: cc-by-sa-40
diff --git a/lessons/micropython/input/index.md b/lessons/micropython/input/index.md
new file mode 100644
index 0000000000..307d5e4bda
--- /dev/null
+++ b/lessons/micropython/input/index.md
@@ -0,0 +1,33 @@
+## Vstup
+
+MicroPython na malé destičce obsahuje některé
+moduly, které jinde nenajdeš. Ten hlavní se jmenuje
+`machine` a zpřístupňuje základní funkce zařízení. Zkus si:
+
+```python
+from machine import Pin
+pin = Pin(0, Pin.IN)
+print(pin.value())
+```
+
+Zmáčkni a drž tlačítko `FLASH` vedle USB konektoru.
+Přitom pusť `print(pin.value())` znovu.
+Jak se hodnota změní?
+
+Jak tomuhle kódu rozumět?
+Třída `Pin` ti umožňuje ovládat jednotlivé
+„nožičky”, kterými zařízení komunikuje s vnějším
+světem: buď na nich nastavovat napětí, nebo zkoumat
+jestli na nich nějaké napětí je.
+
+`Pin(0, Pin.IN)` vytvoří objekt třídy Pin,
+který bude načítat data z „nožičky” číslo 0.
+(`IN` znamená načítání – informace jdou *do* procesoru).
+Funkce `pin.value()` změří napětí na dané
+„nožičce” a vrátí buď 1 nebo 0 podle toho, jestli nějaké naměřila.
+
+No a „nožička” číslo 0 je připojená k tlačítku `FLASH`,
+kterým se tak dá ono napětí ovládat.
+Informace o tom, která nožička je kam připojená,
+máš na [taháku](https://pyvec.github.io/cheatsheets/micropython/nodemcu-cs.pdf) –
+můžeš si zkontrolovat, že Pin(0) u sebe má poznámku FLASH.
diff --git a/lessons/micropython/input/info.yml b/lessons/micropython/input/info.yml
new file mode 100644
index 0000000000..899c2d2549
--- /dev/null
+++ b/lessons/micropython/input/info.yml
@@ -0,0 +1,6 @@
+title: Vstup
+style: md
+attribution:
+- Pro PyLadies Brno napsal Petr Viktorin, 2016-2017.
+- Upravil Lumír Balhar, 2018.
+license: cc-by-sa-40
diff --git a/lessons/micropython/install/index.md b/lessons/micropython/install/index.md
new file mode 100644
index 0000000000..628a62b44d
--- /dev/null
+++ b/lessons/micropython/install/index.md
@@ -0,0 +1,20 @@
+## Instalace
+
+Nejdříve propoj modul s počítačem přes USB kabel,
+jako kdybys připojoval{{a}} třeba mobil.
+
+> [note]
+> Je potřeba použít kvalitní datový kabel.
+> Nekvalitní kabely (např. spousta kabelů k
+> nabíječkám) jsou často nepoužitelné.
+
+Dál postupuj podle operačního systému na svém počítači:
+
+* [Linux]({{ subpage_url('linux') }})
+* [macOS]({{ subpage_url('macos') }})
+* [Windows]({{ subpage_url('windows') }})
+
+Kdyby něco nefungovalo, poraď se s koučem.
+Původní (anglický) návod k této části je na
+stránkách MicroPythonu.
+
diff --git a/lessons/micropython/install/info.yml b/lessons/micropython/install/info.yml
new file mode 100644
index 0000000000..3886fde8bb
--- /dev/null
+++ b/lessons/micropython/install/info.yml
@@ -0,0 +1,13 @@
+title: Instalace
+style: md
+attribution:
+- Pro PyLadies Brno napsal Petr Viktorin, 2016-2017.
+- Upravil Lumír Balhar, 2018.
+license: cc-by-sa-40
+subpages:
+ linux:
+ title: Instalace – Linux
+ macos:
+ title: Instalace – macOS
+ windows:
+ title: Instalace – Windows
diff --git a/lessons/micropython/install/linux.md b/lessons/micropython/install/linux.md
new file mode 100644
index 0000000000..3934f2cf96
--- /dev/null
+++ b/lessons/micropython/install/linux.md
@@ -0,0 +1,61 @@
+# Instalace pro Linux
+
+Na správně nastaveném počítači stačí zadat:
+
+```console
+$ picocom -b 115200 --flow n /dev/ttyUSB0
+```
+
+Pokud příkaz neskončí s chybou, stiskni tlačítko `RST` na modulu.
+Měly by se nakonec objevit tři zobáčky, `>>>`.
+
+Většina počítačů ale na komunikaci s malými zařízeními nastavená není.
+Skončí-li příkaz `picocom` s chybou,
+oprav ji podle následujícího návodu a zkus to znova.
+(Možná bude potřeba vyřešit víc než jednu chybu.)
+
+* Nemáš-li příkaz `picocom` nainstalovaný,
+ je potřeba ho nainstalovat (např.
+ `sudo dnf install picocom` nebo
+ `sudo apt-get install picocom`).
+* Pokud `picocom` skončil s chybou
+ `No such file or directory`, pravděpodobně
+ je potřeba k zařízení přistupovat přes jiný soubor.
+ Použij příkaz `dmesg | tail`, který vypíše něco jako:
+
+
+ $ dmesg | tail
+ [703169.886296] ch341 1-1.1:1.0: device disconnected
+ [703176.972781] usb 1-1.1: new full-speed USB device number 45 using ehci-pci
+ [703177.059448] usb 1-1.1: New USB device found, idVendor=1a86, idProduct=7523
+ [703177.059454] usb 1-1.1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
+ [703177.059457] usb 1-1.1: Product: USB2.0-Serial
+ [703177.060474] ch341 1-1.1:1.0: ch341-uart converter detected
+ [703177.062781] usb 1-1.1: ch341-uart converter now attached to ttyUSB0
+
+
+
+Co znamenají ta čísla (`0` a `255`), na to už jistě přijdeš sám/sama.
+Jen při experimentování nezapomeň zavolat
+`np.write()`, tím se informace pošlou do LED pásku.
+
+Zvládneš naprogramovat semafor?
diff --git a/lessons/micropython/rgb_leds/info.yml b/lessons/micropython/rgb_leds/info.yml
new file mode 100644
index 0000000000..49716d4631
--- /dev/null
+++ b/lessons/micropython/rgb_leds/info.yml
@@ -0,0 +1,12 @@
+title: Barevná světýlka
+style: md
+attribution:
+- Pro PyLadies Brno napsal Petr Viktorin, 2016-2017.
+- Upravil Lumír Balhar, 2018.
+license: cc-by-sa-40
+css: |
+ .highlight { background-color: hsla( 0, 100%, 50%, 0.1); }
+ .highlight-nocolor{ background-color: hsla( 60, 100%, 50%, 0.75); }
+ .highlight-red { background-color: hsla( 0, 100%, 50%, 0.25); }
+ .highlight-green { background-color: hsla(113, 100%, 50%, 0.25); }
+ .highlight-blue { background-color: hsla(236, 100%, 50%, 0.25); }
diff --git a/lessons/micropython/servo/index.md b/lessons/micropython/servo/index.md
new file mode 100644
index 0000000000..9bdac24e07
--- /dev/null
+++ b/lessons/micropython/servo/index.md
@@ -0,0 +1,74 @@
+## Servomotor
+
+Čas na další součástku! Tentokrát to bude *servomotor*.
+
+Servomotor je součástka, která má v sobě zabudovaný
+ovladač, se kterým si naše zařízení může povídat
+jednoduchým „elektronickým jazykem” – *protokolem*.
+Motorku můžeš posílat impulzy a podle délky impulzu
+se servomotor natočí.
+Při krátkých impulzech se natočí víc na jednu stranu,
+při dlouhých na druhou.
+Impulzy musíš posílat neustále, jinak se servomotor
+vypne.
+
+Na rozdíl od bzučítka, kde o výšce tónu rozhodovala
+frekvence (`freq`) – kolikrát za vteřinu
+se ozve lupnutí – a LED, kde o intenzitě rozhodovala
+střída (`duty`) – poměr mezi dobou kdy
+dioda svítí a kdy nesvítí, u servomotoru rozhoduje
+tzv. *šířka pulzu*: jak dlouho se napětí udrží
+na 3,3 V, než se přepne zpátky na 0 V.
+
+
+
+V praxi to znamená, že můžeš nastavit `freq`
+na 50 Hz, a `duty` měnit cca od 35
+(úplně vlevo) přes 77 (uprostřed) po 120 (úplně vpravo).
+
+Dost ale teorie, pojďme si to vyzkoušet! Napřed musíš motorek zapojit:
+
+* hnědý drát (zem) na `G`,
+* červený drát (napájení) na `3V` a
+* oranžový drát (data) na `D4`.
+
+Nožička `D4` odpovídá `Pin(2)`, takže kód k otáčení motorku je:
+
+```python
+from machine import Pin, PWM
+
+pin_motorku = Pin(2, Pin.OUT)
+pwm = PWM(pin_motorku, freq=50, duty=77)
+pwm.duty(35)
+```
+
+Zkus motorkem otáčet nastavováním `duty` na 35 do 120.
+Kdyby se náhodou stalo, že se modul restartuje a
+konzole přestane fungovat, zkus ho odpojit a znovu
+připojit. Kdyby to nepomohlo, motorek ti dneska
+nebude fungovat. Za chvíli si řekneme proč; zatím (jsi-li na kurzu)
+se přidej do dvojice k někomu, komu to funguje.
+
+## Poznámka o napájení
+
+K tomu, aby se otočil motor, je potřeba mnohem víc
+energie, než k rozsvícení světýlka.
+Z USB z počítače té energie dostaneš docela málo,
+proto můžou být s motorkem problémy.
+
+Jak to řešit, až si přestaneš hrát a budeš chtít motorkem otáčet „doopravdy”?
+
+Servo a destičku můžeš napájet zvlášť:
+například servo z baterií a destičku dál z USB.
+V tomhle případě je důležité:
+
+* Napětí baterie musí odpovídat tomu, co zvládne tvůj servomotor
+* Všechny připojené součástky musí mít propojenou zem (`GND` na destičce,
+ hnědý drát servomotoru, `-` baterie).
+
+Zapojení pak bude následující:
+
+* `-` baterie na hnědý drát (zem) serva *a zároveň* na `GND` desky
+* `+` baterie na červený drát (napájení) serva
+* `D4` desky na oranžový drát (data) serva
+
diff --git a/lessons/micropython/servo/info.yml b/lessons/micropython/servo/info.yml
new file mode 100644
index 0000000000..799546a6a8
--- /dev/null
+++ b/lessons/micropython/servo/info.yml
@@ -0,0 +1,6 @@
+title: Servomotor
+style: md
+attribution:
+- Pro PyLadies Brno napsal Petr Viktorin, 2016-2017.
+- Upravil Lumír Balhar, 2018.
+license: cc-by-sa-40
diff --git a/lessons/micropython/socket/index.md b/lessons/micropython/socket/index.md
new file mode 100644
index 0000000000..855dc085fe
--- /dev/null
+++ b/lessons/micropython/socket/index.md
@@ -0,0 +1,33 @@
+## Komunikace
+
+Pro komunikaci po síti můžete použít nízkoúrovňovou knihovnu `socket`,
+nebo protokol pro „internet of things“ (jako MQTT), ale
+MicroPython pro ESP8266 má zabudouvanou i knihovnu pro HTTP:
+ořezanou verzi známých Requests.
+Následující kód stáhne data ze stránky
+[api.thingspeak.com/channels/1417/field/2/last.txt](http://api.thingspeak.com/channels/1417/field/2/last.txt),
+kde se objevuje poslední barva tweetnutá s hashtagem `#cheerlights`.
+
+Výslednou hodnotu lze použít jako barvu modul v LED pásku.
+
+```python
+import urequests
+
+url = 'http://api.thingspeak.com/channels/1417/field/2/last.txt'
+
+def download_color():
+ response = urequests.get(url)
+ text = response.text
+
+ if text and text[0] == '#':
+ color = text[1:7]
+
+ red = int(color[0:2], 16)
+ green = int(color[2:4], 16)
+ blue = int(color[4:6], 16)
+
+ return red, green, blue
+ return 0, 0, 0
+```
+
+Opravdové projekty používají lehčí protokoly než HTTP, například MQTT.
diff --git a/lessons/micropython/socket/info.yml b/lessons/micropython/socket/info.yml
new file mode 100644
index 0000000000..7d65a1136a
--- /dev/null
+++ b/lessons/micropython/socket/info.yml
@@ -0,0 +1,6 @@
+title: Komunikace
+style: md
+attribution:
+- Pro PyLadies Brno napsal Petr Viktorin, 2016-2017.
+- Upravil Lumír Balhar, 2018.
+license: cc-by-sa-40
diff --git a/lessons/micropython/switch/index.md b/lessons/micropython/switch/index.md
new file mode 100644
index 0000000000..8a5232a196
--- /dev/null
+++ b/lessons/micropython/switch/index.md
@@ -0,0 +1,12 @@
+## Další tlačítko
+
+Teď si vezmi tlačítko a připoj ho k modulu:
+`GND` vždycky na `G`, `VCC` vždycky na `3V` a
+`OUT` na `D1`.
+
+Tlačítko funguje tak, že `OUT` spojí buď s `VCC` (`3V`)
+nebo `GND`, podle toho, jestli je tlačítko stisknuté.
+(A navíc to taky teda svítí, ale to je teď vedlejší.)
+
+Zkus si, jestli se zvládneš MicroPythonu zeptat, jestli je tlačítko zapnuté.
+Mělo by to být podobné jako u příkladu s tlačítkem `FLASH`.
diff --git a/lessons/micropython/switch/info.yml b/lessons/micropython/switch/info.yml
new file mode 100644
index 0000000000..00df727fda
--- /dev/null
+++ b/lessons/micropython/switch/info.yml
@@ -0,0 +1,6 @@
+title: Další tlačítko
+style: md
+attribution:
+- Pro PyLadies Brno napsal Petr Viktorin, 2016-2017.
+- Upravil Lumír Balhar, 2018.
+license: cc-by-sa-40
diff --git a/lessons/micropython/thermometer/index.md b/lessons/micropython/thermometer/index.md
new file mode 100644
index 0000000000..7430246ff9
--- /dev/null
+++ b/lessons/micropython/thermometer/index.md
@@ -0,0 +1,61 @@
+# Teploměr
+
+Ukážeme si jednoduchý teploměr DS18B20.
+Tento teploměr se vyrábí v několika provedeních a je velmi populární především
+pro jednoduchost použití a velmi nízkou cenu.
+
+Stejně jako si MicroPython pomocí speciálního „jazyka” rozumí s LED páskem,
+ovládá i „jazyk” pro komunikaci s teploměrem a řadou dalších zařízení.
+Tento „jazyk“, protokol sběrnice OneWire, má navíc tu výhodu, že se na jednu
+nožičku destičky dá připojit hned několik teploměrů a číst teploty
+z každého z nich.
+
+
+## Zapojení
+
+> [warning]
+> Po zapojení drž teploměr na chvíli mezi prsty.
+> Pokud je zapojený špatně, začne se velmi rychle zahřívat.
+> V takovém případě jej okamžitě odpoj.
+
+Otoč teploměr tak, aby jeho „břicho” směřovalo směrem od tebe.
+Následně propoj nožičky teploměru s destičkou takto:
+
+* Levou nožičku propoj s `GND`
+* Prostřední nožičku propoj s `D4`
+* Pravou nožičku propoj s `3V3`
+
+# Měření
+
+Pokud je vše zapojeno správně, přistup k měření teploty.
+
+```python
+from time import sleep
+from machine import Pin
+import onewire
+from ds18x20 import DS18X20
+
+
+pin = Pin(2, Pin.IN) # D4
+ow = DS18X20(onewire.OneWire(pin))
+sensory = ow.scan()
+
+ow.convert_temp()
+sleep(1)
+teplota = ow.read_temp(sensory[0])
+print("Teplota je", teplota)
+```
+
+Tento kód nejdříve opět připraví nožičku (pin) pro komunikaci a následně na ní
+připraví komunikační protokol OneWire a teploměr DS18X20.
+Prvním krokem k teplotě je nalezení všech dostupných teploměrů na dané
+sběrnici, což nám zajistí metoda `ow.scan()`,
+která nám vrátí seznam identifikátorů nalezených teploměrů.
+
+Metoda `ow.convert_temp()` pak pošle všem teploměrům příkaz, aby změřily
+teplotu.
+Po tomhle rozkazu musíš alespoň vteřinu počkat a následně můžeš
+teplotu z čidla přečíst.
+
+Zkus teploměr na chvíli chytit mezi prsty, zahřát ho tak, a změřit teplotu
+znovu.
diff --git a/lessons/micropython/thermometer/info.yml b/lessons/micropython/thermometer/info.yml
new file mode 100644
index 0000000000..309ea2db9b
--- /dev/null
+++ b/lessons/micropython/thermometer/info.yml
@@ -0,0 +1,6 @@
+title: Teploměr
+style: md
+attribution:
+- Pro PyLadies CZ napsal Lumír Balhar 2018.
+- Upravil Petr Viktorin, 2019.
+license: cc-by-sa-40
diff --git a/lessons/micropython/webrepl/index.md b/lessons/micropython/webrepl/index.md
new file mode 100644
index 0000000000..a6c1ffda16
--- /dev/null
+++ b/lessons/micropython/webrepl/index.md
@@ -0,0 +1,49 @@
+## WebREPL
+
+ESP8266 byl původně navržen i jako čip pro WiFi a i s MicroPythonem se umí připojit k síti.
+Dokonce se přes WiFi dá i ovládat.
+
+Otevři si stránku [micropython.org/webrepl](http://micropython.org/webrepl/),
+přes kterou budeš po připojení s destičkou komunikovat.
+
+Poté se buď připoj k existující WiFi síti (Eduroam fungovat nebude) nebo
+použij destičku jako samostatný *access point*:
+
+```python
+
+# Existující síť:
+
+ESSID = ...
+PASSWORD = ...
+
+import network
+wlan = network.WLAN(network.STA_IF)
+wlan.active(True)
+if not wlan.isconnected():
+ print('connecting to network...')
+ wlan.connect(ESSID, PASSWORD)
+ while not wlan.isconnected():
+ pass
+print('network config:', wlan.ifconfig())
+
+# AP:
+
+ESSID = ...
+PASSWORD = ...
+CHANNEL = 3
+
+import network
+ap_if = network.WLAN(network.AP_IF)
+ap_if.active(True)
+ap_if.config(essid=ESSID, password=PASSWORD, authmode=network.AUTH_WEP, channel=CHANNEL)
+print('network config:', ap_if.ifconfig())
+
+# Nastavení WebREPL:
+
+import webrepl_setup
+```
+
+S počítačem se připoj na stejnou síť a na stránce webrepl otevřené výše
+se připoj k IP vypsané z `ifconfig()`. Měl{{a}} bys dostat konzoli, jako přes
+USB. Pomocí WebREPL lze nejen zadávat interaktivní příkazy, ale i nahrávat
+soubory.
diff --git a/lessons/micropython/webrepl/info.yml b/lessons/micropython/webrepl/info.yml
new file mode 100644
index 0000000000..095424de4c
--- /dev/null
+++ b/lessons/micropython/webrepl/info.yml
@@ -0,0 +1,6 @@
+title: WebREPL
+style: md
+attribution:
+- Pro PyLadies Brno napsal Petr Viktorin, 2016-2017.
+- Upravil Lumír Balhar, 2018.
+license: cc-by-sa-40