یک مجموعه پروژهٔ آموزشی/نمونهای برای ساخت سیستمهای خانهٔ هوشمند مبتنی بر بردهای ESP8266 و میکروکنترلرهای STM32، همراه با بخشِ وبسرور ساده برای کنترل/مانیتورینگ. این مخزن شامل سختافزار، فریمور، مستندات و یک وباپ کوچک است.
فهرست محتوا
- خلاصه
- ساختار مخزن
- پیشنیازها
- نصب و اجرای وبسرور (محلی)
- فریمور — ESP8266
- فریمور — STM32
- سختافزار
- نمونه استفاده و APIهای احتمالی
- تست و عیبیابی
- چگونگی مشارکت
- مجوز
- تماس / سوالات بیشتر
این مخزن شامل سه پروژهٔ جداگانه است که هدفشان آموزش پیادهسازی بخشهای مختلف یک سیستم خانهٔ هوشمند (حسگرها، عملگرها، ارتباط بیسیم، و یک وباینترفیس) میباشد:
- 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/— سورس فریمور برای ESP8266Hardware/— نقشهها، شماتیک یا فایلهای مربوط به سختافزار- مستندات (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 (توضیحات برای هر پلتفرم متفاوت است)
- وارد پوشه وبسرور شوید:
- در خط فرمان:
- Unix/macOS:
- cd "web Server"
- Windows (PowerShell):
- cd "web Server"
- Unix/macOS:
- در خط فرمان:
- ایجاد محیط مجازی و نصب وابستگیها:
- python -m venv .venv
- Unix/macOS: source .venv/bin/activate
- Windows: .venv\Scripts\activate
- نصب Flask (در صورت نیاز):
- pip install flask
- اگر پروژه فاقد requirements.txt است، قبل از نصب، فایل
APP.pyرا بررسی کنید تا کتابخانههای مورد نیاز را پیدا کنید.
- اجرای برنامه:
- python APP.py
- یا: flask run (اگر APP.py از متغیرهای محیطی یا قالب استاندارد Flask پیروی کند)
- سپس مرورگر را باز کنید و به http://127.0.0.1:5000 یا پورتی که در کنسول نمایش داده شده بروید.
نکته: اگر APP.py پیکربندی خاصی دارد (مثلاً اتصال به دستگاهها یا فایل کانفیگ)، مقادیر متناظر را در فایل کانفیگ یا متغیرهای محیطی تعیین کنید.
- پوشههای
Project1-Smart-home-with-ESP8266/FirmwareوProject2-Smart-home-with-ESP8266/Firmwareشامل سورس فریمور برای بردهای ESP8266 هستند. - روند کلی ساخت/فلش:
- سورس را با Arduino IDE یا PlatformIO باز کنید.
- تنظیمات برد را به ESP8266 مناسب (مثلاً NodeMCU/ESP-12E) تغییر دهید.
- کتابخانههای مورد نیاز را نصب کنید (در فایلهای کد معمولاً در بالای فایل #includeها آمدهاند).
- برد را به کامپیوتر وصل کنید و کامپورت مناسب را انتخاب کنید.
- آپلود/فلش کنید.
- اگر ترجیح میدهید از esptool استفاده کنید:
- کامپایل را در Arduino/PlatformIO انجام دهید و سپس فایل bin تولیدشده را با esptool فلش کنید.
نکتههای عملی:
- پیش از آپلود، زمانبندی و پینبندیها را مطابق پوشه
Hardware/بررسی کنید. - اگر فریمور از MQTT/HTTP استفاده میکند، مشخصات سرور/بدنه API را در فایل کانفیگ تنظیم کنید.
- پوشه
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)، حسگرهای حرکت، سنسورهای نوری و غیره
- منبع تغذیه مناسب برای مدار و ماژولها
هشدار ایمنی: هنگام کار با برق شهر و رلههای توانبالا مراقبتهای ایمنی را رعایت کنید.
- وبسرور احتمالاً رابطی برای نمایش وضعیت دستگاهها و ارسال فرمانها (روشن/خاموش) فراهم میکند.
- برای تعامل: بررسی
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 کمکی بسازم، اطلاع دهید.