<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://cw.fel.cvut.cz/wiki/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://cw.fel.cvut.cz/wiki/feed.php">
        <title>CourseWare Wiki courses:b0b37nsi:tutorials</title>
        <description></description>
        <link>https://cw.fel.cvut.cz/wiki/</link>
        <image rdf:resource="https://cw.fel.cvut.cz/wiki/lib/tpl/bulma-cw/images/favicon.ico" />
       <dc:date>2026-04-21T17:22:56+0200</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/01?rev=1708539416&amp;do=diff"/>
                <rdf:li rdf:resource="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/02?rev=1771670420&amp;do=diff"/>
                <rdf:li rdf:resource="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/03?rev=1772702361&amp;do=diff"/>
                <rdf:li rdf:resource="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/04?rev=1773136122&amp;do=diff"/>
                <rdf:li rdf:resource="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/05?rev=1774518081&amp;do=diff"/>
                <rdf:li rdf:resource="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/06?rev=1775547752&amp;do=diff"/>
                <rdf:li rdf:resource="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/07?rev=1775652498&amp;do=diff"/>
                <rdf:li rdf:resource="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/08?rev=1776249735&amp;do=diff"/>
                <rdf:li rdf:resource="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/09?rev=1771174254&amp;do=diff"/>
                <rdf:li rdf:resource="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/10?rev=1771174370&amp;do=diff"/>
                <rdf:li rdf:resource="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/11?rev=1771174399&amp;do=diff"/>
                <rdf:li rdf:resource="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/12?rev=1715855867&amp;do=diff"/>
                <rdf:li rdf:resource="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/start?rev=1771174932&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://cw.fel.cvut.cz/wiki/lib/tpl/bulma-cw/images/favicon.ico">
        <title>CourseWare Wiki</title>
        <link>https://cw.fel.cvut.cz/wiki/</link>
        <url>https://cw.fel.cvut.cz/wiki/lib/tpl/bulma-cw/images/favicon.ico</url>
    </image>
    <item rdf:about="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/01?rev=1708539416&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-02-21T19:16:56+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>courses:b0b37nsi:tutorials:01</title>
        <link>https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/01?rev=1708539416&amp;do=diff</link>
        <description>1. Úvod

Cíle cvičení

Důležité odkazy

Gitlab - podklady pro Cvičení 1

Dokumentace jazyka Python

Download - Visual Studio Code

Download - Python

Návod ke cvičení

Instalace Pythonu

Mnoho operačních systémů, včetně macOS a Linuxu, obsahuje předinstalovaný Python. Verze Pythonu dodávaná s operačním systémem se nazývá systémový python.</description>
    </item>
    <item rdf:about="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/02?rev=1771670420&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-21T11:40:20+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>courses:b0b37nsi:tutorials:02</title>
        <link>https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/02?rev=1771670420&amp;do=diff</link>
        <description>2. IoT zařízení - seznámení

Cíle cvičení

Micropython na Raspberry Pi Pico W

Firmware: &lt;https://micropython.org/download/rp2-pico-w/&gt;

VSCODE Extension:  MicroPico,  GIT 

Thonny IDE: &lt;https://thonny.org/&gt;



from machine import Pin, Timer
led = Pin('LED', Pin.OUT)
timer = Timer(-1)

def blink(timer):
    led.toggle()

timer.init(freq=2, mode=Timer.PERIODIC, callback=blink)</description>
    </item>
    <item rdf:about="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/03?rev=1772702361&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-05T10:19:21+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>courses:b0b37nsi:tutorials:03</title>
        <link>https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/03?rev=1772702361&amp;do=diff</link>
        <description>3. IoT zařízení - periferie

Cíle cvičení

Implementace tlačítka s přerušením

Implementujte kód, který bude sledovat logickou úroveň na tlačítku. Do kódu zahrňte blokující fuknci (např. time.sleep(1)) a sledujte, jak tlačítko na stisknutí reaguje. Poté vyzkoušejte stejnou implementaci tlačítka s využitím přerušení.</description>
    </item>
    <item rdf:about="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/04?rev=1773136122&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-10T10:48:42+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>courses:b0b37nsi:tutorials:04</title>
        <link>https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/04?rev=1773136122&amp;do=diff</link>
        <description>4. IoT zařízení - komunikace

Cíle cvičení

Podklady
&lt;https://docs.micropython.org/en/latest/library/bluetooth.html&gt;&lt;https://github.com/makeuseofcode/Raspberry-Pi-Pico-W-WH-Bluetooth-Example-in-MicroPython&gt;&lt;https://github.com/micropython/micropython/tree/master/examples/bluetooth&gt;&lt;https://github.com/hbldh/bleak/tree/develop/examples&gt;&lt;https://www.bluetooth.com/specifications/assigned-numbers/&gt;
BLE Scanner

Pokud bychom chtěli vědět o všech zařízeních okolo, je možné spustit na PC scanner, který p…</description>
    </item>
    <item rdf:about="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/05?rev=1774518081&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-26T10:41:21+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>courses:b0b37nsi:tutorials:05</title>
        <link>https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/05?rev=1774518081&amp;do=diff</link>
        <description>5. Server - REST API

