ماژول اترنت ENC28J60 مبدل شبکه به SPI
ارتباط اینترنتی این روزها جزوی از ملزومات زندگی ما شده است. این موضوع به قدری مهم بوده که نبود اینرتنت همانند قطع شدن جریان برق، می تواند زندگی را فلج کند. در کنار همین موضوع است که این روزها واژه اینترنت اشیا را می شنویم. در این حوزه، تمامی اشیا مانند لامپ، گلدان، یخچال و.... دارای هویت دیجیتال می شوند. جهت اتصال این وسایل به اینترنت، علاوه بر بردهای پردازشی نظیر آردوینو، نیاز به ماژول های مخابراتی هم داریم. یکی از این ماژول ها، ماژول اترنت شبکه لن است.
ماژول ENC28J60 یک ماژول شبکه است که از طریق رابط SPI به میکروکنترلرها و میکروپروسسورها متصل میشود. این ماژول مبتنی بر تکنولوژی Ethernet بوده و قادر به برقراری ارتباط با شبکههای Ethernet با سرعت 10/100 مگابیت بر ثانیه است. با استفاده از این ماژول، میتوان برنامههایی را که باید با شبکه ارتباط برقرار کنند، مانند برنامههای کنترل دستگاهها، ارسال اطلاعات به سرور و ... پیادهسازی کرد. همچنین، این ماژول قابلیت برقراری ارتباط با شبکههای TCP/IP و برنامههایی که بر اساس این پروتکلها کار میکنند را داراست.
کمی درباره تراشه ENC28J60
تراشه ENC28J60 یک کنترلر شبکه است که برای ارتباط با شبکههای Ethernet با استفاده از رابط SPI طراحی شده است. این تراشه از پروتکلهای Ethernet و TCP/IP پشتیبانی میکند. تراشه ENC28J60 شامل یک واحد MAC، یک واحد PHY و یک واحد برنامهنویسی (Firmware) است. واحد MAC برای مدیریت کنترل دسترسی به وسایل شبکه و پیادهسازی پروتکلهای Ethernet و ARP و ICMP و UDP و TCP استفاده میشود. واحد PHY برای انتقال دادهها بین تراشه و خطوط ارتباطی شبکه، مانند کابلهای اترنت و RJ45 و کارت شبکه استفاده میشود.
همچنین، واحد برنامهنویسی (Firmware) برای تنظیم و کنترل تراشه ENC28J60 استفاده میشود. تراشه ENC28J60 دارای پینهای مختلفی است که برای اتصال به میکروکنترلرها و میکروپروسسورها به کار میروند. این پینها شامل پینهای رابط SPI برای ارتباط با میکروکنترلر، پینهای برق و پینهای ارتباطی با شبکه هستند.
در کل، تراشه ENC28J60 یک تراشه قدرتمند و کارآمد برای پیادهسازی ارتباط با شبکههای Ethernet است که با استفاده از رابط SPI و پشتیبانی از پروتکلهای Ethernet و TCP/IP، میتواند برای بسیاری از کاربردهای شبکهای مورد استفاده قرار گیرد.
مشخصات فنی ماژول اترنت شبکه ENC28J60
- پشتیبانی از پروتکلهای شبکه: این ماژول از پروتکلهای Ethernet، ARP، IP، ICMP، UDP، TCP و PPPoE پشتیبانی میکند.
- پشتیبانی از سرعت انتقال دادهها: این ماژول قادر به انتقال دادهها با سرعت 10/100 مگابیت بر ثانیه است.
- پشتیبانی از رابط SPI: این ماژول با استفاده از رابط SPI به میکروکنترلرها و میکروپروسسورها متصل میشود.
- ابعاد کوچک: اندازه کوچک این ماژول به ارتباط آسان با دیگر قطعات در مدارهای الکترونیکی کمک میکند.
- پشتیبانی از حالت Half-duplex: این ماژول فقط حالت Half-duplex را پشتیبانی میکند.
- حافظه داخلی: این ماژول دارای حافظه داخلی 8 کیلوبایتی برای برنامهنویسی است.
- اتصال به شبکه با کابل RJ45: این ماژول با استفاده از کابل RJ45 به شبکه متصل میشود.
- تغذیه 5 ولت: این ماژول با منابع تغذیه 5 ولت کار میکند.
- دمای کارکرد: دمای کارکرد این ماژول بین -40 درجه تا 85 درجه سانتیگراد است.
در کل، ماژول ENC28J60 یک ماژول شبکه کوچک و کارآمد است که با پشتیبانی از پروتکلهای Ethernet و TCP/IP، واحد MAC و PHY و رابط SPI، برای برقراری ارتباط با شبکههای Ethernet قابل استفاده است.
بررسی پایههای PinOut ماژول شبکه ENC28J60
ماژول ENC28J60 دارای یک رابط SPI برای ارتباط با میکروکنترلر یا میکروپروسسور است. پایههای این ماژول به صورت زیر هستند:
VCC: منبع تغذیه 3.3 ولت برای ماژول
GND: مرجع تغذیه ماژول
CS: پایه انتخاب تراشه برای ارتباط با میکروکنترلر یا میکروپروسسور
SI: پایه ورودی داده SPI برای ارسال دادهها به ماژول
SO: پایه خروجی داده SPI برای دریافت دادههای ارسال شده توسط ماژول
SCK: پایه ساعت SPI برای هماهنگی انتقال دادهها با میکروکنترلر یا میکروپروسسور
INT: خروجی تخصیصی برای سیگنال اعلان از طریق اینتراپت به میکروکنترلر یا میکروپروسسور
WOL: ورودی تخصیصی برای فعالسازی Wake-On-LAN
RES: ورودی تخصیصی برای بازنشانی ماژول ENC28J60
RST: ورودی تخصیصی برای بازنشانی خارجی
استفاده از هر پایه بسته به نیاز شما و برنامهای که مینویسید، متفاوت است. از این رابط SPI میتوان برای تبادل دادهها و برقراری ارتباط با ماژول ENC28J60 استفاده کرد.
به همراه ماژول enc28j60 چه اقلامی باید خریداری شود؟
برد میکروکنترلر: برای ارتباط با ماژول ENC28J60، به یک برد میکروکنترلر یا میکروپروسسور نیاز دارید. معمولا میکروکنترلرهایی مانند Arduino، PIC، STM32 و ... برای این منظور استفاده میشوند.
کانکتور RJ45: برای اتصال کابل شبکه به ماژول ENC28J60 به یک کانکتور RJ45 نیاز دارید.
کریستال 25 مگاهرتز: برای ایجاد سیگنالهای ساعت برای ماژول ENC28J60 به یک کریستال 25 مگاهرتز نیاز دارید. البته این کریستال روی ماژول قرار گرفته شده است. اما در برخی موارد نیاز خواهد بود.
منبع تغذیه: برای تامین تغذیه به ماژول ENC28J60 و میکروکنترلر یا میکروپروسسور خود نیاز به یک منبع تغذیه دارید. معمولاً منبع تغذیه با ولتاژ 5 ولت برای این منظور استفاده میشود.
استفاده از این اقلام، شما را قادر میسازد تا یک سیستم شبکه با استفاده از ماژول ENC28J60 ایجاد کنید.
راه اندازی ماژول ENC28J60 با برد آردوینو
برای راهاندازی ماژول ENC28J60 با آردوینو، ابتدا باید کتابخانهای که برای این ماژول ایجاد شده است را نصب کنید. برای نصب این کتابخانه، به مدیریت کتابخانههای آردوینو بروید و در بخش جستجو، عبارت "UIPEthernet" را وارد کرده و کتابخانه را نصب کنید. سپس باید از این کتابخانه در کد برنامهی خود استفاده کنید. نمونه کد زیر یک برنامهی ساده برای خواندن آدرس IP ماژول ENC28J60 و نمایش آن در Serial Monitor آردوینو است.
#include <UIPEthernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // MAC address of ENC28J60 module
IPAddress ip(192,168,1,10); // IP address of the module
EthernetClient client; // Define Ethernet client object
void setup() {
Serial.begin(9600); // Start serial communication
Ethernet.begin(mac, ip); // Initialize Ethernet library with MAC and IP address
}
void loop() {
Serial.print("IP Address: ");
Serial.println(Ethernet.localIP()); // Display IP address of the module
delay(10000); // Wait for 10 seconds
}
در این کد، با استفاده از تابع Ethernet.begin(mac, ip)، کتابخانهی Ethernet با استفاده از آدرس MAC و IP ماژول ENC28J60 را مقداردهی اولیه میکند. سپس در تابع loop()، آدرس IP ماژول با استفاده از تابع Ethernet.localIP() خوانده شده و در Serial Monitor آردوینو نمایش داده میشود. اگر ماژول ENC28J60 به شبکهی اینترنت متصل شده باشد، با دسترسی به آدرس IP ماژول، میتوانید به آن دسترسی پیدا کنید. به عنوان مثال، میتوانید با استفاده از تابع client.connect()، به یک سرور در شبکهی اینترنت اتصال برقرار کنید و دادههایی را که دریافت میکنید در Serial Monitor آردوینو نمایش دهید.
روش بدست آوردن مک آدرس در ماژول enc28j60 چگونه است؟
برای بدست آوردن مک آدرس ماژول ENC28J60، میتوانید از دو روش زیر استفاده کنید. برنامهی اول برای بدست آوردن مک آدرس ENC28J60
#include <UIPEthernet.h>
void setup() {
Serial.begin(9600);
}
void loop() {
byte mac[6];
Ethernet.MACAddress(mac);
Serial.print("MAC Address: ");
for (int i = 0; i < 6; i++) {
Serial.print(mac[i], HEX);
if (i < 5) {
Serial.print(":");
}
}
Serial.println();
delay(10000);
}
در این برنامه، با استفاده از تابع Ethernet.MACAddress(mac)، مک آدرس ماژول ENC28J60 در آرایهای با نام mac قرار میگیرد و با استفاده از یک حلقه for، مک آدرس به صورت hex از هم جدا شده و در Serial Monitor آردوینو نمایش داده میشود. سپس برنامهی دوم برای بدست آوردن مک آدرس ماژول ENC28J60
#include <UIPEthernet.h>
byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 }; // Replace with your own MAC address
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.print("MAC Address: ");
for (int i = 0; i < 6; i++) {
Serial.print(mac[i], HEX);
if (i < 5) {
Serial.print(":");
}
}
Serial.println();
delay(10000);
}
در این برنامه، مک آدرس ماژول ENC28J60 در آرایهی mac قرار داده شده است. میتوانید مک آدرس خود را به جای آدرس موجود در این برنامه قرار دهید. سپس با استفاده از یک حلقه for، مک آدرس به صورت hex از هم جدا شده و در Serial Monitor آردوینو نمایش داده میشود.
راه اندازی ماژول ENC28J60 با میکروپایتون
برای راهاندازی ماژول ENC28J60 با میکروپایتون، ابتدا باید کتابخانهی micropython-enc28j60 را نصب کنید. برای این کار، میتوانید از دستورهای import upip و upip.install('micropython-enc28j60') استفاده کنید. سپس با استفاده از کد زیر، میتوانید ماژول ENC28J60 را راهاندازی کنید.
import network
from enc28j60 import ENC28J60
# Initialize the network interface
nic = network.LAN(mdc=5, mdio=18, power=17, phy_type=network.PHY_LAN8720, pins=('P3', 'P4', 'P5', 'P6', 'P7', 'P8'))
# Initialize the ENC28J60 module
enc = ENC28J60(spi_bus=1, cs_pin=14, int_pin=4)
enc.init()
enc.setup(mac=b'\x00\x01\x02\x03\x04\x05')
# Connect to the network
nic.ifconfig(('192.168.1.10', '255.255.255.0', '192.168.1.1', '8.8.8.8'))
nic.active(True)
در این کد، ابتدا کتابخانهی network و کلاس ENC28J60 از کتابخانهی micropython-enc28j60 وارد شده است. سپس با استفاده از کلاس network.LAN، رابط شبکهای که برای اتصال به ماژول ENC28J60 استفاده میشود، مشخص شده است. همچنین با استفاده از کلاس ENC28J60، ماژول ENC28J60 به سیستم متصل شده است. در ادامه با استفاده از تابع nic.ifconfig()، آدرس IP، ماسک زیرشبکه، دروازه پیشفرض و DNS ست شدهاند. سپس با استفاده از تابع nic.active()، اتصال به شبکه برقرار شده است. با اجرای کد بالا، ماژول ENC28J60 با استفاده از پروتکل SPI به میکروپایتون متصل شده و شبکه راهاندازی میشود.
کاربردهای ماژول اترنت شبکه لن Ethernet LAN Interface Module ENC28J60
طراحی و پیاده سازی سیستم های تحت شبکه
طراحی و پیاده سازی مانیتورینگ از راه دور
طراحی و پیاده سازی مدارات فرمان از راه دور
مشخصات
- کاربری
- مناسب برای استفاده صنعتی
- نوع ماژول
- شیلد - Shield
- نوع شیلد
- شیلد آردوینو - Arduino Shield
- ابعاد فیبر
- 5 * 2 * 1.5 سانتی متر
- تعداد فیبر
- 1 عدد
- سطح تجربه مورد نیاز
- نیمه حرفه ای
- ولتاژ مورد نياز
- 3.3 ولت DC
- چاپ مس
- دارای چاپ آبی
- کشور سازنده
- چین
- وزن
- 11 گرم
- فرکانس
- 25 MHz
- نوع کانکتور
- پین هدر
- کد تجاری
- ENC28J60/SS
- پردازنده
- ENC28J60-I/SO
- سایر توضیحات
- دارای پورت اترنت HR911105A
- نوع مبدل
- پروتکل SPI
- ماژول sim800l
- سیم کارت
- منبع تغذیه
- آنتن GSM
- کابل USB به سریال
- خازن 1000 میکروفاراد
- ماژول کاهنده LM2596
اتصالات باتریها را بررسی کنید. همگی از یک نمونه باشند و اتصالات کامل و استاندارد باشند.
ولقطعات مورد نیاز برای راه اندازی ماژول sim800l عبارتند از:
امکان راه اندازی چند سنسور DHT با ESP8266 با استفاده از MicroPython وجود دارد. سنسورهای DHT با پروتکل دیجیتال و از طریق پایههای GPIO قابل اتصال به میکروکنترلرها هستند.
برای ساخت یک سیستم کنترل دما با برد میکروکنترلر ESP32، به موارد زیر نیاز دارید:
یک برد میکروکنترلر ESP32
یک سنسور دما مثل DHT DS18B20
یک المان سرد کننده
با استفاده از کتابخانه DHT.h، میتوانید از سنسور دما برای خواندن دمای محیط استفاده کنید. سپس، میتوانید از این دما برای کنترل المان گرمایشی یا سرمایشی استفاده کنید.
در خصوص برنامه نویسی از کتابخانه DHT و در صورت نیاز کتابخانه وای فای برای ارسال دادهها به پلتفرم IoT باید استفاده کنید.
بله این امکان وجود دارد. با توجه به اینکه برد رزبری پای دارای پایههای GPIO است. امکان اتصال انواع ماژولهای مختلف را دارد. ماژولهای اترنت به SPI هم یکی از این موارد پر مصرف هستند. میتوانید از شاخه ماژول اترنت و شبکه انواع این بردها را برای اتصال به رزبری پای بررسی کنید.