Edocti
Training tehnic avansat pentru inginerul software de mâine
Edocti Training

Python Avansat pentru IoT și Sisteme Embedded

Avansat
21 h
4.8 (237 recenzii)

Sesiuni programate

Începe: 07.09.2026 , 3 zile
Live online Confirmat RO ● Instructor-led
Python Avansat pentru IoT și Sisteme Embedded

Python pentru proiecte IoT & Embedded: Descoperă cum să aplici funcționalități avansate Python direct pe plăci embedded și dispozitive IoT conectate.

Lucrează intensiv (hands-on) cu MicroPython, CircuitPython și integrează fără efort cod Python cu biblioteci native din C/C++.

Învață să controlezi la nivel low-level senzori, actuatori, porturi GPIO și interfețe de comunicație (UART, SPI, I²C).

Dobândești experiență practică: ~70% din timp este alocat laboratoarelor pe hardware real (sau simulat), pentru a vedea efectiv rezultatele codului tău.

Cum te ajută acest curs: Îți oferă know-how-ul necesar pentru a dezvolta prototipuri IoT eficiente și soluții de producție robuste, reziliente la erori.

Cui i se adresează: Programatorilor cu o bază solidă de Python care fac tranziția spre IoT, programare de sistem sau medii Edge.

Cursul abordează și subiecte complexe precum rețelistică, profiling de performanță și deployment securizat OTA.

Abilități dobândite

MicroPython & CircuitPython Async I/O & Concurență Interfețe Hardware (UART/SPI) Parsare Binară & Protocoale Interoperabilitate C/C++ Deployment Edge & MQTT Profiling de Performanță Defensive Coding

Curriculum

Bazele Python modern (rapid dar în profunzime)

  • Data model și protocolul dunder; context managers și patternuri tip RAII
  • Typing esențial: typing, dataclasses, Protocols, TypedDict, generics; verificări statice vs runtime
  • Structural pattern matching (match/case) și când crește lizibilitatea
  • Iterables/iterators/generators; corutine bazate pe generator vs async/await
  • Baze de memorie pentru viteză: bytes/bytearray/memoryview; copy vs view

Async I/O & concurrency pentru systems

  • Eveniment loop în asyncio; tasks, cancellations, timeouts; backpressure și cozi
  • Threads vs processes vs async — alegerea corectă; implicațiile GIL
  • Gestionarea subprocess; piping și streaming de loguri
  • AnyIO/Trio (overview) și integrarea codului blocant cu executors
  • Lab: punte async serial→MQTT cu retries și shutdown grațios

I/O binar, parsing și protocoale

  • struct, array, ctypes; endianness, alignment și patternuri de CRC
  • Strategii de framing pentru UART/TCP (length-prefix, delimiters, COBS/SLIP)
  • Memory mapping (mmap) și zero-copy slices; ring buffers
  • Lab: parse pentru un frame de telemetrie și validare CRC

Interfețe Embedded & IoT

  • Serial (pyserial) și elemente de GPIO (note pe platforme); SPI/I2C — overview
  • BLE cu bleak (overview) și MQTT cu paho-mqtt/httpx-websockets
  • CAN cu python-can (overview) și strategii de logging pe device
  • Împachetarea SDK-urilor și CLI-urilor pentru operatori

Packaging & managementul dependențelor (modern)

  • pyproject.toml (PEP 517/518/621); build backends (setuptools/hatchling)
  • Editable installs, wheels, versionare; constraints vs pins; pipx pentru unelte
  • Mediu virtual (venv) și izolare pe proiect; builduri reproductibile
  • Lab: împachetarea unei librării „driver” și publicare pe un index intern

Testare, calitate și robustețe

  • pytest fixtures/parametrize; tmp_path, monkeypatch; elemente de coverage
  • Hypothesis pentru property-based tests; fuzzing pe parsere simple
  • Verificări statice: mypy (strict-ish), ruff/flake8, black; pre-commit hooks
  • Defensive coding: timeouts, retries cu jitter, circuit breakers (schiță)

Performanță & profiling

  • cProfile, contori de performanță, sampling profilers; capcane timeit
  • Vectorizare cu numpy; când folosim numba sau Cython (overview)
  • Async vs threads pentru I/O-bound; batching și buffering
  • Lab: profilarea parserului de telemetrie și eliminarea copiilor inutile

Interop C/C++ și viteză nativă

  • ctypes și cffi — compromisuri; apel în librării native în siguranță
  • pybind11 pentru extensii (design & ABI)
  • Construirea wheels pentru Linux/Windows/macOS; manylinux și cross-compile — elemente de bază
  • Lab: wrap pentru o funcție C de CRC și benchmark vs Python pur

Networking și mesagerie

  • httpx/requests — elemente; asyncio streams vs websockets
  • MQTT QoS și buffer offline; strategii de reconectare
  • ZeroMQ (overview) și patternuri nanomsg pentru edge
  • Lab: canal de comenzi rezilient peste MQTT cu backpressure

Module opționale

Opțional — MicroPython/CircuitPython și deploy la edge

  • Portarea logicii de bază în MicroPython; constrângeri și tips
  • Împachetarea firmware-ului și strategia OTA (conceptual)

Opțional — Date & ML la edge (overview)

  • Modele mici, feature extraction cu numpy/scikit-image
  • Planificare pe device și inferență cu bugete stricte

Structura zilei de curs

  • Partea 1: 09:00–10:30
  • Pauză: 10:30–10:45
  • Partea 2: 10:45–12:15
  • Pauză de prânz: 12:15–13:15
  • Partea 3: 13:15–15:15
  • Pauză: 15:15–15:30
  • Partea 4: 15:30–17:30

Ai participat la acest curs?

Opinia ta este foarte importantă pentru noi. Spune-ne cum a fost experiența ta și ajută-ne să îmbunătățim acest curs pentru viitorii participanți.

Ofera feedback

Vrei să afli mai multe? Suntem aici să te ajutăm!

Sau scrie-ne direct la training@edocti.com.