خدمات دیجیتال و تخصصی

راز طراحی HMI صنعتی با رزبری پای؛ چرا شرکت‌ها دیگر پول پای تجهیزات گران‌قیمت نمی‌دهند؟

https://raymandshop.ir/wp-content/uploads/2026/05/hmi.py
https://raymandshop.ir/wp-content/uploads/2026/05/checkweigher_v14.ziphttps://raymandshop.ir/wp-content/uploads/2026/05/checkweigher_v14.zip

آموزش اجرای سیستم داده‌برداری و HMI صنعتی با رزبری پای + کد PyQt6

اجرای سیستم داده‌برداری و HMI صنعتی با رزبری پای 4

فکر می‌کنید هنوز هم برای داشتن یک مانیتورینگ صنعتی دقیق باید ده‌ها میلیون تومان هزینه خرید HMIهای برندهای معروف و ماژول‌های PLC گران‌قیمت کنید؟ تا همین چند وقت پیش، من هم در پروژه‌های صنعتی با محدودیت‌های عجیب مانیتورهای سنتی دست و پنجه نرم می‌کردم؛ اما نتایج تست‌های اخیر من روی بردهای لینوکسی نشان می‌دهد که معادلات کاملاً تغییر کرده است.

در پروژه‌های اخیرم برای توسعه سیستم‌های حساس (مانند رابط کاربری دستگاه‌های توزین با تم تاریک صنعتی)، متوجه شدم که ترکیب Raspberry Pi 4 با قدرت گرافیکی PyQt6، نه‌تنها هزینه‌های سخت‌افزاری اتوماسیون را تا ۸۰ درصد کاهش می‌دهد، بلکه انعطاف‌پذیری فوق‌العاده‌ای برای رسم نمودارهای زنده (Live Charting)، کیپدهای مجازی و دیتابیس‌های لوکال در اختیار مهندسین قرار می‌دهد. در این مقاله، فازهای اجرایی یک سیستم داده‌برداری (DAQ) صنعتی پایدار را زیر ذره‌بین می‌بریم.

آیا رزبری پای برای محیط پرنویز صنعتی مناسب است؟

بله، اما فقط به شرط اجرای ایزولاسیون گالوانیک. بردهای رزبری پای به خودی خود برای محیط‌های دارای نویز الکترومغناطیسی (EMI) یا موتورهای سه‌فاز طراحی نشده‌اند. اگر سنسورها را مستقیماً به پایه‌های GPIO متصل کنید، اولین استارت یک الکتروموتور باعث کرش کردن کل سیستم می‌شود.

شماتیک سخت‌افزاری و نویزگیری رزبری پای

برای تبدیل این برد به یک غول صنعتی، در فاز سخت‌افزار از استراتژی‌های زیر استفاده می‌کنیم:

  • استفاده از اپتوکوپلرها (Optocouplers): جداسازی کامل مدار فرمان (رزبری پای 3.3V) از مدار قدرت (سنسورهای 24V صنعتی).
  • تغذیه ایزوله: استفاده از منابع تغذیه سوئیچینگ صنعتی و ماژول‌های کاهنده با فیلترهای خازنی مناسب برای جلوگیری از افت ولتاژ (Under-voltage).
  • ارتباطات تفاضلی: استفاده از پروتکل‌های پایدار مثل RS485 (مدباس) به جای I2C یا SPI در فواصل طولانی‌تر از چند سانتی‌متر.
نکته کلیدی: کلید پایداری یک HMI سفارشی، نه در کدنویسی، بلکه در طراحی شیلد واسط (Hat) با ایزولاسیون نوری و تغذیه رگوله‌شده است.

معماری نرم‌افزار: چرا PyQt6 بهترین انتخاب برای HMI است؟

وقتی صحبت از مانیتورینگ ۲۴ ساعته و بدون قطعی می‌شود، رابط‌های کاربری تحت وب گاهی به دلیل نشتی حافظه (Memory Leak) مرورگرها دچار لگ می‌شوند. راه حل قطعی، استفاده از اپلیکیشن‌های Native دسکتاپ است.

