آموزش جامع راهاندازی سیستم با ماژول اترنت ENC28J60
ماژول شبکه ENC28J60 یکی از ارزانترین و پایدارترین روشها برای اتصال میکروکنترلرها به شبکه کابل اترنت (Ethernet) است. در شرایطی که امواج وایفای دچار اختلال میشوند یا برد آردوینو از مودم فاصله زیادی دارد، کابل اترنت پایداری ۱۰۰٪ را تضمین میکند.
این راهنما به شما کمک میکند برد NodeMCU (ESP8266) را به همراه ماژول شبکه اترنت ENC28J60 راهاندازی کرده و سنسورها، رلهها و اسلایدرهای خود را به داشبورد الکترو متصل کنید.
قطعات سختافزاری مورد نیاز:
| نام قطعه / ماژول |
تعداد |
نقش در پروژه |
| برد NodeMCU (ESP8266) |
۱ عدد |
میکروکنترلر اصلی جهت پردازش منطق برنامه |
| ماژول شبکه اترنت ENC28J60 |
۱ عدد |
اتصال فیزیکی برد به شبکه از طریق کابل LAN |
| سنسور دما و رطوبت DHT11 |
۱ عدد |
پایش دما و رطوبت محیط (نیازمند مقاومت پولآپ) |
| مقاومت ۱۰ کیلواهم (10k) |
۱ عدد |
مقاومت Pull-up جهت اتصال پایه دیتا سنسور DHT11 به قطب مثبت (VCC) |
| ماژول رله ۴ کاناله |
۱ عدد |
قطع و وصل جریان برق وسایل مصرفی الکتریکی |
| پتانسیومتر ۱۰ کیلواهم |
۱ عدد |
شبیهسازی ولوم آنالوگ جهت ارسال به ابزارک اسلایدر |
راهنمای سیمکشی و اتصالات با جزئیات کامل:
اتصال ماژول اترنت ENC28J60 به برد NodeMCU از طریق پینهای سختافزاری SPI صورت میگیرد. به دلیل محدود بودن پینهای آردوینو و اهمیت ترتیب اتصالات، لطفاً جدول زیر را با دقت بالا سیمکشی نمایید:
| پایه ماژول اترنت ENC28J60 |
پایه برد NodeMCU (ESP8266) |
توضیح عملکرد پایه |
| VCC |
3.3V (یا تغذیه ۳.۳ ولت خارجی مستقل) |
ولتاژ تغذیه ماژول (جریان مصرفی بالاست؛ ترجیحاً از رگولاتور مستقل ۳.۳ ولتی استفاده کنید). |
| GND |
GND |
اتصال زمین مشترک مدار. |
| SCK |
D5 (GPIO14) |
پایه تولید پالس کلاک پروتکل سختافزاری SPI. |
| SO (MISO) |
D6 (GPIO12) |
خروجی داده از ماژول اترنت به برد (Master In Slave Out). |
| SI (MOSI) |
D7 (GPIO13) |
ورودی داده از برد به ماژول اترنت (Master Out Slave In). |
| CS (Chip Select) |
D0 (GPIO16) |
پایه انتخاب تراشه. برای جلوگیری از ریست شدن یا عدم لود برد، پایه انتخاب اترنت را روی D0 قرار دادیم. |
نکته بسیار مهم برای سنسور DHT11:
پایه دیتای سنسور DHT11 باید حتماً به پایه D3 (GPIO0) برد NodeMCU متصل شود. همچنین برای کارکرد صحیح سنسور و خوانش مقادیر صحیح، نیاز به یک مقاومت پولآپ ۱۰ کیلو اهمی دارید که بین پایه مثبت سنسور (VCC) و پایه دیتای آن قرار میگیرد.
بررسی منطق کارکرد و تشریح بخشهای کلیدی کد
تنظیم آدرس IP ثابت (Static IP) در شبکه اترنت
if (Ethernet.localIP() == IPAddress(0, 0, 0, 0)) {
توجه داشته باشید: ماژول شبکه ENC28J60 فاقد پشته پردازشی پیشرفته بوده و گاهی در دریافت IP خودکار از مودم (DHCP) ناموفق عمل میکند. برای اطمینان از عملکرد پایدار، در صورتی که با پیغام خطا مواجه شدید، باید آدرس IP ثابتی مانند 192.168.1.7 را به صورت استاتیک در برنامه برای برد خود تعریف کنید تا برد بتواند به سرعت به مودم متصل شده و دیتای شبکه را ارسال کند.
قرار دادن کد شناسایی منحصربهفرد (MyElectro API Key)
#define USER_API_KEY "YOUR_MYELECTRO_API_KEY"
این خط شناسه اتصال برد شما به سرور است. شما باید عبارت YOUR_MYELECTRO_API_KEY را پاک کرده و به جای آن کلید API خود را که از داشبورد دریافت کردهاید کپی کنید تا سرور متوجه شود فرامین و گزارشهای این سنسور متعلق به حساب شماست.
تنظیم پایه تراشه اترنت به صورت نرمافزاری
به صورت پیشفرض کتابخانه اترنت پایه CS را روی پین D8 (GPIO15) قرار میدهد. در بردهای ESP8266 اگر پایه D8 در هنگام بوت شدن مدار به ماژول متصل باشد، برد بالا نمیآید و در وضعیت بوت لوپ گیر میکند. با خط بالا، پایه CS را به صورت نرمافزاری به پین D0 انتقال میدهیم تا برد بدون هیچ مشکلی روشن و پایدار شود.
۴. تعریف پایههای رلهها و اتصال LED تستی به خروجیها
#define R1_PIN D1
#define R2_PIN D2
#define R3_PIN D8
#define R4_PIN D4
در این کد، پایههای خروجی (رلهها) به پینهای D1، D2، D8 و D4 متصل شدهاند. در صورتی که ماژول رله برای اتصال وسایل برقی قوی ندارید، میتوانید با اتصال یک LED به این پایهها، کارکرد خروجیها را به صورت بصری تست کنید:
- پایه بلندتر LED (مثبت یا آنود) را مستقیماً به پایه خروجی مربوطه (مانند D1) متصل کنید.
- پایه کوتاهتر LED (منفی یا کاتود) را به همراه یک مقاومت ۲۲۰ یا ۳۳۰ اهم سری کرده و به پایه GND برد وصل کنید.
- زمانی که کلید مربوطه در داشبورد وب را روشن میکنید، پایه ۳.۳ ولت فعال شده و LED روشن میشود و با خاموش کردن آن در داشبورد، LED خاموش خواهد شد.