جدول المحتويات:

أضف منفذ شبكة WIZ820io / USR-ES1 - Wiznet W5500 إلى Raspberry Pi الخاص بك: 10 خطوات
أضف منفذ شبكة WIZ820io / USR-ES1 - Wiznet W5500 إلى Raspberry Pi الخاص بك: 10 خطوات

فيديو: أضف منفذ شبكة WIZ820io / USR-ES1 - Wiznet W5500 إلى Raspberry Pi الخاص بك: 10 خطوات

فيديو: أضف منفذ شبكة WIZ820io / USR-ES1 - Wiznet W5500 إلى Raspberry Pi الخاص بك: 10 خطوات
فيديو: Zigbee Ethernet шлюз Zigstar Lilyzig с поддержкой Power over Ethernet, ставим второй zigbee2mqtt 2024, شهر نوفمبر
Anonim
أضف منفذ شبكة WIZ820io / USR-ES1 - Wiznet W5500 إلى Raspberry Pi الخاص بك
أضف منفذ شبكة WIZ820io / USR-ES1 - Wiznet W5500 إلى Raspberry Pi الخاص بك

يرجع ذلك جزئيًا إلى اهتمامي بالقيام بشيء كهذا ، وجزئيًا بسبب اهتمامي بـ Codesys ، كنت أفكر في الأمر لفترة من الوقت الآن لمحاولة توصيل منفذ واجهة شبكة ثانٍ بـ Raspberry Pi. لذا أثناء قيامي بمشاريع أخرى كنت أفكر ، أقرأ ، أقارن ، أخطط وأتسوق حتى أتمكن أخيرًا من المضي قدمًا وبناء شيء ما.

نعم - أعرف.. هناك عدد قليل من أنظمة "تسليم المفتاح" الجاهزة للعمل المتاحة هناك والتي من شأنها أن تفعل شيئًا مشابهًا ، ولكن في الحقيقة لم يكن أي منها محفزًا بدرجة كافية لفصلني عن أموالي.

في الواقع ، لديّ مستوى منخفض من المعرفة والخبرة في Raspberry Pi و Linux / Raspberry Pi IOS (Raspian) (أعمل بشكل أفضل في عوالم Windows و Android) ، ولا توجد معرفة متعمقة بالشبكات (يمكنني جعل الأشياء تعمل وبناء شبكات ، لكنني أبعد من ذلك أكون فوق رأسي قليلاً) ، وقد بدأت للتو في إنشاء لوحات الدوائر. بالتأكيد ، أنا لست مبرمجًا.

بمجرد أن قررت أخيرًا المضي قدمًا في فكرة بناء شيء ما ، واخترت استخدام وحدة WIZ820io / USR-ES1 ، والتي تستند إلى Wiznet - W5500 الدوائر المتكاملة. يمكن لهذه الوحدة الاتصال بـ Raspberry Pi (ووحدات MCU الأخرى) باستخدام ناقل SPI القياسي. بالإضافة إلى ذلك ، يتم تشغيله من 3.3 VDC ، لذلك لا يشكل أي مخاطر ضرر على Raspberry Pi الخاص بي.

عند تصميم لوحة الدائرة ، اخترت أن أقوم ببنائها بتكوين "HAT" مناسب (الشكل والقدرة) ، وبالإضافة إلى إضافة الدوائر لوحدة WIZ820io ، أضفت أيضًا عددًا من العناصر الأخرى التي لم يتم استخدامها في هذا مشروع التواصل ، ولكن يمكنني وسأستخدم لمشاريع أخرى في المستقبل.

تحتوي اللوحة التي صممتها / صنعتها على العناصر التالية.

1 - مقبس لتثبيت Wiznet - WIZ820io - وحدة منفذ Ethernet (لقد صنعت أثر Eagle Footprint لهذا الغرض).

2 - مروحة تبريد 30 مم - 5 VDC لوحدة المعالجة المركزية Raspberry Pi (لقد صنعت أثر Eagle Footprint لهذا الغرض).