طراحی رابط کاربری صنعتی HMI با PyQt6

در پروژه‌های تخصصی توسعه نرم‌افزاری و خدمات تحت وب ما، معماری PyQt6 به دلایل زیر انتخاب اول است:

  • پشتیبانی از Multi-threading (QThread): در سیستم‌های داده‌برداری، خواندن دیتا از پورت سریال نباید باعث فریز شدن رابط گرافیکی شود. با QThread، یک پردازش مجزا فقط دیتا را می‌خواند و گرافیک با سرعت 60 فریم بر ثانیه آپدیت می‌شود.
  • نمودارهای زنده (Live Charting): با ترکیب PyQt6 و کتابخانه pyqtgraph، می‌توانیم داده‌های سنسورها (مثلاً لودسل‌های توزین یا سنسورهای فشار) را در لحظه با استایل تاریک (Dark Mode) صنعتی رسم کنیم.
  • کیپد مجازی یکپارچه: برای مانیتورهای لمسی رزبری پای، ایجاد یک Virtual Keypad ایمن و سفارشی با پایتون بسیار ساده‌تر از وابستگی به کیبوردهای مجازی سیستم‌عامل است.

فاز پردازش داده و ثبت آماری (Data Logging)

موتور پردازش داده در سیستم داده برداری

یک HMI مدرن فقط نمایشگر نیست، بلکه دیتالاگر نیز هست. در سیستم اجرا شده، موتور پردازش داده‌ها (Data Engine) وظیفه دارد مقادیر را هر ۱۰۰ میلی‌ثانیه فیلتر کند (با استفاده از فیلترهای کالمن یا میانگین متحرک برای حذف نویز سنسور) و در دیتابیس‌های سبکی مثل SQLite ثبت کند.

گزارش‌گیری و تحلیل آماری داده‌های صنعتی

این اطلاعات به سرپرست خط تولید اجازه می‌دهد تا با یک فلش مموری ساده یا از طریق شبکه، فایل‌های خروجی CSV شامل گزارش شیفت‌ها، خطاها و زمان‌های توقف ماشین‌آلات را دریافت کند.

مقایسه HMI سنتی با سیستم رزبری پای (Raspberry Pi vs Traditional HMI)

جدول مقایسه HMI سفارشی با پنل‌های آماده
ویژگی پنل HMI سنتی (Delta/Siemens) سیستم سفارشی رزبری پای + PyQt6
هزینه پیاده‌سازی بسیار بالا (بسته به ابعاد تا ده‌ها میلیون) بسیار اقتصادی (قیمت برد و مانیتور)
انعطاف در UI/UX محدود به المان‌های نرم‌افزار شرکتی نامحدود (پشتیبانی کامل از CSS، تم تاریک و انیمیشن)
اتصال به دیتابیس و شبکه نیاز به ماژول‌های افزایشی گران‌قیمت پشتیبانی Native از SQL, API, WiFi, LAN
تعمیرپذیری سخت‌افزار انحصاری و نیازمند ارسال به نمایندگی در دسترس بودن قطعات در بازار (خدمات تعمیرات سخت‌افزار)
طراحی سیستم اتوماسیون سفارشی

نیاز به یک سیستم اتوماسیون سفارشی و بدون نقص دارید؟

دیگر نیازی به پرداخت هزینه‌های گزاف به شرکت‌های واسط یا پلتفرم‌های فریلنسری نیست. اگر برای دستگاه صنعتی، خط تولید یا سیستم کنترل وزن خود به یک HMI لمسی سفارشی و پرسرعت نیاز دارید، من صفر تا صد سخت‌افزار، شیلد نویزگیر و برنامه‌نویسی پایتون را برای شما با ضمانت اجرایی پیاده‌سازی می‌کنم.

مشاوره مستقیم در واتس‌اپ (09131516913) 🚀