Cíle cvičení
HTMLCSSAPIAPI
Flask

V níže uvedeném bloku kódu nejprve importujete objekt Flask z balíčku flask. Poté pomocí něj vytvoříte instanci aplikace Flask a dáte jí jméno app. Předáte speciální proměnnou name, která obsahuje název aktuálního modulu Pythonu. Toto jméno říká instanci, kde se nachází; potřebujete ho, protože Flask v zákulisí nastavuje některé cesty.</description>
    </item>
    <item rdf:about="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/06?rev=1775547752&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-07T09:42:32+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>courses:b0b37nsi:tutorials:06</title>
        <link>https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/06?rev=1775547752&amp;do=diff</link>
        <description>6. Server - MQTT

Cíle cvičení

Důležité odkazy
Paho MQTT Flask-MQTT
Návod ke cvičení

MQTT

MQTT (Message Queuing Telemetry Transport) představuje síťový protokol navržený speciálně pro potřeby Internetu Věcí (IoT). Tento protokol umožňuje efektivní výměnu zpráv mezi zařízeními v IoT prostředí, a to i přes nestabilní nebo pomalé síťové spojení. Jeho hlavní silou je jednoduchost a nízké nároky na systémové zdroje, což z něj činí ideální volbu pro zařízení s omezeným výpočetním výkonem a pamětí.…</description>
    </item>
    <item rdf:about="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/07?rev=1775652498&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-08T14:48:18+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>courses:b0b37nsi:tutorials:07</title>
        <link>https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/07?rev=1775652498&amp;do=diff</link>
        <description>7. Server - databáze

Cíle cvičení

Důležité odkazy
SQLitePython - sqlite3Command Line Shell For SQLiteFlask-SQLalchemyW3Schools - SQL
Databáze

Databáze jsou nezbytné pro správu a ukládání dat v aplikacích. Bez nich bychom nemohli efektivně ukládat, vyhledávat, aktualizovat a mazat data, což by znamenalo, že bychom museli spravovat data ručně, což by bylo časově a finančně náročné.</description>
    </item>
    <item rdf:about="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/08?rev=1776249735&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-15T12:42:15+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>courses:b0b37nsi:tutorials:08</title>
        <link>https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/08?rev=1776249735&amp;do=diff</link>
        <description>8. Data - vizualizace

Cíle cvičení

Podklady
MatplotlibCo je to Data URIchart.js
Kreslení grafů pomocí Matplotlib

Matplotlib renderuje data na displej nebo do souboru prostřednictvím backendu, což je vykreslovací zařízení poskytované operačním systémem prostřednictvím vhodné knihovny (např. Qt). Pro naše účely použijeme neinteraktivní statické backendy (tj. nebude se vytvářet vykreslovací okno) a graf budeme transformovanat na proud binárních dat. Tato data pak pošleme společně s vhodným…</description>
    </item>
    <item rdf:about="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/09?rev=1771174254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-15T17:50:54+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>courses:b0b37nsi:tutorials:09</title>
        <link>https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/09?rev=1771174254&amp;do=diff</link>
        <description>9. Data - extrakce

Cíle cvičení</description>
    </item>
    <item rdf:about="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/10?rev=1771174370&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-15T17:52:50+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>courses:b0b37nsi:tutorials:10</title>
        <link>https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/10?rev=1771174370&amp;do=diff</link>
        <description>10. Data - ML

Cíle cvičení</description>
    </item>
    <item rdf:about="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/11?rev=1771174399&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-15T17:53:19+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>courses:b0b37nsi:tutorials:11</title>
        <link>https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/11?rev=1771174399&amp;do=diff</link>
        <description>11. TBD

Cíle cvičení</description>
    </item>
    <item rdf:about="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/12?rev=1715855867&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-16T12:37:47+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>courses:b0b37nsi:tutorials:12</title>
        <link>https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/12?rev=1715855867&amp;do=diff</link>
        <description>12. Virtualizace

Cíle cvičení

Podklady
&lt;https://docs.docker.com/&gt;&lt;https://gitlab.fel.cvut.cz/B232_B0B37NSI/test-cicd-flask-app&gt;&lt;https://docs.pytest.org/en/8.2.x/&gt;
Vytvoření Docker image

Vytvoříme jednoduchou aplikaci ve Flasku, která bude vracet renderovanou šablonu: 



# main.py

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('home.html')

if __name__ == &quot;__main__&quot;:
    app.run(host='0.0.0.0', port=80, debug=True)…</description>
    </item>
    <item rdf:about="https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/start?rev=1771174932&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-15T18:02:12+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>courses:b0b37nsi:tutorials:start</title>
        <link>https://cw.fel.cvut.cz/wiki/courses/b0b37nsi/tutorials/start?rev=1771174932&amp;do=diff</link>
        <description>Cvičení</description>
    </item>
</rdf:RDF>