3 - شريحة ذاكرة "CAT24C32" للحفاظ على متطلبات التوافق مع HAT (لم تتم برمجتها بعد من قبلي) (لقد صنعت قالب تصميم Eagle Design Block المخصص لهذا الغرض).

4 - ميني MAX3232 - UART - TTL إلى محول مستوى RS-232 متصل بـ UART0 (لقد صنعت بصمة Eagle Footprint لهذا الغرض).

5 - مؤشر LED أحمر (GPIO24) ، ومصباح أصفر (GPIO23) ، ومصباح أخضر (GPIO22) لاستخدامه في تمارين إشارة المرور - Python.

6 - مؤشر LED أخضر (GPIO18) ومصباح أخضر (GPIO27) - لتمارين البرمجة واستكشاف الأخطاء وإصلاحها.

7 - مفتاح لمسي متصل بـ GPIO25 - لتمارين البرمجة واستكشاف الأخطاء وإصلاحها (لقد صنعت أثر Eagle Footprint لهذا الغرض). لاحظ أنه سيتم استخدام GPIO هذا أيضًا مع WIZ820io.

لذلك كما أشرت سابقًا ، لن يتعامل هذا Instructable إلا مع العنصر رقم 1 في هذه القائمة. جميع العناصر الأخرى التي أضفتها على اللوحة موجودة لأسباب أخرى لا تتعلق بمشروع واجهة الشبكة هذا.

اللوازم

Raspberry Pi - لقد استخدمت Raspberry Pi 3B أقدم. لا حرج في ذلك.. لدي منفذ HDMI ميت ، لذلك أقوم بتشغيله "بدون رأس" باستخدام برنامج TeamViewer للوصول إليه. إنها تعمل. أظن بشدة أن معظم إصدارات Raspberry Pi ستعمل مع هذه التعليمات التي توفر إمكانية تشغيل إصدارات أحدث من Raspberry Pi IOS (Raspian).

قبل البدء في كل هذا ، قمت بالطبع بتحديث نظام التشغيل:

sudo apt-get update

sudo apt-get ترقية

WIZ820io / USR-ES1 - الوثائق الخاصة بذلك متاحة عبر الإنترنت من OEM

لوحة الكمبيوتر الشخصي - لقد استخدمت Autodesk Eagle لتصميم ثنائي الفينيل متعدد الكلور ، وإنشاء ملفات Gerber اللازمة لـ JLCPCB لبناء لوحة الدوائر بها. كما لوحظ سابقًا ، أضفت أيضًا شريحة ذاكرة "CAT24C32" للحفاظ على متطلبات توافق HAT.

الخطوة 1: Raspberry Pi 3b

Raspberry Pi 3b
Raspberry Pi 3b

أما بالنسبة لـ Raspberry Pi ، فقد أنشأت هذا المشروع باستخدام Raspberry Pi 3b القياسي ، إلى جانب أحدث إصدار من Raspberry Pi IOS (Raspian) الذي يمكنني تنزيله وتثبيته.

لا يوجد شيء مميز هناك. لقد امتلكت هذه الوحدة لبضع سنوات ، وقد عملت بشكل جيد بالنسبة لي (حسنًا - خرج فيديو HDMI ميت ، لذا فأنا مضطر للتشغيل بلا رأس باستخدام برنامج TeamViewer). لا يجب عليك القيام بذلك.

أظن أن أي RPi يجب أن يكون قادرًا على الاتصال بـ WIZ820io / USR-ES1 - Wiznet W5500 والقيام بهذا العمل ، بالإضافة إلى العديد من العلامات التجارية الأخرى التي تتنافس في نفس السوق (Beagle Bone و Orange و Tinker ، إلخ) واستخدام نفس نموذج نظام التشغيل Linux.

ليس لدي أي خبرة مع أي من هؤلاء. لدي خبرة قليلة مع Raspberry - انظر إلى أين أوصلني ذلك:)

الخطوة 2: ربط وحدة Wiznet WIZ820io بحافلة Raspberry Pi GPIO