https://raymandshop.ir/wp-content/uploads/2026/05/HMI2.zip

3 نظر در “راز طراحی HMI صنعتی با رزبری پای؛ چرا شرکت‌ها دیگر پول پای تجهیزات گران‌قیمت نمی‌دهند؟

  1. sadas گفت:

    تراشه‌های FTDI وقتی به لینوکس (رزبری‌پای) وصل می‌شوند، نام پورت آن‌ها در ۹۹٪ مواقع به جای ttyUSB به صورت ttyUSB0 یا با حروف کوچک و بزرگ خاصی ساخته می‌شود، یا اینکه سطح دسترسی (Permission) برای پایتون قفل است.

    بیا با دو تا دستور فوق‌العاده سریع کار را یکسره کنیم:

    ۱. نام دقیق پورت را پیدا کن
    این دستور را دقیقاً با رعایت فاصله‌ها کپی کن و در ترمینال بزن:

    Bash
    ls -l /dev/ttyUSB*
    (یا اگر خطایی داد، دستور ls /dev/ را بزن و ببین کلمه ttyUSB0 یا شبیه به آن وجود دارد یا خیر). نام پورت هر چیزی که بود (مثلاً /dev/ttyUSB0)، باید دقیقاً در خط آخر کد پایتون شما (بخش تنظیمات MainWindow) در متغیر MODBUS_PORT قرار بگیرد.

    ۲. باز کردن قفل دسترسی (مهم‌ترین بخش)
    در لینوکس، به صورت پیش‌فرض برنامه‌های پایتون اجازه دسترسی مستقیم به پورت‌های سخت‌افزاری سریال را ندارند؛ برای همین روی حالت Connecting قفل می‌کنند. با این دستور، قفل پورت را کاملاً باز کن:

    Bash
    sudo chmod 666 /dev/ttyUSB0
    (نکته: اگر در گام اول متوجه شدی شماره پورت چیز دیگری است، مثلاً ttyUSB1، در این دستور هم همان را بنویس).

    🛠️ کار نهایی همین الان:
    دستور قفل‌گشایی (sudo chmod 666 /dev/ttyUSB0) را بزن.

    مطمئن شو در کد پایتون MODBUS_PORT = “/dev/ttyUSB0” تنظیم شده باشد.

    برنامه را دوباره اجرا کن.

  2. hamid گفت:

    ls -l /dev/ttyUSB*
    crw-rw—-+ 1 root plugdev 188, 0 May 19 10:34 /dev/ttyUSB0
    pi@raspberrypi:~/Desktop/1/3 $

    1. این یعنی پورت دقیقاً /dev/ttyUSB0 است و رزبری‌پای آن را بدون هیچ مشکلی در مسیر قرار داده است. تاریخ و ساعت سیستم هم کاملاً به‌روز است.

      تنها یک مانع کوچک وجود دارد: علامت + در انتهای دسترسی‌ها (crw-rw—-+) نشان می‌دهد که یک لیست دسترسی امنیتی (ACL) روی این پورت فعال است که ممکن است اجازه ندهد اسکریپت پایتون بدون دسترسی مدیر (Root) پورت را باز کند. برای همین روی حالت Connecting قفل می‌کند.

      بیا با این ۲ ترفند نهایی و قطعی، قفل ارتباط را بشکنیم:

      ۱. باز کردن قفل دسترسی پورت (تیر خلاص لینوکس)
      این دستور را در ترمینال کپی کن و اینتر بزن تا دسترسی پورت برای پایتون کاملاً آزاد شود:

      Bash
      sudo chmod 777 /dev/ttyUSB0
      ۲. اجرای برنامه با دسترسی مدیر (Sudo)
      به جای اینکه برنامه را به صورت معمولی اجرا کنی، این بار ترمینال را در پوشه پروژه باز کن و پایتون را با دستور sudo صدا بزن تا هیچ دیوار امنیتی جلوی ارتباط مدباس را نگیرد:

      Bash
      sudo python3 checkweigher_v13.py

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *