Портфолио учебных IoT и embedded-кейсов: STM32, Mbed OS, ESP8266, MQTT, Rightech IoT Cloud.
Этот репозиторий собран как портфолио-кейс по дисциплине "Проектно-исследовательский семинар" программы "Интернет вещей и киберфизические системы". Внутри - пять законченных практических работ: от базового GPIO на STM32 до MQTT-сценариев, автополива растений и облачной логики в Rightech IoT Cloud.
Исходные отчеты сохранены в reports/, прошивка для автополива - в firmware/, а ключевые фрагменты кода вынесены в snippets/, чтобы репозиторий читался как инженерное портфолио, а не как папка с файлами.
| Кейс | Проект | Что реализовано | Технологии | Артефакты |
|---|---|---|---|---|
| 01 | STM32 electronic lock | Электронный замок с четырехкнопочной клавиатурой, реле и световой индикацией | STM32 Nucleo, Mbed OS, GPIO, Relay | отчет, snippet |
| 02 | Farm humidity monitor | Измеритель влажности на фармскладе с параллельным измерением и LED-индикацией аварии | STM32, SHT31, I2C, Threads | отчет, snippet |
| 03 | ESP8266 Wi-Fi module | Работа с ESP8266 через AT-команды, UART-мост и TCP socket demo | ESP8266, USB-UART, Mbed, Sockets | отчет, snippet, config |
| 04 | MQTT auto watering | Система автополива: влажность публикуется в MQTT, помпа управляется автоматически и по команде do |
MQTT, Mosquitto, STM32, Wi-Fi, Pump, Relay | отчет, firmware, snippet |
| 05 | Rightech IoT Cloud | Облачный сценарий мониторинга температуры склада с автоматом состояний и email-уведомлениями | Rightech, MQTT, Mosquitto, Cloud automation | отчет, workflow |
flowchart LR
Sensor["Sensors: humidity, temperature, distance"] --> MCU["STM32 Nucleo + Mbed OS"]
MCU --> Actuator["Relay, LED, pump"]
MCU --> WiFi["ESP8266 / Wi-Fi"]
WiFi --> MQTT["MQTT broker: Mosquitto / HiveMQ"]
MQTT --> Cloud["Rightech IoT Cloud"]
Cloud --> Logic["State machines and notifications"]
MQTT --> Dashboard["Monitoring tools: MQTTLens / console"]
| Навык | Где видно |
|---|---|
| Embedded C/C++ под Mbed OS | GPIO, ADC, I2C, UART, threads, queues, memory pools |
| Работа с датчиками | SHT31, датчик влажности почвы, акселерометр, дальномер |
| Сетевые протоколы IoT | ESP8266 AT-команды, TCP sockets, MQTT publish/subscribe |
| Реальные исполнительные устройства | Реле, силовой ключ, погружная помпа, LED-индикация |
| Облачная автоматизация | Rightech IoT Cloud, MQTT-топики, автомат состояний, email-уведомления |
| Документирование | Полные отчеты с постановкой задачи, схемами, кодом, выводами |
Кейс 04 соединяет большую часть навыков в одну систему: микроконтроллер считывает влажность почвы, публикует показания в MQTT-топик /class/stand4/humidity, запускает помпу при низкой влажности и принимает внешнюю команду do через /class/stand4/pump.
sequenceDiagram
participant Sensor as Soil sensor
participant MCU as STM32 Nucleo
participant Broker as MQTT broker
participant Pump as Pump relay
participant User as MQTT client
Sensor->>MCU: raw humidity value
MCU->>MCU: calibrate and clamp to 0..100%
MCU->>Broker: publish /class/stand4/humidity
alt humidity < 15
MCU->>Broker: publish watering
MCU->>Pump: water for 1 second
end
User->>Broker: publish do to /class/stand4/pump
Broker->>MCU: command do
MCU->>Pump: forced watering
firmware/
case-04-auto-watering.bin compiled firmware artifact
reports/
case-01-stm32-electronic-lock.docx
case-02-farm-humidity-monitor.docx
case-03-esp8266-wifi-module.pdf
case-04-mqtt-auto-watering.docx
case-05-rightech-iot-cloud.pdf
snippets/
representative code and workflow extracts
- Начните с таблицы "Карта проектов".
- Откройте отчет нужного кейса в
reports/, если нужен полный контекст: постановка задачи, оборудование, схемы, результаты. - Посмотрите
snippets/, если нужен быстрый технический срез без пролистывания отчета. - Для кейса 04 отдельно доступна скомпилированная прошивка в
firmware/.
Это учебно-портфолио репозиторий: отчеты и snippets показывают ход инженерной работы, архитектурные решения и практическое освоение IoT-стека. Для production-запуска железа потребуется адаптировать пины, Wi-Fi параметры, IP-адрес MQTT-брокера и калибровочные значения датчиков под конкретный стенд.