ربط وحدة Wiznet WIZ820io بحافلة Raspberry Pi GPIO
ربط وحدة Wiznet WIZ820io بحافلة Raspberry Pi GPIO
ربط وحدة Wiznet WIZ820io بحافلة Raspberry Pi GPIO
ربط وحدة Wiznet WIZ820io بحافلة Raspberry Pi GPIO
ربط وحدة Wiznet WIZ820io بحافلة Raspberry Pi GPIO
ربط وحدة Wiznet WIZ820io بحافلة Raspberry Pi GPIO

مراجعة الصور المرفقة.

توفر وحدة Wiznet WIZ820io صفين من 6 دبابيس لكل منهما.

يتم تسمية الصفوف "J1 و" J2 "على التوالي.

تحتوي ورقة البيانات التي يقدمونها على مخطط ملون رائع للغاية لكل دبوس. يهدف هذا الرسم البياني إلى مساعدتك في توصيل تلك المسامير بدبابيس Raspberry PI GPIO. إنهم جيدون جدًا مع NAME لمباراة NAME.

يمكن العثور على pinout Raspberry Pi هنا: pinout.xyz

لقد قمت بتوصيل هذه المسامير على النحو التالي (انظر الصورة المرفقة):

بالطبع ، منذ أن صنعت لوحة دائرة فعلية ، تم توصيل جميع الأراضي (GND) معًا. وينطبق الشيء نفسه مع المسامير التي تصل إلى 3.3 فولت - ربطت لوحة الدوائر الخاصة بي هذه معًا.

بعض الأشياء الجديرة بالملاحظة..

الأول - J2 Pin # 5 - RSTn - لقد قمت بتوصيل ذلك بـ RPi GPIO # 17 (Pin # 11) - كان ذلك تحذيريًا. لا أعتقد أنه يتم استخدامه.

2nd - J1 Pin # 6 - INTn - المتصل بـ GPIO25 (رقم التعريف الشخصي 22). هذا مطلوب ، لأنه في خطوة تكوين Raspberry Pi IOS ، سوف نشير إلى هذا.

3rd - J1- Pin # 5 - SCNn - المتصل بـ Raspberry Pi "CS0" (Pin # 24). بشكل فعال يعطي هذه الوحدة عنوان "الوحدة النمطية 0" على ناقل RPi SPI. مرة أخرى ، في خطوة تكوين Raspberry Pi IOS ، سوف نشير إلى هذا.

الخطوة 3: لوحة الدوائر الخاصة بي

لوحة الدوائر الخاصة بي
لوحة الدوائر الخاصة بي
لوحة الدوائر الخاصة بي
لوحة الدوائر الخاصة بي
لوحة الدوائر الخاصة بي
لوحة الدوائر الخاصة بي

تم إرفاق مخطط النسر "Point to Point" الذي قمت بتكوينه والذي تم من خلاله إنشاء ملفات جربر.

مرفق أيضًا صور "لوحة الدوائر" التي أعددتها لهذا المشروع.

ستقبل هذه اللوحة عددًا من منتجات Wiznet المختلفة بأسلوب WIZ820io.

الخطوة 4: تكوين Raspberry Pi IOS (المعروف سابقًا باسم Raspian) - الإدخالات في مجلد "boot"

تكوين Raspberry Pi IOS (Raspian سابقًا) - الإدخالات في ملف
تكوين Raspberry Pi IOS (Raspian سابقًا) - الإدخالات في ملف

لكي "يرى" Raspberry Pi وحدة WIZ820io المثبتة حديثًا على ناقل SPI الخاص به ، يجب أن يكون IOS على دراية ، حتى يتمكن من التعامل معها أثناء "BOOT Up".

للقيام بذلك ، سنضيف ببساطة سطرين إلى:../../boot/config.txt

أولاً.. استخدام جزء طرفية / نافذة ==> ls

cd../boot ، انتقل إلى../boot وقم بسرد (ls) الدليل

الرجوع إلى الصورة المرفقة.. هناك تحتاج إلى البحث عن وتأكيد وجود إدخالين - لقد وضعت دائرة حولهما باللون الأحمر.

أحدهما هو ملف باسم: "config.txt"

الثاني هو مجلد باسم: "تراكبات"

== == == ==

بمجرد التأكد من وجود هذين الإدخالين ، يمكنك المتابعة إلى الخطوة التالية

