إخلاء مسؤولية:
على الرغم من أن TinyNAS يشبه إلى حد كبير جهاز Synology NAS المصغر مع وجود شعار Synology عليه، فمن الضروري توضيح أن هذا المشروع غير مدعوم أو برعاية شركة Synology، وتم تضمين شعار Synology في هذا المشروع فقط لغرض تعزيز الواقعية البصرية وليس لأي غرض تجاري أو ترويجي.
ما هو TinyNAS؟
يستمد TinyNAS فكرته الأساسية من مشروع WebStick الأصلي بهيئة USB ومخصص لشريحة ESP8266، حيث قمت بتطوير الفكرة وتحسينها وتحويلها إلى TinyNAS مصمم خصيصا للعمل باستخدام ESP32، مع تقديم أداء أفضل ودعم يصل إلى ثلاث بطاقات SD في الوقت نفسه، ويشبه TinyNAS في شكله جهاز NAS مصغر، ويعمل كخادم ويب يتصل بشبكة WiFi المنزلية الخاصة بك، مما يتيح الوصول المحلي عبر mDNS داخل الشبكة، كما يمكن الوصول إليه عن بُعد من خلال إعدادات إعادة توجيه المنافذ Port Forwarding على جهاز الراوتر المنزلي.
الوظائف والإمكانات
تم تصميم TinyNAS مع مراعاة القيود المرتبطة بالحجم الصغير، ومع ذلك فإنه يقدم واجهة استخدام تشبه إلى حد كبير مدير الملفات ArozOS File Manager، ويوفر منصة سهلة الاستخدام تحتوي على أدوات تتيح لك تخزين وتشغيل وبث الموسيقى ومقاطع الفيديو والصور مباشرة من بطاقة SD الخاصة بـ TinyNAS، إضافة إلى ذلك يمكنه استضافة ملفات الويب الثابتة مثل HTML وCSS وJS، مع توفير واجهة برمجة ويب تتيح تعديل مواقع الويب بسهولة دون الحاجة إلى فصل بطاقات SD من الجهاز.
أصل المشروع
يعود أصل هذا المشروع إلى WebStick والذي كان يعتمد على عامل شكل USB ومخصص لشريحة ESP8266، وبإدراك الإمكانات الأكبر التي توفرها شريحة ESP32 من حيث الأداء والقدرة قمت بتعديل الفكرة وتحسينها لإنشاء TinyNAS، ورغم احتفاظه بروح جهاز NAS الحقيقي، إلا أنه يتميز بحجمه الصغير والقوة التي يوفرها ESP32.
ملاحظة: على الرغم من التقدم الكبير الذي حققه هذا المشروع، إلا أن هناك بعض المشكلات التي لا تزال بحاجة إلى حل، ومساهمتك ستكون ذات قيمة كبيرة في معالجة هذه التحديات، إذا كنت مهتما بالمساهمة يرجى التواصل عبر البريد الإلكتروني yadawiat2024@gmail.com.
ملاحظة إضافية: على الرغم من أن هذا المشروع قادر على استضافة صفحة رئيسية مخصصة، إلا أن لديه بعض القيود في التعامل مع عدد كبير من الزوار في الوقت نفسه، وإذا كنت مهتما بإنشاء خادم ويب مخصص لاستيعاب جمهور أوسع، أنصحك بالاطلاع على الدليل التعليمي المخصص لهذا الغرض والمتوفر على موقع يدويات بعنوان إنشاء خادم Apache خاص بك، كما أرحب بملاحظاتك في حال لاحظت أي أخطاء أو شعرت بوجود معلومات ناقصة، حيث إن ملاحظاتك ذات قيمة كبيرة وسيتم التعامل مع أي تصحيحات أو إضافات مقترحة في أقرب وقت.
يتطلب هذا المشروع خبرة جيدة في لحام مكونات SMD، كما يجب توفير جميع المكونات المدرجة في قائمة المواد BOM المرفقة أدناه، بالإضافة إلى أدوات اللحام الأساسية ولوحات PCB المخصصة والأجزاء المطبوعة بتقنية الطباعة ثلاثية الأبعاد، ستحتاج أيضا إلى جهاز كمبيوتر لرفع البرنامج الثابت Firmware على TinyNAS، كما ستحتاج إلى ثلاث بطاقات SD وكابل Ribbon.
لتحميل ملف قائمة المواد BOM .csv اضغط هنـــا.
بما أن لوحات PCB تشكل المكون الأساسي لهذا المشروع، يمكنك طلبها من أي مصنع لوحات دوائر تفضله.
حتى تتوافق اللوحات مع التصميم بشكل صحيح، يجب أن يكون سمك لوحات PCB هو 0.8 مم لضمان التركيب السليم.
ولمزيد من التوضيح، يحتوي هذا المشروع على ما مجموعه 8 لوحات PCB تتوزع على 4 أنواع مختلفة، وفيما يلي عدد اللوحات المطلوبة لكل نوع:
ملاحظة: عند طلب لوحات PCB يتم توفيرها افتراضيا في حزمة تحتوي على 5 قطع، لذلك لا داعي لطلبها عدة مرات حتى لو كان العدد المطلوب أقل.
يمكنك الوصول إلى ملفات Gerber من خلال مستودع GitHub من هنـــا.
يتطلب هذا المشروع 12 قطعة أساسية مطبوعة بتقنية الطباعة ثلاثية الأبعاد، وإذا لم تكن تمتلك طابعة ثلاثية الأبعاد فلا داعي للقلق، حيث يمكنك طلب هذه الأجزاء مباشرة من أي شركة لوحات دوائر تفضلها بأسعار اقتصادية جداً، وللحصول على أفضل مظهر جمالي أنصح باختيار اللون Imagine Black.
وفيما يلي توزيع عدد القطع المطلوبة لكل ملف:
يمكنك الوصول إلى ملفات الطباعة ثلاثية الأبعاد من خلال مستودع GitHub من هنـــا.
تعد هذه الخطوة بسيطة نسبياً، حيث تبدأ بتجهيز جميع المكونات اللازمة لعملية اللحام، ثم تقوم بلحامها واحدة تلو الأخرى على لوحة PCB.
استغرقت عملية لحام جميع اللوحات حوالي ساعة ونصف تقريبا.
ولتسهيل عملية تحديد أماكن المكونات، قمت بتوفير ملفات IBOM بصيغة HTML على GitHub، ويمكنك الرجوع إليها من هنـــا لمعرفة مكان كل مكون أثناء عملية اللحام.
يعد التأكد من سلامة TinyNAS أمرا بالغ الأهمية قبل توصيله بالكمبيوتر، فالمكونات الصغيرة بهذا الحجم قد تحتوي على أخطاء لحام مثل تلامس الأرجل أو حدوث قصر كهربائي بين خط التغذية VCC بجهد 5 فولت القادم من USB والأرضي، وللتحقق من جودة اللحام ينصح بإجراء فحص شامل لاحتمالية وجود قصر كهربائي، ومن أفضل الممارسات توصيل الجهاز أولا بمصدر طاقة محمي مثل مزود طاقة مختبري قبل ربطه بالكمبيوتر، وذلك لتجنب أي أضرار محتملة أثناء التشغيل الأولي.
لرفع البرنامج الثابت Firmware الخاص بـ TinyNAS ستحتاج إلى برنامج Arduino IDE، ابدأ بتثبيت حزمة ESP32 من مدير اللوحات Boards Manager، ثم اختر اللوحة TTGO T7 V1.4 Mini32 كلوحة مستهدفة.
بعد ضبط جميع الإعدادات بشكل صحيح، قم بتوصيل TinyNAS بجهاز الكمبيوتر باستخدام كابل USB-C، ثم اضغط على Compile and Upload ليتم تحميل البرنامج على اللوحة.
كود الأردوينو:
يمكن العثور على الشيفرة المصدرية الخاصة بخادم النظام الخلفي من هنـــا، حيث يجب نسخ جميع الملفات الموجودة داخل مجلد code ووضعها داخل مجلد جديد باسم web-server، وبعد ذلك سيكون بإمكانك ترجمة الكود وتشغيله.
ملاحظات إعداد شبكة WiFi:
تجدر الإشارة إلى أن إعدادات WiFi والمستخدم الإداري admin وخدمة mDNS يتم تحميلها مباشرة من بطاقة SD، لذلك لا توجد حاجة لتعديل كود Arduino لإعداد TinyNAS، ويرجى الرجوع إلى قسم بطاقة SD أدناه لمزيد من التفاصيل.
بالنسبة لبطاقة SD تحتاج إلى بطاقة مهيأة بنظام ملفات FAT حتى يعمل النظام بشكل صحيح، وذلك لأن شريحة ESP32 لا تستطيع الوصول إلى بطاقة SD إلا إذا كانت تعمل بنظام FAT.
في حالتي استخدمت ثلاث بطاقات micro SD بسعة 16 جيجابايت لكل بطاقة ومهيأة بنظام FAT، وتم الحصول عليها من إحدى المواقع الإلكترونية.
قم بتحميل جميع الملفات الموجودة داخل مجلد SD Card Files ثم انسخها بالكامل إلى بطاقة SD، وبعد ذلك اتبع التعليمات التالية لإعداد TinyNAS بخطوات بسيطة وسريعة.
بعد الانتهاء من الإعداد يمكنك البدء في استبدال ملفات html الموجودة على بطاقة SD، على سبيل المثال يمكنك تغيير ملف index html بصفحة رئيسية قمت بتصميمها لموقعك المنزلي، أو حذف مجلدات العرض التجريبية غير المرغوب فيها، ولكن يجب الانتباه إلى أن بعض المجلدات محجوزة ولا يجب حذفها أو إعادة تسميتها.
المجلدات المحجوزة
أخيرا قم بإدخال بطاقة micro SD داخل لوحة TinyNAS الخاصة ببطاقات SD، وبذلك يصبح الجهاز جاهزاً للتشغيل.
ملاحظات
يجب أن يكون اسم mDNS فريدا في حال وجود أكثر من جهاز TinyNAS على نفس الشبكة.
لبدء تشغيل خادم الويب، كل ما عليك فعله هو توصيل TinyNAS بمصدر طاقة، وإذا قمت بتوصيله بمنفذ USB في جهاز الكمبيوتر فستلاحظ ظهور معلومات تصحيح Debug على المنفذ التسلسلي Serial بسرعة 115200 باود.
في نهاية معلومات التصحيح ستجد عنوان IP الخاص بجهاز TinyNAS، وفي حالتي كان العنوان هو 192.168.0.114، ويمكنك الاتصال به مباشرة باستخدام mDNS أو باستخدام عنوان IP عبر إدخال أحد الروابط التالية في المتصفح:
أو
وبمجرد القيام بذلك ستظهر الصفحة الرئيسية الخاصة بك.
ضمن واجهة الويب التي تم تطويرها في مشروع WebStick الأصلي يوجد مدير ملفات مدمج يتيح لك الوصول إلى جميع الملفات وتنفيذ مختلف العمليات عليها، كل ما عليك فعله هو الضغط على admin panel أو الانتقال مباشرة إلى المسار /admin مثل http://{your_device_ip}/admin ثم تسجيل الدخول باستخدام اسم المستخدم وكلمة المرور اللذين قمت بتحديدهما في ملف admin txt.
بعد ذلك ستتمكن من رؤية جميع محتويات الملفات الموجودة داخل مجلد web/ على بطاقة SD، وإذا رغبت في فتح أي ملف أو تعديله ما عليك سوى النقر المزدوج عليه وسيقوم مدير الملفات بتشغيل التطبيق المناسب تلقائيا، وتشمل بعض تطبيقات الويب المدمجة ما يلي:
لتحرير صفحات الويب الخاصة بك بسهولة دون الحاجة إلى فصل بطاقة SD، اتبع الخطوات التالية:
التحرير المباشر:
التحرير المحلي ثم الرفع:
على الرغم من أن ESP32 تدعم نظريا سرعات شبكة تصل إلى 8 ميجابت في الثانية، إلا أن الأداء الفعلي في الواقع غالبا ما يكون في حدود 1 ميجابت في الثانية عند تنفيذ عمليات القراءة والكتابة المتزامنة، وقد يتأثر ذلك بإمكانيات بطاقة SD المستخدمة، وبناء على ذلك ينصح بتجنب استخدام الموارد الكبيرة مثل الصور الضخمة أو ملفات CSS الثقيلة على TinyNAS، ويفضل الاعتماد على شبكات CDN للسكريبتات أو استخدام صيغ صور مضغوطة مثل JPEG لتحسين الكفاءة.
كيفية الوصول إلى موقعك من الإنترنت:
إذا كنت ترغب في الوصول إلى TinyNAS من خارج الشبكة المحلية عبر الإنترنت، يمكنك تفعيل خاصية إعادة توجيه المنافذ على جهاز الراوتر المنزلي، ويتطلب ذلك توجيه المنفذ الخارجي 80 إلى عنوان IP الخاص بجهاز TinyNAS، ونظرا للطابع غير التقني لهذا الشرح وتوفر العديد من الشروحات التفصيلية حول إعداد Port Forwarding لعناوين IP محددة، فلن يتم التوسع في شرح هذه الخطوة هنا.
الحصول على اسم نطاق خاص:
في حال رغبت في الوصول إلى TinyNAS باستخدام اسم نطاق مخصص مثل http://yourdomain.com بدلاً من استخدام عنوان IP المنزلي، ستحتاج إلى شراء اسم نطاق من أحد مزودي خدمات تسجيل النطاقات.
تسجيل الدخول مطلوب
يجب عليك تسجيل الدخول لإضافة تعليق.
تسجيل الدخول