Skip to content

Repository files navigation

Smart-home

یک مجموعه پروژهٔ آموزشی/نمونه‌ای برای ساخت سیستم‌های خانهٔ هوشمند مبتنی بر بردهای ESP8266 و میکروکنترلرهای STM32، همراه با بخشِ وب‌سرور ساده برای کنترل/مانیتورینگ. این مخزن شامل سخت‌افزار، فریمور، مستندات و یک وب‌اپ کوچک است.


فهرست محتوا


خلاصه

این مخزن شامل سه پروژهٔ جداگانه است که هدف‌شان آموزش پیاده‌سازی بخش‌های مختلف یک سیستم خانهٔ هوشمند (حسگرها، عملگرها، ارتباط بی‌سیم، و یک وب‌اینترفیس) می‌باشد:

  • Project1-Smart-home-with-ESP8266
  • Project2-Smart-home-with-ESP8266
  • Project3-Smart-home3-with-stm32
  • web Server علاوه بر این یک پوشه web Server حاوی یک اپلیکیشن پایتون (فایل APP.py) برای نمایش/کنترل دستگاه‌ها وجود دارد.

ساختار مخزن (خلاصه)

  • .gitattributes, .gitignore, LICENSE — فایل‌های پایه مخزن
  • Project1-Smart-home-with-ESP8266/
    • Firmware/ — سورس فریمور برای ESP8266
    • Hardware/ — نقشه‌ها، شماتیک یا فایل‌های مربوط به سخت‌افزار
    • مستندات (PDF/DOCX)
  • Project2-Smart-home-with-ESP8266/
    • مشابه Project1، نسخهٔ دیگری از پروژه با فریمور/داکیومنت‌های خاص
  • Project3-Smart-home3-with-stm32/
    • Firmware/, Hardware/, Documents & img/
  • web Server/
    • APP.py — اپلیکیشن وب (احتمالاً فریم‌ورک Flask یا مشابه)
    • templates/, static/ — فایل‌های رابط کاربری

پیش‌نیازها

ابزارها و کتابخانه‌هایی که ممکن است نیاز داشته باشید:

  • برای توسعه فریمور ESP8266:
    • Arduino IDE یا PlatformIO (VSCode) با پشتیبانی ESP8266، یا toolchain مربوطه
    • esptool یا flasher مناسب برای فلش کردن
  • برای STM32:
    • STM32CubeIDE, Keil, IAR یا یک toolchain با Makefile (در صورت وجود)
    • ST-Link یا پروگرامر مناسب برای فلش
  • برای وب‌سرور:
    • Python 3.8+
    • بسته‌هایی مانند Flask (اگر APP.py از Flask استفاده می‌کند)
  • ابزار عمومی:
    • Git
    • Docker (اختیاری برای محیط ایزوله)
  • سیستم‌عامل: Linux / macOS / Windows (توضیحات برای هر پلتفرم متفاوت است)

نصب و اجرای وب‌سرور (محلی)

  1. وارد پوشه وب‌سرور شوید:
    • در خط فرمان:
      • Unix/macOS:
        • cd "web Server"
      • Windows (PowerShell):
        • cd "web Server"
  2. ایجاد محیط مجازی و نصب وابستگی‌ها:
    • python -m venv .venv
    • Unix/macOS: source .venv/bin/activate
    • Windows: .venv\Scripts\activate
    • نصب Flask (در صورت نیاز):
      • pip install flask
    • اگر پروژه فاقد requirements.txt است، قبل از نصب، فایل APP.py را بررسی کنید تا کتابخانه‌های مورد نیاز را پیدا کنید.
  3. اجرای برنامه:
    • python APP.py
    • یا: flask run (اگر APP.py از متغیرهای محیطی یا قالب استاندارد Flask پیروی کند)
  4. سپس مرورگر را باز کنید و به http://127.0.0.1:5000 یا پورتی که در کنسول نمایش داده شده بروید.

نکته: اگر APP.py پیکربندی خاصی دارد (مثلاً اتصال به دستگاه‌ها یا فایل کانفیگ)، مقادیر متناظر را در فایل کانفیگ یا متغیرهای محیطی تعیین کنید.


فریمور — ESP8266

  • پوشه‌های Project1-Smart-home-with-ESP8266/Firmware و Project2-Smart-home-with-ESP8266/Firmware شامل سورس فریمور برای بردهای ESP8266 هستند.
  • روند کلی ساخت/فلش:
    1. سورس را با Arduino IDE یا PlatformIO باز کنید.
    2. تنظیمات برد را به ESP8266 مناسب (مثلاً NodeMCU/ESP-12E) تغییر دهید.
    3. کتابخانه‌های مورد نیاز را نصب کنید (در فایل‌های کد معمولاً در بالای فایل #includeها آمده‌اند).
    4. برد را به کامپیوتر وصل کنید و کامپورت مناسب را انتخاب کنید.
    5. آپلود/فلش کنید.
  • اگر ترجیح می‌دهید از esptool استفاده کنید:
    • کامپایل را در Arduino/PlatformIO انجام دهید و سپس فایل bin تولیدشده را با esptool فلش کنید.

نکته‌های عملی:

  • پیش از آپلود، زمان‌بندی و پین‌بندی‌ها را مطابق پوشه Hardware/ بررسی کنید.
  • اگر فریمور از MQTT/HTTP استفاده می‌کند، مشخصات سرور/بدنه API را در فایل کانفیگ تنظیم کنید.

فریمور — STM32

  • پوشه Project3-Smart-home3-with-stm32/Firmware شامل سورس STM32 است.
  • مراحل کلی:
    • اگر پروژه فایل پروژه برای STM32CubeIDE یا Keil دارد، آن را باز کنید و با toolchain مربوطه بیلد کنید.
    • در صورت وجود Makefile، می‌توانید با make پروژه را بسازید (اطمینان از نصب ابزارهای لازم: arm-none-eabi-gcc، make).
    • از ST-Link یا پروگرامر مشابه برای فلش استفاده کنید (مثلاً via STM32CubeProgrammer).
  • مستندات و تصاویر در Documents & img/ ممکن است نقشهٔ سیم‌کشی و جزئیات اتصال سنسورها/ماژول‌ها را داشته باشند — قبل از راه‌اندازی آن‌ها را مطالعه کنید.

سخت‌افزار

  • هر پروژه پوشهٔ Hardware/ دارد که احتمالاً شامل:
    • شماتیک‌ها، PCB (در صورت وجود)، لیست قطعات (BOM) و نقشهٔ اتصال سنسورها/اکچیوترها به میکروکنترلر است.
  • قطعات معمول در پروژه‌های خانهٔ هوشمند:
    • برد ESP8266 (NodeMCU, Wemos D1 mini) یا برد STM32
    • رله‌ها برای کنترل برق (با رعایت نکات ایمنی)
    • سنسورهای دما/رطوبت (DHT11/DHT22)، حسگرهای حرکت، سنسورهای نوری و غیره
    • منبع تغذیه مناسب برای مدار و ماژول‌ها

هشدار ایمنی: هنگام کار با برق شهر و رله‌های توان‌بالا مراقبت‌های ایمنی را رعایت کنید.


نمونه استفاده و APIهای احتمالی

  • وب‌سرور احتمالاً رابطی برای نمایش وضعیت دستگاه‌ها و ارسال فرمان‌ها (روشن/خاموش) فراهم می‌کند.
  • برای تعامل: بررسی APP.py نشان می‌دهد که اپ یک اپلیکیشن پایتون است — برای دانستن مسیرهای دقیق API کافی‌ست فایل را باز و مسیرها را بخوانید (مثلاً /api/devices, /api/device/<id>/toggle).
  • نمونه درخواست (اگر API REST دارد):
    • GET /api/devices — لیست دستگاه‌ها
    • POST /api/device//action — اجرای عمل (payload JSON: {"action":"on"})

(مسیر و نام endpointها را دقیقاً از APP.py استخراج کنید.)


تست و عیب‌یابی

  • وب‌سرور:
    • کنسول را برای ارورها بررسی کنید؛ معمولاً خطای import نشان‌دهندهٔ پکیج‌های نصب‌نشده است.
    • اگر صفحات قالب بارگیری نمی‌شوند، بررسی مسیر templates/ و static/.
  • ESP8266:
    • در صورت خطا هنگام آپلود: پورت سریال، درایور USB، و انتخاب برد را بررسی کنید.
    • لاگ‌های سریال (Serial Monitor) را برای دیباگ استفاده کنید.
  • STM32:
    • خطاهای لینک/بیلد را در toolchain مربوطه بررسی کنید.
    • اتصال پروگرامر و ولتاژ تغذیه را کنترل کنید.

چگونگی مشارکت

  • برای مشارکت:
    • این پروژه را فورک کنید، تغییرات را در branch جدید انجام دهید و PR ارسال کنید.
    • اگر باگ پیدا کردید، Issue باز کنید و جزئیات، مرحلهٔ تکرار و لاگ‌ها را اضافه کنید.
  • پیشنهادات:
    • افزودن فایل requirements.txt برای وب‌سرور
    • اضافه کردن اسکریپت‌های فلش/ساخت یا راهنمای دقیق برای Arduino/PlatformIO و STM32
    • نمونه‌های تست/شبیه‌ساز برای توسعه بدون سخت‌افزار

مجوز

این مخزن شامل فایل LICENSE است — لطفاً برای جزئیات مجوز آن را مطالعه کنید.


تماس / سوالات بیشتر

اگر بخواهید README را دقیق‌تر و متناسب با محتوای کد (لیست کامل وابستگی‌ها، دستورات build دقیق، مثال‌های API کامل) بازنویسی کنم، سورس فایل‌های داخل پوشه‌های Firmware/ و web Server/APP.py را اینجا پیست کنید یا دسترسی بیشتری به مخزن بدهید تا متن را بر اساس کد واقعی دقیق کنم.

با آرزوی موفقیت — اگر مایلید نسخهٔ انگلیسی README یا یک فایل requirements.txt / Makefile کمکی بسازم، اطلاع دهید.

Releases

Packages

Contributors

Languages