الخطوة 5: تكوين Raspberry Pi IOS (المعروف سابقًا باسم Raspian) - الإدخالات في دليل "التراكبات"

تكوين Raspberry Pi IOS (Raspian سابقًا) - الإدخالات في ملف
تكوين Raspberry Pi IOS (Raspian سابقًا) - الإدخالات في ملف
تكوين Raspberry Pi IOS (Raspian سابقًا) - الإدخالات في ملف
تكوين Raspberry Pi IOS (Raspian سابقًا) - الإدخالات في ملف
تكوين Raspberry Pi IOS (Raspian سابقًا) - الإدخالات في ملف
تكوين Raspberry Pi IOS (Raspian سابقًا) - الإدخالات في ملف

تغيير الدليل إلى دليل "التراكبات"

النوع: تراكبات قرص مضغوط

بعد الضغط على مفتاح "الإدخال" ، سينقلك ذلك إلى مجلد "التراكبات" (انظر الصورة المرفقة).

قائمة محتويات الدليل.

النوع: ls

بعد الضغط على مفتاح "الإدخال" ، يجب أن تشاهد قائمة طويلة بمحتويات هذا الدليل. القائمة ربما أبجديا.

(انظر الصور المرفقة (2 من)). لاحظ أنه تم تسمية جميع الملفات تقريبًا بامتداد: *.dtbo ، قد تلاحظ أيضًا أسماء قليلة بامتداد: *.dtb

هذه هي كافة ملفات تراكب "شجرة الجهاز"

تحتاج إلى تأكيد وجود ملفين "تراكب" (انظر ملفات الصور المرفقة).

الأول - ملف باسم: anyspi.dtbo (لهذا الملف ، قد تحتاج إلى استخدام شريط التمرير في الهامش الأيمن من النافذة للانتقال إلى الأعلى والعثور على anyspi.dtbo مرتبة أبجديًا).

الثاني - ملف باسم w5500.dtbo

== == ==

إذا كان بإمكانك التأكد من وجود كلا الملفين ، فأنت في حالة جيدة ويمكنك العودة إلى الدليل../boot.

اكتب: cd../ بعد الضغط على المفتاح ENTER ، يجب أن يتم إرجاعك إلى دليل / boot.

قائمة الدليل للتأكيد: اكتب: ls واضغط على مفتاح ENTER

الخطوة 6: تكوين Raspberry Pi IOS (المعروف سابقًا باسم Raspian) - تحرير ملف مسمى: Config.txt

تكوين Raspberry Pi IOS (Raspian سابقًا) - تحرير ملف مسمى: Config.txt
تكوين Raspberry Pi IOS (Raspian سابقًا) - تحرير ملف مسمى: Config.txt
تكوين Raspberry Pi IOS (Raspian سابقًا) - تحرير ملف مسمى: Config.txt
تكوين Raspberry Pi IOS (Raspian سابقًا) - تحرير ملف مسمى: Config.txt
تكوين Raspberry Pi IOS (Raspian سابقًا) - تحرير ملف مسمى: Config.txt
تكوين Raspberry Pi IOS (Raspian سابقًا) - تحرير ملف مسمى: Config.txt

في الدليل../boot ، يمكننا الآن العمل على إجراء بعض التعديلات الصغيرة على الملف المسمى: config.txt

سنطلق أولاً على محرر "nano" لقب "مستخدم متميز" (sudo)

sudo = "المستخدم المتميز"

nano هو محرر النصوص الذي سنستخدمه

وكما لوحظ ، config.txt هو الملف الذي نريد تحريره.

اكتب: sudo nano config.txt وضربة ENTER.

سيؤدي ذلك إلى إظهار المحرر وعرض محتوى ملف config.txt. إذا لم يفتح المحرر أو يفتح فارغًا ، فاخرج (إذا كان في nano) وتحقق جيدًا من التهجئة.

إذا سارت الأمور على ما يرام ، يجب أن ترى شيئًا مثل الصورة المرفقة الثانية. سيعرض "nano" "الجزء العلوي" من الملف. ستحتاج إلى التمرير لأسفل إلى أسفل.

في الجزء السفلي من الملف ، أضف "عبارات dtoverlay" أدناه:

dtoverlay = anyspi ، spi0-0 ، dev = "w5500" ، السرعة = 30000000dtoverlay = w5500

تحقق مرة أخرى من جميع التهجئة ، وإذا كانت متطابقة ، فاضغط على المفتاحين "Ctrl-x" للخروج.. وأجب بشكل مناسب للحفظ والخروج.

== == == ==

عند بدء التشغيل التالي (ولجميع عمليات التمهيد بعد ذلك إذا بقيت هاتان العبارتان هناك) ، سيستدعي نظام التشغيل الآن أيضًا التراكب المسمى "anyspi" والتراكب المسمى "w5500".

يقوم التراكب "anyspy" بإعداد نظام التشغيل لاستخدام ناقل SPI0-0 (هذا هو المكان الذي قمنا فيه مسبقًا بتوصيل WIZ820io به فعليًا. يحدد "-0" ذلك لاستخدام العنوان "0" - تذكر أننا قمنا مسبقًا بتوصيل دبوس WIZ820io # J1-6 إلى "CEO" RPi GIPO (رقم التعريف الشخصي 24).

يخبر التراكب "w5500" نظام التشغيل بكيفية التعامل مع الدائرة المتكاملة W5500 الموجودة في وحدة WIZ820io. كما تحدد أيضًا استخدام RPi GPIO25 (Pin # 22) كإشارة INTn. أذكر مرة أخرى أننا أجرينا هذا الاتصال سابقًا.

يمكن العثور على هذا النوع من المعلومات في ملفات مختلفة ، مثل هذا المثال الموجود على GITHub.

== == ==

حان الوقت لإعادة تشغيل RPI ، وجعل كل هذا ساري المفعول.

الخطوة 7: لقد قمنا بإعادة التمهيد. أتمنى أن تبتسم

لقد أعدنا التمهيد. أتمنى أن تبتسم
لقد أعدنا التمهيد. أتمنى أن تبتسم
لقد أعدنا التمهيد. أتمنى أن تبتسم
لقد أعدنا التمهيد. أتمنى أن تبتسم

إذا سارت الأمور على ما يرام ، فيجب إعادة تمهيد RPi بشكل طبيعي. يبتسم.

حان الوقت للتحقق مما إذا كان IOS قد قام بتحميل ملفي التراكب الجديدين ، وما إذا كان يتعرف على وحدة WIZ820io المرفقة.

مرة أخرى افتح نافذة "الأوامر".

هذه المرة في الموجه ، اكتب ifconfig (أو استخدم الأمر "ip" الأحدث) واضغط على مفتاح Enter.

من المحتمل أن تحصل على إجابة طويلة ، لذا ستحتاج إلى التمرير مرة أخرى إلى الأعلى.

مرة أخرى في الأعلى ، ابحث عن القسمين:

واحد اسمه eth0 ، والثاني اسمه: eth1 - انظر الصورة المرفقة.

في نظامي ، eth0 هو منفذ Ethernet على RPI. eth1 هو منفذ إيثرنت WIZ820io الجديد.

== == ==

إذا كنت ترى المنفذين ، فهذا هو RPI. لاحظ في الصورة المرفقة أن eth1 قد أرسل حزمًا وبدون أخطاء.

لقد اختبرت ذلك عن طريق فصل كابل المنفذ الأصلي ، واستخدام المتصفح للانتقال إلى موقع YouTube ومواقع الويب الأخرى.. إنه يعمل. لقد قمت أيضًا بإجراء "ping'd" من عدة أجهزة مختلفة وهو يعمل.

== == ==

إذا كنت لا ترى eth1 (أو شيء مشابه) - بخلاف eth0 على RPI3 أو RPi4 ، فحاول الرجوع والتحقق مرة أخرى من أن ملف config.txt قد تم تحريره وحفظه بشكل صحيح. تأكد من أن التراكبين في مكانهما الصحيح ، وأن التهجئة صحيحة (لا توجد أحرف كبيرة لا أملكها - الأحرف الكبيرة مهمة في هذا النظام).

== == ==

في حالة وجود المنفذين ، فقد يكون هناك المزيد من أعمال التكوين التي يجب القيام بها … إلى الخطوة التالية …

الخطوة 8: تكوين Raspberry Pi IOS (المعروف سابقًا باسم Raspian) - إعداد عنوان IP

هذا بعيد قليلاً عن منزل العجلة الخاص بي ، لذا لا يمكنني في هذا الوقت تقديم التوجيه.

فقط اعلم أن هناك عددًا لا يحصى من مواقع الويب ومقاطع فيديو YouTube ولوحات الرسائل التي توفر هذا النوع من المعلومات.

لكن.. قد ترغب في التحقق والقيام ببعض الأشياء هنا.

1 - تحقق مرة أخرى من عنوان IP الذي يحتوي عليه المنفذ الجديد حاليًا. هل تم تعيينه بواسطة خادم DHP الخاص بك ، أم أنه IP الافتراضي - شيء في النطاق: 169.254.xxx.yyy؟ هل هو شيء آخر ؟؟

2- هل تريد عنوان IP ثابت (ثابت) أم عنوان IP ديناميكي (يتم تعيينه بواسطة خادم DHCP الخاص بك).

تحقق من المحول / الموجه الذي يتصل به RPI.. هل يرى المنفذ الجديد الخاص بك؟ يمكن أن "بينغ" ذلك؟ (تأكد من فصل كابل المنفذ الأصلي إذا قمت بذلك - وإلا فقد يخدعك RPi).

استخدم ifconfig (أو الأمر "ip" الأحدث) لترى أن البيانات القادمة والذهاب تبدو "طبيعية" (إذا جاز التعبير) وبدون عدد لا داعي له من الأخطاء.

== == ==

أخيرًا.. أعتقد أن w5500.dtbo يخصص عنوان MAC لوحدة WIZ820io / W5500.. لكن لا يمكنني الجزم بما إذا كان هذا هو المكان الذي يحدث فيه ذلك. لم أتمكن على الفور من العثور على تفاصيل حول ذلك.

بالنسبة لي ، يبدو أنه يتم تعيين عنوان MAC مختلف في كل مرة يتم فيها التمهيد. أنا شخصياً لا أحب ذلك ، وبالتالي هناك أشياء يمكن القيام بها لتعيين عنوان Mac (برنامج "macchanger" على سبيل المثال أو إعداده من خلال أوامر ip / ifconfig). إذا وجد أي منكم حلاً "boot-up" / "crontab" لهذا ، فسأكون سعيدًا لسماع كيف تفعل ذلك إذا كنت منفتحًا على المشاركة.

يمكنك رؤيتي في الصورة.. عندما أبحث عن بائع عنوان Mac عن eth0 ==> b827eb ، يظهر كمؤسسة Raspberry Pi Foundation. يظهر بائع eth1 ==> fa9770 على أنه غير معروف ، لذلك من الواضح أنه تم إنشاؤه على Pi في مرحلة ما..

الخطوة 9: الخاتمة

شكرا للتحقق من هذا Instructable.

لقد تعلمت الكثير من العمل من خلال هذا المشروع الصغير.

إذا كان لديك أي أسئلة ، أو قد تكون مهتمًا بشراء إحدى اللوحات التي صنعتها (مأهولة بالسكان أم لا) ، فلدي بعض الإضافات المعروضة للبيع والتي يمكننا مناقشتها.

على أي حال ، أحثك على ترك تعليقات أو اقتراح تصحيحات (أخطاء مطبعية أو طرق أو ؟؟)

بالتأكيد ، إذا قمت بعمل هذا بنفسك ، فسأكون سعيدًا جدًا لرؤية صور لكيفية التعامل مع ذلك ، والنتائج / الغرض النهائي.

شكرا.

ملاحظة: شكرًا لهذا الزميل على التوجيه والأفكار.

الخطوة 10: ملفات DTBO

ملفان لإضافتهما إلى مجلد التراكبات - مطلوبان للخطوتين رقم 4 و 5

موصى به: