پروژه نارنگی

نارنگی چیه؟

نارنگی قراره یک دستگاه آبیاری اتوماتیک باشه که ما به وسیله‌ی تلفن همراهمون اون رو تنظیم می‌کنیم.

همین اول کار باید بگم تمام کدهای سخت‌افزار، PCB و کدهای اپلیکیشن موبایل این پروژه به شکل منبع باز منتشر خواهد شد، ساخت #نارنگی برای استفاده‌های شخصی/خانگی رایگانه اما تولید و فروش اون [به هر تعداد] نیازمند اجازه کتبی خواهد بود.

همچنین من در همین وبلاگ پست‌های آموزشی مربوط به تمام مراحل کار رو می‌نویسم.

 

نارنگی چه کارهایی رو می‌تونه انجام بده؟

در مرحله‌ی اول: ما دستگاه رو در قالب‌های زیر یک بار زمان‌بندی می‌کنیم [به وسیله‌ی تلفن همراه]و تمام، دیگه باهاش کاری نخواهیم داشت، در اینجا به اینترنت متصل نیستیم.

زمانبندی روزانه – به عنوان مثال هر روز از ساعت ۶:۰۰ تا ۶:۱۰

زمان بندی هفتگی – به عنوان مثال دوشنبه و چهارشنبه از ساعت ۱۲:۰۰ تا ۱۲:۳۰

زمان بندی ماهیانه -به عنوان مثال  ۷اوم، ۱۴اوم و ۲۴اوم هر ما از ساعت ۹:۰۰ الی ۱۰:۳۰

یک تاریخ خاص – به عنوان مثال ۱۳۹۷/۱۱/۲۴ از ساعت ۵:۱۵ الی ۶:۵۰

و ON/OFF دستی.

 

در مرحله دوم: امکان اتصال به اینترنت رو داریم و تمام زمان‌بندی‌های بالا رو به شکل اینتنرتی [با پروتکل MQTT به وسیله‌ی اپ موبایل] خواهیم داشت.

 

در مرحله سوم: افزایش تعداد خروجی‌ها‌ی دستگاه رو خواهیم داشت تا بشه برای چند گیاه مختلف برنامه‌های آبیاری مجزایی داشت.

 

در مرحله‌ی چهارم: سنسور‌های رطوبت و شدت نو رو به نارنگی وصل می‌کنیم و امکان آبیاری با توجه به اطلاعات سنسورها رو هم خواهیم داشت، به عنوان مثال:

اگر رطوبت کمتر از ۲۰٪ بود تا رسیدن به رطوبت ۷۵٪ و یا به مدت ۱۰ دقیقه شیر آب باز شود.

هر روز از ساعت ۶:۰۰ تا ۶:۱۰ یا تا رسیدن به سطح رطوبت به بالای ۸۰٪

 

مرحله‌ی پنجم: امکان ذخیره‌ی داده‌های جمع آوری شده بوسیله‌ی سنسورها و رسم نمودارهای مربوطه در اپلیکیشن موبایل

مرحله‌ی ششم: افزودن برنامه‌های آبیاری پیشنهادی بر اساس نوع گیاه به اپلیمیشن موبایل

 

نارنگی دیگه چه کاری می تونه انجام بده؟

ما این دستگاه رو برای یک نیاز خاص که همون آبیاری اتوماتیک بود طراحی کردیم، اما همین زیرساخت با تغییرات اندک برای هر نوع ON/OFF زمان بندی شده‌ی دیگه قابل استفاده خواهد بود، به دستگاهی فکر کنید که سر ساعت به گربه‌های مغرور توی خونه غذا بده 🙂

 

چرا اسمش شد نارنگی؟

به خاطر این فیلم:

از چه سخت افزاری استفاده می‌کنیم؟

برای پردازنده‌ی مرکزی از ESP8266 استفاده خواهیم کرد.

ساعت زمان واقعی (RTC) فعلا DS1307 خواهد بود (چون ماژولش رو دارم) اما اگر دقت در محیط‌های پر نویز مناسب نبود ممکنه تغییر کنه.

در مورد سنسور‌ها/ رله‌های خروجی و … تصمیم نگرفتم.

جزییات برنامه‌نویسی مرحله اول:

  • سلام ESP8266! یک چشمک زن ساده بدون استفاده از تاخیر
  • راه اندازی پورت سریال جهت عیب‌یابی
  • اتصال ماژول ds1307 به ESP8266
  • صفحه‌ی تنطیمات اولیه‌ی ESP8266  برای اتصال به مودم یا کار کردن به شکل AP
  • افزودن RGB اعلان وضعیت
  • افزودن کلید دستی ON/OFF خروجی
  • طراحی ساختار Json  ذخیره و بازیابی برنامه‌های آبیاری
  • ذخیره سازی فایل Json در SPIFFS از طریق بارگذاری به وسیله‌ی مرورگر
  • طراحی ساختار structure لازم و  بارگذاری برنامه‌های آبیاری از SPIFFS در حافظه اصلی برنامه
  • نوشتن IF/ELSEهای لازم جهت ON/OFF سیستم بر اساس برنامه‌های داده شده
  • شروع طراحی اپ موبایل با استفاده از flutter

چطور مشارکت کنیم؟

لینک گیت‌هاب پروژه:

https://github.com/mh-salari/Tangerines

دسترسی بهم هم کار سختی نخواهد بود، راه‌هاش رو پیدا کنید و  پیام بدید 😉

همچنین من همیشه پول رو دوست داشتم و از کمک مالی استقبال می‌کنم، اطلاعات کارتم رو ازم بگیرید و بهم پول بدید 😀

 

چه سوال‌هایی رو نپرسیم؟

این یک پروژه‌ی ۱۰۰٪ تفریحیه، پس چیزی مثل اینکه کی آماده می‌شه و یا چرا باگ داری و این‌ها رو نگید، سرعت توسعه اگر پایینه خودتون یه گوشه‌ی کار رو بگیرید و کمک کنید، باگی بود هم می‌تونید مشارکت کنید و رفعش کنید:)

 

لیست پست‌های آموزشی مرتبط با پروژه نارنگی:

آماده سازی محیط‌های توسعه برای برنامه‌نویسی ESP8266

سلام ESP8266! برنامه‌ی یک چشمک‌زن ساده با ESP8266