Нави Тулаг – От датчика до интерфейса. Практическое руководство по созданию инженерных десктоп приложений на Python и web-технологиях (страница 1)
Нави Тулаг
От датчика до интерфейса. Практическое руководство по созданию инженерных десктоп приложений на Python и web-технологиях
Предисловие: Между физическим и цифровым миром
Представьте себе на мгновение современную инженерную лабораторию.
С одной стороны — физический мир. Датчики температуры, вибрации, давления. Микроконтроллеры Arduino и ESP32, которые снимают показания 24/7. COM-порты, по которым бегут байты данных. Провода, паяльник, осциллограф. Это мир сигналов, шумов и реальных измерений.
С другой стороны — цифровой мир. Графики в реальном времени, базы данных, облачные сервисы, веб-интерфейсы. Это мир визуализации, анализа и принятия решений.
Долгое время эти миры были разделены.
Инженеры, умеющие работать с железом, часто останавливались на консоли или Excel. Веб-разработчики создавали красивые интерфейсы, но не могли получить данные с датчика. Python-скрипты анализировали данные, но не имели удобного GUI для коллег.
Но что, если бы существовал мост?
Мост, который позволяет принять данные с Arduino через COM-порт и сразу отобразить их на красивом графике в окне приложения? Мост, который позволяет превратить скрипт на Python в полноценную программу с кнопками и меню, которую можно отправить коллеге одним файлом? Мост, который позволяет получать данные с ESP32 из любой точки мира через облако?
Этот мост был построен. И он имеет несколько мощных опор: Python Eel, Electron и Neutralino.
Эта книга — ваш путеводитель по этому мосту.
Почему эта книга? И для кого она?
Когда я только начинал создавать инструменты для своей лаборатории, я столкнулся с парадоксом. Информации было много, но она была разрозненна. Туториалы по веб-разработке не говорили о COM-портах. Примеры для Arduino заканчивались на «мигающем светодиодах» и простом взаимодействии с датчиками. Мне приходилось методом проб и ошибок, тратя много времени, собирать по крупицам понимание: как сделать так, чтобы кнопка в интерфейсе реально включала реле?
Я написал эту книгу, чтобы сэкономить вам это время и избавить от этих ошибок.
Эта книга для Вас:
Если вы...
Эта книга даст вам...
Инженер-экспериментатор
Быстрый способ создать панель управления для вашей установки без изучения сложного GUI
Студент технической специальности
Дипломный проект с реальным железом и современным интерфейсом
Исследователь/лаборант
Инструмент для сбора данных без зависимости от IT-отдела
Разработчик на Python
Возможность «прикрутить» удобный фронтенд к своим скриптам за вечер
Наша философия: от простого к сложному
В интернете полно священных войн на холиварную тему «Какой фреймворк лучше?». Эта книга не участвует в них. Наша главная цель — дать вам инструмент для решения задачи.
Мы пойдём по пути постепенного усложнения:
Часть 1: Поймём, зачем вообще нужно своё приложение.
Часть 2: Освоим Python Eel — самый простой способ для инженера.
Часть 3: Подключим Arduino и научимся работать с COM-портами.
Часть 4: Выйдем в IoT — получим данные с ESP32 из облака через MQTT.
Часть 5: Рассмотрим альтернативы и научимся упаковывать приложения для коллег.
Уникальная особенность: Режим эмуляции
Одна из главных проблем инженерного ПО — зависимость от железа. Что делать, если Arduino нет под рукой? Или она в другой лаборатории?
В этой книге вы узнаете, как внедрить режим эмуляции (DEBUG_MODE). Вы сможете тестировать интерфейс и логику приложения, генерируя правдоподобные данные программно. Это ускорит разработку в 3–5 раз и позволит демонстрировать приложение заказчику без необходимости везти с собой установку.
Что вас ждёт внутри?
Каждая глава — это готовое решение, которое можно скопировать и адаптировать:
✅ Режим эмуляции — тестируйте код без Arduino/ESP32
✅ Графики в реальном времени — Chart.js + Python
✅ Работа с COM-портами — pyserial, обработка ошибок
✅ IoT-мониторинг — MQTT, HiveMQ Cloud, GitHub Pages
✅ Упаковка в .exe — PyInstaller, один файл для коллег
Исходный код всех приложений, упомянутых в статье, доступен в открытом репозитории на GitHub:
https://github.com/Book-From-the-sensor-to-the-interface/sketch_for_book.git
Технологии — это не просто инструменты. Это расширители возможностей. Они стирают границы между «железом» и «программой». Моя задача как автора — не просто научить вас пользоваться тремя фреймворками, а дать вам свободу создавать инструменты, которые облегчают вашу инженерную работу.
Готовы стереть границы между датчиком и интерфейсом? Тогда начнём наше путешествие.
Часть 1. Введение в инженерную разработку ПО
Глава 1. Зачем инженеру своё приложение?
О чём эта глава?
Вы, вероятно, слышали фразу:
Иногда это звучит как истина. Но на практике — готовые инструменты часто не подходят под специфические задачи лаборатории или производства.
В этой главе мы разберём четыре ключевые причины, по которым инженеру стоит писать своё ПО:
✅ Производительность (автоматизация рутины)
✅ Доступ к оборудованию (COM-порты, GPIO, датчики)
✅ Автономная работа (без интернета, в цеху, в “поле”)
✅ Визуализация и контроль (графики в реальном времени, кнопки управления)
Вы поймёте, почему такие задачи, как «сбор данных с термопары» или «контроль вибрации двигателя», лучше решать своим приложением, чем универсальными инструментами.
1.1. Excel и консоль — это не панацея
Представьте: вы проводите серию экспериментов. Вам нужно снимать показания с датчика каждые 100 мс, сохранять их в файл и сразу видеть график, чтобы понять, не вышел ли параметр за допустимые пределы.
В Excel:
Нет прямого доступа к COM-порту (нужны макросы или плагины).
Обновление данных в реальном времени тормозит на больших объёмах.