Python Programming with LLM and Generative AI¶
About¶
- Level: Beginner to Intermediate
- Lectures: 40 hours
- Self-study: 20 hours
- Exercises: 323
- Lines of Code to write: 1098
- Format: e-learning + weekly online teleconference with instructor
- Language: English or Polish
Description¶
The Python IoT and AIoT training is a practical course on programming Internet of Things devices in Python. It covers handling sensors and actuators, communication protocols (MQTT, HTTP), edge computing for on-device data processing, deployment of AI models directly on devices, integration with cloud platforms, and testing of embedded applications.
Advantages¶
- The participant programs IoT devices in Python using Raspberry Pi, MicroPython, and libraries for GPIO and sensor handling
- The participant implements and configures MQTT and HTTP/REST communication protocols in IoT systems and cloud integrations
- The participant reads data from sensors (temperature, humidity, motion, light) and controls actuators in Internet of Things projects
- The participant deploys AI models on edge devices using AIoT, TensorFlow Lite, and edge AI tools
- The participant integrates IoT devices with AWS and Azure cloud platforms, as well as data visualization tools such as Grafana
- The participant designs and implements AIoT solutions while adhering to data transmission security principles, TLS encryption, and best practices for IoT system testing
Target Audience¶
- Python developers with experience who want to expand their competencies in embedded systems and the Internet of Things
- Software engineers and IoT specialists responsible for designing and deploying connected device solutions
- Individuals working on projects in automation, Industrial IoT (IIoT), smart buildings, or edge devices
- Individuals interested in AIoT (Artificial Intelligence of Things) and running AI models at the network edge (edge AI, TinyML)
Format¶
The course is delivered as a blended learning experience, comprising numerous short videos that progressively introduce concepts and techniques through a series of practical examples. The course format combines e-learning modules with weekly online teleconferences with the instructor for Q&A, discussions, and code reviews.
During the self-study phase, students complete practical exercises that apply the learned techniques. Each exercise is designed to have 100% test coverage, allowing students to verify their solutions. Additionally, students will have access to a spreadsheet to track their progress.
Students will also receive downloadable resources, including code samples, exercise templates, and reference materials to support their learning journey. Since 2015, we have refined our materials based on student feedback to ensure clarity, engagement, and practical relevance. All code listings undergo automatic testing (over 28,000 tests) to ensure accuracy and reliability. All materials, code listings, exercises, and assignments are handcrafted by our trainers without the use of AI. All case studies and examples are based on real-world scenarios drawn from our extensive experience in software engineering.
Working language of the course is either English or Polish.
Course Outline¶
-
Introduction to the Internet of Things:
- IoT system architecture: devices, gateway, cloud
- Introduction to hardware platforms: Raspberry Pi, Arduino, ESP32, MicroPython, CircuitPython
- Overview of communication protocols and standards
- Development environment: setup, SSH, REPL
-
GPIO and hardware handling in Python:
- RPi.GPIO and gpiozero libraries
- Reading digital and analog signals
- Controlling actuators: LEDs, relays, servomechanisms, DC motors
- Interrupt-driven programming
-
Sensors and bus protocols:
- I2C protocol: configuration and data reading
- SPI protocol: configuration and peripheral communication
- 1-Wire protocol: DS18B20 temperature sensors
- Sensors: temperature and humidity (DHT22, BME280), PIR motion sensors, light and distance sensors
- Calibration and filtering of measurement data
-
Network communication in IoT:
- MQTT protocol: broker-client architecture, QoS, message retention
- HTTP/REST API as an IoT device interface (FastAPI)
- WebSocket and real-time bidirectional communication
-
Serialization and data formats:
- JSON and MessagePack in IoT communication
- Binary protocols: Protocol Buffers
- Data validation and transmission error handling
- Data compression and bandwidth optimization
-
Edge computing:
- Edge vs. cloud computing concepts
- Local data filtering and aggregation
- Task scheduling: APScheduler, systemd timers
- Queuing and buffering: Redis, SQLite
- Event-based triggers and threshold alerts
-
Integration with cloud platforms:
- AWS IoT Core: device registration, certificates, policies
- Azure IoT Hub: device connection, Device Twin, Direct Methods
- Mosquitto as a local MQTT broker
- InfluxDB and Prometheus for time-series storage
- Grafana: IoT data visualization
-
IoT application testing:
- Specifics of embedded system testing
- Hardware mocking: GPIO, sensors, and network interfaces
- Unit testing of IoT modules
- Integration testing: MQTT broker simulation (hbmqtt, pytest-mqtt)
- Testing asynchronous IoT code with asyncio
-
Security in IoT systems:
- TLS/SSL encryption in MQTT and HTTP communication
- Certificate and key management
- Device authentication and access authorization
- Common IoT vulnerabilities and mitigation methods
-
AIoT — artificial intelligence on edge devices
- AIoT concept: combining IoT with AI/ML at the edge
- Comparison: local inference vs. cloud-based processing
-
Optional topics:
- TinyML: ML models on microcontrollers and resource-constrained devices
- TensorFlow Lite: model conversion and optimization (quantization, pruning)
- ONNX Runtime on Raspberry Pi: model inference in Python
- Sensor data classification: anomaly detection in time series
- Computer vision on-device: OpenCV + picamera2, object and motion detection
- Audio processing and keyword spotting
- Model optimization for latency and energy consumption
-
Final project:
- AIoT station project: data acquisition, local model inference, MQTT transmission, Grafana visualization
- Code review and discussion of participant solutions
Our Experience¶
AATC trainers have been teaching software engineering since 2015. We have already delivered over 11,000 (eleven thousand) hours of software engineering training to more than 32,000 (thirty-two thousand) students worldwide.
Prerequisites¶
- Ability to develop software in Python at an intermediate level
- Understanding of object-oriented programming principles
- Basic knowledge of computer networks (TCP/IP, HTTP)
- Ability to use the Linux command line
- Basic knowledge of machine learning concepts (classification, regression) is helpful for AIoT modules
- Basic knowledge of electricity and electronics is not required but will be beneficial
Setup¶
- Newest version of Python
- IDE of your choice (e.g., PyCharm, VSCode)
- Git installed and configured
- GitHub account
- Web browser (e.g., Chrome, Firefox, Safari, etc.)
Apply¶
If you are interested in taking this course, please contact us at info@astronaut.center
Related Courses¶
- AI Programming
- Vibe Coding
- Neural Networks from Scratch
- Data Analysis and Visualization with Pandas
- Numerical Analysis with Numpy
- All Courses